aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/ASTUnit.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2017-02-13 16:16:43 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2017-02-13 16:16:43 +0000
commit8484a326fbaac2772a82b28cbea9569315432bd5 (patch)
tree6fab2380d14160c41ee179de5c5fec6717748584 /clang/lib/Frontend/ASTUnit.cpp
parentcd6d7b1c5b80a154aee2b78f07ea798e64c05dea (diff)
downloadllvm-8484a326fbaac2772a82b28cbea9569315432bd5.zip
llvm-8484a326fbaac2772a82b28cbea9569315432bd5.tar.gz
llvm-8484a326fbaac2772a82b28cbea9569315432bd5.tar.bz2
[ASTUnit] Clear out diagnostic state after creating the preamble.
If the preamble had diagnostic state this would leave behind invalid state in the DiagnosticsEngine and crash later. The test case runs into an assertion in DiagnosticsEngine::setSourceManager. llvm-svn: 294963
Diffstat (limited to 'clang/lib/Frontend/ASTUnit.cpp')
-rw-r--r--clang/lib/Frontend/ASTUnit.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp
index f3d033c..12b78ea 100644
--- a/clang/lib/Frontend/ASTUnit.cpp
+++ b/clang/lib/Frontend/ASTUnit.cpp
@@ -1891,6 +1891,8 @@ bool ASTUnit::LoadFromCompilerInvocation(
PreambleRebuildCounter = PrecompilePreambleAfterNParses;
OverrideMainBuffer =
getMainBufferWithPrecompiledPreamble(PCHContainerOps, *Invocation);
+ getDiagnostics().Reset();
+ ProcessWarningOptions(getDiagnostics(), Invocation->getDiagnosticOpts());
}
SimpleTimer ParsingTimer(WantTiming);