diff --git a/llvm/lib/Transforms/IPO/HotColdSplitting.cpp b/llvm/lib/Transforms/IPO/HotColdSplitting.cpp --- a/llvm/lib/Transforms/IPO/HotColdSplitting.cpp +++ b/llvm/lib/Transforms/IPO/HotColdSplitting.cpp @@ -43,6 +43,7 @@ #include "llvm/IR/DiagnosticInfo.h" #include "llvm/IR/Dominators.h" #include "llvm/IR/Function.h" +#include "llvm/IR/InstrTypes.h" #include "llvm/IR/Instruction.h" #include "llvm/IR/Instructions.h" #include "llvm/IR/IntrinsicInst.h" @@ -120,9 +121,8 @@ dyn_cast_or_null(BB.getTerminator()->getPrevNode())) if (CI->hasFnAttr(Attribute::NoReturn)) { if (IntrinsicInst *II = dyn_cast(CI)) - return II->getIntrinsicID() != Intrinsic::longjmp; - CallSite CS(CI); - return !CS.getCalledFunction()->getName().startswith("longjmp"); + return II->getIntrinsicID() != Intrinsic::eh_sjlj_longjmp; + return !CI->getCalledFunction()->getName().startswith("longjmp"); } return true; }