diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2020-01-17 20:45:01 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2020-01-17 20:45:01 +0000 |
commit | 706b4fc47bbc608932d3b491ae19a3b9cde9497b (patch) | |
tree | 4adf86a776049cbf7f69a1929c4babcbbef925eb /llvm/lib/Target/X86/X86WinEHState.cpp | |
parent | 7cc9cf2bf09f069cb2dd947ead05d0b54301fb71 (diff) |
Notes
Diffstat (limited to 'llvm/lib/Target/X86/X86WinEHState.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86WinEHState.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/Target/X86/X86WinEHState.cpp b/llvm/lib/Target/X86/X86WinEHState.cpp index d65e1f3ab414..78d3f6460189 100644 --- a/llvm/lib/Target/X86/X86WinEHState.cpp +++ b/llvm/lib/Target/X86/X86WinEHState.cpp @@ -23,7 +23,8 @@ #include "llvm/IR/Function.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/Instructions.h" -#include "llvm/IR/IntrinsicInst.h" +#include "llvm/IR/Intrinsics.h" +#include "llvm/IR/IntrinsicsX86.h" #include "llvm/IR/Module.h" #include "llvm/Pass.h" #include "llvm/Support/Debug.h" @@ -91,7 +92,7 @@ private: EHPersonality Personality = EHPersonality::Unknown; Function *PersonalityFn = nullptr; bool UseStackGuard = false; - int ParentBaseState; + int ParentBaseState = 0; FunctionCallee SehLongjmpUnwind = nullptr; Constant *Cookie = nullptr; @@ -178,11 +179,6 @@ bool WinEHStatePass::runOnFunction(Function &F) { {Int8PtrType, Type::getInt32Ty(TheModule->getContext())}, /*isVarArg=*/true)); - // Disable frame pointer elimination in this function. - // FIXME: Do the nested handlers need to keep the parent ebp in ebp, or can we - // use an arbitrary register? - F.addFnAttr("no-frame-pointer-elim", "true"); - emitExceptionRegistrationRecord(&F); // The state numbers calculated here in IR must agree with what we calculate |