Lines Matching refs:APValue

59 static bool IsGlobalLValue(APValue::LValueBase B);
66 static QualType getType(APValue::LValueBase B) { in getType()
108 APValue::BaseOrMemberType getAsBaseOrMember(APValue::LValuePathEntry E) { in getAsBaseOrMember()
109 APValue::BaseOrMemberType Value; in getAsBaseOrMember()
116 static const FieldDecl *getAsField(APValue::LValuePathEntry E) { in getAsField()
121 static const CXXRecordDecl *getAsBaseClass(APValue::LValuePathEntry E) { in getAsBaseClass()
126 static bool isVirtualBaseClass(APValue::LValuePathEntry E) { in isVirtualBaseClass()
161 static bool isBaseAnAllocSizeCall(APValue::LValueBase Base) { in isBaseAnAllocSizeCall()
177 findMostDerivedSubobject(ASTContext &Ctx, APValue::LValueBase Base, in findMostDerivedSubobject()
178 ArrayRef<APValue::LValuePathEntry> Path, in findMostDerivedSubobject()
260 typedef APValue::LValuePathEntry PathEntry;
273 SubobjectDesignator(ASTContext &Ctx, const APValue &V) in SubobjectDesignator()
392 APValue::BaseOrMemberType Value(D, Virtual); in addDeclUnchecked()
480 APValue *Arguments;
485 typedef std::map<MapKeyTy, APValue> MapTy;
522 APValue *Arguments);
526 APValue *getTemporary(const void *Key, unsigned Version) { in getTemporary()
540 APValue *getCurrentTemporary(const void *Key) { in getCurrentTemporary()
555 APValue &createTemporary(const void *Key, bool IsLifetimeExtended);
620 llvm::PointerIntPair<APValue*, 1, bool> Value;
623 Cleanup(APValue *Val, bool IsLifetimeExtended) in Cleanup()
628 *Value.getPointer() = APValue(); in endLifetime()
676 APValue::LValueBase EvaluatingDecl;
680 APValue *EvaluatingDeclValue;
684 typedef std::pair<APValue::LValueBase, std::pair<unsigned, unsigned>>
704 bool isEvaluatingConstructor(APValue::LValueBase Decl, unsigned CallIndex, in isEvaluatingConstructor()
792 void setEvaluatingDecl(APValue::LValueBase Base, APValue &Value) { in setEvaluatingDecl()
1229 APValue *Arguments) in CallStackFrame()
1242 APValue &CallStackFrame::createTemporary(const void *Key, in createTemporary()
1245 APValue &Result = Temporaries[MapKeyTy(Key, Version)]; in createTemporary()
1322 void moveInto(APValue &v) const { in moveInto()
1324 v = APValue(FloatReal, FloatImag); in moveInto()
1326 v = APValue(IntReal, IntImag); in moveInto()
1328 void setFrom(const APValue &v) { in setFrom()
1343 APValue::LValueBase Base;
1349 const APValue::LValueBase getLValueBase() const { return Base; } in getLValueBase()
1359 void moveInto(APValue &V) const { in moveInto()
1361 V = APValue(Base, Offset, APValue::NoLValuePath(), IsNullPtr); in moveInto()
1364 V = APValue(Base, Offset, Designator.Entries, in moveInto()
1368 void setFrom(ASTContext &Ctx, const APValue &V) { in setFrom()
1377 void set(APValue::LValueBase B, bool BInvalid = false) { in set()
1402 void setInvalid(APValue::LValueBase B, unsigned I = 0) { in setInvalid()
1517 void moveInto(APValue &V) const { in moveInto()
1518 V = APValue(getDecl(), isDerivedMember(), Path); in moveInto()
1520 void setFrom(const APValue &V) { in setFrom()
1596 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E);
1597 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info,
1608 static bool EvaluateIntegerOrLValue(const Expr *E, APValue &Result,
1612 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result,
1614 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result);
1622 static APValue &createTemporary(const KeyTy *Key, bool IsLifetimeExtended, in createTemporary()
1650 APValue Val; in describeCall()
1665 const APValue &Arg = Frame->Arguments[ArgIndex]; in describeCall()
1679 APValue Scratch; in EvaluateIgnoredValue()
1693 static bool IsGlobalLValue(APValue::LValueBase B) { in IsGlobalLValue()
1797 static void NoteLValueLocation(EvalInfo &Info, APValue::LValueBase Base) { in NoteLValueLocation()
1815 APValue::LValueBase Base = LVal.getLValueBase(); in CheckLValueConstantExpression()
1893 const APValue &Value, in CheckMemberPointerConstantExpression()
1940 const APValue &Value, in CheckConstantExpression()
2008 static bool EvalPointerValueAsBool(const APValue &Value, bool &Result) { in EvalPointerValueAsBool()
2023 static bool HandleConversionToBool(const APValue &Val, bool &Result) { in HandleConversionToBool()
2025 case APValue::Uninitialized: in HandleConversionToBool()
2027 case APValue::Int: in HandleConversionToBool()
2030 case APValue::Float: in HandleConversionToBool()
2033 case APValue::ComplexInt: in HandleConversionToBool()
2037 case APValue::ComplexFloat: in HandleConversionToBool()
2041 case APValue::LValue: in HandleConversionToBool()
2043 case APValue::MemberPointer: in HandleConversionToBool()
2046 case APValue::Vector: in HandleConversionToBool()
2047 case APValue::Array: in HandleConversionToBool()
2048 case APValue::Struct: in HandleConversionToBool()
2049 case APValue::Union: in HandleConversionToBool()
2050 case APValue::AddrLabelDiff: in HandleConversionToBool()
2060 APValue Val; in EvaluateAsBooleanCondition()
2126 APValue &Value, const FieldDecl *FD) { in truncateBitfieldValue()
2148 APValue SVal; in EvalAndBitcastToAPInt()
2167 APValue &Elt = SVal.getVectorElt(i); in EvalAndBitcastToAPInt()
2527 APValue &RVal);
2539 APValue *&Result, const LValue *LVal) { in evaluateVarDeclInit()
2672 APValue &Result) { in expandStringLiteral()
2681 Result = APValue(APValue::UninitArray(), in expandStringLiteral()
2686 Result.getArrayFiller() = APValue(Value); in expandStringLiteral()
2689 Result.getArrayInitializedElt(I) = APValue(Value); in expandStringLiteral()
2694 static void expandArray(APValue &Array, unsigned Index) { in expandArray()
2704 APValue NewValue(APValue::UninitArray(), NewElts, Size); in expandArray()
2777 APValue *Value;
2783 CompleteObject(APValue *Value, QualType Type, in CompleteObject()
2813 APValue *O = Obj.Value; in findSubobject()
2973 APValue &Result;
2979 bool found(APValue &Subobj, QualType SubobjType) { in found()
2984 Result = APValue(Value); in found()
2988 Result = APValue(Value); in found()
2991 bool foundString(APValue &Subobj, QualType SubobjType, uint64_t Character) { in foundString()
2992 Result = APValue(extractStringLiteralCharacter( in foundString()
3005 APValue &Result) { in extractSubobject()
3013 APValue &NewVal;
3029 bool found(APValue &Subobj, QualType SubobjType) { in found()
3053 bool foundString(APValue &Subobj, QualType SubobjType, uint64_t Character) { in foundString()
3065 APValue &NewVal) { in modifySubobject()
3161 APValue *BaseVal = nullptr; in findCompleteObject()
3348 const LValue &LVal, APValue &RVal) { in handleLValueToRValueConversion()
3363 APValue Lit; in handleLValueToRValueConversion()
3372 APValue Str(Base, CharUnits::Zero(), APValue::NoLValuePath(), 0); in handleLValueToRValueConversion()
3384 QualType LValType, APValue &Val) { in handleAssignment()
3403 const APValue &RHS;
3419 bool found(APValue &Subobj, QualType SubobjType) { in found()
3421 case APValue::Int: in found()
3423 case APValue::Float: in found()
3425 case APValue::ComplexInt: in found()
3426 case APValue::ComplexFloat: in found()
3430 case APValue::LValue: in found()
3475 bool foundPointer(APValue &Subobj, QualType SubobjType) { in foundPointer()
3500 bool foundString(APValue &Subobj, QualType SubobjType, uint64_t Character) { in foundString()
3512 BinaryOperatorKind Opcode, const APValue &RVal) { in handleCompoundAssignment()
3532 APValue *Old;
3546 bool found(APValue &Subobj, QualType SubobjType) { in found()
3555 case APValue::Int: in found()
3557 case APValue::Float: in found()
3559 case APValue::ComplexInt: in found()
3563 case APValue::ComplexFloat: in found()
3567 case APValue::LValue: in found()
3586 if (Old) *Old = APValue(Value); in found()
3622 if (Old) *Old = APValue(Value); in found()
3631 bool foundPointer(APValue &Subobj, QualType SubobjType) { in foundPointer()
3651 bool foundString(APValue &Subobj, QualType SubobjType, uint64_t Character) { in foundString()
3659 QualType LValType, bool IsIncrement, APValue *Old) { in handleIncDec()
3862 APValue &Val = createTemporary(VD, true, Result, *Info.CurrentCall); in EvaluateVarDecl()
3868 Val = APValue(); in EvaluateVarDecl()
3878 Val = APValue(); in EvaluateVarDecl()
3914 APValue &Value;
4412 typedef SmallVector<APValue, 8> ArgVector;
4436 EvalInfo &Info, APValue &Result, in HandleFunctionCall()
4461 APValue RHSValue; in HandleFunctionCall()
4494 APValue *ArgValues, in HandleConstructorCall()
4496 EvalInfo &Info, APValue &Result) { in HandleConstructorCall()
4514 APValue RetVal; in HandleConstructorCall()
4548 Result = APValue(APValue::UninitStruct(), RD->getNumBases(), in HandleConstructorCall()
4565 APValue *Value = &Result; in HandleConstructorCall()
4587 Result = APValue(FD); in HandleConstructorCall()
4607 *Value = APValue(FD); in HandleConstructorCall()
4609 *Value = APValue(APValue::UninitStruct(), CD->getNumBases(), in HandleConstructorCall()
4652 EvalInfo &Info, APValue &Result) { in HandleConstructorCall()
4671 bool DerivedSuccess(const APValue &V, const Expr *E) { in DerivedSuccess()
4811 APValue Result; in VisitBinaryOperator()
4855 if (APValue *Value = Info.CurrentCall->getCurrentTemporary(E)) in VisitOpaqueValueExpr()
4869 APValue Result; in VisitCallExpr()
4875 bool handleCallExpr(const CallExpr *E, APValue &Result, in handleCallExpr()
5021 APValue Val; in VisitMemberExpr()
5037 APValue Result; in VisitMemberExpr()
5048 APValue AtomicVal; in VisitCastExpr()
5065 APValue RVal; in VisitCastExpr()
5090 APValue RVal; in VisitUnaryPostIncDec()
5121 APValue ReturnValue; in VisitStmtExpr()
5168 bool Success(APValue::LValueBase B) { in Success()
5182 bool Success(const APValue &V, const Expr *E) { in Success()
5223 APValue RefValue; in VisitMemberExpr()
5395 APValue RVal; in VisitVarDecl()
5427 APValue *V; in VisitVarDecl()
5454 APValue *Value; in VisitMaterializeTemporaryExpr()
5457 *Value = APValue(); in VisitMaterializeTemporaryExpr()
5470 *Value = APValue(); in VisitMaterializeTemporaryExpr()
5604 APValue RHS; in VisitCompoundAssignOperator()
5626 APValue NewVal; in VisitBinAssign()
5712 static bool evaluateLValueAsAllocSize(EvalInfo &Info, APValue::LValueBase Base, in evaluateLValueAsAllocSize()
5770 bool Success(const APValue &V, const Expr *E) { in Success()
5824 APValue RVal; in VisitCXXThisExpr()
5930 APValue Value; in VisitCastExpr()
5955 APValue &Value = createTemporary(SubExpr, false, Result, in VisitCastExpr()
5977 APValue RVal; in VisitCastExpr()
6218 APValue Char; in VisitBuiltinCallExpr()
6280 APValue Val; in VisitBuiltinCallExpr()
6361 APValue Val; in VisitBuiltinCallExpr()
6398 bool Success(const APValue &V, const Expr *E) { in Success()
6476 APValue &Result;
6479 RecordExprEvaluator(EvalInfo &info, const LValue &This, APValue &Result) in RecordExprEvaluator()
6482 bool Success(const APValue &V, const Expr *E) { in Success()
6517 const LValue &This, APValue &Result) { in HandleClassZeroInitialization()
6520 Result = APValue(APValue::UninitStruct(), CD ? CD->getNumBases() : 0, in HandleClassZeroInitialization()
6566 Result = APValue((const FieldDecl*)nullptr); in ZeroInitialization()
6573 Result = APValue(*I); in ZeroInitialization()
6596 APValue DerivedObject; in VisitCastExpr()
6603 APValue *Value = &DerivedObject; in VisitCastExpr()
6628 Result = APValue(Field); in VisitInitListExpr()
6653 Result = APValue(APValue::UninitStruct(), CXXRD ? CXXRD->getNumBases() : 0, in VisitInitListExpr()
6668 APValue &FieldVal = Result.getStructBase(ElementNo); in VisitInitListExpr()
6704 APValue &FieldVal = Result.getStructField(Field->getFieldIndex()); in VisitInitListExpr()
6809 Result = APValue(APValue::UninitStruct(), 0, 2); in VisitCXXStdInitializerListExpr()
6826 Result.getStructField(1) = APValue(APSInt(ArrayType->getSize())); in VisitCXXStdInitializerListExpr()
6850 Result = APValue(APValue::UninitStruct(), /*NumBases*/0, NumFields); in VisitLambdaExpr()
6866 APValue &FieldVal = Result.getStructField(Field->getFieldIndex()); in VisitLambdaExpr()
6878 APValue &Result, EvalInfo &Info) { in EvaluateRecord()
6900 APValue &Value = createTemporary(E, false, Result, *Info.CurrentCall); in VisitConstructExpr()
6944 APValue &Result;
6947 VectorExprEvaluator(EvalInfo &info, APValue &Result) in VectorExprEvaluator()
6950 bool Success(ArrayRef<APValue> V, const Expr *E) { in Success()
6953 Result = APValue(V.data(), V.size()); in Success()
6956 bool Success(const APValue &V, const Expr *E) { in Success()
6974 static bool EvaluateVector(const Expr* E, APValue& Result, EvalInfo &Info) { in EvaluateVector()
6988 APValue Val = APValue(); in VisitCastExpr()
6993 Val = APValue(std::move(IntResult)); in VisitCastExpr()
6998 Val = APValue(std::move(FloatResult)); in VisitCastExpr()
7004 SmallVector<APValue, 4> Elts(NElts, Val); in VisitCastExpr()
7016 SmallVector<APValue, 4> Elts; in VisitCastExpr()
7028 Elts.push_back(APValue(APFloat(Sem, Elt))); in VisitCastExpr()
7037 Elts.push_back(APValue(APSInt(Elt, EltTy->isSignedIntegerType()))); in VisitCastExpr()
7056 SmallVector<APValue, 4> Elements; in VisitInitListExpr()
7067 APValue v; in VisitInitListExpr()
7081 Elements.push_back(APValue(sInt)); in VisitInitListExpr()
7090 Elements.push_back(APValue(f)); in VisitInitListExpr()
7102 APValue ZeroElement; in ZeroInitialization()
7104 ZeroElement = APValue(Info.Ctx.MakeIntValue(0, EltTy)); in ZeroInitialization()
7107 APValue(APFloat::getZero(Info.Ctx.getFloatTypeSemantics(EltTy))); in ZeroInitialization()
7109 SmallVector<APValue, 4> Elements(VT->getNumElements(), ZeroElement); in ZeroInitialization()
7126 APValue &Result;
7129 ArrayExprEvaluator(EvalInfo &Info, const LValue &This, APValue &Result) in ArrayExprEvaluator()
7132 bool Success(const APValue &V, const Expr *E) { in Success()
7145 Result = APValue(APValue::UninitArray(), 0, in ZeroInitialization()
7164 APValue *Value, QualType Type);
7169 APValue &Result, EvalInfo &Info) { in EvaluateArray()
7201 APValue Val; in VisitInitListExpr()
7210 APValue Filler; in VisitInitListExpr()
7226 Result = APValue(APValue::UninitArray(), NumEltsToInit, NumElts); in VisitInitListExpr()
7271 Result = APValue(APValue::UninitArray(), Elements, Elements); in VisitArrayInitLoopExpr()
7297 APValue *Value, in VisitCXXConstructExpr()
7305 APValue Filler = in VisitCXXConstructExpr()
7307 : APValue(); in VisitCXXConstructExpr()
7309 *Value = APValue(APValue::UninitArray(), N, N); in VisitCXXConstructExpr()
7346 APValue &Result;
7348 IntExprEvaluator(EvalInfo &info, APValue &result) in IntExprEvaluator()
7351 bool Success(const llvm::APSInt &SI, const Expr *E, APValue &Result) { in Success()
7358 Result = APValue(SI); in Success()
7365 bool Success(const llvm::APInt &I, const Expr *E, APValue &Result) { in Success()
7370 Result = APValue(APSInt(I)); in Success()
7379 bool Success(uint64_t Value, const Expr *E, APValue &Result) { in Success()
7382 Result = APValue(Info.Ctx.MakeIntValue(Value, E->getType())); in Success()
7393 bool Success(const APValue &V, const Expr *E) { in Success()
7487 APValue &Result;
7490 FixedPointExprEvaluator(EvalInfo &info, APValue &result) in FixedPointExprEvaluator()
7493 bool Success(const llvm::APSInt &SI, const Expr *E, APValue &Result) { in Success()
7499 Result = APValue(SI); in Success()
7506 bool Success(const llvm::APInt &I, const Expr *E, APValue &Result) { in Success()
7510 Result = APValue(APSInt(I)); in Success()
7518 bool Success(uint64_t Value, const Expr *E, APValue &Result) { in Success()
7520 Result = APValue(Info.Ctx.MakeIntValue(Value, E->getType())); in Success()
7531 bool Success(const APValue &V, const Expr *E) { in Success()
7561 static bool EvaluateIntegerOrLValue(const Expr *E, APValue &Result, in EvaluateIntegerOrLValue()
7568 APValue Val; in EvaluateInteger()
7819 APValue &V = Result.Val; in EvaluateBuiltinConstantP()
7820 if (V.getKind() == APValue::Int) in EvaluateBuiltinConstantP()
7822 if (V.getKind() == APValue::LValue) in EvaluateBuiltinConstantP()
7842 static QualType getObjectType(APValue::LValueBase B) { in getObjectType()
8120 APValue RVal; in tryEvaluateBuiltinObjectSize()
8398 APValue Char; in VisitBuiltinCallExpr()
8465 const auto &ReadCurElems = [&](APValue &Char1, APValue &Char2) { in VisitBuiltinCallExpr()
8495 APValue Char1, Char2; in VisitBuiltinCallExpr()
8538 APValue Char1, Char2; in VisitBuiltinCallExpr()
8718 APValue APV{Result}; in VisitBuiltinCallExpr()
8762 APValue Val;
8794 APValue &FinalResult;
8797 DataRecursiveIntBinOpEvaluator(IntExprEvaluator &IntEval, APValue &Result) in DataRecursiveIntBinOpEvaluator()
8824 bool Success(uint64_t Value, const Expr *E, APValue &Result) { in Success()
8827 bool Success(const APSInt &Value, const Expr *E, APValue &Result) { in Success()
8846 const BinaryOperator *E, APValue &Result);
8851 Result.Val = APValue(); in EvaluateExpr()
8911 static void addOrSubLValueAsInteger(APValue &LVal, const APSInt &Index, in addOrSubLValueAsInteger()
8926 const BinaryOperator *E, APValue &Result) { in VisitBinOp()
8964 const APValue &LHSVal = LHSResult.Val; in VisitBinOp()
8965 const APValue &RHSVal = RHSResult.Val; in VisitBinOp()
8999 Result = APValue(LHSAddrExpr, RHSAddrExpr); in VisitBinOp()
9479 return Success(APValue(LHSAddrExpr, RHSAddrExpr), E); in VisitBinaryOperator()
9778 APValue Val; in VisitCastExpr()
9825 APValue V; in VisitCastExpr()
9932 bool Success(const APValue &V, const Expr *e) { in Success()
10168 bool Success(const APValue &V, const Expr *e) { in Success()
10658 APValue &Result;
10660 AtomicExprEvaluator(EvalInfo &Info, const LValue *This, APValue &Result) in AtomicExprEvaluator()
10663 bool Success(const APValue &V, const Expr *E) { in Success()
10689 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result, in EvaluateAtomic()
10706 bool Success(const APValue &V, const Expr *e) { return true; } in Success()
10742 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E) { in Evaluate()
10766 Result = APValue(F); in Evaluate()
10782 APValue &Value = createTemporary(E, false, LV, *Info.CurrentCall); in Evaluate()
10788 APValue &Value = createTemporary(E, false, LV, *Info.CurrentCall); in Evaluate()
10802 APValue &Value = createTemporary(E, false, LV, *Info.CurrentCall); in Evaluate()
10823 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info, const LValue &This, in EvaluateInPlace()
10851 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result) { in EvaluateAsRValue()
10877 Result.Val = APValue(APSInt(L->getValue(), in FastEvaluateAsRValue()
10996 bool Expr::EvaluateAsInitializer(APValue &Value, const ASTContext &Ctx, in EvaluateAsInitializer()
11543 APValue Result; in EvaluateCPlusPlus11IntegralConstantExpr()
11597 bool Expr::isCXX11ConstantExpr(const ASTContext &Ctx, APValue *Result, in isCXX11ConstantExpr()
11609 APValue Scratch; in isCXX11ConstantExpr()
11623 bool Expr::EvaluateWithSubstitution(APValue &Value, ASTContext &Ctx, in EvaluateWithSubstitution()
11651 ArgValues[I - Args.begin()] = APValue(); in EvaluateWithSubstitution()
11689 APValue Scratch; in isPotentialConstantExpr()
11724 APValue ResultScratch; in isPotentialConstantExprUnevaluated()