MCContext::GetDwarfFile(): Make FileName parsing tolerant of DOSish pathsep with...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Tue, 3 Jul 2012 03:59:29 +0000 (03:59 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Tue, 3 Jul 2012 03:59:29 +0000 (03:59 +0000)
It fixes failure in test/MC/MachO/gen-dwarf.s on Win32 w/o bash.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159640 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/MCContext.cpp

index d3c4fb1d7ca5124a06ff3f4f1ed57f6e8fe05730..b535b3e6e94943dac2ec40dea2185be6f29d7c37 100644 (file)
@@ -274,11 +274,11 @@ unsigned MCContext::GetDwarfFile(StringRef Directory, StringRef FileName,
 
   if (Directory.empty()) {
     // Separate the directory part from the basename of the FileName.
-    std::pair<StringRef, StringRef> Slash = FileName.rsplit('/');
-    Directory = Slash.second;
-    if (!Directory.empty()) {
-      Directory = Slash.first;
-      FileName = Slash.second;
+    StringRef tFileName = sys::path::filename(FileName);
+    if (!tFileName.empty()) {
+      Directory = sys::path::parent_path(FileName);
+      if (!Directory.empty())
+        FileName = sys::path::filename(FileName);
     }
   }