The following should not abort but does at -O3.
void abort(void);
void
foo (signed char a)
{
  if (a - 0x7F > 1)
    abort();
}
int main()
{
  unsigned char b;
  for(b = 0;b <0xFF;b++)
   foo (b);
}

-- 
           Summary: [4.1 Regression] wrong code for casts and scev
           Product: gcc
           Version: 4.0.1
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: critical
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org


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

Reply via email to