Removing trailing directory separator, to make stat work

llvm-svn: 91684
diff --git a/clang/lib/Basic/FileManager.cpp b/clang/lib/Basic/FileManager.cpp
index 434ff39..c4296c3 100644
--- a/clang/lib/Basic/FileManager.cpp
+++ b/clang/lib/Basic/FileManager.cpp
@@ -219,6 +219,11 @@
 ///
 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);