diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2017-02-13 16:16:43 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2017-02-13 16:16:43 +0000 |
commit | 8484a326fbaac2772a82b28cbea9569315432bd5 (patch) | |
tree | 6fab2380d14160c41ee179de5c5fec6717748584 /clang/lib/Frontend/ASTUnit.cpp | |
parent | cd6d7b1c5b80a154aee2b78f07ea798e64c05dea (diff) | |
download | llvm-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.cpp | 2 |
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); |