aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic/FileManager.cpp
diff options
context:
space:
mode:
authorJohn Thompson <John.Thompson.JTSoftware@gmail.com>2009-12-18 14:18:21 +0000
committerJohn Thompson <John.Thompson.JTSoftware@gmail.com>2009-12-18 14:18:21 +0000
commit9a6ac540bab63380a4a78d8fad87f23c50878685 (patch)
tree206b4637f212eca79a2ddf35e0286f38950dd8c8 /lib/Basic/FileManager.cpp
parent64437137888d69b8ef03f3057524e5056e7d9dd6 (diff)
Removing trailing directory separator, to make stat work
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91684 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/FileManager.cpp')
-rw-r--r--lib/Basic/FileManager.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Basic/FileManager.cpp b/lib/Basic/FileManager.cpp
index 434ff39e77..c4296c3f1c 100644
--- a/lib/Basic/FileManager.cpp
+++ b/lib/Basic/FileManager.cpp
@@ -219,6 +219,11 @@ static const DirectoryEntry *getDirectoryFromFile(FileManager &FileMgr,
///
const DirectoryEntry *FileManager::getDirectory(const char *NameStart,
const char *NameEnd) {
+ // stat doesn't like trailing separators (at least on Windows).
+ if (((NameEnd - NameStart) > 1) &&
+ ((*(NameEnd - 1) == '/') || (*(NameEnd - 1) == '\\')))
+ NameEnd--;
+
++NumDirLookups;
llvm::StringMapEntry<DirectoryEntry *> &NamedDirEnt =
DirEntries.GetOrCreateValue(NameStart, NameEnd);