diff options
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 |