diff options
Diffstat (limited to 'lib/Sema/SemaExpr.cpp')
-rw-r--r-- | lib/Sema/SemaExpr.cpp | 17 |
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(); |