Author: Michael Spencer Date: 2024-01-30T17:03:13-08:00 New Revision: b21a2f9365b6c5fd464a97be5dfe7085742870ef
URL: https://github.com/llvm/llvm-project/commit/b21a2f9365b6c5fd464a97be5dfe7085742870ef DIFF: https://github.com/llvm/llvm-project/commit/b21a2f9365b6c5fd464a97be5dfe7085742870ef.diff LOG: [clang][scan-deps] Stop scanning if any scanning setup emits an error. Without this scanning will continue and later hit an assert that the number of `RedirectingFileSystem`s matches the number of -ivfsoverlay arguments. Added: clang/test/ClangScanDeps/missing-vfs.m Modified: clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp Removed: ################################################################################ diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp index 390cbe5aa65e1..3cf3ad8a4e490 100644 --- a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp +++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp @@ -322,6 +322,9 @@ class DependencyScanningAction : public tooling::ToolAction { else Action = std::make_unique<ReadPCHAndPreprocessAction>(); + if (ScanInstance.getDiagnostics().hasErrorOccurred()) + return false; + const bool Result = ScanInstance.ExecuteAction(*Action); if (Result) diff --git a/clang/test/ClangScanDeps/missing-vfs.m b/clang/test/ClangScanDeps/missing-vfs.m new file mode 100644 index 0000000000000..e825b00526728 --- /dev/null +++ b/clang/test/ClangScanDeps/missing-vfs.m @@ -0,0 +1,18 @@ +// Check that a missing VFS errors before trying to scan anything. + +// RUN: rm -rf %t && split-file %s %t +// RUN: sed -e "s|DIR|%/t|g" %t/build/cdb.json.in > %t/build/cdb.json +// RUN: not clang-scan-deps -compilation-database %t/build/cdb.json \ +// RUN: -format experimental-full 2>&1 | FileCheck %s + +// CHECK: virtual filesystem overlay file +// CHECK: not found + +//--- build/cdb.json.in +[{ + "directory": "DIR", + "command": "clang -c DIR/tu.m -ivfsoverlay DIR/vfs.yaml", + "file": "DIR/tu.m" +}] + +//--- tu.m _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits