undef setjmp in PPCCTRLoops
authorHal Finkel <hfinkel@anl.gov>
Wed, 15 May 2013 22:20:24 +0000 (22:20 +0000)
committerHal Finkel <hfinkel@anl.gov>
Wed, 15 May 2013 22:20:24 +0000 (22:20 +0000)
Trying to unbreak the VS build by copying some undef code from
Utils/LowerInvoke.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181938 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCCTRLoops.cpp

index bb969a635ec673ab6c2a192e25c6a4760eca7a54..ae5d9184605e1ba90886fb7afd208afc007b0e06 100644 (file)
@@ -188,7 +188,23 @@ bool PPCCTRLoops::convertToCTRLoop(Loop *L) {
           if (F->getIntrinsicID() != Intrinsic::not_intrinsic) {
             switch (F->getIntrinsicID()) {
             default: continue;
+
+// VisualStudio defines setjmp as _setjmp
+#if defined(_MSC_VER) && defined(setjmp) && \
+                         !defined(setjmp_undefined_for_msvc)
+#  pragma push_macro("setjmp")
+#  undef setjmp
+#  define setjmp_undefined_for_msvc
+#endif
+
             case Intrinsic::setjmp:
+
+#if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)
+   // let's return it to _setjmp state
+#  pragma pop_macro("setjmp")
+#  undef setjmp_undefined_for_msvc
+#endif
+
             case Intrinsic::longjmp:
             case Intrinsic::memcpy:
             case Intrinsic::memmove: