Home | History | Annotate | Download | only in AST

Lines Matching refs:Evaluate

43 /// evaluate the expression regardless of what the RHS is, but C only allows
122 static bool Evaluate(EvalInfo &info, const Expr *E);
295 // We don't want to evaluate BlockExprs multiple times, as they generate
350 if (!Evaluate(info, value)) {
1144 if (Init->Evaluate(EResult, Info.Ctx) && !EResult.HasSideEffects &&
1161 /// EvaluateBuiltinClassifyType - Evaluate __builtin_classify_type the same way
1320 // If we can't evaluate the LHS, it might have side effects;
1334 // We were able to evaluate the LHS, see if we can get away with not
1347 // We can't evaluate the LHS; however, sometimes the result
1351 // Since we weren't able to evaluate the left hand side, it
1618 /// VisitUnaryExprOrTypeTraitExpr - Evaluate a sizeof, alignof or vec_step with
1779 /// HandleCast - This is used to evaluate implicit or explicit casts where the
2078 if (Init->Evaluate(InitResult, Info.Ctx) && !InitResult.HasSideEffects &&
2140 // If we can't evaluate the LHS, it might have side effects;
2148 // We can't evaluate pointer-to-member operations.
2427 // If we can't evaluate the LHS, it might have side effects;
2582 // Top level Expr::Evaluate method.
2585 static bool Evaluate(EvalInfo &Info, const Expr *E) {
2619 /// Evaluate - Return true if this is a constant which we can fold using
2623 bool Expr::Evaluate(EvalResult &Result, const ASTContext &Ctx) const {
2625 return ::Evaluate(Info, this);
2661 /// isEvaluatable - Call Evaluate to see if this expression can be constant
2665 return Evaluate(Result, Ctx) && !Result.HasSideEffects;
2676 bool Result = Evaluate(EvalResult, Ctx);
2678 assert(Result && "Could not evaluate expression");
2679 assert(EvalResult.Val.isInt() && "Expression did not evaluate to integer");
2708 // 0: This expression is an ICE if it can be evaluated by Evaluate.
2731 if (!E->Evaluate(EVResult, Ctx) || EVResult.HasSideEffects ||
2910 // Evaluate matches the proposed gcc behavior for cases like
2963 // Evaluate gives an error for undefined Div/Rem, so make sure
2964 // we don't evaluate one.
3061 if (!E->Evaluate(EVResult, Ctx) || EVResult.HasSideEffects ||
3119 if (!Evaluate(EvalResult, Ctx))