[clang] [clang][modules] Dependency Scanning: Temporarily Turn Off Negative Directory Caching (PR #134698)
Qiongsi Wu via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 7 10:43:52 PDT 2025
https://github.com/qiongsiwu created https://github.com/llvm/llvm-project/pull/134698
55323ca6c8b9d21d85591f3499b299b62463321f implemented negative caching of directories. The implementation may be too aggressive in certain cases, and may lead to file not found errors even if the files exist on disk.
This PR temporarily turns off negative directory caching to fix the build failures.
rdar://148027982
>From 5d64a6090d4f16fe9109821c73295db253a5af1b Mon Sep 17 00:00:00 2001
From: Qiongsi Wu <qiongsi_wu at apple.com>
Date: Mon, 7 Apr 2025 10:04:03 -0700
Subject: [PATCH] Initial fix.
---
.../DependencyScanning/DependencyScanningFilesystem.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
index 4d738e4bea41a..805409046cf54 100644
--- a/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
+++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
@@ -241,6 +241,13 @@ DependencyScanningWorkerFilesystem::computeAndStoreResult(
llvm::ErrorOr<llvm::vfs::Status> Stat =
getUnderlyingFS().status(OriginalFilename);
if (!Stat) {
+ // rdar://148027982
+ // Negative caching directories can cause build failures.
+ // FIXME: we should remove the check below once we know
+ // the build failures' root causes.
+ if (llvm::sys::path::extension(OriginalFilename).empty())
+ return Stat.getError();
+
const auto &Entry =
getOrEmplaceSharedEntryForFilename(FilenameForLookup, Stat.getError());
return insertLocalEntryForFilename(FilenameForLookup, Entry);
More information about the cfe-commits
mailing list