llvm-project/clang/lib/Tooling
Jan Svoboda 8cc2a13727 [clang][deps] Handle symlinks in minimizing FS
The minimizing and caching filesystem used by the dependency scanner can be configured to **not** minimize some files. That's necessary when scanning a TU with prebuilt inputs (i.e. PCH) that refer to the original (non-minimized) files. Minimizing such files in the dependency scanner would cause discrepancy between the current perceived state of the filesystem and the file sizes stored in the AST file. By not minimizing such files, we avoid creating the discrepancy.

The problem with the current approach is that files that should not be minimized are identified by their path. This breaks down when the prebuilt input (PCH) and the current TU refer to the same file via different paths (i.e. symlinks). This patch switches from paths to `llvm::sys::fs::UniqueID` when identifying ignored files. This is consistent with how the rest of Clang treats files.

Depends on D114966.

Reviewed By: dexonsmith, arphaman

Differential Revision: https://reviews.llvm.org/D114971
2022-01-21 13:04:25 +01:00
..
ASTDiff [openmp] Base of tablegen generated OpenMP common declaration 2020-06-23 10:32:32 -04:00
Core [libtooling][clang-tidy] Fix diagnostics not highlighting fed SourceRanges 2021-04-10 16:43:44 +02:00
DependencyScanning [clang][deps] Handle symlinks in minimizing FS 2022-01-21 13:04:25 +01:00
DumpTool [clang] NFC: Extract DiagnosticOptions parsing 2021-09-02 14:37:14 +02:00
Inclusions [clang] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
Refactoring [clang-rename] Handle designated initializers. 2021-04-12 13:15:14 -07:00
Syntax [NFC][tools] Return underlying strings directly instead of OS.str() 2021-12-09 16:05:46 -08:00
Transformer [clang] Remove unused "using" (NFC) 2021-12-27 20:48:21 -08:00
AllTUsExecution.cpp ADT: Allow IntrusiveRefCntPtr construction from std::unique_ptr, NFC 2020-12-08 17:33:19 -08:00
ArgumentsAdjusters.cpp [clang][deps] Move stripping of diagnostic serialization from `clang-scan-deps` to `DependencyScanning` library 2021-06-14 12:23:32 +02:00
CMakeLists.txt [cmake] use project relative paths when generating ASTNodeAPI.json 2021-11-15 12:35:34 +01:00
CommonOptionsParser.cpp [clang] Replace report_fatal_error(std::string) uses with report_fatal_error(Twine) 2021-10-06 11:43:19 +01:00
CompilationDatabase.cpp [CompilationDatabase] Pass Twine by const reference instead of by value. NFCI. 2021-01-07 12:53:28 +00:00
EmptyNodeIntrospection.inc.in [AST] Add DeclarationNameInfo to node introspection 2021-04-25 12:12:03 +01:00
Execution.cpp [NFC] Refactor Registry loops to range for 2020-06-19 00:40:10 +01:00
ExpandResponseFilesCompilationDatabase.cpp [Support] Expand `<CFGDIR>` as the base directory in configuration files. 2021-12-30 13:43:47 -05:00
FileMatchTrie.cpp [clang][Tooling] Try to avoid file system access if there is no record for the file in compile_commads.json 2020-07-17 18:49:14 +02:00
FixIt.cpp
GuessTargetAndModeCompilationDatabase.cpp
InterpolatingCompilationDatabase.cpp [Tooling] When transferring compile commands between files, always use '--' 2022-01-11 01:41:42 +01:00
JSONCompilationDatabase.cpp [clang][Tooling] Use Windows command lines on all Windows, except Cygwin 2021-10-13 22:55:14 +03:00
NodeIntrospection.cpp [AST] Sort introspection results without instantiating other data 2021-04-23 16:21:01 +01:00
Refactoring.cpp
RefactoringCallbacks.cpp
StandaloneExecution.cpp
Tooling.cpp [clang][tooling] Properly initialize DiagnosticsEngine for cc1 command-line construction 2021-09-10 13:54:24 +02:00