[llvm-commits] [Patch] disable HAVE_EHTABLE_SUPPORT for GCC 4.8 on Win64

Ruben Van Boxem vanboxem.ruben at gmail.com
Thu Sep 27 04:47:02 PDT 2012


Hi,

GCC 4.8 on Windows 64-bit will use Win64's native SEH functionality for C++
exceptions. This means a new libgcc, and the seh version does not have
__[de]register_frame.

The attached patch adds a check for _WIN64. On this platform, GCC either
uses sjlj (pre-4.8 or if 4.8+ is explicitly configured to use this) or seh,
so the macro should be disabled regardless.

Please comment or apply. Thanks,

Ruben

PS: please also reply to me directly, I am not subscribed to llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120927/52ad6795/attachment.html>
-------------- next part --------------
Index: lib/ExecutionEngine/JIT/JIT.cpp
===================================================================
--- lib/ExecutionEngine/JIT/JIT.cpp	(revision 164763)
+++ lib/ExecutionEngine/JIT/JIT.cpp	(working copy)
@@ -69,7 +69,7 @@
 
 // Determine whether we can register EH tables.
 #if (defined(__GNUC__) && !defined(__ARM_EABI__) && \
-     !defined(__USING_SJLJ_EXCEPTIONS__))
+     !(defined(__USING_SJLJ_EXCEPTIONS__) || defined(_WIN64)))
 #define HAVE_EHTABLE_SUPPORT 1
 #else
 #define HAVE_EHTABLE_SUPPORT 0


More information about the llvm-commits mailing list