Lines Matching refs:CBI
474 void visitCallBrInst(CallBrInst &CBI);
2522 void Verifier::visitCallBrInst(CallBrInst &CBI) {
2523 Assert(CBI.isInlineAsm(), "Callbr is currently only used for asm-goto!",
2524 &CBI);
2525 Assert(CBI.getType()->isVoidTy(), "Callbr return value is not supported!",
2526 &CBI);
2527 for (unsigned i = 0, e = CBI.getNumSuccessors(); i != e; ++i)
2528 Assert(CBI.getSuccessor(i)->getType()->isLabelTy(),
2529 "Callbr successors must all have pointer type!", &CBI);
2530 for (unsigned i = 0, e = CBI.getNumOperands(); i != e; ++i) {
2531 Assert(i >= CBI.getNumArgOperands() || !isa<BasicBlock>(CBI.getOperand(i)),
2532 "Using an unescaped label as a callbr argument!", &CBI);
2533 if (isa<BasicBlock>(CBI.getOperand(i)))
2535 Assert(CBI.getOperand(i) != CBI.getOperand(j),
2536 "Duplicate callbr destination!", &CBI);
2540 for (Value *V : CBI.args())
2543 for (BasicBlock *BB : CBI.getIndirectDests())
2545 "Indirect label missing from arglist.", &CBI);
2548 visitTerminator(CBI);
4132 const CallBase *CBI = dyn_cast<CallBase>(&I);
4147 (CBI && &CBI->getCalledOperandUse() == &I.getOperandUse(i)),
4175 Assert(CBI && &CBI->getCalledOperandUse() == &I.getOperandUse(i),