Simplify: we don't care why constant evaluation might have failed when we're
checking an expression for constant overflow.
llvm-svn: 194099
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 01267143..cd22ff0 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -566,12 +566,12 @@
switch (EvalMode) {
case EM_ConstantExpression:
case EM_PotentialConstantExpression:
- case EM_EvaluateForOverflow:
HasActiveDiagnostic = false;
return OptionalDiagnostic();
case EM_ConstantFold:
case EM_IgnoreSideEffects:
+ case EM_EvaluateForOverflow:
break;
}
}
@@ -615,8 +615,7 @@
unsigned ExtraNotes = 0) {
// Don't override a previous diagnostic. Don't bother collecting
// diagnostics if we're evaluating for overflow.
- if (!EvalStatus.Diag || !EvalStatus.Diag->empty() ||
- EvalMode == EM_EvaluateForOverflow) {
+ if (!EvalStatus.Diag || !EvalStatus.Diag->empty()) {
HasActiveDiagnostic = false;
return OptionalDiagnostic();
}
@@ -8133,11 +8132,9 @@
return EvalResult.Val.getInt();
}
-void Expr::EvaluateForOverflow(const ASTContext &Ctx,
- SmallVectorImpl<PartialDiagnosticAt> *Diags) const {
+void Expr::EvaluateForOverflow(const ASTContext &Ctx) const {
bool IsConst;
EvalResult EvalResult;
- EvalResult.Diag = Diags;
if (!FastEvaluateAsRValue(this, EvalResult, Ctx, IsConst)) {
EvalInfo Info(Ctx, EvalResult, EvalInfo::EM_EvaluateForOverflow);
(void)::EvaluateAsRValue(Info, this, EvalResult.Val);