Lines Matching defs:PInfo

445 setStateForVarOrTmp(ConsumedStateMap *StateMap, const PropagationInfo &PInfo,
448 assert(PInfo.isVar() || PInfo.isTmp());
450 if (PInfo.isVar())
451 StateMap->setState(PInfo.getVar(), State);
453 StateMap->setState(PInfo.getTmp(), State);
485 void checkCallability(const PropagationInfo &PInfo,
539 PropagationInfo& PInfo = Entry->second;
540 ConsumedState CS = PInfo.getAsState(StateMap);
543 if (NS != CS_None && PInfo.isPointerToValue())
544 setStateForVarOrTmp(StateMap, PInfo, NS);
553 PropagationInfo& PInfo = Entry->second;
554 return PInfo.getAsState(StateMap);
564 PropagationInfo& PInfo = Entry->second;
565 if (PInfo.isPointerToValue())
566 setStateForVarOrTmp(StateMap, PInfo, NS);
574 void ConsumedStmtVisitor::checkCallability(const PropagationInfo &PInfo,
577 assert(!PInfo.isTest());
583 if (PInfo.isVar()) {
584 ConsumedState VarState = StateMap->getState(PInfo.getVar());
590 FunDecl->getNameAsString(), PInfo.getVar()->getNameAsString(),
594 ConsumedState TmpState = PInfo.getAsState(StateMap);
627 PropagationInfo PInfo = Entry->second;
631 ConsumedState ParamState = PInfo.getAsState(StateMap);
645 setStateForVarOrTmp(StateMap, PInfo, consumed::CS_Consumed);
647 setStateForVarOrTmp(StateMap, PInfo, mapReturnTypestateAttrState(RT));
651 setStateForVarOrTmp(StateMap, PInfo, consumed::CS_Unknown);
660 PropagationInfo PInfo = Entry->second;
661 checkCallability(PInfo, FunD, Call->getExprLoc());
664 if (PInfo.isVar()) {
665 StateMap->setState(PInfo.getVar(), mapSetTypestateAttrState(STA));
668 else if (PInfo.isTmp()) {
669 StateMap->setState(PInfo.getTmp(), mapSetTypestateAttrState(STA));
673 else if (isTestingFunction(FunD) && PInfo.isVar()) {
675 PropagationInfo(PInfo.getVar(), testsFor(FunD))));
931 PropagationInfo PInfo = VIT->second;
932 ConsumedState St = PInfo.getAsState(StateMap);
966 static void splitVarStateForIfBinOp(const PropagationInfo &PInfo,
969 const VarTestResult &LTest = PInfo.getLTest(),
970 &RTest = PInfo.getRTest();
976 if (PInfo.testEffectiveOp() == EO_And) {
1010 if (PInfo.testEffectiveOp() == EO_And) {
1260 PropagationInfo PInfo;
1267 PInfo = Visitor.getInfo(Cond);
1268 if (!PInfo.isValid() && isa<BinaryOperator>(Cond))
1269 PInfo = Visitor.getInfo(cast<BinaryOperator>(Cond)->getRHS());
1271 if (PInfo.isVarTest()) {
1274 splitVarStateForIf(IfNode, PInfo.getVarTest(), CurrStates.get(),
1277 } else if (PInfo.isBinTest()) {
1278 CurrStates->setSource(PInfo.testSourceNode());
1279 FalseStates->setSource(PInfo.testSourceNode());
1280 splitVarStateForIfBinOp(PInfo, CurrStates.get(), FalseStates.get());
1289 PInfo = Visitor.getInfo(BinOp->getLHS());
1290 if (!PInfo.isVarTest()) {
1292 PInfo = Visitor.getInfo(BinOp->getRHS());
1294 if (!PInfo.isVarTest())
1305 const VarTestResult &Test = PInfo.getVarTest();