https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109507

            Bug ID: 109507
           Summary: Optimizer creates incorrect program
           Product: gcc
           Version: 12.1.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: aran at 100acres dot us
  Target Milestone: ---

Created attachment 54854
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54854&action=edit
Example program.

The attached program should print 0 and does with optimization level zero (0). 
However, with optimization at any non-zero value (e.g., g, s, 1, 2) it prints
1.  This is on an Intel I7-2600.

The code that the optimizer writes reduces to a single test instruction that
checks if x is less or equal to zero.  However, this is incorrect for the most
negative number.  

To reproduce compile the attached file with -O0 and with -O1.

Reply via email to