[LLVMbugs] [Bug 13918] New: __builtin_setjmp is not compatible with GCC

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Sep 25 11:19:48 PDT 2012


http://llvm.org/bugs/show_bug.cgi?id=13918

             Bug #: 13918
           Summary: __builtin_setjmp is not compatible with GCC
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: stuart.rudderham at intel.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


Created attachment 9256
  --> http://llvm.org/bugs/attachment.cgi?id=9256
Test case

The __builtin_setjmp function does different things on Clang compared to GCC.
On Clang only the stack pointer and frame pointer are saved, while GCC also
saves the resume address that is used to longjmp back.

A test case is attached, based on the below test from GCC
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c?revision=184997&view=markup

When compiled using GCC 4.6.3 (gcc __builtin_setjmp-test.c) the test program
returns 1, as expected.

When compiled using Clang 3.2 (clang __builtin_setjmp-test.c) the test program
segfaults.

Since the __builtin_setjmp function is supposed to be compatible with GCC, this
is a problem.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list