lli: LLIObjectCache: Use llvm::sys::path to get dirname.
authorNAKAMURA Takumi <geek4civic@gmail.com>
Fri, 10 Jan 2014 10:38:34 +0000 (10:38 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Fri, 10 Jan 2014 10:38:34 +0000 (10:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198928 91177308-0d34-0410-b5e6-96231b3b80d8

tools/lli/lli.cpp

index c90cc87a175a6c6f2fff407cb5d83f65762f83dd..963e93e2bf13d647e881749912f268be7f2ae9f6 100644 (file)
@@ -268,8 +268,11 @@ public:
     if (!getCacheFilename(ModuleID, CacheName))
       return;
     std::string errStr;
-    if (!CacheDir.empty()) // Create user-defined cache dir.
-      sys::fs::create_directories(CacheName.substr(0, CacheName.rfind('/')));
+    if (!CacheDir.empty()) { // Create user-defined cache dir.
+      SmallString<128> dir(CacheName);
+      sys::path::remove_filename(dir);
+      sys::fs::create_directories(Twine(dir));
+    }
     raw_fd_ostream outfile(CacheName.c_str(), errStr, sys::fs::F_Binary);
     outfile.write(Obj->getBufferStart(), Obj->getBufferSize());
     outfile.close();