mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:49:45 +00:00
Get rid of pop_macro warnings on MSVC.
llvm-svn: 114750
This commit is contained in:
parent
3302cf4ac1
commit
87fea6690f
@ -85,9 +85,11 @@ static CallInst *ReplaceCallWith(const char *NewFn, CallInst *CI,
|
||||
}
|
||||
|
||||
// VisualStudio defines setjmp as _setjmp
|
||||
#if defined(_MSC_VER) && defined(setjmp)
|
||||
#define setjmp_undefined_for_visual_studio
|
||||
#undef setjmp
|
||||
#if defined(_MSC_VER) && defined(setjmp) && \
|
||||
!defined(setjmp_undefined_for_msvc)
|
||||
# pragma push_macro("setjmp")
|
||||
# undef setjmp
|
||||
# define setjmp_undefined_for_msvc
|
||||
#endif
|
||||
|
||||
void IntrinsicLowering::AddPrototypes(Module &M) {
|
||||
|
@ -3970,9 +3970,11 @@ SelectionDAGBuilder::EmitFuncArgumentDbgValue(const Value *V, MDNode *Variable,
|
||||
}
|
||||
|
||||
// VisualStudio defines setjmp as _setjmp
|
||||
#if defined(_MSC_VER) && defined(setjmp)
|
||||
#define setjmp_undefined_for_visual_studio
|
||||
#undef setjmp
|
||||
#if defined(_MSC_VER) && defined(setjmp) && \
|
||||
!defined(setjmp_undefined_for_msvc)
|
||||
# pragma push_macro("setjmp")
|
||||
# undef setjmp
|
||||
# define setjmp_undefined_for_msvc
|
||||
#endif
|
||||
|
||||
/// visitIntrinsicCall - Lower the call to the specified intrinsic function. If
|
||||
|
@ -148,19 +148,20 @@ bool LowerInvoke::doInitialization(Module &M) {
|
||||
"llvm.sjljeh.jblist");
|
||||
}
|
||||
|
||||
// VisualStudio defines setjmp as _setjmp via #include <csetjmp> / <setjmp.h>,
|
||||
// so it looks like Intrinsic::_setjmp
|
||||
#if defined(_MSC_VER) && defined(setjmp)
|
||||
#define setjmp_undefined_for_visual_studio
|
||||
#undef setjmp
|
||||
// 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
|
||||
|
||||
SetJmpFn = Intrinsic::getDeclaration(&M, Intrinsic::setjmp);
|
||||
|
||||
#if defined(_MSC_VER) && defined(setjmp_undefined_for_visual_studio)
|
||||
// let's return it to _setjmp state in case anyone ever needs it after this
|
||||
// point under VisualStudio
|
||||
#define setjmp _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
|
||||
|
||||
LongJmpFn = Intrinsic::getDeclaration(&M, Intrinsic::longjmp);
|
||||
|
@ -68,16 +68,19 @@ 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"
|
||||
"#if defined(_MSC_VER) && defined(setjmp) && \\\n"
|
||||
" !defined(setjmp_undefined_for_msvc)\n"
|
||||
"# pragma push_macro(\"setjmp\")\n"
|
||||
"# undef setjmp\n"
|
||||
"# define setjmp_undefined_for_msvc\n"
|
||||
"#endif\n\n";
|
||||
}
|
||||
|
||||
void IntrinsicEmitter::EmitSuffix(raw_ostream &OS) {
|
||||
OS << "#if defined(_MSC_VER)\n"
|
||||
OS << "#if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)\n"
|
||||
"// let's return it to _setjmp state\n"
|
||||
"# pragma pop_macro(\"setjmp\")\n"
|
||||
"# undef setjmp_undefined_for_msvc\n"
|
||||
"#endif\n\n";
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user