[clang] [clang] Only set non-empty bypass to scan VFS (PR #159605)
Jan Svoboda via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 18 10:06:25 PDT 2025
https://github.com/jansvoboda11 created https://github.com/llvm/llvm-project/pull/159605
Normalizing an empty modules cache path results in an incorrect non-empty path (the working directory). This PR conditionalizes more code to avoid this. Tested downstream by swift/llvm-project and the `DependencyScanningCAPITests.DependencyScanningFSCacheOutOfDate` unit test.
>From c90297a181f30d69caf1d701cab716e6be8b6875 Mon Sep 17 00:00:00 2001
From: Jan Svoboda <jan_svoboda at apple.com>
Date: Thu, 18 Sep 2025 10:05:03 -0700
Subject: [PATCH] [clang] Only set non-empty bypass to scan VFS
Normalizing an empty modules cache path results in an incorrect non-empty path (the working directory). This conditionalizes more code to avoid this. Tested downstream by swift/llvm-project and the `DependencyScanningCAPITests.DependencyScanningFSCacheOutOfDate` unit test.
---
.../DependencyScanning/DependencyScanningWorker.cpp | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
index 0a12c479bf8e3..16cb56fddc006 100644
--- a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
+++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
@@ -445,13 +445,14 @@ class DependencyScanningAction {
// Use the dependency scanning optimized file system if requested to do so.
if (DepFS) {
- SmallString<256> ModulesCachePath;
- normalizeModuleCachePath(
- *FileMgr, ScanInstance.getHeaderSearchOpts().ModuleCachePath,
- ModulesCachePath);
DepFS->resetBypassedPathPrefix();
- if (!ModulesCachePath.empty())
+ if (!ScanInstance.getHeaderSearchOpts().ModuleCachePath.empty()) {
+ SmallString<256> ModulesCachePath;
+ normalizeModuleCachePath(
+ *FileMgr, ScanInstance.getHeaderSearchOpts().ModuleCachePath,
+ ModulesCachePath);
DepFS->setBypassedPathPrefix(ModulesCachePath);
+ }
ScanInstance.setDependencyDirectivesGetter(
std::make_unique<ScanningDependencyDirectivesGetter>(*FileMgr));
More information about the cfe-commits
mailing list