]> granicus.if.org Git - clang/commitdiff
Removing trailing directory separator, to make stat work
authorJohn Thompson <John.Thompson.JTSoftware@gmail.com>
Fri, 18 Dec 2009 14:18:21 +0000 (14:18 +0000)
committerJohn Thompson <John.Thompson.JTSoftware@gmail.com>
Fri, 18 Dec 2009 14:18:21 +0000 (14:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91684 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/FileManager.cpp

index 434ff39e77ec7ec04b0afbfdb59931cf730b0775..c4296c3f1c7bd829e58ca641cf77d508fb38eb15 100644 (file)
@@ -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);