Remove StreamDiagConsumer to prevent crash

This commit is contained in:
David Goldman
2019-01-08 16:20:22 -05:00
parent 3c9f3c8815
commit 4651e14f09

View File

@@ -448,6 +448,13 @@ bool SwiftASTManager::initCompilerInvocation(CompilerInvocation &Invocation,
return Invocation.parseArgs(FrontendArgs, Diags);
});
// Remove the StreamDiagConsumer as it's no longer needed.
std::vector<DiagnosticConsumer *> OldC = Diags.takeConsumers();
OldC.erase(std::remove(OldC.begin(), OldC.end(), &DiagConsumer));
for (DiagnosticConsumer *Consumer : OldC) {
Diags.addConsumer(*Consumer);
}
if (HadError) {
Error = ErrOS.str();
return true;