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

            Bug ID: 105598
           Summary: Flag -O2 causes code to misbehave
           Product: gcc
           Version: 11.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: greenfoo at u92 dot eu
  Target Milestone: ---

Created attachment 52974
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52974&action=edit
Small example that triggers the issue when using -O2 in gcc 11.x

I found a situation where the "-O2" flag was causing trouble at least in
x86_64.

The attached file "example.c" code is expected to print "4" when compiled and
executed, but it would print "2" when compiled with "-02".

This happens with gcc 11.1, 11.2 and 11.3, but works correctly with gcc 10.3
and 12.1:

> $ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp gcc:10.3 gcc -o 
> example example.c && ./example
> 4 
> $ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp gcc:11.1 gcc -o 
> example example.c && ./example
> 2
> $ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp gcc:11.2 gcc -o 
> example example.c && ./example
> 2
> $ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp gcc:11.3 gcc -o 
> example example.c && ./example
> 2
> $ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp gcc:12.1 gcc -o 
> example example.c && ./example
> 4

I don't know if this deserves further investigation. If not, please feel free
to discard this bug report.

Thanks!

Reply via email to