From f1e7ea43aa3b511ea9750c7a1f721d1c683e31b2 Mon Sep 17 00:00:00 2001 From: Hal Finkel Date: Wed, 15 May 2013 22:20:24 +0000 Subject: [PATCH] undef setjmp in PPCCTRLoops 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 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/Target/PowerPC/PPCCTRLoops.cpp b/lib/Target/PowerPC/PPCCTRLoops.cpp index bb969a635ec..ae5d9184605 100644 --- a/lib/Target/PowerPC/PPCCTRLoops.cpp +++ b/lib/Target/PowerPC/PPCCTRLoops.cpp @@ -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: