[Bug tree-optimization/56982] New: Bad optimization with setjmp()

jdemeyer at cage dot ugent.be gcc-bugzilla@gcc.gnu.org
Tue Apr 16 14:31:00 GMT 2013


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

             Bug #: 56982
           Summary: Bad optimization with setjmp()
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: jdemeyer@cage.ugent.be
            Target: x86_64-pc-linux-gnu


Created attachment 29883
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29883
Bug program

Compile the example program with gcc -Og jmp.c -o jmp

Run the program ./jmp and the output is

Returning 1
x = 0, n = 1
Returning 0
x = 42, n = 1
Aborted

The function g() is returning 0 the second time (after longjmp()) but the
return value, assigned to n, equals 1. With other optimization levels or with
earlier versions of gcc or with -Og -fno-tree-dominator-opts, the output is
what I expect:

Returning 1
x = 0, n = 1
Returning 0
x = 42, n = 0

This is with gcc version 4.8.0, GNU libc version 2.15.



More information about the Gcc-bugs mailing list