Lines Matching defs:LValue

78   struct LValue;
89 /// Get an LValue path entry, which is known to not be an array index, as a
94 /// Get an LValue path entry, which is known to not be an array index, as a
99 /// Determine whether this LValue path entry for a base class names a virtual
189 /// Determines if an LValue with the given LValueBase will have an unsized
292 assert(V.isLValue() && "Non-LValue used to make an LValue designator?");
539 const LValue *This;
596 const FunctionDecl *Callee, const LValue *This,
631 ScopeKind Scope, LValue &LV);
634 APValue &createParam(CallRef Args, const ParmVarDecl *PVD, LValue &LV);
661 ThisOverrideRAII(CallStackFrame &Frame, const LValue *NewThis, bool Enable)
671 const LValue *OldThis;
702 const LValue &This, QualType ThisType);
1098 APValue *createHeapAlloc(const Expr *E, QualType T, LValue &LV);
1495 const FunctionDecl *Callee, const LValue *This,
1607 struct LValue {
1628 assert(!InvalidBase && "APValues can't handle invalid LValue bases");
1634 assert(V.isLValue() && "Setting LValue from a non-LValue?");
1679 // Check that this LValue is not based on a null pointer. If it is, produce
1708 // Check this LValue refers to an object. If not, set the designator to be
1870 const LValue &This, const Expr *E,
1872 static bool EvaluateLValue(const Expr *E, LValue &Result, EvalInfo &Info,
1874 static bool EvaluatePointer(const Expr *E, LValue &Result, EvalInfo &Info,
1878 static bool EvaluateTemporary(const Expr *E, LValue &Result, EvalInfo &Info);
1884 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result,
1915 ScopeKind Scope, LValue &LV) {
1924 LValue &LV) {
1954 APValue *EvalInfo::createHeapAlloc(const Expr *E, QualType T, LValue &LV) {
2118 static const ValueDecl *GetLValueBaseDecl(const LValue &LVal) {
2122 static bool IsLiteralLValue(const LValue &Value) {
2129 static bool IsWeakLValue(const LValue &Value) {
2134 static bool isZeroSized(const LValue &Value) {
2145 static bool HasSameBase(const LValue &A, const LValue &B) {
2213 QualType Type, const LValue &LVal,
2403 const LValue *This = nullptr) {
2510 LValue LVal;
2603 case APValue::LValue:
3056 "A vector result that isn't a vector OR uncalculated LValue");
3111 static bool CastToDerivedClass(EvalInfo &Info, const Expr *E, LValue &Result,
3140 static bool HandleLValueDirectBase(EvalInfo &Info, const Expr *E, LValue &Obj,
3154 static bool HandleLValueBase(EvalInfo &Info, const Expr *E, LValue &Obj,
3180 QualType Type, LValue &Result) {
3193 static bool CastToBaseClass(EvalInfo &Info, const Expr *E, LValue &Result,
3209 static bool HandleLValueMember(EvalInfo &Info, const Expr *E, LValue &LVal,
3225 LValue &LVal,
3274 LValue &LVal, QualType EltTy,
3285 LValue &LVal, QualType EltTy,
3297 LValue &LVal, QualType EltTy,
4052 /// Find the complete object to which an LValue refers.
4054 AccessKinds AK, const LValue &LVal,
4337 const LValue &LVal, APValue &RVal,
4392 // Fail for now for LValue to RValue conversion of an array.
4416 static bool handleAssignment(EvalInfo &Info, const Expr *E, const LValue &LVal,
4463 case APValue::LValue:
4547 LValue LVal;
4562 const LValue &LVal, QualType LValType,
4620 case APValue::LValue:
4698 LValue LVal;
4710 static bool handleIncDec(EvalInfo &Info, const Expr *E, const LValue &LVal,
4728 LValue &This) {
4752 /// the resulting LValue subobject designator. This is not possible when
4758 LValue &LV,
4799 // Extend the LValue path with the member pointer's path.
4840 LValue &LV,
4859 LValue &Result) {
4969 LValue Result;
5035 const LValue *Slot;
5751 static bool checkDynamicType(EvalInfo &Info, const Expr *E, const LValue &This,
5794 const LValue &This,
5820 LValue &This,
5876 EvalInfo &Info, const Expr *E, LValue &This, const CXXMethodDecl *Found,
5948 LValue LVal;
5982 LValue &Ptr) {
6131 const LValue &LHS) {
6235 LValue LV;
6308 LValue RefLValue;
6317 const FunctionDecl *Callee, const LValue *This,
6320 APValue &Result, const LValue *ResultSlot) {
6371 static bool HandleConstructorCall(const Expr *E, const LValue &This,
6469 LValue Subobject = This;
6470 LValue SubobjectParent = This;
6585 static bool HandleConstructorCall(const Expr *E, const LValue &This,
6599 const LValue &This, APValue &Value,
6626 LValue ElemLV = This;
6736 LValue Subobject = This;
6754 LValue Subobject = This;
6775 const LValue &This;
6798 const LValue &This, QualType ThisType) {
6813 LValue LV;
6820 LValue &Result) {
6901 const LValue &Pointer,
6959 LValue Pointer;
7090 case APValue::LValue:
7091 llvm_unreachable("LValue subobject in bit_cast?");
7639 LValue SourceLValue;
7824 LValue Obj;
7842 LValue CommonLV;
7909 LValue LV;
7934 const LValue *ResultSlot) {
7941 LValue *This = nullptr, ThisVal;
7978 LValue CalleeLV;
8079 LValue Ptr;
8235 LValue LVal;
8275 LValue LVal;
8355 LValue &Result;
8365 bool evaluatePointer(const Expr *E, LValue &Result) {
8370 LValueExprEvaluatorBase(EvalInfo &Info, LValue &Result, bool InvalidBaseOK)
8455 // LValue Evaluation
8461 // LValue evaluation produces values comprising a base expression of one of the
8491 LValueExprEvaluator(EvalInfo &Info, LValue &Result, bool InvalidBaseOK) :
8548 static bool HandleLambdaCapture(EvalInfo &Info, const Expr *E, LValue &Result,
8599 static bool EvaluateLValue(const Expr *E, LValue &Result, EvalInfo &Info,
9015 const LValue &LVal,
9029 LValue &Result) {
9051 // Store E instead of E unwrapped so that the type of the LValue's base is
9063 LValue &Result;
9071 bool evaluateLValue(const Expr *E, LValue &Result) {
9075 bool evaluatePointer(const Expr *E, LValue &Result) {
9082 PointerExprEvaluator(EvalInfo &info, LValue &Result, bool InvalidBaseOK)
9198 static bool EvaluatePointer(const Expr* E, LValue& Result, EvalInfo &Info,
9392 LValue LVal;
9456 static CharUnits getBaseAlignment(EvalInfo &Info, const LValue &Value) {
9535 LValue OffsetResult(Result);
9758 LValue Dest = Result;
9760 LValue Src;
9883 static bool EvaluateArrayNewInitList(EvalInfo &Info, LValue &This,
9886 static bool EvaluateArrayNewConstructExpr(EvalInfo &Info, LValue &This,
9931 LValue Nothrow;
10194 const LValue &This;
10198 RecordExprEvaluator(EvalInfo &info, const LValue &This, APValue &Result)
10238 const LValue &This, APValue &Result) {
10252 LValue Subobject = This;
10266 LValue Subobject = This;
10293 LValue Subobject = This;
10383 LValue Subobject = This;
10413 LValue Subobject = This;
10436 LValue Subobject = This;
10557 LValue Array;
10630 LValue Subobject = This;
10645 static bool EvaluateRecord(const Expr *E, const LValue &This,
10664 TemporaryExprEvaluator(EvalInfo &Info, LValue &Result) :
10702 static bool EvaluateTemporary(const Expr *E, LValue &Result, EvalInfo &Info) {
10973 // FIXME: This vector evaluator someday needs to be changed to be LValue
10974 // aware/keep LValue information around, rather than dealing with just vector
10976 // these unary operators is an LValue. The only case I've been able to see
11119 const LValue &This;
11123 ArrayExprEvaluator(EvalInfo &Info, const LValue &This, APValue &Result)
11152 LValue Subobject = This;
11166 const LValue &Subobject,
11181 static bool EvaluateArray(const Expr *E, const LValue &This,
11189 static bool EvaluateArrayNewInitList(EvalInfo &Info, LValue &This,
11199 static bool EvaluateArrayNewConstructExpr(EvalInfo &Info, LValue &This,
11302 LValue Subobject = This;
11361 LValue CommonLV;
11375 LValue Subobject = This;
11411 const LValue &Subobject,
11431 LValue ArrayElt = Subobject;
12016 if (V.getKind() == APValue::LValue)
12072 /// Checks to see if the given LValue's Designator is at the end of the LValue's
12087 static bool isDesignatorAtObjectEnd(const ASTContext &Ctx, const LValue &LVal) {
12157 /// Tests to see if the LValue has a user-specified designator (that isn't
12158 /// necessarily valid). Note that this always returns 'true' if the LValue has
12161 static bool refersToCompleteObject(const LValue &LVal) {
12179 static bool isUserWritingOffTheEnd(const ASTContext &Ctx, const LValue &LVal) {
12234 const LValue &LV, CharUnits &Size) {
12243 /// Helper for tryEvaluateBuiltinObjectSize -- Given an LValue, this will
12246 /// on what the LValue looks like + the value of Type.
12250 unsigned Type, const LValue &LVal,
12336 LValue LVal;
12390 LValue Ptr;
12458 LValue Ptr;
12844 LValue String1, String2;
13006 LValue CarryOutLValue;
13070 LValue ResultLValue;
13172 const LValue &LV) {
13576 LValue LV;
13651 LValue LHSValue, RHSValue;
13859 LValue Res;
13897 LValue LV;
13966 LValue LHSValue, RHSValue;
14424 LValue LV;
15561 const LValue *This;
15564 AtomicExprEvaluator(EvalInfo &Info, const LValue *This, APValue &Result)
15596 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result,
15664 LValue Pointer;
15739 LValue LV;
15750 LValue LV;
15773 LValue LV;
15780 LValue LV;
15795 LValue LV;
15819 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info, const LValue &This,
15868 LValue LV;
16046 LValue LV;
16070 LValue LVal;
16119 LValue LVal;
16190 LValue LVal;
16907 LValue ThisVal;
16908 const LValue *ThisPtr = nullptr;
16995 LValue This;
17057 LValue String;
17119 LValue String;