3-yr-old infloop in dwarf2out.c

Jim Meyering jim@meyering.net
Mon May 30 07:15:00 GMT 2011


coverity pointed out the infinite loop below.
I guess it is unreachable or at least hard to reach,
or it would have been reported/fixed before now:

17605		      if (index && TREE_CODE (index) == RANGE_EXPR)
17606			{
17607			  int count = tree_low_cst (TREE_OPERAND (index, 1), 0)
17608				      - tree_low_cst (TREE_OPERAND (index, 0), 0);

Event loop_top: 	Top of the loop.
Event loop_condition: 	"0 < count" must remain true for the loop to continue.
Also see events: 	[loop_bottom]

17609			  while (count > 0)
17610			    {
17611			      if (val)
17612				memcpy (array + curpos, array + pos, fieldsize);

Event loop_bottom: 	Bottom of the loop.
Also see events: 	[loop_top][loop_condition]

17613			      curpos += fieldsize;
17614			    }
17615			}



More information about the Gcc-bugs mailing list