Lines Matching refs:CB
99 void insertCFGuardCheck(CallBase *CB);
140 void insertCFGuardDispatch(CallBase *CB);
172 void CFGuardImpl::insertCFGuardCheck(CallBase *CB) { in insertCFGuardCheck() argument
174 assert(Triple(CB->getModule()->getTargetTriple()).isOSWindows() && in insertCFGuardCheck()
176 assert(CB->isIndirectCall() && in insertCFGuardCheck()
179 IRBuilder<> B(CB); in insertCFGuardCheck()
180 Value *CalledOperand = CB->getCalledOperand(); in insertCFGuardCheck()
185 if (auto Bundle = CB->getOperandBundle(LLVMContext::OB_funclet)) in insertCFGuardCheck()
201 void CFGuardImpl::insertCFGuardDispatch(CallBase *CB) { in insertCFGuardDispatch() argument
203 assert(Triple(CB->getModule()->getTargetTriple()).isOSWindows() && in insertCFGuardDispatch()
205 assert(CB->isIndirectCall() && in insertCFGuardDispatch()
208 IRBuilder<> B(CB); in insertCFGuardDispatch()
209 Value *CalledOperand = CB->getCalledOperand(); in insertCFGuardDispatch()
217 CB->getOperandBundlesAsDefs(Bundles); in insertCFGuardDispatch()
221 assert((isa<CallInst>(CB) || isa<InvokeInst>(CB)) && in insertCFGuardDispatch()
223 CallBase *NewCB = CallBase::Create(CB, Bundles, CB->getIterator()); in insertCFGuardDispatch()
229 CB->replaceAllUsesWith(NewCB); in insertCFGuardDispatch()
232 CB->eraseFromParent(); in insertCFGuardDispatch()
277 auto *CB = dyn_cast<CallBase>(&I); in runOnFunction() local
278 if (CB && CB->isIndirectCall() && !CB->hasFnAttr("guard_nocf")) { in runOnFunction()
279 IndirectCalls.push_back(CB); in runOnFunction()
292 for (CallBase *CB : IndirectCalls) { in runOnFunction()
293 insertCFGuardDispatch(CB); in runOnFunction()
296 for (CallBase *CB : IndirectCalls) { in runOnFunction()
297 insertCFGuardCheck(CB); in runOnFunction()