Lines Matching refs:PInfo

436 setStateForVarOrTmp(ConsumedStateMap *StateMap, const PropagationInfo &PInfo,
439 assert(PInfo.isVar() || PInfo.isTmp());
441 if (PInfo.isVar())
442 StateMap->setState(PInfo.getVar(), State);
444 StateMap->setState(PInfo.getTmp(), State);
464 void checkCallability(const PropagationInfo &PInfo,
502 void ConsumedStmtVisitor::checkCallability(const PropagationInfo &PInfo,
505 assert(!PInfo.isTest());
512 if (PInfo.isVar()) {
513 ConsumedState VarState = StateMap->getState(PInfo.getVar());
519 FunDecl->getNameAsString(), PInfo.getVar()->getNameAsString(),
523 ConsumedState TmpState = PInfo.getAsState(StateMap);
642 PropagationInfo PInfo = Entry->second;
647 ConsumedState ParamState = PInfo.getAsState(StateMap);
664 setStateForVarOrTmp(StateMap, PInfo, consumed::CS_Consumed);
667 setStateForVarOrTmp(StateMap, PInfo,
673 setStateForVarOrTmp(StateMap, PInfo, consumed::CS_Unknown);
727 PropagationInfo PInfo = Entry->second;
729 if (PInfo.isVar()) {
730 const VarDecl* Var = PInfo.getVar();
737 } else if (PInfo.isTmp()) {
738 const CXXBindTemporaryExpr *Tmp = PInfo.getTmp();
746 PropagationMap.insert(PairType(Call, PInfo));
768 PropagationInfo PInfo = Entry->second;
771 checkCallability(PInfo, MethodDecl, Call->getExprLoc());
773 if (PInfo.isVar()) {
776 PropagationInfo(PInfo.getVar(), testsFor(MethodDecl))));
778 StateMap->setState(PInfo.getVar(),
780 } else if (PInfo.isTmp() && MethodDecl->hasAttr<SetTypestateAttr>()) {
781 StateMap->setState(PInfo.getTmp(),
854 PropagationInfo PInfo = Entry->second;
856 checkCallability(PInfo, FunDecl, Call->getExprLoc());
858 if (PInfo.isVar()) {
861 PropagationInfo(PInfo.getVar(), testsFor(FunDecl))));
863 StateMap->setState(PInfo.getVar(),
866 } else if (PInfo.isTmp() && FunDecl->hasAttr<SetTypestateAttr>()) {
867 StateMap->setState(PInfo.getTmp(),
974 PropagationInfo PInfo = VIT->second;
975 ConsumedState St = PInfo.getAsState(StateMap);
1010 void splitVarStateForIfBinOp(const PropagationInfo &PInfo,
1013 const VarTestResult &LTest = PInfo.getLTest(),
1014 &RTest = PInfo.getRTest();
1020 if (PInfo.testEffectiveOp() == EO_And) {
1054 if (PInfo.testEffectiveOp() == EO_And) {
1325 PropagationInfo PInfo;
1332 PInfo = Visitor.getInfo(Cond);
1333 if (!PInfo.isValid() && isa<BinaryOperator>(Cond))
1334 PInfo = Visitor.getInfo(cast<BinaryOperator>(Cond)->getRHS());
1336 if (PInfo.isVarTest()) {
1339 splitVarStateForIf(IfNode, PInfo.getVarTest(), CurrStates,
1342 } else if (PInfo.isBinTest()) {
1343 CurrStates->setSource(PInfo.testSourceNode());
1344 FalseStates->setSource(PInfo.testSourceNode());
1345 splitVarStateForIfBinOp(PInfo, CurrStates, FalseStates.get());
1354 PInfo = Visitor.getInfo(BinOp->getLHS());
1355 if (!PInfo.isVarTest()) {
1357 PInfo = Visitor.getInfo(BinOp->getRHS());
1359 if (!PInfo.isVarTest())
1370 const VarTestResult &Test = PInfo.getVarTest();