llvm-project/clang/lib/Lex
Jan Svoboda b672638dbc [clang][deps] Ensure deterministic filename case
The dependency scanner can reuse single FileManager instance across multiple translation units. This may lead to non-deterministic output depending on which TU gets processed first.

One of the problems is that Clang uses DirectoryEntry::getName in the header search algorithm. This function returns the path that was first used to construct the (shared) entry in FileManager. Using DirectoryEntryRef::getName instead preserves the case as it was spelled out for the current "get directory entry" request.

rdar://90647508

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D123229
2022-04-08 09:18:00 +02:00
..
CMakeLists.txt [clang] Move `ApplyHeaderSearchOptions` from Frontend to Lex 2022-01-11 17:57:40 +01:00
DependencyDirectivesSourceMinimizer.cpp [clang][lex][minimizer] Avoid treating path separators as comments 2022-02-15 09:49:19 +01:00
HeaderMap.cpp [clang][lex] Remark on search path usage 2021-10-12 12:20:55 +02:00
HeaderSearch.cpp [clang][deps] Ensure deterministic filename case 2022-04-08 09:18:00 +02:00
InitHeaderSearch.cpp [PS4] Fix header search list 2022-04-05 14:14:13 -07:00
Lexer.cpp [NFC][Lexer] Remove getLangOpts function from Lexer 2022-03-02 11:17:05 +01:00
LiteralSupport.cpp Silence -Wlogical-op-parentheses and fix a logic bug while doing so 2022-03-14 10:13:39 -04:00
MacroArgs.cpp
MacroInfo.cpp [Preprocessor] Reduce the memory overhead of `#define` directives (Recommit) 2022-02-14 09:27:44 -08:00
ModuleMap.cpp [C++20][Modules][HU 1/5] Introduce header units as a module type. 2022-03-25 09:17:14 +00:00
PPCaching.cpp [clang] Introduce SourceLocation::[U]IntTy typedefs. 2021-07-21 10:45:46 +01:00
PPCallbacks.cpp
PPConditionalDirectiveRecord.cpp Add support for #elifdef and #elifndef 2021-05-27 08:57:47 -04:00
PPDirectives.cpp [clang][lex] Introduce `ConstSearchDirIterator` 2022-02-15 10:36:54 +01:00
PPExpressions.cpp Implement literal suffixes for _BitInt 2022-03-14 09:24:19 -04:00
PPLexerChange.cpp Serialize PragmaAssumeNonNullLoc to support preambles 2022-03-31 11:08:01 -04:00
PPMacroExpansion.cpp Currently the control of the eval-method is mixed with fast-math. 2022-03-17 11:48:03 -07:00
Pragma.cpp [clang] fix out of bounds access in an empty string when lexing a _Pragma with missing string token 2022-02-02 11:16:11 -08:00
PreprocessingRecord.cpp Add support for #elifdef and #elifndef 2021-05-27 08:57:47 -04:00
Preprocessor.cpp Add support for floating-point option `ffp-eval-method` and for 2022-02-23 15:00:18 -08:00
PreprocessorLexer.cpp
ScratchBuffer.cpp SourceManager: Make LastLineNoContentCache and ContentCache::SourceLineCache mutable, NFC 2020-10-23 13:22:47 -04:00
TokenConcatenation.cpp C++2a -> C++20 in some identifiers; NFC. 2020-04-21 15:37:19 -04:00
TokenLexer.cpp [clang] Use llvm::reverse (NFC) 2021-12-17 16:51:42 -08:00
UnicodeCharSets.h Support Unicode 14 identifiers 2021-09-16 13:21:27 -04:00