diff options
author | Manuel Klimek <klimek@google.com> | 2014-08-13 12:34:41 +0000 |
---|---|---|
committer | Manuel Klimek <klimek@google.com> | 2014-08-13 12:34:41 +0000 |
commit | c0ff99089aca5169abd74fdf2cd66f23e61f83d5 (patch) | |
tree | c45285ca3493e8e64add786dbae98f1266584f56 /clang/lib/Basic/FileManager.cpp | |
parent | 2fe75b3a735ebe546e8ca6fa6163461fa86ce006 (diff) | |
download | llvm-c0ff99089aca5169abd74fdf2cd66f23e61f83d5.zip llvm-c0ff99089aca5169abd74fdf2cd66f23e61f83d5.tar.gz llvm-c0ff99089aca5169abd74fdf2cd66f23e61f83d5.tar.bz2 |
Default getFile() to use the last accessed name in the FileEntry.
With modules we start accessing headers for the first time while reading
the module map, which often has very different paths from the include
scanning logic.
Using the name by which the file was accessed gets us one step closer to
the right solution, which is using a FileName abstraction that decouples
the name by which a file was accessed from the FileEntry.
llvm-svn: 215541
Diffstat (limited to 'clang/lib/Basic/FileManager.cpp')
-rw-r--r-- | clang/lib/Basic/FileManager.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Basic/FileManager.cpp b/clang/lib/Basic/FileManager.cpp index e4a7f1e..07297ba 100644 --- a/clang/lib/Basic/FileManager.cpp +++ b/clang/lib/Basic/FileManager.cpp @@ -281,6 +281,13 @@ const FileEntry *FileManager::getFile(StringRef Filename, bool openFile, if (DirInfo != UFE.Dir && Data.IsVFSMapped) UFE.Dir = DirInfo; + // Always update the name to use the last name by which a file was accessed. + // FIXME: Neither this nor always using the first name is correct; we want + // to switch towards a design where we return a FileName object that + // encapsulates both the name by which the file was accessed and the + // corresponding FileEntry. + UFE.Name = Data.Name; + return &UFE; } |