Author: Jan Svoboda Date: 2022-10-12T18:40:34-07:00 New Revision: 888daa9e83bceb6cb8fda02f5f3719391f717154
URL: https://github.com/llvm/llvm-project/commit/888daa9e83bceb6cb8fda02f5f3719391f717154 DIFF: https://github.com/llvm/llvm-project/commit/888daa9e83bceb6cb8fda02f5f3719391f717154.diff LOG: [clang][deps] Respect VFS overlays in canonical preprocessing mode The `-ivfsoverlay` flag was only being respected when the scanner was instructed to minimize the inputs. This patch respects that flag even in canonical preprocessing mode. Depends on D135414. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D135416 Added: Modified: clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp clang/test/ClangScanDeps/vfsoverlay.cpp Removed: ################################################################################ diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp index 1810d8f28f0a7..1f663f6d47697 100644 --- a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp +++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp @@ -192,6 +192,11 @@ class DependencyScanningAction : public tooling::ToolAction { ScanInstance.getFrontendOpts().ModulesShareFileManager = false; ScanInstance.setFileManager(FileMgr); + // Support for virtual file system overlays. + FileMgr->setVirtualFileSystem(createVFSFromCompilerInvocation( + ScanInstance.getInvocation(), ScanInstance.getDiagnostics(), + FileMgr->getVirtualFileSystemPtr())); + ScanInstance.createSourceManager(*FileMgr); llvm::StringSet<> PrebuiltModulesInputFiles; @@ -206,12 +211,6 @@ class DependencyScanningAction : public tooling::ToolAction { // Use the dependency scanning optimized file system if requested to do so. if (DepFS) { - // Support for virtual file system overlays on top of the caching - // filesystem. - FileMgr->setVirtualFileSystem(createVFSFromCompilerInvocation( - ScanInstance.getInvocation(), ScanInstance.getDiagnostics(), - FileMgr->getVirtualFileSystemPtr())); - llvm::IntrusiveRefCntPtr<DependencyScanningWorkerFilesystem> LocalDepFS = DepFS; ScanInstance.getPreprocessorOpts().DependencyDirectivesForFile = diff --git a/clang/test/ClangScanDeps/vfsoverlay.cpp b/clang/test/ClangScanDeps/vfsoverlay.cpp index b3a2b23daad71..0ac0211e1403b 100644 --- a/clang/test/ClangScanDeps/vfsoverlay.cpp +++ b/clang/test/ClangScanDeps/vfsoverlay.cpp @@ -8,8 +8,8 @@ // RUN: cp %S/Inputs/header.h %t.dir/Inputs/header.h // RUN: sed -e "s|DIR|%/t.dir|g" %S/Inputs/vfsoverlay_cdb.json > %t.cdb // -// RUN: clang-scan-deps -compilation-database %t.cdb -j 1 | \ -// RUN: FileCheck %s +// RUN: clang-scan-deps -compilation-database %t.cdb -mode preprocess-dependency-directives -j 1 | FileCheck %s +// RUN: clang-scan-deps -compilation-database %t.cdb -mode preprocess -j 1 | FileCheck %s #include "not_real.h" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits