diff options
Diffstat (limited to 'llvm/lib/IR/BasicBlock.cpp')
-rw-r--r-- | llvm/lib/IR/BasicBlock.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/IR/BasicBlock.cpp b/llvm/lib/IR/BasicBlock.cpp index 18e2fd89..7f2e762 100644 --- a/llvm/lib/IR/BasicBlock.cpp +++ b/llvm/lib/IR/BasicBlock.cpp @@ -442,6 +442,14 @@ BasicBlock *BasicBlock::splitBasicBlock(iterator I, const Twine &BBName) { return New; } +bool BasicBlock::addressPotentiallyEscapesFunction() { + for (const Use& U : BlockAddress::get(this)->uses()) + if (const CallInst* CI = dyn_cast<CallInst>(U)) + if (!CI->paramHasAttr(U.getOperandNo(), Attribute::NoCapture)) + return true; + return false; +} + void BasicBlock::replaceSuccessorsPhiUsesWith(BasicBlock *New) { Instruction *TI = getTerminator(); if (!TI) |