http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49262

           Summary: 3-yr-old infinite loop in dwarf2out.c
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: j...@meyering.net


coverity pointed out the infinite loop below, in dwarf2out.c.
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            }

Reply via email to