diff options
Diffstat (limited to 'llvm/lib/CodeGen/WasmEHPrepare.cpp')
-rw-r--r-- | llvm/lib/CodeGen/WasmEHPrepare.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/WasmEHPrepare.cpp b/llvm/lib/CodeGen/WasmEHPrepare.cpp index 02516fad387..271f3d4568d 100644 --- a/llvm/lib/CodeGen/WasmEHPrepare.cpp +++ b/llvm/lib/CodeGen/WasmEHPrepare.cpp @@ -111,8 +111,7 @@ class WasmEHPrepare : public FunctionPass { Function *GetExnF = nullptr; // wasm.get.exception() intrinsic Function *ExtractExnF = nullptr; // wasm.extract.exception() intrinsic Function *GetSelectorF = nullptr; // wasm.get.ehselector() intrinsic - FunctionCallee CallPersonalityF = - nullptr; // _Unwind_CallPersonality() wrapper + Function *CallPersonalityF = nullptr; // _Unwind_CallPersonality() wrapper bool prepareEHPads(Function &F); bool prepareThrows(Function &F); @@ -253,10 +252,9 @@ bool WasmEHPrepare::prepareEHPads(Function &F) { Intrinsic::getDeclaration(&M, Intrinsic::wasm_extract_exception); // _Unwind_CallPersonality() wrapper function, which calls the personality - CallPersonalityF = M.getOrInsertFunction( - "_Unwind_CallPersonality", IRB.getInt32Ty(), IRB.getInt8PtrTy()); - if (Function *F = dyn_cast<Function>(CallPersonalityF.getCallee())) - F->setDoesNotThrow(); + CallPersonalityF = cast<Function>(M.getOrInsertFunction( + "_Unwind_CallPersonality", IRB.getInt32Ty(), IRB.getInt8PtrTy())); + CallPersonalityF->setDoesNotThrow(); unsigned Index = 0; for (auto *BB : CatchPads) { |