[clang] 888daa9 - [clang][deps] Respect VFS overlays in canonical preprocessing mode
Jan Svoboda via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 12 18:40:44 PDT 2022
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"
More information about the cfe-commits
mailing list