Lines Matching refs:CB

98   void insertCFGuardCheck(CallBase *CB);
139 void insertCFGuardDispatch(CallBase *CB);
171 void CFGuardImpl::insertCFGuardCheck(CallBase *CB) { in insertCFGuardCheck() argument
173 assert(Triple(CB->getModule()->getTargetTriple()).isOSWindows() && in insertCFGuardCheck()
175 assert(CB->isIndirectCall() && in insertCFGuardCheck()
178 IRBuilder<> B(CB); in insertCFGuardCheck()
179 Value *CalledOperand = CB->getCalledOperand(); in insertCFGuardCheck()
184 if (auto Bundle = CB->getOperandBundle(LLVMContext::OB_funclet)) in insertCFGuardCheck()
200 void CFGuardImpl::insertCFGuardDispatch(CallBase *CB) { in insertCFGuardDispatch() argument
202 assert(Triple(CB->getModule()->getTargetTriple()).isOSWindows() && in insertCFGuardDispatch()
204 assert(CB->isIndirectCall() && in insertCFGuardDispatch()
207 IRBuilder<> B(CB); in insertCFGuardDispatch()
208 Value *CalledOperand = CB->getCalledOperand(); in insertCFGuardDispatch()
216 CB->getOperandBundlesAsDefs(Bundles); in insertCFGuardDispatch()
220 assert((isa<CallInst>(CB) || isa<InvokeInst>(CB)) && in insertCFGuardDispatch()
222 CallBase *NewCB = CallBase::Create(CB, Bundles, CB); in insertCFGuardDispatch()
228 CB->replaceAllUsesWith(NewCB); in insertCFGuardDispatch()
231 CB->eraseFromParent(); in insertCFGuardDispatch()
276 auto *CB = dyn_cast<CallBase>(&I); in runOnFunction() local
277 if (CB && CB->isIndirectCall() && !CB->hasFnAttr("guard_nocf")) { in runOnFunction()
278 IndirectCalls.push_back(CB); in runOnFunction()
291 for (CallBase *CB : IndirectCalls) { in runOnFunction()
292 insertCFGuardDispatch(CB); in runOnFunction()
295 for (CallBase *CB : IndirectCalls) { in runOnFunction()
296 insertCFGuardCheck(CB); in runOnFunction()