Lines Matching refs:EvalInfo
61 struct EvalInfo;
237 bool checkSubobject(EvalInfo &Info, const Expr *E, CheckSubobjectKind CSK);
280 void diagnosePointerArithmetic(EvalInfo &Info, const Expr *E, uint64_t N);
282 void adjustIndex(EvalInfo &Info, const Expr *E, uint64_t N) { in adjustIndex()
309 EvalInfo &Info;
337 CallStackFrame(EvalInfo &Info, SourceLocation CallLoc,
437 struct EvalInfo { struct
541 EvalInfo(const ASTContext &C, Expr::EvalStatus &S, EvaluationMode Mode) in EvalInfo() function
811 EvalInfo &Info;
814 EvalInfo::EvaluationMode OldMode;
816 explicit FoldConstant(EvalInfo &Info, bool Enabled) in FoldConstant()
824 (Info.EvalMode == EvalInfo::EM_ConstantExpression || in FoldConstant()
825 Info.EvalMode == EvalInfo::EM_ConstantExpressionUnevaluated)) in FoldConstant()
826 Info.EvalMode = EvalInfo::EM_ConstantFold; in FoldConstant()
840 EvalInfo &Info;
841 EvalInfo::EvaluationMode OldMode;
842 explicit FoldOffsetRAII(EvalInfo &Info, bool Subobject) in FoldOffsetRAII()
845 Info.EvalMode = Subobject ? EvalInfo::EM_DesignatorFold in FoldOffsetRAII()
846 : EvalInfo::EM_ConstantFold; in FoldOffsetRAII()
857 llvm::PointerIntPair<EvalInfo *, 1, bool> InfoAndOldSpecEval;
867 EvalInfo *Info = InfoAndOldSpecEval.getPointer(); in maybeRestoreState()
879 EvalInfo &Info, SmallVectorImpl<PartialDiagnosticAt> *NewDiag = nullptr) in SpeculativeEvaluationRAII()
904 EvalInfo &Info;
907 ScopeRAII(EvalInfo &Info) in ScopeRAII()
915 static void cleanup(EvalInfo &Info, unsigned OldStackSize) { in cleanup()
937 bool SubobjectDesignator::checkSubobject(EvalInfo &Info, const Expr *E, in checkSubobject()
950 void SubobjectDesignator::diagnosePointerArithmetic(EvalInfo &Info, in diagnosePointerArithmetic()
962 CallStackFrame::CallStackFrame(EvalInfo &Info, SourceLocation CallLoc, in CallStackFrame()
987 void EvalInfo::addCallStack(unsigned Limit) { in addCallStack()
1112 bool checkNullPointer(EvalInfo &Info, const Expr *E, in checkNullPointer()
1127 bool checkSubobject(EvalInfo &Info, const Expr *E, CheckSubobjectKind CSK) { in checkSubobject()
1132 void addDecl(EvalInfo &Info, const Expr *E, in addDecl()
1137 void addArray(EvalInfo &Info, const Expr *E, const ConstantArrayType *CAT) { in addArray()
1141 void addComplex(EvalInfo &Info, const Expr *E, QualType EltTy, bool Imag) { in addComplex()
1145 void adjustIndex(EvalInfo &Info, const Expr *E, uint64_t N) { in adjustIndex()
1250 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E);
1251 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info,
1254 static bool EvaluateLValue(const Expr *E, LValue &Result, EvalInfo &Info);
1255 static bool EvaluatePointer(const Expr *E, LValue &Result, EvalInfo &Info);
1257 EvalInfo &Info);
1258 static bool EvaluateTemporary(const Expr *E, LValue &Result, EvalInfo &Info);
1259 static bool EvaluateInteger(const Expr *E, APSInt &Result, EvalInfo &Info);
1261 EvalInfo &Info);
1262 static bool EvaluateFloat(const Expr *E, APFloat &Result, EvalInfo &Info);
1263 static bool EvaluateComplex(const Expr *E, ComplexValue &Res, EvalInfo &Info);
1264 static bool EvaluateAtomic(const Expr *E, APValue &Result, EvalInfo &Info);
1265 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result);
1310 static bool EvaluateIgnoredValue(EvalInfo &Info, const Expr *E) { in EvaluateIgnoredValue()
1388 static void NoteLValueLocation(EvalInfo &Info, APValue::LValueBase Base) { in NoteLValueLocation()
1401 static bool CheckLValueConstantExpression(EvalInfo &Info, SourceLocation Loc, in CheckLValueConstantExpression()
1479 static bool CheckLiteralType(EvalInfo &Info, const Expr *E, in CheckLiteralType()
1503 static bool CheckConstantExpression(EvalInfo &Info, SourceLocation DiagLoc, in CheckConstantExpression()
1641 EvalInfo &Info) { in EvaluateAsBooleanCondition()
1650 static bool HandleOverflow(EvalInfo &Info, const Expr *E, in HandleOverflow()
1657 static bool HandleFloatToIntCast(EvalInfo &Info, const Expr *E, in HandleFloatToIntCast()
1672 static bool HandleFloatToFloatCast(EvalInfo &Info, const Expr *E, in HandleFloatToFloatCast()
1684 static APSInt HandleIntToIntCast(EvalInfo &Info, const Expr *E, in HandleIntToIntCast()
1696 static bool HandleIntToFloatCast(EvalInfo &Info, const Expr *E, in HandleIntToFloatCast()
1707 static bool truncateBitfieldValue(EvalInfo &Info, const Expr *E, in truncateBitfieldValue()
1728 static bool EvalAndBitcastToAPInt(EvalInfo &Info, const Expr *E, in EvalAndBitcastToAPInt()
1779 static bool CheckedIntArithmetic(EvalInfo &Info, const Expr *E, in CheckedIntArithmetic()
1802 static bool handleIntIntBinOp(EvalInfo &Info, const Expr *E, const APSInt &LHS, in handleIntIntBinOp()
1900 static bool handleFloatFloatBinOp(EvalInfo &Info, const Expr *E, in handleFloatFloatBinOp()
1930 static bool CastToDerivedClass(EvalInfo &Info, const Expr *E, LValue &Result, in CastToDerivedClass()
1959 static bool HandleLValueDirectBase(EvalInfo &Info, const Expr *E, LValue &Obj, in HandleLValueDirectBase()
1973 static bool HandleLValueBase(EvalInfo &Info, const Expr *E, LValue &Obj, in HandleLValueBase()
1998 static bool HandleLValueBasePath(EvalInfo &Info, const CastExpr *E, in HandleLValueBasePath()
2013 static bool HandleLValueMember(EvalInfo &Info, const Expr *E, LValue &LVal, in HandleLValueMember()
2028 static bool HandleLValueIndirectMember(EvalInfo &Info, const Expr *E, in HandleLValueIndirectMember()
2038 static bool HandleSizeof(EvalInfo &Info, SourceLocation Loc, in HandleSizeof()
2069 static bool HandleLValueArrayAdjustment(EvalInfo &Info, const Expr *E, in HandleLValueArrayAdjustment()
2087 static bool HandleLValueComplexElement(EvalInfo &Info, const Expr *E, in HandleLValueComplexElement()
2108 static bool evaluateVarDeclInit(EvalInfo &Info, const Expr *E, in evaluateVarDeclInit()
2213 static APSInt extractStringLiteralCharacter(EvalInfo &Info, const Expr *Lit, in extractStringLiteralCharacter()
2233 static void expandStringLiteral(EvalInfo &Info, const Expr *Lit, in expandStringLiteral()
2301 static bool diagnoseUnreadableFields(EvalInfo &Info, const Expr *E, in diagnoseUnreadableFields()
2364 findSubobject(EvalInfo &Info, const Expr *E, const CompleteObject &Obj, in findSubobject()
2531 EvalInfo &Info;
2561 static bool extractSubobject(EvalInfo &Info, const Expr *E, in extractSubobject()
2571 EvalInfo &Info;
2621 static bool modifySubobject(EvalInfo &Info, const Expr *E, in modifySubobject()
2687 static CompleteObject findCompleteObject(EvalInfo &Info, const Expr *E, in findCompleteObject()
2898 static bool handleLValueToRValueConversion(EvalInfo &Info, const Expr *Conv, in handleLValueToRValueConversion()
2936 static bool handleAssignment(EvalInfo &Info, const Expr *E, const LValue &LVal, in handleAssignment()
2957 EvalInfo &Info;
3056 EvalInfo &Info, const Expr *E, in handleCompoundAssignment()
3075 EvalInfo &Info;
3206 static bool handleIncDec(EvalInfo &Info, const Expr *E, const LValue &LVal, in handleIncDec()
3223 static bool EvaluateObjectArgument(EvalInfo &Info, const Expr *Object, in EvaluateObjectArgument()
3249 static const ValueDecl *HandleMemberPointerAccess(EvalInfo &Info, in HandleMemberPointerAccess()
3331 static const ValueDecl *HandleMemberPointerAccess(EvalInfo &Info, in HandleMemberPointerAccess()
3351 static bool HandleBaseToDerivedCast(EvalInfo &Info, const CastExpr *E, in HandleBaseToDerivedCast()
3404 static bool EvaluateDecl(EvalInfo &Info, const Decl *D) { in EvaluateDecl()
3437 static bool EvaluateCond(EvalInfo &Info, const VarDecl *CondDecl, in EvaluateCond()
3456 static EvalStmtResult EvaluateStmt(StmtResult &Result, EvalInfo &Info,
3461 static EvalStmtResult EvaluateLoopBody(StmtResult &Result, EvalInfo &Info, in EvaluateLoopBody()
3480 static EvalStmtResult EvaluateSwitch(StmtResult &Result, EvalInfo &Info, in EvaluateSwitch()
3542 static EvalStmtResult EvaluateStmt(StmtResult &Result, EvalInfo &Info, in EvaluateStmt()
3831 static bool CheckTrivialDefaultConstructor(EvalInfo &Info, SourceLocation Loc, in CheckTrivialDefaultConstructor()
3856 static bool CheckConstexprFunction(EvalInfo &Info, SourceLocation CallLoc, in CheckConstexprFunction()
3926 EvalInfo &Info) { in EvaluateArgs()
3945 EvalInfo &Info, APValue &Result, in HandleFunctionCall()
3995 EvalInfo &Info, APValue &Result) { in HandleConstructorCall()
4136 EvalInfo &Info, APValue &Result) { in HandleConstructorCall()
4204 EvalInfo &Info;
4215 ExprEvaluatorBase(EvalInfo &Info) : Info(Info) {} in ExprEvaluatorBase()
4217 EvalInfo &getEvalInfo() { return Info; } in getEvalInfo()
4606 LValueExprEvaluatorBase(EvalInfo &Info, LValue &Result) : in LValueExprEvaluatorBase()
4724 LValueExprEvaluator(EvalInfo &Info, LValue &Result) : in LValueExprEvaluator()
4778 static bool EvaluateLValue(const Expr *E, LValue &Result, EvalInfo &Info) { in EvaluateLValue()
5030 PointerExprEvaluator(EvalInfo &info, LValue &Result) in PointerExprEvaluator()
5075 static bool EvaluatePointer(const Expr* E, LValue& Result, EvalInfo &Info) { in EvaluatePointer()
5209 static CharUnits GetAlignOfType(EvalInfo &Info, QualType T) { in GetAlignOfType()
5221 static CharUnits GetAlignOfExpr(EvalInfo &Info, const Expr *E) { in GetAlignOfExpr()
5333 MemberPointerExprEvaluator(EvalInfo &Info, MemberPtr &Result) in MemberPointerExprEvaluator()
5350 EvalInfo &Info) { in EvaluateMemberPointer()
5417 RecordExprEvaluator(EvalInfo &info, const LValue &This, APValue &Result) in RecordExprEvaluator()
5450 static bool HandleClassZeroInitialization(EvalInfo &Info, const Expr *E, in HandleClassZeroInitialization()
5769 APValue &Result, EvalInfo &Info) { in EvaluateRecord()
5786 TemporaryExprEvaluator(EvalInfo &Info, LValue &Result) : in TemporaryExprEvaluator()
5821 static bool EvaluateTemporary(const Expr *E, LValue &Result, EvalInfo &Info) { in EvaluateTemporary()
5836 VectorExprEvaluator(EvalInfo &info, APValue &Result) in VectorExprEvaluator()
5863 static bool EvaluateVector(const Expr* E, APValue& Result, EvalInfo &Info) { in EvaluateVector()
6018 ArrayExprEvaluator(EvalInfo &Info, const LValue &This, APValue &Result) in ArrayExprEvaluator()
6057 APValue &Result, EvalInfo &Info) { in EvaluateArray()
6188 IntExprEvaluator(EvalInfo &info, APValue &result) in IntExprEvaluator()
6324 EvalInfo &Info) { in EvaluateIntegerOrLValue()
6329 static bool EvaluateInteger(const Expr *E, APSInt &Result, EvalInfo &Info) { in EvaluateInteger()
6556 EvalInfo Info(Ctx, Status, EvalInfo::EM_ConstantFold); in EvaluateBuiltinConstantP()
6701 EvalInfo &Info, uint64_t &Size, in tryEvaluateBuiltinObjectSize()
6863 case EvalInfo::EM_ConstantExpression: in VisitCallExpr()
6864 case EvalInfo::EM_PotentialConstantExpression: in VisitCallExpr()
6865 case EvalInfo::EM_ConstantFold: in VisitCallExpr()
6866 case EvalInfo::EM_EvaluateForOverflow: in VisitCallExpr()
6867 case EvalInfo::EM_IgnoreSideEffects: in VisitCallExpr()
6868 case EvalInfo::EM_DesignatorFold: in VisitCallExpr()
6871 case EvalInfo::EM_ConstantExpressionUnevaluated: in VisitCallExpr()
6872 case EvalInfo::EM_PotentialConstantExpressionUnevaluated: in VisitCallExpr()
7183 void startSpeculativeEval(EvalInfo &Info) { in startSpeculativeEval()
7194 EvalInfo &Info;
7464 EvalInfo &Info;
7468 DelayedNoteFailureRAII(EvalInfo &Info, bool NoteFailure = true) in DelayedNoteFailureRAII()
8203 FloatExprEvaluator(EvalInfo &info, APFloat &result) in FloatExprEvaluator()
8230 static bool EvaluateFloat(const Expr* E, APFloat& Result, EvalInfo &Info) { in EvaluateFloat()
8433 ComplexExprEvaluator(EvalInfo &info, ComplexValue &Result) in ComplexExprEvaluator()
8456 EvalInfo &Info) { in EvaluateComplex()
8924 AtomicExprEvaluator(EvalInfo &Info, APValue &Result) in AtomicExprEvaluator()
8949 static bool EvaluateAtomic(const Expr *E, APValue &Result, EvalInfo &Info) { in EvaluateAtomic()
8963 VoidExprEvaluator(EvalInfo &Info) : ExprEvaluatorBaseTy(Info) {} in VoidExprEvaluator()
8990 static bool EvaluateVoid(const Expr *E, EvalInfo &Info) { in EvaluateVoid()
8999 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E) { in Evaluate()
9072 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info, const LValue &This, in EvaluateInPlace()
9094 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result) { in EvaluateAsRValue()
9155 EvalInfo Info(Ctx, Result, EvalInfo::EM_IgnoreSideEffects); in EvaluateAsRValue()
9201 EvalInfo Info(Ctx, Result, EvalInfo::EM_ConstantFold); in EvaluateAsLValue()
9225 EvalInfo InitInfo(Ctx, EStatus, VD->isConstexpr() in EvaluateAsInitializer()
9226 ? EvalInfo::EM_ConstantExpression in EvaluateAsInitializer()
9227 : EvalInfo::EM_ConstantFold); in EvaluateAsInitializer()
9278 EvalInfo Info(Ctx, EvalResult, EvalInfo::EM_EvaluateForOverflow); in EvaluateForOverflow()
9784 EvalInfo Info(Ctx, Status, EvalInfo::EM_ConstantExpression); in isCXX11ConstantExpr()
9804 EvalInfo Info(Ctx, Status, EvalInfo::EM_ConstantExpressionUnevaluated); in EvaluateWithSubstitution()
9835 EvalInfo Info(FD->getASTContext(), Status, in isPotentialConstantExpr()
9836 EvalInfo::EM_PotentialConstantExpression); in isPotentialConstantExpr()
9871 EvalInfo Info(FD->getASTContext(), Status, in isPotentialConstantExprUnevaluated()
9872 EvalInfo::EM_PotentialConstantExpressionUnevaluated); in isPotentialConstantExprUnevaluated()
9894 EvalInfo Info(Ctx, Status, EvalInfo::EM_ConstantFold); in tryEvaluateObjectSize()