[PATCH] Only use IR intrinsincs for __builtin_longjmp / __builtin_setjmp when the target supports them.
Joerg Sonnenberger
joerg at NetBSD.org
Fri Feb 20 11:39:32 PST 2015
Hi grosbach, t.p.northover, hans,
Ruby is currently crashing on ARM because SelectionDAG turns llvm.eh.sjlj.longjmp and llvm.eh.sjlj.setjmp into nonsense, if the target has no lowering for them. Handle this properly in the frontend by not using the IR intrinsics unless the platform is known to have a working implementation. As documented with the FIXME, the Darwin lowering does not qualify either, it is written strictly for use by EH.
http://reviews.llvm.org/D7795
Files:
include/clang/Basic/Builtins.def
lib/CodeGen/CGBuiltin.cpp
lib/CodeGen/TargetInfo.cpp
lib/CodeGen/TargetInfo.h
test/CodeGen/2003-08-06-BuiltinSetjmpLongjmp.c
test/CodeGen/builtin-longjmp.c
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7795.20422.patch
Type: text/x-patch
Size: 6227 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150220/96aa46ec/attachment.bin>
More information about the cfe-commits
mailing list