------- Comment #1 from jakub at gcc dot gnu dot org  2009-12-01 08:19 -------
Simplified testcase without the undefined signed underflow:
void
foo (int x)
{
  struct S { int s; } d = { 1 };
  unsigned int e = 1;
  if (x)
    e = x && d.s;
  else
    for (e = 0; e <= 3; e--)
      ;
  e++;
}

The problem starts in *.cddce1, before that we have:
  # e_2 = PHI <e_9(6), e_1(8)>
  # DEBUG e => e_2
  # DEBUG e => e_2 + 1
but after that only:
<bb 6>:
  # DEBUG e => e_1
  # DEBUG e => e_1 + 1
where e_1 is defined only in one of the predecessors of bb 6.


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-12-01 08:19:33
               date|                            |


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

Reply via email to