lli: Tweak CacheName not to contain DOS driveletter.
authorNAKAMURA Takumi <geek4civic@gmail.com>
Fri, 10 Jan 2014 10:38:40 +0000 (10:38 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Fri, 10 Jan 2014 10:38:40 +0000 (10:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198929 91177308-0d34-0410-b5e6-96231b3b80d8

tools/lli/lli.cpp

index 963e93e2bf13d647e881749912f268be7f2ae9f6..3766f8c0caaa058b56e10835c3210c589412e66d 100644 (file)
@@ -304,7 +304,15 @@ private:
     size_t PrefixLength = Prefix.length();
     if (ModID.substr(0, PrefixLength) != Prefix)
       return false;
-    CacheName = CacheDir + ModID.substr(PrefixLength);
+        std::string CacheSubdir = ModID.substr(PrefixLength);
+#if defined(_WIN32)
+        // Transform "X:\foo" => "/X\foo" for convenience.
+        if (isalpha(CacheSubdir[0]) && CacheSubdir[1] == ':') {
+          CacheSubdir[1] = CacheSubdir[0];
+          CacheSubdir[0] = '/';
+        }
+#endif
+    CacheName = CacheDir + CacheSubdir;
     size_t pos = CacheName.rfind('.');
     CacheName.replace(pos, CacheName.length() - pos, ".o");
     return true;