CBackend: Fix MSVC build.
[oota-llvm.git] / utils / TableGen / IntrinsicEmitter.cpp
index abd221d19423451c71e2eb9a5ee73fd655d8783e..c2aabf7116e4a45749478a0d703b9cacf86e53f9 100644 (file)
@@ -69,15 +69,15 @@ void IntrinsicEmitter::run(raw_ostream &OS) {
 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";
 }