Only lower __builtin_setjmp / __builtin_longjmp to
authorJoerg Sonnenberger <joerg@bec.de>
Mon, 23 Feb 2015 20:23:47 +0000 (20:23 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Mon, 23 Feb 2015 20:23:47 +0000 (20:23 +0000)
commit096feeb741fe3b1c5c4b83727fdcc38ef2886a5d
treec0cd5de5fb008ae0d6beeac17afdaf99f1f0b5c9
parent0100e6c08c84e1aba4389baa87862fb74221abc3
Only lower __builtin_setjmp / __builtin_longjmp to
llvm.eh.sjlj.setjmp / llvm.eh.sjlj.longjmp, if the backend is known to
support them outside the Exception Handling context. The default
handling in LLVM codegen doesn't work and will create incorrect code.
The ARM backend on the other hand will assert if the intrinsics are
used.

llvm-svn: 230255
clang/include/clang/Basic/Builtins.def
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/CodeGen/TargetInfo.cpp
clang/lib/CodeGen/TargetInfo.h
clang/test/CodeGen/2003-08-06-BuiltinSetjmpLongjmp.c [deleted file]
clang/test/CodeGen/builtin-longjmp.c [new file with mode: 0644]