Lines Matching refs:APValue
81 static QualType getType(APValue::LValueBase B) { in getType()
87 static const FieldDecl *getAsField(APValue::LValuePathEntry E) { in getAsField()
92 static const CXXRecordDecl *getAsBaseClass(APValue::LValuePathEntry E) { in getAsBaseClass()
97 static bool isVirtualBaseClass(APValue::LValuePathEntry E) { in isVirtualBaseClass()
143 static bool isBaseAnAllocSizeCall(APValue::LValueBase Base) { in isBaseAnAllocSizeCall()
190 findMostDerivedSubobject(ASTContext &Ctx, APValue::LValueBase Base, in findMostDerivedSubobject()
191 ArrayRef<APValue::LValuePathEntry> Path, in findMostDerivedSubobject()
267 typedef APValue::LValuePathEntry PathEntry;
280 SubobjectDesignator(ASTContext &Ctx, const APValue &V) in SubobjectDesignator()
301 void truncate(ASTContext &Ctx, APValue::LValueBase Base, in truncate()
416 Entries.push_back(APValue::BaseOrMemberType(D, Virtual)); in addDeclUnchecked()
545 typedef std::map<MapKeyTy, APValue> MapTy;
590 APValue *getTemporary(const void *Key, unsigned Version) { in getTemporary()
599 APValue *getCurrentTemporary(const void *Key) { in getCurrentTemporary()
619 APValue &createTemporary(const KeyT *Key, QualType T,
623 APValue &createParam(CallRef Args, const ParmVarDecl *PVD, LValue &LV);
639 APValue &createLocal(APValue::LValueBase Base, const void *Key, QualType T,
676 APValue::LValueBase LVBase, APValue &Value,
682 llvm::PointerIntPair<APValue*, 2, ScopeKind> Value;
683 APValue::LValueBase Base;
687 Cleanup(APValue *Val, APValue::LValueBase Base, QualType T, in Cleanup()
705 *Value.getPointer() = APValue(); in endLifetime()
716 APValue::LValueBase Base;
717 ArrayRef<APValue::LValuePathEntry> Path;
738 using Base = DenseMapInfo<APValue::LValueBase>;
758 APValue Value;
835 APValue::LValueBase EvaluatingDecl;
848 APValue *EvaluatingDeclValue;
907 isEvaluatingCtorDtor(APValue::LValueBase Base, in isEvaluatingCtorDtor()
908 ArrayRef<APValue::LValuePathEntry> Path) { in isEvaluatingCtorDtor()
991 void setEvaluatingDecl(APValue::LValueBase Base, APValue &Value, in setEvaluatingDecl()
1040 APValue *createHeapAlloc(const Expr *E, QualType T, LValue &LV);
1051 APValue *getParamSlot(CallRef Call, const ParmVarDecl *PVD) { in getParamSlot()
1528 void moveInto(APValue &v) const { in moveInto()
1530 v = APValue(FloatReal, FloatImag); in moveInto()
1532 v = APValue(IntReal, IntImag); in moveInto()
1534 void setFrom(const APValue &v) { in setFrom()
1549 APValue::LValueBase Base;
1555 const APValue::LValueBase getLValueBase() const { return Base; } in getLValueBase()
1565 void moveInto(APValue &V) const { in moveInto()
1567 V = APValue(Base, Offset, APValue::NoLValuePath(), IsNullPtr); in moveInto()
1570 V = APValue(Base, Offset, Designator.Entries, in moveInto()
1574 void setFrom(ASTContext &Ctx, const APValue &V) { in setFrom()
1583 void set(APValue::LValueBase B, bool BInvalid = false) { in set()
1609 void setInvalid(APValue::LValueBase B, unsigned I = 0) { in setInvalid()
1614 APValue Printable; in toString()
1730 void moveInto(APValue &V) const { in moveInto()
1731 V = APValue(getDecl(), isDerivedMember(), Path); in moveInto()
1733 void setFrom(const APValue &V) { in setFrom()
1809 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E);
1810 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info,
1821 static bool EvaluateIntegerOrLValue(const Expr *E, APValue &Result,
1825 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result,
1827 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result);
1854 APValue &CallStackFrame::createTemporary(const KeyT *Key, QualType T, in createTemporary()
1857 APValue::LValueBase Base(Key, Index, Version); in createTemporary()
1863 APValue &CallStackFrame::createParam(CallRef Args, const ParmVarDecl *PVD, in createParam()
1866 APValue::LValueBase Base(PVD, Index, Args.Version); in createParam()
1874 APValue &CallStackFrame::createLocal(APValue::LValueBase Base, const void *Key, in createLocal()
1878 APValue &Result = Temporaries[MapKeyTy(Key, Version)]; in createLocal()
1894 APValue *EvalInfo::createHeapAlloc(const Expr *E, QualType T, LValue &LV) { in createHeapAlloc()
1901 LV.set(APValue::LValueBase::getDynamicAlloc(DA, T)); in createHeapAlloc()
1920 APValue Val; in describe()
1935 APValue *V = Info.getParamSlot(Arguments, Param); in describe()
1953 APValue Scratch; in EvaluateIgnoredValue()
1968 static bool IsGlobalLValue(APValue::LValueBase B) { in IsGlobalLValue()
2076 static void NoteLValueLocation(EvalInfo &Info, APValue::LValueBase Base) { in NoteLValueLocation()
2120 QualType Type, const APValue &Value,
2134 APValue::LValueBase Base = LVal.getLValueBase(); in CheckLValueConstantExpression()
2266 APValue *V = MTE->getOrCreateValue(false); in CheckLValueConstantExpression()
2302 const APValue &Value, in CheckMemberPointerConstantExpression()
2351 QualType Type, const APValue &Value, in CheckEvaluationResult()
2434 QualType Type, const APValue &Value, in CheckConstantExpression()
2449 QualType Type, const APValue &Value) { in CheckFullyInitialized()
2470 static bool EvalPointerValueAsBool(const APValue &Value, bool &Result) { in EvalPointerValueAsBool()
2486 static bool HandleConversionToBool(const APValue &Val, bool &Result) { in HandleConversionToBool()
2489 case APValue::None: in HandleConversionToBool()
2490 case APValue::Indeterminate: in HandleConversionToBool()
2492 case APValue::Int: in HandleConversionToBool()
2495 case APValue::FixedPoint: in HandleConversionToBool()
2498 case APValue::Float: in HandleConversionToBool()
2501 case APValue::ComplexInt: in HandleConversionToBool()
2505 case APValue::ComplexFloat: in HandleConversionToBool()
2509 case APValue::LValue: in HandleConversionToBool()
2511 case APValue::MemberPointer: in HandleConversionToBool()
2517 case APValue::Vector: in HandleConversionToBool()
2518 case APValue::Array: in HandleConversionToBool()
2519 case APValue::Struct: in HandleConversionToBool()
2520 case APValue::Union: in HandleConversionToBool()
2521 case APValue::AddrLabelDiff: in HandleConversionToBool()
2532 APValue Val; in EvaluateAsBooleanCondition()
2651 APValue &Value, const FieldDecl *FD) { in truncateBitfieldValue()
2673 APValue SVal; in EvalAndBitcastToAPInt()
2692 APValue &Elt = SVal.getVectorElt(i); in EvalAndBitcastToAPInt()
2911 static bool handleLogicalOpForVector(const APValue &LHSValue, in handleLogicalOpForVector()
2913 const APValue &RHSValue, APInt &Result) { in handleLogicalOpForVector()
2915 if (LHSValue.getKind() == APValue::Int) in handleLogicalOpForVector()
2918 assert(LHSValue.getKind() == APValue::Float && "Should be no other options"); in handleLogicalOpForVector()
2958 static bool handleCompareOpForVector(const APValue &LHSValue, in handleCompareOpForVector()
2960 const APValue &RHSValue, APInt &Result) { in handleCompareOpForVector()
2962 if (LHSValue.getKind() == APValue::Int) in handleCompareOpForVector()
2965 assert(LHSValue.getKind() == APValue::Float && "Should be no other options"); in handleCompareOpForVector()
2973 APValue &LHSValue, in handleVectorVectorBinOp()
2974 const APValue &RHSValue) { in handleVectorVectorBinOp()
2995 SmallVector<APValue, 4> ResultElements; in handleVectorVectorBinOp()
2998 APValue LHSElt = LHSValue.getVectorElt(EltNum); in handleVectorVectorBinOp()
2999 APValue RHSElt = RHSValue.getVectorElt(EltNum); in handleVectorVectorBinOp()
3021 assert(LHSElt.getKind() == APValue::Float && in handleVectorVectorBinOp()
3022 RHSElt.getKind() == APValue::Float && in handleVectorVectorBinOp()
3036 LHSValue = APValue(ResultElements.data(), ResultElements.size()); in handleVectorVectorBinOp()
3243 unsigned Version, APValue *&Result) { in evaluateVarDeclInit()
3244 APValue::LValueBase Base(VD, Frame ? Frame->Index : 0, Version); in evaluateVarDeclInit()
3414 APValue &Result, in expandStringLiteral()
3423 Result = APValue(APValue::UninitArray(), in expandStringLiteral()
3428 Result.getArrayFiller() = APValue(Value); in expandStringLiteral()
3431 Result.getArrayInitializedElt(I) = APValue(Value); in expandStringLiteral()
3436 static void expandArray(APValue &Array, unsigned Index) { in expandArray()
3446 APValue NewValue(APValue::UninitArray(), NewElts, Size); in expandArray()
3522 APValue::LValueBase Base, in lifetimeStartedInEvaluation()
3566 APValue::LValueBase Base;
3568 APValue *Value;
3573 CompleteObject(APValue::LValueBase Base, APValue *Value, QualType Type) in CompleteObject()
3629 APValue *O = Obj.Value; in findSubobject()
3780 O->setUnion(Field, APValue()); in findSubobject()
3814 APValue &Result;
3819 bool found(APValue &Subobj, QualType SubobjType) { in found()
3826 Result = APValue(Value); in found()
3830 Result = APValue(Value); in found()
3839 const SubobjectDesignator &Sub, APValue &Result, in extractSubobject()
3849 APValue &NewVal;
3865 bool found(APValue &Subobj, QualType SubobjType) { in found()
3898 APValue &NewVal) { in modifySubobject()
4004 APValue *BaseVal = nullptr; in findCompleteObject()
4020 APValue &V = GD->getAsAPValue(); in findCompleteObject()
4035 return CompleteObject(LVal.Base, const_cast<APValue *>(&GCD->getValue()), in findCompleteObject()
4045 return CompleteObject(LVal.Base, const_cast<APValue *>(&TPO->getValue()), in findCompleteObject()
4189 APValue Val; in findCompleteObject()
4239 const LValue &LVal, APValue &RVal, in handleLValueToRValueConversion()
4260 APValue Lit; in handleLValueToRValueConversion()
4308 RVal = APValue(extractStringLiteralCharacter(Info, Base, CharIndex)); in handleLValueToRValueConversion()
4319 QualType LValType, APValue &Val) { in handleAssignment()
4338 const APValue &RHS;
4354 bool found(APValue &Subobj, QualType SubobjType) { in found()
4356 case APValue::Int: in found()
4358 case APValue::Float: in found()
4360 case APValue::ComplexInt: in found()
4361 case APValue::ComplexFloat: in found()
4365 case APValue::LValue: in found()
4367 case APValue::Vector: in found()
4376 bool foundVector(APValue &Value, QualType SubobjType) { in foundVector()
4426 bool foundPointer(APValue &Subobj, QualType SubobjType) { in foundPointer()
4462 const APValue &RVal) { in handleCompoundAssignment()
4482 APValue *Old;
4496 bool found(APValue &Subobj, QualType SubobjType) { in found()
4505 case APValue::Int: in found()
4507 case APValue::Float: in found()
4509 case APValue::ComplexInt: in found()
4513 case APValue::ComplexFloat: in found()
4517 case APValue::LValue: in found()
4536 if (Old) *Old = APValue(Value); in found()
4572 if (Old) *Old = APValue(Value); in found()
4581 bool foundPointer(APValue &Subobj, QualType SubobjType) { in foundPointer()
4606 QualType LValType, bool IsIncrement, APValue *Old) { in handleIncDec()
4788 static bool getDefaultInitValue(QualType T, APValue &Result) { in getDefaultInitValue()
4792 Result = APValue(); in getDefaultInitValue()
4796 Result = APValue((const FieldDecl *)nullptr); in getDefaultInitValue()
4799 Result = APValue(APValue::UninitStruct(), RD->getNumBases(), in getDefaultInitValue()
4819 Result = APValue(APValue::UninitArray(), 0, AT->getSize().getZExtValue()); in getDefaultInitValue()
4827 Result = APValue::IndeterminateValue(); in getDefaultInitValue()
4856 APValue &Val = Info.CurrentCall->createTemporary(VD, VD->getType(), in EvaluateVarDecl()
4871 Val = APValue(); in EvaluateVarDecl()
4919 APValue &Value;
5597 bool found(APValue &Subobj, QualType SubobjType) { return true; } in found()
5629 APValue Val; in checkDynamicType()
5699 ArrayRef<APValue::LValuePathEntry> Path = This.Designator.Entries; in ComputeDynamicType()
5795 APValue &Result, in HandleCovariantReturnAdjustment()
5940 bool found(APValue &Subobj, QualType SubobjType) { in found()
5963 APValue Result; in found()
6088 APValue &V = PVD ? Info.CurrentCall->createParam(Call, PVD, LV) in EvaluateCallArg()
6144 const Expr *E, APValue &Result, in handleTrivialCopy()
6148 APValue *RefValue = Info.getParamSlot(Frame->Arguments, Param); in handleTrivialCopy()
6167 APValue &Result, const LValue *ResultSlot) { in HandleFunctionCall()
6186 APValue RHSValue; in HandleFunctionCall()
6221 EvalInfo &Info, APValue &Result) { in HandleConstructorCall()
6240 APValue RetVal; in HandleConstructorCall()
6277 Result = APValue(APValue::UninitStruct(), RD->getNumBases(), in HandleConstructorCall()
6281 Result = APValue((const FieldDecl*)nullptr); in HandleConstructorCall()
6318 APValue *Value = &Result; in HandleConstructorCall()
6340 Result = APValue(FD); in HandleConstructorCall()
6361 *Value = APValue(FD); in HandleConstructorCall()
6434 EvalInfo &Info, APValue &Result) { in HandleConstructorCall()
6445 const LValue &This, APValue &Value, in HandleDestructionImpl()
6452 APValue Printable; in HandleDestructionImpl()
6480 APValue &Elem = Value.getArrayInitializedElt(Size - 1); in HandleDestructionImpl()
6487 Value = APValue(); in HandleDestructionImpl()
6498 Value = APValue(); in HandleDestructionImpl()
6524 Value = APValue(); in HandleDestructionImpl()
6557 APValue RetVal; in HandleDestructionImpl()
6579 APValue *SubobjectValue = &Value.getStructField(FD->getFieldIndex()); in HandleDestructionImpl()
6598 APValue *SubobjectValue = &Value.getStructBase(BasesLeft); in HandleDestructionImpl()
6606 Value = APValue(); in HandleDestructionImpl()
6619 bool found(APValue &Subobj, QualType SubobjType) { in found()
6645 APValue::LValueBase LVBase, APValue &Value, in HandleDestruction()
6715 APValue *Val = Info.createHeapAlloc(E, AllocType, Result); in HandleOperatorNewCall()
6716 *Val = APValue(APValue::UninitArray(), 0, Size.getZExtValue()); in HandleOperatorNewCall()
6887 bool visit(const APValue &Val, QualType Ty) { in visit()
6892 bool visit(const APValue &Val, QualType Ty, CharUnits Offset) { in visit()
6901 case APValue::Indeterminate: in visit()
6902 case APValue::None: in visit()
6905 case APValue::Int: in visit()
6907 case APValue::Float: in visit()
6909 case APValue::Array: in visit()
6911 case APValue::Struct: in visit()
6914 case APValue::ComplexInt: in visit()
6915 case APValue::ComplexFloat: in visit()
6916 case APValue::Vector: in visit()
6917 case APValue::FixedPoint: in visit()
6920 case APValue::Union: in visit()
6921 case APValue::MemberPointer: in visit()
6922 case APValue::AddrLabelDiff: { in visit()
6929 case APValue::LValue: in visit()
6935 bool visitRecord(const APValue &Val, QualType Ty, CharUnits Offset) { in visitRecord()
6975 bool visitArray(const APValue &Val, QualType Ty, CharUnits Offset) { in visitArray()
6986 const APValue &SubObj = Val.getArrayInitializedElt(I); in visitArray()
6993 const APValue &Filler = Val.getArrayFiller(); in visitArray()
7024 convert(EvalInfo &Info, const APValue &Src, const CastExpr *BCE) { in convert()
7060 std::optional<APValue> visit(const BuiltinType *T, CharUnits Offset, in visit()
7064 return APValue((Expr *)nullptr, in visit()
7066 APValue::NoLValuePath{}, /*IsNullPtr=*/true); in visit()
7100 return APValue::IndeterminateValue(); in visit()
7117 return APValue(Val); in visit()
7123 return APValue(APFloat(Semantics, Val)); in visit()
7129 std::optional<APValue> visit(const RecordType *RTy, CharUnits Offset) { in visit()
7137 APValue ResultVal(APValue::UninitStruct(), NumBases, in visit()
7149 std::optional<APValue> SubObj = visitType( in visit()
7175 std::optional<APValue> SubObj = visitType(FieldTy, FieldOffset); in visit()
7185 std::optional<APValue> visit(const EnumType *Ty, CharUnits Offset) { in visit()
7196 std::optional<APValue> visit(const ConstantArrayType *Ty, CharUnits Offset) { in visit()
7200 APValue ArrayValue(APValue::UninitArray(), Size, Size); in visit()
7202 std::optional<APValue> ElementValue = in visit()
7212 std::optional<APValue> visit(const Type *Ty, CharUnits Offset) { in visit()
7216 std::optional<APValue> visitType(QualType Ty, CharUnits Offset) { in visitType()
7241 static std::optional<APValue> convert(EvalInfo &Info, BitCastBuffer &Buffer, in convert()
7311 static bool handleLValueToRValueBitCast(EvalInfo &Info, APValue &DestValue, in handleLValueToRValueBitCast()
7312 APValue &SourceValue, in handleLValueToRValueBitCast()
7323 APValue SourceRValue; in handleLValueToRValueBitCast()
7337 std::optional<APValue> MaybeDestValue = in handleLValueToRValueBitCast()
7351 bool DerivedSuccess(const APValue &V, const Expr *E) { in DerivedSuccess()
7515 APValue Result; in VisitBinaryOperator()
7569 if (APValue *Value = Info.CurrentCall->getCurrentTemporary(E)) in VisitOpaqueValueExpr()
7614 APValue Result; in VisitCallExpr()
7620 bool handleCallExpr(const CallExpr *E, APValue &Result, in handleCallExpr()
7839 APValue Val; in VisitMemberExpr()
7854 CompleteObject Obj(APValue::LValueBase(), &Val, BaseTy); in VisitMemberExpr()
7858 APValue Result; in VisitMemberExpr()
7864 APValue Val; in VisitExtVectorElementExpr()
7876 SmallVector<APValue, 4> Elts; in VisitExtVectorElementExpr()
7880 APValue VecResult(Elts.data(), Indices.size()); in VisitExtVectorElementExpr()
7894 APValue AtomicVal; in VisitCastExpr()
7911 APValue RVal; in VisitCastExpr()
7919 APValue DestValue, SourceValue; in VisitCastExpr()
7928 APValue Value; in VisitCastExpr()
7951 APValue RVal; in VisitUnaryPostIncDec()
7982 APValue ReturnValue; in VisitStmtExpr()
8029 bool Success(APValue::LValueBase B) { in Success()
8043 bool Success(const APValue &V, const Expr *E) { in Success()
8084 APValue RefValue; in VisitMemberExpr()
8268 APValue RVal; in VisitVarDecl()
8320 APValue *V; in VisitVarDecl()
8368 APValue *Value; in VisitMaterializeTemporaryExpr()
8372 *Value = APValue(); in VisitMaterializeTemporaryExpr()
8386 *Value = APValue(); in VisitMaterializeTemporaryExpr()
8455 return Success(APValue::LValueBase::getTypeInfo(TypeInfo, E->getType())); in VisitCXXTypeidExpr()
8547 APValue RHS; in VisitCompoundAssignOperator()
8571 APValue NewVal; in VisitBinAssign()
8660 static bool evaluateLValueAsAllocSize(EvalInfo &Info, APValue::LValueBase Base, in evaluateLValueAsAllocSize()
8718 bool Success(const APValue &V, const Expr *E) { in Success()
8778 APValue RVal; in VisitCXXThisExpr()
8793 APValue LValResult = E->EvaluateInContext( in VisitSourceLocExpr()
8955 APValue Value; in VisitCastExpr()
8980 APValue &Value = Info.CurrentCall->createTemporary( in VisitCastExpr()
9002 APValue RVal; in VisitCastExpr()
9323 APValue Char; in VisitBuiltinCallExpr()
9385 APValue Val; in VisitBuiltinCallExpr()
9467 APValue Val; in VisitBuiltinCallExpr()
9489 APValue &Result, const InitListExpr *ILE,
9492 APValue &Result,
9628 APValue *Val; in VisitCXXNewExpr()
9636 APValue *Value; in VisitCXXNewExpr()
9640 bool found(APValue &Subobj, QualType SubobjType) { in VisitCXXNewExpr()
9671 *Val = APValue(); in VisitCXXNewExpr()
9723 bool Success(const APValue &V, const Expr *E) { in Success()
9802 APValue &Result;
9805 RecordExprEvaluator(EvalInfo &info, const LValue &This, APValue &Result) in RecordExprEvaluator()
9808 bool Success(const APValue &V, const Expr *E) { in Success()
9845 const LValue &This, APValue &Result) { in HandleClassZeroInitialization()
9848 Result = APValue(APValue::UninitStruct(), CD ? CD->getNumBases() : 0, in HandleClassZeroInitialization()
9896 Result = APValue((const FieldDecl*)nullptr); in ZeroInitialization()
9903 Result = APValue(*I); in ZeroInitialization()
9926 APValue DerivedObject; in VisitCastExpr()
9933 APValue *Value = &DerivedObject; in VisitCastExpr()
9978 Result = APValue(Field); in VisitCXXParenListOrInitListExpr()
10009 Result = APValue(APValue::UninitStruct(), CXXRD ? CXXRD->getNumBases() : 0, in VisitCXXParenListOrInitListExpr()
10024 APValue &FieldVal = Result.getStructBase(ElementNo); in VisitCXXParenListOrInitListExpr()
10073 APValue &FieldVal = Result.getStructField(Field->getFieldIndex()); in VisitCXXParenListOrInitListExpr()
10190 Result = APValue(APValue::UninitStruct(), 0, 2); in VisitCXXStdInitializerListExpr()
10207 Result.getStructField(1) = APValue(APSInt(ArrayType->getSize())); in VisitCXXStdInitializerListExpr()
10230 Result = APValue(APValue::UninitStruct(), /*NumBases*/0, NumFields); in VisitLambdaExpr()
10251 APValue &FieldVal = Result.getStructField(Field->getFieldIndex()); in VisitLambdaExpr()
10262 APValue &Result, EvalInfo &Info) { in EvaluateRecord()
10285 APValue &Value = Info.CurrentCall->createTemporary( in VisitConstructExpr()
10331 APValue &Result;
10334 VectorExprEvaluator(EvalInfo &info, APValue &Result) in VectorExprEvaluator()
10337 bool Success(ArrayRef<APValue> V, const Expr *E) { in Success()
10340 Result = APValue(V.data(), V.size()); in Success()
10343 bool Success(const APValue &V, const Expr *E) { in Success()
10362 static bool EvaluateVector(const Expr* E, APValue& Result, EvalInfo &Info) { in EvaluateVector()
10377 APValue Val = APValue(); in VisitCastExpr()
10382 Val = APValue(std::move(IntResult)); in VisitCastExpr()
10387 Val = APValue(std::move(FloatResult)); in VisitCastExpr()
10393 SmallVector<APValue, 4> Elts(NElts, Val); in VisitCastExpr()
10405 SmallVector<APValue, 4> Elts; in VisitCastExpr()
10417 Elts.push_back(APValue(APFloat(Sem, Elt))); in VisitCastExpr()
10426 Elts.push_back(APValue(APSInt(Elt, !EltTy->isSignedIntegerType()))); in VisitCastExpr()
10445 SmallVector<APValue, 4> Elements; in VisitInitListExpr()
10456 APValue v; in VisitInitListExpr()
10470 Elements.push_back(APValue(sInt)); in VisitInitListExpr()
10479 Elements.push_back(APValue(f)); in VisitInitListExpr()
10491 APValue ZeroElement; in ZeroInitialization()
10493 ZeroElement = APValue(Info.Ctx.MakeIntValue(0, EltTy)); in ZeroInitialization()
10496 APValue(APFloat::getZero(Info.Ctx.getFloatTypeSemantics(EltTy))); in ZeroInitialization()
10498 SmallVector<APValue, 4> Elements(VT->getNumElements(), ZeroElement); in ZeroInitialization()
10528 APValue LHSValue; in VisitBinaryOperator()
10529 APValue RHSValue; in VisitBinaryOperator()
10542 static std::optional<APValue> handleVectorUnaryOperator(ASTContext &Ctx, in handleVectorUnaryOperator()
10545 APValue Elt) { in handleVectorUnaryOperator()
10551 if (Elt.getKind() == APValue::Int) { in handleVectorUnaryOperator()
10554 assert(Elt.getKind() == APValue::Float && in handleVectorUnaryOperator()
10562 assert(Elt.getKind() == APValue::Int && in handleVectorUnaryOperator()
10567 if (Elt.getKind() == APValue::Int) { in handleVectorUnaryOperator()
10573 assert(Elt.getKind() == APValue::Float && in handleVectorUnaryOperator()
10584 return APValue{EltResult}; in handleVectorUnaryOperator()
10601 APValue SubExprValue; in VisitUnaryOperator()
10617 SmallVector<APValue, 4> ResultElements; in VisitUnaryOperator()
10619 std::optional<APValue> Elt = handleVectorUnaryOperator( in VisitUnaryOperator()
10625 return Success(APValue(ResultElements.data(), ResultElements.size()), E); in VisitUnaryOperator()
10636 APValue &Result;
10639 ArrayExprEvaluator(EvalInfo &Info, const LValue &This, APValue &Result) in ArrayExprEvaluator()
10642 bool Success(const APValue &V, const Expr *E) { in Success()
10656 Result = APValue(APValue::UninitArray(), 0, 0); in ZeroInitialization()
10663 Result = APValue(APValue::UninitArray(), 0, in ZeroInitialization()
10684 APValue *Value, QualType Type);
10699 APValue &Result, EvalInfo &Info) { in EvaluateArray()
10707 APValue &Result, const InitListExpr *ILE, in EvaluateArrayNewInitList()
10717 APValue &Result, in EvaluateArrayNewConstructExpr()
10784 APValue Filler; in VisitCXXParenListOrInitListExpr()
10799 Result = APValue(APValue::UninitArray(), NumEltsToInit, NumElts); in VisitCXXParenListOrInitListExpr()
10848 Result = APValue(APValue::UninitArray(), Elements, Elements); in VisitArrayInitLoopExpr()
10874 APValue *Value, in VisitCXXConstructExpr()
10882 APValue Filler = in VisitCXXConstructExpr()
10884 : APValue(); in VisitCXXConstructExpr()
10886 *Value = APValue(APValue::UninitArray(), 0, FinalSize); in VisitCXXConstructExpr()
10906 APValue NewValue(APValue::UninitArray(), N, FinalSize); in VisitCXXConstructExpr()
10919 APValue &FirstResult = Value->getArrayInitializedElt(0); in VisitCXXConstructExpr()
10969 APValue &Result;
10971 IntExprEvaluator(EvalInfo &info, APValue &result) in IntExprEvaluator()
10974 bool Success(const llvm::APSInt &SI, const Expr *E, APValue &Result) { in Success()
10981 Result = APValue(SI); in Success()
10988 bool Success(const llvm::APInt &I, const Expr *E, APValue &Result) { in Success()
10993 Result = APValue(APSInt(I)); in Success()
11002 bool Success(uint64_t Value, const Expr *E, APValue &Result) { in Success()
11005 Result = APValue(Info.Ctx.MakeIntValue(Value, E->getType())); in Success()
11016 bool Success(const APValue &V, const Expr *E) { in Success()
11110 APValue &Result;
11113 FixedPointExprEvaluator(EvalInfo &info, APValue &result) in FixedPointExprEvaluator()
11126 bool Success(const APValue &V, const Expr *E) { in Success()
11134 Result = APValue(V); in Success()
11160 static bool EvaluateIntegerOrLValue(const Expr *E, APValue &Result, in EvaluateIntegerOrLValue()
11169 APValue Val; in EvaluateInteger()
11183 APValue Evaluated = E->EvaluateInContext( in VisitSourceLocExpr()
11192 APValue Val; in EvaluateFixedPoint()
11439 static bool EvaluateBuiltinConstantPForLValue(const APValue &LV) { in EvaluateBuiltinConstantPForLValue()
11440 APValue::LValueBase Base = LV.getLValueBase(); in EvaluateBuiltinConstantPForLValue()
11489 APValue V; in EvaluateBuiltinConstantP()
11496 if (V.getKind() == APValue::LValue) in EvaluateBuiltinConstantP()
11509 static QualType getObjectType(APValue::LValueBase B) { in getObjectType()
11813 APValue RVal; in tryEvaluateBuiltinObjectSize()
11849 APValue &Val, APSInt &Alignment) { in getBuiltinAlignArguments()
11869 Val = APValue(SrcInt); in getBuiltinAlignArguments()
11918 APValue Src; in VisitBuiltinCallExpr()
11952 APValue Src; in VisitBuiltinCallExpr()
11965 APValue Src; in VisitBuiltinCallExpr()
12280 const auto &ReadCurElems = [&](APValue &Char1, APValue &Char2) { in VisitBuiltinCallExpr()
12304 APValue Char1, Char2; in VisitBuiltinCallExpr()
12479 APValue APV{Result}; in VisitBuiltinCallExpr()
12523 APValue Val;
12555 APValue &FinalResult;
12558 DataRecursiveIntBinOpEvaluator(IntExprEvaluator &IntEval, APValue &Result) in DataRecursiveIntBinOpEvaluator()
12585 bool Success(uint64_t Value, const Expr *E, APValue &Result) { in Success()
12588 bool Success(const APSInt &Value, const Expr *E, APValue &Result) { in Success()
12607 const BinaryOperator *E, APValue &Result);
12612 Result.Val = APValue(); in EvaluateExpr()
12672 static void addOrSubLValueAsInteger(APValue &LVal, const APSInt &Index, in addOrSubLValueAsInteger()
12687 const BinaryOperator *E, APValue &Result) { in VisitBinOp()
12725 const APValue &LHSVal = LHSResult.Val; in VisitBinOp()
12726 const APValue &RHSVal = RHSResult.Val; in VisitBinOp()
12760 Result = APValue(LHSAddrExpr, RHSAddrExpr); in VisitBinOp()
13303 return Success(APValue(LHSAddrExpr, RHSAddrExpr), E); in VisitBinaryOperator()
13620 APValue Val; in VisitCastExpr()
13717 APValue V; in VisitCastExpr()
13982 bool Success(const APValue &V, const Expr *e) { in Success()
14284 bool Success(const APValue &V, const Expr *e) { in Success()
14802 APValue &Result;
14804 AtomicExprEvaluator(EvalInfo &Info, const LValue *This, APValue &Result) in AtomicExprEvaluator()
14807 bool Success(const APValue &V, const Expr *E) { in Success()
14833 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result, in EvaluateAtomic()
14851 bool Success(const APValue &V, const Expr *e) { return true; } in Success()
14970 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E) { in Evaluate()
14995 Result = APValue(F); in Evaluate()
15011 APValue &Value = in Evaluate()
15018 APValue &Value = in Evaluate()
15033 APValue &Value = Info.CurrentCall->createTemporary( in Evaluate()
15055 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info, const LValue &This, in EvaluateInPlace()
15083 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result) { in EvaluateAsRValue()
15119 Result.Val = APValue(APSInt(L->getValue(), in FastEvaluateAsRValue()
15126 Result.Val = APValue(APSInt(APInt(1, L->getValue()))); in FastEvaluateAsRValue()
15287 static bool EvaluateDestruction(const ASTContext &Ctx, APValue::LValueBase Base, in EvaluateDestruction()
15288 APValue DestroyedValue, QualType Type, in EvaluateDestruction()
15333 APValue::LValueBase Base(&BaseMTE); in EvaluateAsConstantExpr()
15365 bool Expr::EvaluateAsInitializer(APValue &Value, const ASTContext &Ctx, in EvaluateAsInitializer()
15435 APValue DestroyedValue; in evaluateDestruction()
15980 APValue Result; in EvaluateCPlusPlus11IntegralConstantExpr()
16052 bool Expr::isCXX11ConstantExpr(const ASTContext &Ctx, APValue *Result, in isCXX11ConstantExpr()
16067 APValue Scratch; in isCXX11ConstantExpr()
16085 bool Expr::EvaluateWithSubstitution(APValue &Value, ASTContext &Ctx, in EvaluateWithSubstitution()
16133 if (APValue *Slot = Info.getParamSlot(Call, PVD)) in EvaluateWithSubstitution()
16134 *Slot = APValue(); in EvaluateWithSubstitution()
16196 APValue Scratch; in isPotentialConstantExpr()
16229 APValue ResultScratch; in isPotentialConstantExprUnevaluated()
16280 APValue Char; in EvaluateBuiltinStrLen()