Lines Matching refs:CB

101   void insertCFGuardCheck(CallBase *CB);
142 void insertCFGuardDispatch(CallBase *CB);
158 void CFGuard::insertCFGuardCheck(CallBase *CB) { in insertCFGuardCheck() argument
160 assert(Triple(CB->getModule()->getTargetTriple()).isOSWindows() && in insertCFGuardCheck()
162 assert(CB->isIndirectCall() && in insertCFGuardCheck()
165 IRBuilder<> B(CB); in insertCFGuardCheck()
166 Value *CalledOperand = CB->getCalledOperand(); in insertCFGuardCheck()
171 if (auto Bundle = CB->getOperandBundle(LLVMContext::OB_funclet)) in insertCFGuardCheck()
188 void CFGuard::insertCFGuardDispatch(CallBase *CB) { in insertCFGuardDispatch() argument
190 assert(Triple(CB->getModule()->getTargetTriple()).isOSWindows() && in insertCFGuardDispatch()
192 assert(CB->isIndirectCall() && in insertCFGuardDispatch()
195 IRBuilder<> B(CB); in insertCFGuardDispatch()
196 Value *CalledOperand = CB->getCalledOperand(); in insertCFGuardDispatch()
209 CB->getOperandBundlesAsDefs(Bundles); in insertCFGuardDispatch()
213 assert((isa<CallInst>(CB) || isa<InvokeInst>(CB)) && in insertCFGuardDispatch()
215 CallBase *NewCB = CallBase::Create(CB, Bundles, CB); in insertCFGuardDispatch()
221 CB->replaceAllUsesWith(NewCB); in insertCFGuardDispatch()
224 CB->eraseFromParent(); in insertCFGuardDispatch()
270 auto *CB = dyn_cast<CallBase>(&I); in runOnFunction() local
271 if (CB && CB->isIndirectCall() && !CB->hasFnAttr("guard_nocf")) { in runOnFunction()
272 IndirectCalls.push_back(CB); in runOnFunction()
285 for (CallBase *CB : IndirectCalls) { in runOnFunction()
286 insertCFGuardDispatch(CB); in runOnFunction()
289 for (CallBase *CB : IndirectCalls) { in runOnFunction()
290 insertCFGuardCheck(CB); in runOnFunction()