aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaExpr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sema/SemaExpr.cpp')
-rw-r--r--lib/Sema/SemaExpr.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 75caa6f585..e2a9404d21 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -9268,9 +9268,11 @@ bool Sema::VerifyIntegerConstantExpression(const Expr *E, llvm::APSInt *Result,
}
if (!Folded || !AllowFold) {
- Diag(E->getSourceRange().getBegin(),
- DiagID ? DiagID : unsigned(diag::err_expr_not_ice))
- << E->getSourceRange();
+ if (DiagID)
+ Diag(E->getSourceRange().getBegin(), DiagID) << E->getSourceRange();
+ else
+ Diag(E->getSourceRange().getBegin(), diag::err_expr_not_ice)
+ << E->getSourceRange() << LangOpts.CPlusPlus;
// We only show the notes if they're not the usual "invalid subexpression"
// or if they are actually in a subexpression.
@@ -9285,12 +9287,9 @@ bool Sema::VerifyIntegerConstantExpression(const Expr *E, llvm::APSInt *Result,
}
Diag(E->getSourceRange().getBegin(), diag::ext_expr_not_ice)
- << E->getSourceRange();
-
- if (Diags.getDiagnosticLevel(diag::ext_expr_not_ice, E->getExprLoc())
- != DiagnosticsEngine::Ignored)
- for (unsigned I = 0, N = Notes.size(); I != N; ++I)
- Diag(Notes[I].first, Notes[I].second);
+ << E->getSourceRange() << LangOpts.CPlusPlus;
+ for (unsigned I = 0, N = Notes.size(); I != N; ++I)
+ Diag(Notes[I].first, Notes[I].second);
if (Result)
*Result = EvalResult.Val.getInt();