Lines Matching refs:State

281                                  LatticeTransferState &State) {  in initializeOptionalReference()  argument
283 State.Env.getValue(*OptionalExpr, SkipPast::Reference)) { in initializeOptionalReference()
285 setHasValue(*OptionalVal, State.Env.makeAtomicBoolValue()); in initializeOptionalReference()
308 LatticeTransferState &State) { in transferUnwrapCall() argument
310 State.Env.getValue(*ObjectExpr, SkipPast::ReferenceThenPointer)) { in transferUnwrapCall()
311 if (State.Env.getStorageLocation(*UnwrapExpr, SkipPast::None) == nullptr) in transferUnwrapCall()
313 UnwrapExpr->getType(), *OptionalVal, State.Env)) in transferUnwrapCall()
314 State.Env.setStorageLocation(*UnwrapExpr, *Loc); in transferUnwrapCall()
320 LatticeTransferState &State) { in transferMakeOptionalCall() argument
321 auto &Loc = State.Env.createStorageLocation(*E); in transferMakeOptionalCall()
322 State.Env.setStorageLocation(*E, Loc); in transferMakeOptionalCall()
323 State.Env.setValue( in transferMakeOptionalCall()
324 Loc, createOptionalValue(State.Env, State.Env.getBoolLiteralValue(true))); in transferMakeOptionalCall()
329 LatticeTransferState &State) { in transferOptionalHasValueCall() argument
331 State.Env, State.Env.getValue(*CallExpr->getImplicitObjectArgument(), in transferOptionalHasValueCall()
333 auto &CallExprLoc = State.Env.createStorageLocation(*CallExpr); in transferOptionalHasValueCall()
334 State.Env.setValue(CallExprLoc, *HasValueVal); in transferOptionalHasValueCall()
335 State.Env.setStorageLocation(*CallExpr, CallExprLoc); in transferOptionalHasValueCall()
343 LatticeTransferState &State, in transferValueOrImpl() argument
347 auto &Env = State.Env; in transferValueOrImpl()
354 State.Env, in transferValueOrImpl()
355 State.Env.getValue(*ObjectArgumentExpr, SkipPast::ReferenceThenPointer)); in transferValueOrImpl()
360 State.Env.getValue(*ValueOrPredExpr, SkipPast::None)); in transferValueOrImpl()
362 auto &ExprLoc = State.Env.createStorageLocation(*ValueOrPredExpr); in transferValueOrImpl()
363 ExprValue = &State.Env.makeAtomicBoolValue(); in transferValueOrImpl()
364 State.Env.setValue(ExprLoc, *ExprValue); in transferValueOrImpl()
365 State.Env.setStorageLocation(*ValueOrPredExpr, ExprLoc); in transferValueOrImpl()
373 LatticeTransferState &State) { in transferValueOrStringEmptyCall() argument
374 return transferValueOrImpl(ComparisonExpr, Result, State, in transferValueOrStringEmptyCall()
390 LatticeTransferState &State) { in transferValueOrNotEqX() argument
391 transferValueOrImpl(ComparisonExpr, Result, State, in transferValueOrNotEqX()
403 LatticeTransferState &State) { in transferCallReturningOptional() argument
404 if (State.Env.getStorageLocation(*E, SkipPast::None) != nullptr) in transferCallReturningOptional()
407 auto &Loc = State.Env.createStorageLocation(*E); in transferCallReturningOptional()
408 State.Env.setStorageLocation(*E, Loc); in transferCallReturningOptional()
409 State.Env.setValue( in transferCallReturningOptional()
410 Loc, createOptionalValue(State.Env, State.Env.makeAtomicBoolValue())); in transferCallReturningOptional()
413 void assignOptionalValue(const Expr &E, LatticeTransferState &State, in assignOptionalValue() argument
416 State.Env.getStorageLocation(E, SkipPast::ReferenceThenPointer)) { in assignOptionalValue()
417 State.Env.setValue(*OptionalLoc, in assignOptionalValue()
418 createOptionalValue(State.Env, HasValueVal)); in assignOptionalValue()
427 LatticeTransferState &State) { in value_orConversionHasValue() argument
439 return State.Env.getBoolLiteralValue(true); in value_orConversionHasValue()
444 getHasValue(State.Env, State.Env.getValue(E, SkipPast::Reference))) in value_orConversionHasValue()
446 return State.Env.makeAtomicBoolValue(); in value_orConversionHasValue()
451 LatticeTransferState &State) { in transferValueOrConversionConstructor() argument
454 assignOptionalValue(*E, State, in transferValueOrConversionConstructor()
457 State)); in transferValueOrConversionConstructor()
461 LatticeTransferState &State) { in transferAssignment() argument
465 State.Env.getStorageLocation(*E->getArg(0), SkipPast::Reference); in transferAssignment()
469 State.Env.setValue(*OptionalLoc, createOptionalValue(State.Env, HasValueVal)); in transferAssignment()
472 State.Env.setStorageLocation(*E, *OptionalLoc); in transferAssignment()
477 LatticeTransferState &State) { in transferValueOrConversionAssignment() argument
481 *E->getArg(1), MatchRes, State), in transferValueOrConversionAssignment()
482 State); in transferValueOrConversionAssignment()
487 LatticeTransferState &State) { in transferNulloptAssignment() argument
488 transferAssignment(E, State.Env.getBoolLiteralValue(false), State); in transferNulloptAssignment()
493 LatticeTransferState &State) { in transferSwap() argument
494 auto *OptionalVal1 = State.Env.getValue(OptionalLoc1); in transferSwap()
497 auto *OptionalVal2 = State.Env.getValue(OptionalLoc2); in transferSwap()
500 State.Env.setValue(OptionalLoc1, *OptionalVal2); in transferSwap()
501 State.Env.setValue(OptionalLoc2, *OptionalVal1); in transferSwap()
506 LatticeTransferState &State) { in transferSwapCall() argument
509 auto *OptionalLoc1 = State.Env.getStorageLocation( in transferSwapCall()
514 State.Env.getStorageLocation(*E->getArg(0), SkipPast::Reference); in transferSwapCall()
517 transferSwap(*OptionalLoc1, *OptionalLoc2, State); in transferSwapCall()
521 LatticeTransferState &State) { in transferStdSwapCall() argument
525 State.Env.getStorageLocation(*E->getArg(0), SkipPast::Reference); in transferStdSwapCall()
529 State.Env.getStorageLocation(*E->getArg(1), SkipPast::Reference); in transferStdSwapCall()
532 transferSwap(*OptionalLoc1, *OptionalLoc2, State); in transferStdSwapCall()
576 LatticeTransferState &State) { in buildTransferMatchSwitch() argument
577 assignOptionalValue(*E, State, State.Env.getBoolLiteralValue(true)); in buildTransferMatchSwitch()
582 LatticeTransferState &State) { in buildTransferMatchSwitch() argument
583 assignOptionalValue(*E, State, in buildTransferMatchSwitch()
584 State.Env.getBoolLiteralValue(false)); in buildTransferMatchSwitch()
599 LatticeTransferState &State) { in buildTransferMatchSwitch() argument
600 transferUnwrapCall(E, E->getImplicitObjectArgument(), State); in buildTransferMatchSwitch()
606 LatticeTransferState &State) { in buildTransferMatchSwitch() argument
607 transferUnwrapCall(E, E->getArg(0), State); in buildTransferMatchSwitch()
622 LatticeTransferState &State) { in buildTransferMatchSwitch() argument
623 assignOptionalValue(*E->getImplicitObjectArgument(), State, in buildTransferMatchSwitch()
624 State.Env.getBoolLiteralValue(true)); in buildTransferMatchSwitch()
631 LatticeTransferState &State) { in buildTransferMatchSwitch() argument
632 assignOptionalValue(*E->getImplicitObjectArgument(), State, in buildTransferMatchSwitch()
633 State.Env.getBoolLiteralValue(false)); in buildTransferMatchSwitch()
713 LatticeTransferState State(L, Env); in transfer() local
714 TransferMatchSwitch(*S, getASTContext(), State); in transfer()