File tree Expand file tree Collapse file tree
lib/PhasarLLVM/ControlFlow Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -667,8 +667,20 @@ set<const llvm::Instruction *>
667667LLVMBasedICFG::getReturnSitesOfCallAt (const llvm::Instruction *N) const {
668668 set<const llvm::Instruction *> ReturnSites;
669669 if (const auto *Invoke = llvm::dyn_cast<llvm::InvokeInst>(N)) {
670- ReturnSites.insert (&Invoke->getNormalDest ()->front ());
671- ReturnSites.insert (&Invoke->getUnwindDest ()->front ());
670+ const llvm::Instruction *NormalSucc = &Invoke->getNormalDest ()->front ();
671+ auto *UnwindSucc = &Invoke->getUnwindDest ()->front ();
672+ if (!IgnoreDbgInstructions && llvm::isa<llvm::DbgInfoIntrinsic>(NormalSucc)) {
673+ NormalSucc = NormalSucc->getNextNonDebugInstruction ();
674+ }
675+ if (!IgnoreDbgInstructions && llvm::isa<llvm::DbgInfoIntrinsic>(UnwindSucc)) {
676+ UnwindSucc = UnwindSucc->getNextNonDebugInstruction ();
677+ }
678+ if (NormalSucc != nullptr ) {
679+ ReturnSites.insert (NormalSucc);
680+ }
681+ if (UnwindSucc != nullptr ) {
682+ ReturnSites.insert (UnwindSucc);
683+ }
672684 } else {
673685 auto Succs = getSuccsOf (N);
674686 ReturnSites.insert (Succs.begin (), Succs.end ());
You can’t perform that action at this time.
0 commit comments