[llvm-commits] [llvm] r113834 - in /llvm/trunk: lib/Target/CBackend/CBackend.cpp utils/TableGen/IntrinsicEmitter.cpp

Michael J. Spencer bigcheesegs at gmail.com
Mon Sep 13 21:27:39 PDT 2010


Author: mspencer
Date: Mon Sep 13 23:27:38 2010
New Revision: 113834

URL: http://llvm.org/viewvc/llvm-project?rev=113834&view=rev
Log:
CBackend: Fix MSVC build.

This may produce warnings on MSVS, but it's better than failures.

Modified:
    llvm/trunk/lib/Target/CBackend/CBackend.cpp
    llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp

Modified: llvm/trunk/lib/Target/CBackend/CBackend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CBackend/CBackend.cpp?rev=113834&r1=113833&r2=113834&view=diff
==============================================================================
--- llvm/trunk/lib/Target/CBackend/CBackend.cpp (original)
+++ llvm/trunk/lib/Target/CBackend/CBackend.cpp Mon Sep 13 23:27:38 2010
@@ -50,6 +50,10 @@
 #include "llvm/System/Host.h"
 #include "llvm/Config/config.h"
 #include <algorithm>
+// Some ms header decided to define setjmp as _setjmp, undo this for this file.
+#ifdef _MSC_VER
+#undef setjmp
+#endif
 using namespace llvm;
 
 extern "C" void LLVMInitializeCBackendTarget() {

Modified: llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp?rev=113834&r1=113833&r2=113834&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp Mon Sep 13 23:27:38 2010
@@ -69,15 +69,15 @@
 void IntrinsicEmitter::EmitPrefix(raw_ostream &OS) {
   OS << "// VisualStudio defines setjmp as _setjmp\n"
         "#if defined(_MSC_VER) && defined(setjmp)\n"
-        "#define setjmp_undefined_for_visual_studio\n"
-        "#undef setjmp\n"
+        "#  pragma push_macro(\"setjmp\")\n"
+        "#  undef setjmp\n"
         "#endif\n\n";
 }
 
 void IntrinsicEmitter::EmitSuffix(raw_ostream &OS) {
-  OS << "#if defined(_MSC_VER) && defined(setjmp_undefined_for_visual_studio)\n"
+  OS << "#if defined(_MSC_VER)\n"
         "// let's return it to _setjmp state\n"
-        "#define setjmp _setjmp\n"
+        "#  pragma pop_macro(\"setjmp\")\n"
         "#endif\n\n";
 }
 





More information about the llvm-commits mailing list