[Dependency Scanning] Bridge diagnostics emitted during bridging header scanning

Instead of simply dumping them to stderr.

Resolves rdar://151993075
This commit is contained in:
Artem Chikin
2025-05-29 14:09:20 -07:00
parent 34f22c6408
commit f24016f197
4 changed files with 13 additions and 7 deletions

View File

@@ -420,7 +420,7 @@ bool ModuleDependencyScanningWorker::scanHeaderDependenciesOfSwiftModule(
};
auto dependencies = clangScanningTool.getTranslationUnitDependencies(
/*ACTODO:*/ inputSpecificClangScannerCommand(clangScanningBaseCommandLineArgs, headerPath),
inputSpecificClangScannerCommand(clangScanningBaseCommandLineArgs, headerPath),
clangScanningWorkingDirectoryPath,
cache.getAlreadySeenClangModules(), lookupModuleOutput, sourceBuffer);
if (!dependencies)
@@ -450,11 +450,9 @@ bool ModuleDependencyScanningWorker::scanHeaderDependenciesOfSwiftModule(
// - Binary module dependnecies may have arbitrary header inputs.
auto clangModuleDependencies = scanHeaderDependencies();
if (!clangModuleDependencies) {
// FIXME: Route this to a normal diagnostic.
llvm::logAllUnhandledErrors(clangModuleDependencies.takeError(),
llvm::errs());
ctx.Diags.diagnose(SourceLoc(), diag::clang_dependency_scan_error,
"failed to scan header dependencies");
auto errorStr = toString(clangModuleDependencies.takeError());
workerASTContext->Diags.diagnose(
SourceLoc(), diag::clang_header_dependency_scan_error, errorStr);
return true;
}