================
@@ -330,3 +353,20 @@ DependencyScanningWorkerFilesystem::openFileForRead(const
Twine &Path) {
return Result.getError();
return DepScanFile::create(Result.get());
}
+
+std::error_code DependencyScanningWorkerFilesystem::setCurrentWorkingDirectory(
+ const Twine &Path) {
+ updateWorkingDirForCacheLookup(Path.str());
+ return ProxyFileSystem::setCurrentWorkingDirectory(Path);
+}
+
+void DependencyScanningWorkerFilesystem::updateWorkingDirForCacheLookup(
+ llvm::ErrorOr<std::string> CWD) {
+ if (CWD && !CWD->empty()) {
+ WorkingDirForCacheLookup = *CWD;
+ } else {
+ // The cache lookup functions will not accept relative paths for safety, so
+ // at least make it absolute from a "root".
+ WorkingDirForCacheLookup = "/";
----------------
akyrtzi wrote:
Oh wait, I see why it is poisoning, I could change it so that it avoids cache
lookups if an error occurred?
https://github.com/llvm/llvm-project/pull/66122
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits