Lines Matching defs:State
440 LatticeTransferState &State) {
442 getLocBehindPossiblePointer(*ObjectExpr, State.Env))) {
443 if (State.Env.getStorageLocation(*UnwrapExpr) == nullptr)
444 State.Env.setStorageLocation(*UnwrapExpr, locForValue(*OptionalLoc));
449 LatticeTransferState &State) {
451 getLocBehindPossiblePointer(*ObjectExpr, State.Env)))
452 State.Env.setValue(
453 *UnwrapExpr, State.Env.create<PointerValue>(locForValue(*OptionalLoc)));
458 LatticeTransferState &State) {
459 setHasValue(State.Env.getResultObjectLocation(*E),
460 State.Env.getBoolLiteralValue(true), State.Env);
465 LatticeTransferState &State) {
467 State.Env, getImplicitObjectLocation(*CallExpr, State.Env))) {
468 State.Env.setValue(*CallExpr, *HasValueVal);
474 LatticeTransferState &State) {
476 State.Env, getImplicitObjectLocation(*CallExpr, State.Env))) {
477 State.Env.setValue(*CallExpr, State.Env.makeNot(*HasValueVal));
485 LatticeTransferState &State,
488 auto &Env = State.Env;
494 getHasValue(State.Env, getImplicitObjectLocation(*MCE, State.Env));
504 LatticeTransferState &State) {
505 return transferValueOrImpl(ComparisonExpr, Result, State,
522 LatticeTransferState &State) {
523 transferValueOrImpl(ComparisonExpr, Result, State,
536 LatticeTransferState &State) {
539 Loc = &State.Env.getResultObjectLocation(*E);
541 Loc = State.Env.get<RecordStorageLocation>(*E);
543 Loc = &cast<RecordStorageLocation>(State.Env.createStorageLocation(*E));
544 State.Env.setStorageLocation(*E, *Loc);
548 if (State.Env.getValue(locForHasValue(*Loc)) != nullptr)
551 setHasValue(*Loc, State.Env.makeAtomicBoolValue(), State.Env);
557 LatticeTransferState &State) {
564 State.Lattice.getOrCreateConstMethodReturnStorageLocation(
565 *RecordLoc, DirectCallee, State.Env, [&](StorageLocation &Loc) {
567 State.Env.makeAtomicBoolValue(), State.Env);
572 State.Env.setStorageLocation(*CE, Loc);
577 auto &ResultLoc = State.Env.getResultObjectLocation(*CE);
578 copyRecord(cast<RecordStorageLocation>(Loc), ResultLoc, State.Env);
587 Value *Val = State.Lattice.getOrCreateConstMethodReturnValue(*RecordLoc, CE,
588 State.Env);
591 State.Env.setValue(*CE, *Val);
598 transferCallReturningOptional(CE, Result, State);
604 LatticeTransferState &State) {
606 MCE, dataflow::getImplicitObjectLocation(*MCE, State.Env), Result, State);
611 LatticeTransferState &State) {
613 State.Env.getStorageLocation(*OCE->getArg(0)));
614 handleConstMemberCall(OCE, RecordLoc, Result, State);
620 LatticeTransferState &State) {
631 setHasValue(*FieldRecordLoc, State.Env.makeAtomicBoolValue(),
632 State.Env);
636 State.Lattice.clearConstMethodReturnValues(*RecordLoc);
637 State.Lattice.clearConstMethodReturnStorageLocations(*RecordLoc);
642 transferCallReturningOptional(CE, Result, State);
648 LatticeTransferState &State) {
650 MCE, dataflow::getImplicitObjectLocation(*MCE, State.Env), Result, State);
655 LatticeTransferState &State) {
657 State.Env.getStorageLocation(*OCE->getArg(0)));
658 handleNonConstMemberCall(OCE, RecordLoc, Result, State);
672 LatticeTransferState &State) {
684 return State.Env.getBoolLiteralValue(true);
690 auto *Loc = State.Env.get<RecordStorageLocation>(E);
691 if (auto *HasValueVal = getHasValue(State.Env, Loc))
693 return State.Env.makeAtomicBoolValue();
698 LatticeTransferState &State) {
702 *E, State.Env,
705 MatchRes, State));
709 LatticeTransferState &State) {
712 if (auto *Loc = State.Env.get<RecordStorageLocation>(*E->getArg(0))) {
713 setHasValue(*Loc, HasValueVal, State.Env);
716 State.Env.setStorageLocation(*E, *Loc);
722 LatticeTransferState &State) {
727 *E->getArg(1), MatchRes, State),
728 State);
733 LatticeTransferState &State) {
734 transferAssignment(E, State.Env.getBoolLiteralValue(false), State);
773 LatticeTransferState &State) {
775 auto *OtherLoc = State.Env.get<RecordStorageLocation>(*E->getArg(0));
776 transferSwap(getImplicitObjectLocation(*E, State.Env), OtherLoc, State.Env);
780 LatticeTransferState &State) {
782 auto *Arg0Loc = State.Env.get<RecordStorageLocation>(*E->getArg(0));
783 auto *Arg1Loc = State.Env.get<RecordStorageLocation>(*E->getArg(1));
784 transferSwap(Arg0Loc, Arg1Loc, State.Env);
788 LatticeTransferState &State) {
791 if (auto *Loc = State.Env.getStorageLocation(*E->getArg(0)))
792 State.Env.setStorageLocation(*E, *Loc);
819 LatticeTransferState &State) {
820 Environment &Env = State.Env;
897 LatticeTransferState &State) {
898 constructOptionalValue(*E, State.Env,
899 State.Env.getBoolLiteralValue(true));
905 LatticeTransferState &State) {
906 constructOptionalValue(*E, State.Env,
907 State.Env.getBoolLiteralValue(false));
924 LatticeTransferState &State) {
925 transferUnwrapCall(E, E->getImplicitObjectArgument(), State);
932 LatticeTransferState &State) {
933 transferUnwrapCall(E, E->getArg(0), State);
940 LatticeTransferState &State) {
941 transferArrowOpCall(E, E->getArg(0), State);
967 LatticeTransferState &State) {
969 getImplicitObjectLocation(*E, State.Env)) {
970 setHasValue(*Loc, State.Env.getBoolLiteralValue(true), State.Env);
978 LatticeTransferState &State) {
980 getImplicitObjectLocation(*E, State.Env)) {
981 setHasValue(*Loc, State.Env.getBoolLiteralValue(false),
982 State.Env);
1011 const MatchFinder::MatchResult &, LatticeTransferState &State) {
1012 transferOptionalAndNulloptCmp(Cmp, Cmp->getArg(0), State.Env);
1017 const MatchFinder::MatchResult &, LatticeTransferState &State) {
1018 transferOptionalAndNulloptCmp(Cmp, Cmp->getArg(1), State.Env);
1025 const MatchFinder::MatchResult &, LatticeTransferState &State) {
1026 transferOptionalAndValueCmp(Cmp, Cmp->getArg(0), State.Env);
1033 const MatchFinder::MatchResult &, LatticeTransferState &State) {
1034 transferOptionalAndValueCmp(Cmp, Cmp->getArg(1), State.Env);
1044 LatticeTransferState &State) {
1048 getLocBehindPossiblePointer(*E->getArg(0), State.Env)),
1049 State, [](StorageLocation &Loc) {});
1055 LatticeTransferState &State) {
1059 getLocBehindPossiblePointer(*E->getArg(0), State.Env)),
1060 State, [](StorageLocation &Loc) {});
1065 LatticeTransferState &State) {
1067 E, getImplicitObjectLocation(*E, State.Env), State,
1073 LatticeTransferState &State) {
1075 E, getImplicitObjectLocation(*E, State.Env), State,
1167 LatticeTransferState State(L, Env);
1168 TransferMatchSwitch(Elt, getASTContext(), State);