Lines Matching refs:APValue
85 static QualType getType(APValue::LValueBase B) { in getType()
91 static const FieldDecl *getAsField(APValue::LValuePathEntry E) { in getAsField()
96 static const CXXRecordDecl *getAsBaseClass(APValue::LValuePathEntry E) { in getAsBaseClass()
101 static bool isVirtualBaseClass(APValue::LValuePathEntry E) { in isVirtualBaseClass()
147 static bool isBaseAnAllocSizeCall(APValue::LValueBase Base) { in isBaseAnAllocSizeCall()
194 findMostDerivedSubobject(ASTContext &Ctx, APValue::LValueBase Base, in findMostDerivedSubobject()
195 ArrayRef<APValue::LValuePathEntry> Path, in findMostDerivedSubobject()
275 typedef APValue::LValuePathEntry PathEntry;
288 SubobjectDesignator(ASTContext &Ctx, const APValue &V) in SubobjectDesignator()
309 void truncate(ASTContext &Ctx, APValue::LValueBase Base, in truncate()
424 Entries.push_back(APValue::BaseOrMemberType(D, Virtual)); in addDeclUnchecked()
556 typedef std::map<MapKeyTy, APValue> MapTy;
601 APValue *getTemporary(const void *Key, unsigned Version) { in getTemporary()
610 APValue *getCurrentTemporary(const void *Key) { in getCurrentTemporary()
630 APValue &createTemporary(const KeyT *Key, QualType T,
634 APValue &createParam(CallRef Args, const ParmVarDecl *PVD, LValue &LV);
654 APValue &createLocal(APValue::LValueBase Base, const void *Key, QualType T,
704 APValue::LValueBase LVBase, APValue &Value,
710 llvm::PointerIntPair<APValue*, 2, ScopeKind> Value;
711 APValue::LValueBase Base;
715 Cleanup(APValue *Val, APValue::LValueBase Base, QualType T, in Cleanup()
733 *Value.getPointer() = APValue(); in endLifetime()
744 APValue::LValueBase Base;
745 ArrayRef<APValue::LValuePathEntry> Path;
766 using Base = DenseMapInfo<APValue::LValueBase>;
786 APValue Value;
863 APValue::LValueBase EvaluatingDecl;
876 APValue *EvaluatingDeclValue;
935 isEvaluatingCtorDtor(APValue::LValueBase Base, in isEvaluatingCtorDtor()
936 ArrayRef<APValue::LValuePathEntry> Path) { in isEvaluatingCtorDtor()
1021 void setEvaluatingDecl(APValue::LValueBase Base, APValue &Value, in setEvaluatingDecl()
1098 APValue *createHeapAlloc(const Expr *E, QualType T, LValue &LV);
1109 APValue *getParamSlot(CallRef Call, const ParmVarDecl *PVD) { in getParamSlot()
1587 void moveInto(APValue &v) const { in moveInto()
1589 v = APValue(FloatReal, FloatImag); in moveInto()
1591 v = APValue(IntReal, IntImag); in moveInto()
1593 void setFrom(const APValue &v) { in setFrom()
1608 APValue::LValueBase Base;
1614 const APValue::LValueBase getLValueBase() const { return Base; } in getLValueBase()
1624 void moveInto(APValue &V) const { in moveInto()
1626 V = APValue(Base, Offset, APValue::NoLValuePath(), IsNullPtr); in moveInto()
1629 V = APValue(Base, Offset, Designator.Entries, in moveInto()
1633 void setFrom(ASTContext &Ctx, const APValue &V) { in setFrom()
1642 void set(APValue::LValueBase B, bool BInvalid = false) { in set()
1668 void setInvalid(APValue::LValueBase B, unsigned I = 0) { in setInvalid()
1673 APValue Printable; in toString()
1789 void moveInto(APValue &V) const { in moveInto()
1790 V = APValue(getDecl(), isDerivedMember(), Path); in moveInto()
1792 void setFrom(const APValue &V) { in setFrom()
1868 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E);
1869 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info,
1880 static bool EvaluateIntegerOrLValue(const Expr *E, APValue &Result,
1884 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result,
1886 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result);
1914 APValue &CallStackFrame::createTemporary(const KeyT *Key, QualType T, in createTemporary()
1917 APValue::LValueBase Base(Key, Index, Version); in createTemporary()
1923 APValue &CallStackFrame::createParam(CallRef Args, const ParmVarDecl *PVD, in createParam()
1926 APValue::LValueBase Base(PVD, Index, Args.Version); in createParam()
1934 APValue &CallStackFrame::createLocal(APValue::LValueBase Base, const void *Key, in createLocal()
1938 APValue &Result = Temporaries[MapKeyTy(Key, Version)]; in createLocal()
1954 APValue *EvalInfo::createHeapAlloc(const Expr *E, QualType T, LValue &LV) { in createHeapAlloc()
1961 LV.set(APValue::LValueBase::getDynamicAlloc(DA, T)); in createHeapAlloc()
1996 APValue Val; in describe()
2016 APValue *V = Info.getParamSlot(Arguments, Param); in describe()
2034 APValue Scratch; in EvaluateIgnoredValue()
2050 static bool IsGlobalLValue(APValue::LValueBase B) { in IsGlobalLValue()
2159 static void NoteLValueLocation(EvalInfo &Info, APValue::LValueBase Base) { in NoteLValueLocation()
2204 QualType Type, const APValue &Value,
2218 APValue::LValueBase Base = LVal.getLValueBase(); in CheckLValueConstantExpression()
2349 APValue *V = MTE->getOrCreateValue(false); in CheckLValueConstantExpression()
2385 const APValue &Value, in CheckMemberPointerConstantExpression()
2434 QualType Type, const APValue &Value, in CheckEvaluationResult()
2483 const APValue &BaseValue = Value.getStructBase(BaseIndex); in CheckEvaluationResult()
2528 QualType Type, const APValue &Value, in CheckConstantExpression()
2543 QualType Type, const APValue &Value) { in CheckFullyInitialized()
2564 static bool EvalPointerValueAsBool(const APValue &Value, bool &Result) { in EvalPointerValueAsBool()
2580 static bool HandleConversionToBool(const APValue &Val, bool &Result) { in HandleConversionToBool()
2583 case APValue::None: in HandleConversionToBool()
2584 case APValue::Indeterminate: in HandleConversionToBool()
2586 case APValue::Int: in HandleConversionToBool()
2589 case APValue::FixedPoint: in HandleConversionToBool()
2592 case APValue::Float: in HandleConversionToBool()
2595 case APValue::ComplexInt: in HandleConversionToBool()
2599 case APValue::ComplexFloat: in HandleConversionToBool()
2603 case APValue::LValue: in HandleConversionToBool()
2605 case APValue::MemberPointer: in HandleConversionToBool()
2611 case APValue::Vector: in HandleConversionToBool()
2612 case APValue::Array: in HandleConversionToBool()
2613 case APValue::Struct: in HandleConversionToBool()
2614 case APValue::Union: in HandleConversionToBool()
2615 case APValue::AddrLabelDiff: in HandleConversionToBool()
2626 APValue Val; in EvaluateAsBooleanCondition()
2749 APValue &Value, const FieldDecl *FD) { in truncateBitfieldValue()
2980 static bool handleLogicalOpForVector(const APValue &LHSValue, in handleLogicalOpForVector()
2982 const APValue &RHSValue, APInt &Result) { in handleLogicalOpForVector()
2984 if (LHSValue.getKind() == APValue::Int) in handleLogicalOpForVector()
2987 assert(LHSValue.getKind() == APValue::Float && "Should be no other options"); in handleLogicalOpForVector()
3027 static bool handleCompareOpForVector(const APValue &LHSValue, in handleCompareOpForVector()
3029 const APValue &RHSValue, APInt &Result) { in handleCompareOpForVector()
3031 if (LHSValue.getKind() == APValue::Int) in handleCompareOpForVector()
3034 assert(LHSValue.getKind() == APValue::Float && "Should be no other options"); in handleCompareOpForVector()
3042 APValue &LHSValue, in handleVectorVectorBinOp()
3043 const APValue &RHSValue) { in handleVectorVectorBinOp()
3064 SmallVector<APValue, 4> ResultElements; in handleVectorVectorBinOp()
3067 APValue LHSElt = LHSValue.getVectorElt(EltNum); in handleVectorVectorBinOp()
3068 APValue RHSElt = RHSValue.getVectorElt(EltNum); in handleVectorVectorBinOp()
3090 assert(LHSElt.getKind() == APValue::Float && in handleVectorVectorBinOp()
3091 RHSElt.getKind() == APValue::Float && in handleVectorVectorBinOp()
3105 LHSValue = APValue(ResultElements.data(), ResultElements.size()); in handleVectorVectorBinOp()
3320 unsigned Version, APValue *&Result) { in evaluateVarDeclInit()
3321 APValue::LValueBase Base(VD, Frame ? Frame->Index : 0, Version); in evaluateVarDeclInit()
3493 APValue &Result, in expandStringLiteral()
3502 Result = APValue(APValue::UninitArray(), in expandStringLiteral()
3507 Result.getArrayFiller() = APValue(Value); in expandStringLiteral()
3510 Result.getArrayInitializedElt(I) = APValue(Value); in expandStringLiteral()
3515 static void expandArray(APValue &Array, unsigned Index) { in expandArray()
3525 APValue NewValue(APValue::UninitArray(), NewElts, Size); in expandArray()
3601 APValue::LValueBase Base, in lifetimeStartedInEvaluation()
3653 APValue::LValueBase Base;
3655 APValue *Value;
3660 CompleteObject(APValue::LValueBase Base, APValue *Value, QualType Type) in CompleteObject()
3716 APValue *O = Obj.Value; in findSubobject()
3871 O->setUnion(Field, APValue()); in findSubobject()
3905 APValue &Result;
3910 bool found(APValue &Subobj, QualType SubobjType) { in found()
3917 Result = APValue(Value); in found()
3921 Result = APValue(Value); in found()
3930 const SubobjectDesignator &Sub, APValue &Result, in extractSubobject()
3940 APValue &NewVal;
3956 bool found(APValue &Subobj, QualType SubobjType) { in found()
3989 APValue &NewVal) { in modifySubobject()
4095 APValue *BaseVal = nullptr; in findCompleteObject()
4111 APValue &V = GD->getAsAPValue(); in findCompleteObject()
4126 return CompleteObject(LVal.Base, const_cast<APValue *>(&GCD->getValue()), in findCompleteObject()
4136 return CompleteObject(LVal.Base, const_cast<APValue *>(&TPO->getValue()), in findCompleteObject()
4287 APValue Val; in findCompleteObject()
4337 const LValue &LVal, APValue &RVal, in handleLValueToRValueConversion()
4358 APValue Lit; in handleLValueToRValueConversion()
4406 RVal = APValue(extractStringLiteralCharacter(Info, Base, CharIndex)); in handleLValueToRValueConversion()
4417 QualType LValType, APValue &Val) { in handleAssignment()
4436 const APValue &RHS;
4452 bool found(APValue &Subobj, QualType SubobjType) { in found()
4454 case APValue::Int: in found()
4456 case APValue::Float: in found()
4458 case APValue::ComplexInt: in found()
4459 case APValue::ComplexFloat: in found()
4463 case APValue::LValue: in found()
4465 case APValue::Vector: in found()
4467 case APValue::Indeterminate: in found()
4479 bool foundVector(APValue &Value, QualType SubobjType) { in foundVector()
4529 bool foundPointer(APValue &Subobj, QualType SubobjType) { in foundPointer()
4565 const APValue &RVal) { in handleCompoundAssignment()
4585 APValue *Old;
4599 bool found(APValue &Subobj, QualType SubobjType) { in found()
4608 case APValue::Int: in found()
4610 case APValue::Float: in found()
4612 case APValue::ComplexInt: in found()
4616 case APValue::ComplexFloat: in found()
4620 case APValue::LValue: in found()
4639 if (Old) *Old = APValue(Value); in found()
4675 if (Old) *Old = APValue(Value); in found()
4686 bool foundPointer(APValue &Subobj, QualType SubobjType) { in foundPointer()
4711 QualType LValType, bool IsIncrement, APValue *Old) { in handleIncDec()
4896 static bool handleDefaultInitValue(QualType T, APValue &Result) { in handleDefaultInitValue()
4905 Result = APValue(); in handleDefaultInitValue()
4909 Result = APValue((const FieldDecl *)nullptr); in handleDefaultInitValue()
4912 Result = APValue(APValue::UninitStruct(), RD->getNumBases(), in handleDefaultInitValue()
4933 Result = APValue(APValue::UninitArray(), 0, AT->getZExtSize()); in handleDefaultInitValue()
4941 Result = APValue::IndeterminateValue(); in handleDefaultInitValue()
4970 APValue &Val = Info.CurrentCall->createTemporary(VD, VD->getType(), in EvaluateVarDecl()
4985 Val = APValue(); in EvaluateVarDecl()
5033 APValue &Value;
5743 bool found(APValue &Subobj, QualType SubobjType) { return true; } in found()
5775 APValue Val; in checkDynamicType()
5845 ArrayRef<APValue::LValuePathEntry> Path = This.Designator.Entries; in ComputeDynamicType()
5941 APValue &Result, in HandleCovariantReturnAdjustment()
6086 bool found(APValue &Subobj, QualType SubobjType) { in found()
6109 APValue Result; in found()
6241 APValue &V = PVD ? Info.CurrentCall->createParam(Call, PVD, LV) in EvaluateCallArg()
6297 const Expr *E, APValue &Result, in handleTrivialCopy()
6301 APValue *RefValue = Info.getParamSlot(Frame->Arguments, Param); in handleTrivialCopy()
6320 APValue &Result, const LValue *ResultSlot) { in HandleFunctionCall()
6339 APValue RHSValue; in HandleFunctionCall()
6374 EvalInfo &Info, APValue &Result) { in HandleConstructorCall()
6393 APValue RetVal; in HandleConstructorCall()
6430 Result = APValue(APValue::UninitStruct(), RD->getNumBases(), in HandleConstructorCall()
6434 Result = APValue((const FieldDecl*)nullptr); in HandleConstructorCall()
6471 APValue *Value = &Result; in HandleConstructorCall()
6493 Result = APValue(FD); in HandleConstructorCall()
6514 *Value = APValue(FD); in HandleConstructorCall()
6588 EvalInfo &Info, APValue &Result) { in HandleConstructorCall()
6599 const LValue &This, APValue &Value, in HandleDestructionImpl()
6606 APValue Printable; in HandleDestructionImpl()
6638 APValue &Elem = Value.getArrayInitializedElt(Size - 1); in HandleDestructionImpl()
6645 Value = APValue(); in HandleDestructionImpl()
6658 Value = APValue(); in HandleDestructionImpl()
6684 Value = APValue(); in HandleDestructionImpl()
6718 APValue RetVal; in HandleDestructionImpl()
6740 APValue *SubobjectValue = &Value.getStructField(FD->getFieldIndex()); in HandleDestructionImpl()
6759 APValue *SubobjectValue = &Value.getStructBase(BasesLeft); in HandleDestructionImpl()
6767 Value = APValue(); in HandleDestructionImpl()
6780 bool found(APValue &Subobj, QualType SubobjType) { in found()
6806 APValue::LValueBase LVBase, APValue &Value, in HandleDestruction()
6875 APValue *Val = Info.createHeapAlloc(E, AllocType, Result); in HandleOperatorNewCall()
6876 *Val = APValue(APValue::UninitArray(), 0, Size.getZExtValue()); in HandleOperatorNewCall()
7047 bool visit(const APValue &Val, QualType Ty) { in visit()
7052 bool visit(const APValue &Val, QualType Ty, CharUnits Offset) { in visit()
7061 case APValue::Indeterminate: in visit()
7062 case APValue::None: in visit()
7065 case APValue::Int: in visit()
7067 case APValue::Float: in visit()
7069 case APValue::Array: in visit()
7071 case APValue::Struct: in visit()
7073 case APValue::Vector: in visit()
7076 case APValue::ComplexInt: in visit()
7077 case APValue::ComplexFloat: in visit()
7078 case APValue::FixedPoint: in visit()
7081 case APValue::Union: in visit()
7082 case APValue::MemberPointer: in visit()
7083 case APValue::AddrLabelDiff: { in visit()
7090 case APValue::LValue: in visit()
7096 bool visitRecord(const APValue &Val, QualType Ty, CharUnits Offset) { in visitRecord()
7136 bool visitArray(const APValue &Val, QualType Ty, CharUnits Offset) { in visitArray()
7147 const APValue &SubObj = Val.getArrayInitializedElt(I); in visitArray()
7154 const APValue &Filler = Val.getArrayFiller(); in visitArray()
7164 bool visitVector(const APValue &Val, QualType Ty, CharUnits Offset) { in visitVector()
7251 convert(EvalInfo &Info, const APValue &Src, const CastExpr *BCE) { in convert()
7287 std::optional<APValue> visit(const BuiltinType *T, CharUnits Offset, in visit()
7291 return APValue((Expr *)nullptr, in visit()
7293 APValue::NoLValuePath{}, /*IsNullPtr=*/true); in visit()
7327 return APValue::IndeterminateValue(); in visit()
7344 return APValue(Val); in visit()
7350 return APValue(APFloat(Semantics, Val)); in visit()
7356 std::optional<APValue> visit(const RecordType *RTy, CharUnits Offset) { in visit()
7364 APValue ResultVal(APValue::UninitStruct(), NumBases, in visit()
7373 std::optional<APValue> SubObj = visitType( in visit()
7399 std::optional<APValue> SubObj = visitType(FieldTy, FieldOffset); in visit()
7409 std::optional<APValue> visit(const EnumType *Ty, CharUnits Offset) { in visit()
7420 std::optional<APValue> visit(const ConstantArrayType *Ty, CharUnits Offset) { in visit()
7424 APValue ArrayValue(APValue::UninitArray(), Size, Size); in visit()
7426 std::optional<APValue> ElementValue = in visit()
7436 std::optional<APValue> visit(const VectorType *VTy, CharUnits Offset) { in visit()
7464 SmallVector<APValue, 4> Elts; in visit()
7496 std::optional<APValue> EltValue = in visit()
7504 return APValue(Elts.data(), Elts.size()); in visit()
7507 std::optional<APValue> visit(const Type *Ty, CharUnits Offset) { in visit()
7511 std::optional<APValue> visitType(QualType Ty, CharUnits Offset) { in visitType()
7536 static std::optional<APValue> convert(EvalInfo &Info, BitCastBuffer &Buffer, in convert()
7606 static bool handleRValueToRValueBitCast(EvalInfo &Info, APValue &DestValue, in handleRValueToRValueBitCast()
7607 const APValue &SourceRValue, in handleRValueToRValueBitCast()
7622 std::optional<APValue> MaybeDestValue = in handleRValueToRValueBitCast()
7631 static bool handleLValueToRValueBitCast(EvalInfo &Info, APValue &DestValue, in handleLValueToRValueBitCast()
7632 APValue &SourceValue, in handleLValueToRValueBitCast()
7640 APValue SourceRValue; in handleLValueToRValueBitCast()
7655 bool DerivedSuccess(const APValue &V, const Expr *E) { in DerivedSuccess()
7827 APValue Result; in VisitBinaryOperator()
7881 if (APValue *Value = Info.CurrentCall->getCurrentTemporary(E); in VisitOpaqueValueExpr()
7927 APValue Result; in VisitCallExpr()
7933 bool handleCallExpr(const CallExpr *E, APValue &Result, in handleCallExpr()
8166 APValue Val; in VisitMemberExpr()
8181 CompleteObject Obj(APValue::LValueBase(), &Val, BaseTy); in VisitMemberExpr()
8185 APValue Result; in VisitMemberExpr()
8191 APValue Val; in VisitExtVectorElementExpr()
8203 SmallVector<APValue, 4> Elts; in VisitExtVectorElementExpr()
8207 APValue VecResult(Elts.data(), Indices.size()); in VisitExtVectorElementExpr()
8221 APValue AtomicVal; in VisitCastExpr()
8238 APValue RVal; in VisitCastExpr()
8246 APValue DestValue, SourceValue; in VisitCastExpr()
8255 APValue Value; in VisitCastExpr()
8278 APValue RVal; in VisitUnaryPostIncDec()
8309 APValue ReturnValue; in VisitStmtExpr()
8360 bool Success(APValue::LValueBase B) { in Success()
8374 bool Success(const APValue &V, const Expr *E) { in Success()
8415 APValue RefValue; in VisitMemberExpr()
8564 APValue *RefValue = Info.getParamSlot(Info.CurrentCall->Arguments, Self); in HandleLambdaCapture()
8586 APValue RVal; in HandleLambdaCapture()
8685 APValue *V; in VisitVarDecl()
8734 APValue *Value; in VisitMaterializeTemporaryExpr()
8740 *Value = APValue(); in VisitMaterializeTemporaryExpr()
8754 *Value = APValue(); in VisitMaterializeTemporaryExpr()
8823 return Success(APValue::LValueBase::getTypeInfo(TypeInfo, E->getType())); in VisitCXXTypeidExpr()
8915 APValue RHS; in VisitCompoundAssignOperator()
8939 APValue NewVal; in VisitBinAssign()
9028 static bool evaluateLValueAsAllocSize(EvalInfo &Info, APValue::LValueBase Base, in evaluateLValueAsAllocSize()
9086 bool Success(const APValue &V, const Expr *E) { in Success()
9165 APValue LValResult = E->EvaluateInContext( in VisitSourceLocExpr()
9342 APValue Value; in VisitCastExpr()
9374 APValue &Value = Info.CurrentCall->createTemporary( in VisitCastExpr()
9396 APValue RVal; in VisitCastExpr()
9716 APValue Char; in VisitBuiltinCallExpr()
9778 APValue Val; in VisitBuiltinCallExpr()
9862 APValue Val; in VisitBuiltinCallExpr()
9884 APValue &Result, const InitListExpr *ILE,
9887 APValue &Result,
10021 APValue *Val; in VisitCXXNewExpr()
10029 APValue *Value; in VisitCXXNewExpr()
10033 bool found(APValue &Subobj, QualType SubobjType) { in VisitCXXNewExpr()
10064 *Val = APValue(); in VisitCXXNewExpr()
10116 bool Success(const APValue &V, const Expr *E) { in Success()
10195 APValue &Result;
10198 RecordExprEvaluator(EvalInfo &info, const LValue &This, APValue &Result) in RecordExprEvaluator()
10201 bool Success(const APValue &V, const Expr *E) { in Success()
10238 const LValue &This, APValue &Result) { in HandleClassZeroInitialization()
10241 Result = APValue(APValue::UninitStruct(), CD ? CD->getNumBases() : 0, in HandleClassZeroInitialization()
10289 Result = APValue((const FieldDecl*)nullptr); in ZeroInitialization()
10296 Result = APValue(*I); in ZeroInitialization()
10319 APValue DerivedObject; in VisitCastExpr()
10326 APValue *Value = &DerivedObject; in VisitCastExpr()
10371 Result = APValue(Field); in VisitCXXParenListOrInitListExpr()
10402 Result = APValue(APValue::UninitStruct(), CXXRD ? CXXRD->getNumBases() : 0, in VisitCXXParenListOrInitListExpr()
10417 APValue &FieldVal = Result.getStructBase(ElementNo); in VisitCXXParenListOrInitListExpr()
10466 APValue &FieldVal = Result.getStructField(Field->getFieldIndex()); in VisitCXXParenListOrInitListExpr()
10567 Result = APValue(APValue::UninitStruct(), 0, 2); in VisitCXXStdInitializerListExpr()
10582 Result.getStructField(1) = APValue(APSInt(ArrayType->getSize())); in VisitCXXStdInitializerListExpr()
10614 Result = APValue(APValue::UninitStruct(), /*NumBases*/0, NumFields); in VisitLambdaExpr()
10635 APValue &FieldVal = Result.getStructField(Field->getFieldIndex()); in VisitLambdaExpr()
10646 APValue &Result, EvalInfo &Info) { in EvaluateRecord()
10669 APValue &Value = Info.CurrentCall->createTemporary( in VisitConstructExpr()
10715 APValue &Result;
10718 VectorExprEvaluator(EvalInfo &info, APValue &Result) in VectorExprEvaluator()
10721 bool Success(ArrayRef<APValue> V, const Expr *E) { in Success()
10724 Result = APValue(V.data(), V.size()); in Success()
10727 bool Success(const APValue &V, const Expr *E) { in Success()
10749 static bool EvaluateVector(const Expr* E, APValue& Result, EvalInfo &Info) { in EvaluateVector()
10764 APValue Val = APValue(); in VisitCastExpr()
10769 Val = APValue(std::move(IntResult)); in VisitCastExpr()
10774 Val = APValue(std::move(FloatResult)); in VisitCastExpr()
10780 SmallVector<APValue, 4> Elts(NElts, Val); in VisitCastExpr()
10784 APValue SVal; in VisitCastExpr()
10813 SmallVector<APValue, 4> Elements; in VisitInitListExpr()
10824 APValue v; in VisitInitListExpr()
10838 Elements.push_back(APValue(sInt)); in VisitInitListExpr()
10847 Elements.push_back(APValue(f)); in VisitInitListExpr()
10859 APValue ZeroElement; in ZeroInitialization()
10861 ZeroElement = APValue(Info.Ctx.MakeIntValue(0, EltTy)); in ZeroInitialization()
10864 APValue(APFloat::getZero(Info.Ctx.getFloatTypeSemantics(EltTy))); in ZeroInitialization()
10866 SmallVector<APValue, 4> Elements(VT->getNumElements(), ZeroElement); in ZeroInitialization()
10896 APValue LHSValue; in VisitBinaryOperator()
10897 APValue RHSValue; in VisitBinaryOperator()
10910 static std::optional<APValue> handleVectorUnaryOperator(ASTContext &Ctx, in handleVectorUnaryOperator()
10913 APValue Elt) { in handleVectorUnaryOperator()
10919 if (Elt.getKind() == APValue::Int) { in handleVectorUnaryOperator()
10922 assert(Elt.getKind() == APValue::Float && in handleVectorUnaryOperator()
10930 assert(Elt.getKind() == APValue::Int && in handleVectorUnaryOperator()
10935 if (Elt.getKind() == APValue::Int) { in handleVectorUnaryOperator()
10941 assert(Elt.getKind() == APValue::Float && in handleVectorUnaryOperator()
10952 return APValue{EltResult}; in handleVectorUnaryOperator()
10969 APValue SubExprValue; in VisitUnaryOperator()
10985 SmallVector<APValue, 4> ResultElements; in VisitUnaryOperator()
10987 std::optional<APValue> Elt = handleVectorUnaryOperator( in VisitUnaryOperator()
10993 return Success(APValue(ResultElements.data(), ResultElements.size()), E); in VisitUnaryOperator()
10998 QualType DestTy, APValue const &Original, in handleVectorElementCast()
10999 APValue &Result) { in handleVectorElementCast()
11002 Result = APValue(APFloat(0.0)); in handleVectorElementCast()
11007 Result = APValue( in handleVectorElementCast()
11018 Result = APValue(APSInt()); in handleVectorElementCast()
11030 APValue Source; in VisitConvertVectorExpr()
11041 SmallVector<APValue, 4> ResultElements; in VisitConvertVectorExpr()
11044 APValue Elt; in VisitConvertVectorExpr()
11051 return Success(APValue(ResultElements.data(), ResultElements.size()), E); in VisitConvertVectorExpr()
11055 QualType ElemType, APValue const &VecVal1, in handleVectorShuffle()
11056 APValue const &VecVal2, unsigned EltNum, in handleVectorShuffle()
11057 APValue &Result) { in handleVectorShuffle()
11086 APValue VecVal1; in VisitShuffleVectorExpr()
11090 APValue VecVal2; in VisitShuffleVectorExpr()
11100 SmallVector<APValue, 4> ResultElements; in VisitShuffleVectorExpr()
11103 APValue Elt; in VisitShuffleVectorExpr()
11109 return Success(APValue(ResultElements.data(), ResultElements.size()), E); in VisitShuffleVectorExpr()
11120 APValue &Result;
11123 ArrayExprEvaluator(EvalInfo &Info, const LValue &This, APValue &Result) in ArrayExprEvaluator()
11126 bool Success(const APValue &V, const Expr *E) { in Success()
11140 Result = APValue(APValue::UninitArray(), 0, 0); in ZeroInitialization()
11147 Result = APValue(APValue::UninitArray(), 0, CAT->getZExtSize()); in ZeroInitialization()
11167 APValue *Value, QualType Type);
11182 APValue &Result, EvalInfo &Info) { in EvaluateArray()
11190 APValue &Result, const InitListExpr *ILE, in EvaluateArrayNewInitList()
11200 APValue &Result, in EvaluateArrayNewConstructExpr()
11267 APValue Filler; in VisitCXXParenListOrInitListExpr()
11291 Result = APValue(APValue::UninitArray(), NumEltsToInit, NumElts); in VisitCXXParenListOrInitListExpr()
11329 Result.getArrayInitializedElt(ArrayIndex) = APValue(Value); in VisitCXXParenListOrInitListExpr()
11338 Result.getArrayInitializedElt(ArrayIndex) = APValue(FValue); in VisitCXXParenListOrInitListExpr()
11373 Result = APValue(APValue::UninitArray(), Elements, Elements); in VisitArrayInitLoopExpr()
11412 APValue *Value, in VisitCXXConstructExpr()
11420 APValue Filler = in VisitCXXConstructExpr()
11422 : APValue(); in VisitCXXConstructExpr()
11424 *Value = APValue(APValue::UninitArray(), 0, FinalSize); in VisitCXXConstructExpr()
11444 APValue NewValue(APValue::UninitArray(), N, FinalSize); in VisitCXXConstructExpr()
11457 APValue &FirstResult = Value->getArrayInitializedElt(0); in VisitCXXConstructExpr()
11507 APValue &Result;
11509 IntExprEvaluator(EvalInfo &info, APValue &result) in IntExprEvaluator()
11512 bool Success(const llvm::APSInt &SI, const Expr *E, APValue &Result) { in Success()
11519 Result = APValue(SI); in Success()
11526 bool Success(const llvm::APInt &I, const Expr *E, APValue &Result) { in Success()
11531 Result = APValue(APSInt(I)); in Success()
11540 bool Success(uint64_t Value, const Expr *E, APValue &Result) { in Success()
11543 Result = APValue(Info.Ctx.MakeIntValue(Value, E->getType())); in Success()
11554 bool Success(const APValue &V, const Expr *E) { in Success()
11648 APValue &Result;
11651 FixedPointExprEvaluator(EvalInfo &info, APValue &result) in FixedPointExprEvaluator()
11664 bool Success(const APValue &V, const Expr *E) { in Success()
11672 Result = APValue(V); in Success()
11702 static bool EvaluateIntegerOrLValue(const Expr *E, APValue &Result, in EvaluateIntegerOrLValue()
11711 APValue Val; in EvaluateInteger()
11725 APValue Evaluated = E->EvaluateInContext( in VisitSourceLocExpr()
11734 APValue Val; in EvaluateFixedPoint()
11959 static bool EvaluateBuiltinConstantPForLValue(const APValue &LV) { in EvaluateBuiltinConstantPForLValue()
11960 APValue::LValueBase Base = LV.getLValueBase(); in EvaluateBuiltinConstantPForLValue()
12009 APValue V; in EvaluateBuiltinConstantP()
12016 if (V.getKind() == APValue::LValue) in EvaluateBuiltinConstantP()
12029 static QualType getObjectType(APValue::LValueBase B) { in getObjectType()
12347 APValue RVal; in tryEvaluateBuiltinObjectSize()
12383 APValue &Val, APSInt &Alignment) { in getBuiltinAlignArguments()
12403 Val = APValue(SrcInt); in getBuiltinAlignArguments()
12452 APValue Src; in VisitBuiltinCallExpr()
12486 APValue Src; in VisitBuiltinCallExpr()
12499 APValue Src; in VisitBuiltinCallExpr()
12893 const auto &ReadCurElems = [&](APValue &Char1, APValue &Char2) { in VisitBuiltinCallExpr()
12917 APValue Char1, Char2; in VisitBuiltinCallExpr()
13044 APValue APV{CarryOut}; in VisitBuiltinCallExpr()
13161 APValue APV{Result}; in VisitBuiltinCallExpr()
13209 APValue Val;
13241 APValue &FinalResult;
13244 DataRecursiveIntBinOpEvaluator(IntExprEvaluator &IntEval, APValue &Result) in DataRecursiveIntBinOpEvaluator()
13271 bool Success(uint64_t Value, const Expr *E, APValue &Result) { in Success()
13274 bool Success(const APSInt &Value, const Expr *E, APValue &Result) { in Success()
13293 const BinaryOperator *E, APValue &Result);
13298 Result.Val = APValue(); in EvaluateExpr()
13358 static void addOrSubLValueAsInteger(APValue &LVal, const APSInt &Index, in addOrSubLValueAsInteger()
13373 const BinaryOperator *E, APValue &Result) { in VisitBinOp()
13411 const APValue &LHSVal = LHSResult.Val; in VisitBinOp()
13412 const APValue &RHSVal = RHSResult.Val; in VisitBinOp()
13446 Result = APValue(LHSAddrExpr, RHSAddrExpr); in VisitBinOp()
13993 return Success(APValue(LHSAddrExpr, RHSAddrExpr), E); in VisitBinaryOperator()
14344 APValue Val; in VisitCastExpr()
14442 APValue V; in VisitCastExpr()
14707 bool Success(const APValue &V, const Expr *e) { in Success()
15009 bool Success(const APValue &V, const Expr *e) { in Success()
15562 APValue &Result;
15564 AtomicExprEvaluator(EvalInfo &Info, const LValue *This, APValue &Result) in AtomicExprEvaluator()
15567 bool Success(const APValue &V, const Expr *E) { in Success()
15596 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result, in EvaluateAtomic()
15614 bool Success(const APValue &V, const Expr *e) { return true; } in Success()
15733 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E) { in Evaluate()
15758 Result = APValue(F); in Evaluate()
15774 APValue &Value = in Evaluate()
15781 APValue &Value = in Evaluate()
15796 APValue &Value = Info.CurrentCall->createTemporary( in Evaluate()
15819 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info, const LValue &This, in EvaluateInPlace()
15847 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result) { in EvaluateAsRValue()
15885 Result.Val = APValue(APSInt(L->getValue(), in FastEvaluateAsRValue()
15892 Result.Val = APValue(APSInt(APInt(1, L->getValue()))); in FastEvaluateAsRValue()
15899 APValue APV = CE->getAPValueResult(); in FastEvaluateAsRValue()
16059 static bool EvaluateDestruction(const ASTContext &Ctx, APValue::LValueBase Base, in EvaluateDestruction()
16060 APValue DestroyedValue, QualType Type, in EvaluateDestruction()
16112 APValue::LValueBase Base(&BaseMTE); in EvaluateAsConstantExpr()
16154 bool Expr::EvaluateAsInitializer(APValue &Value, const ASTContext &Ctx, in EvaluateAsInitializer()
16235 APValue DestroyedValue; in evaluateDestruction()
16784 APValue Result; in EvaluateCPlusPlus11IntegralConstantExpr()
16855 bool Expr::isCXX11ConstantExpr(const ASTContext &Ctx, APValue *Result, in isCXX11ConstantExpr()
16870 APValue Scratch; in isCXX11ConstantExpr()
16888 bool Expr::EvaluateWithSubstitution(APValue &Value, ASTContext &Ctx, in EvaluateWithSubstitution()
16937 if (APValue *Slot = Info.getParamSlot(Call, PVD)) in EvaluateWithSubstitution()
16938 *Slot = APValue(); in EvaluateWithSubstitution()
17001 APValue Scratch; in isPotentialConstantExpr()
17037 APValue ResultScratch; in isPotentialConstantExprUnevaluated()
17090 APValue Char; in EvaluateBuiltinStrLen()
17135 APValue Char; in EvaluateCharRangeAsString()