diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-10-07 08:32:50 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-10-07 08:32:50 +0000 |
commit | d5e0b58ef253c7db7668a15b63eb122b0a879df5 (patch) | |
tree | 4ee7c8a4f84634b14dd9501f46494f29141221f2 /clang/lib/Basic/VirtualFileSystem.cpp | |
parent | 92aa1c02df82d06ea4fb56ce78b5c0ea56c1da3a (diff) | |
download | llvm-d5e0b58ef253c7db7668a15b63eb122b0a879df5.zip llvm-d5e0b58ef253c7db7668a15b63eb122b0a879df5.tar.gz llvm-d5e0b58ef253c7db7668a15b63eb122b0a879df5.tar.bz2 |
[VFS] Also drop '.' when adding files to an in-memory FS.
Otherwise we won't be able to find them later.
llvm-svn: 249525
Diffstat (limited to 'clang/lib/Basic/VirtualFileSystem.cpp')
-rw-r--r-- | clang/lib/Basic/VirtualFileSystem.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Basic/VirtualFileSystem.cpp b/clang/lib/Basic/VirtualFileSystem.cpp index b3805b2..b5bf33f 100644 --- a/clang/lib/Basic/VirtualFileSystem.cpp +++ b/clang/lib/Basic/VirtualFileSystem.cpp @@ -495,6 +495,13 @@ void InMemoryFileSystem::addFile(const Twine &P, time_t ModificationTime, auto I = llvm::sys::path::begin(Path), E = llvm::sys::path::end(Path); while (true) { StringRef Name = *I; + // Skip over ".". + // FIXME: Also handle "..". + if (Name == ".") { + ++I; + continue; + } + detail::InMemoryNode *Node = Dir->getChild(Name); ++I; if (!Node) { |