Skip to content

Commit 4651e14

Browse files
committed
Remove StreamDiagConsumer to prevent crash
1 parent 3c9f3c8 commit 4651e14

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

tools/SourceKit/lib/SwiftLang/SwiftASTManager.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,13 @@ bool SwiftASTManager::initCompilerInvocation(CompilerInvocation &Invocation,
448448
return Invocation.parseArgs(FrontendArgs, Diags);
449449
});
450450

451+
// Remove the StreamDiagConsumer as it's no longer needed.
452+
std::vector<DiagnosticConsumer *> OldC = Diags.takeConsumers();
453+
OldC.erase(std::remove(OldC.begin(), OldC.end(), &DiagConsumer));
454+
for (DiagnosticConsumer *Consumer : OldC) {
455+
Diags.addConsumer(*Consumer);
456+
}
457+
451458
if (HadError) {
452459
Error = ErrOS.str();
453460
return true;

0 commit comments

Comments
 (0)