Fix a crash in the diangostic code in EvalConstant. PR12043.
llvm-svn: 151100
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 4ae5ab4..5420876 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -538,8 +538,10 @@
= diag::note_invalid_subexpr_in_const_expr,
unsigned ExtraNotes = 0) {
// Don't override a previous diagnostic.
- if (!EvalStatus.Diag || !EvalStatus.Diag->empty())
+ if (!EvalStatus.Diag || !EvalStatus.Diag->empty()) {
+ HasActiveDiagnostic = false;
return OptionalDiagnostic();
+ }
return Diag(Loc, DiagId, ExtraNotes);
}