Blame SOURCES/gcc8-pr91601.patch

8d374f
2020-03-29  Martin Liska  <mliska@suse.cz>
8d374f
8d374f
	Backport from mainline
8d374f
	2019-09-02  Martin Liska  <mliska@suse.cz>
8d374f
8d374f
	PR gcov-profile/91601
8d374f
	* gcov.c (path_contains_zero_cycle_arc): Rename to ...
8d374f
	(path_contains_zero_or_negative_cycle_arc): ... this and handle
8d374f
	also negative edges.
8d374f
	(circuit): Handle also negative edges as they can happen
8d374f
	in some situations.
8d374f
8d374f
--- gcc/gcov.c
8d374f
+++ gcc/gcov.c
8d374f
@@ -653,10 +653,10 @@ unblock (const block_info *u, block_vector_t &blocked,
8d374f
 /* Return true when PATH contains a zero cycle arc count.  */
8d374f
 
8d374f
 static bool
8d374f
-path_contains_zero_cycle_arc (arc_vector_t &path)
8d374f
+path_contains_zero_or_negative_cycle_arc (arc_vector_t &path)
8d374f
 {
8d374f
   for (unsigned i = 0; i < path.size (); i++)
8d374f
-    if (path[i]->cs_count == 0)
8d374f
+    if (path[i]->cs_count <= 0)
8d374f
       return true;
8d374f
   return false;
8d374f
 }
8d374f
@@ -682,7 +682,7 @@ circuit (block_info *v, arc_vector_t &path, block_info *start,
8d374f
     {
8d374f
       block_info *w = arc->dst;
8d374f
       if (w < start
8d374f
-	  || arc->cs_count == 0
8d374f
+	  || arc->cs_count <= 0
8d374f
 	  || !linfo.has_block (w))
8d374f
 	continue;
8d374f
 
8d374f
@@ -693,7 +693,7 @@ circuit (block_info *v, arc_vector_t &path, block_info *start,
8d374f
 	  handle_cycle (path, count);
8d374f
 	  loop_found = true;
8d374f
 	}
8d374f
-      else if (!path_contains_zero_cycle_arc (path)
8d374f
+      else if (!path_contains_zero_or_negative_cycle_arc (path)
8d374f
 	       &&  find (blocked.begin (), blocked.end (), w) == blocked.end ())
8d374f
 	loop_found |= circuit (w, path, start, blocked, block_lists, linfo,
8d374f
 			       count);
8d374f
@@ -708,7 +708,7 @@ circuit (block_info *v, arc_vector_t &path, block_info *start,
8d374f
       {
8d374f
 	block_info *w = arc->dst;
8d374f
 	if (w < start
8d374f
-	    || arc->cs_count == 0
8d374f
+	    || arc->cs_count <= 0
8d374f
 	    || !linfo.has_block (w))
8d374f
 	  continue;
8d374f