diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-14 16:43:15 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-14 16:43:15 +0000 |
commit | a54ba12ae7a8cf826b65d2e4a882258e952c35b1 (patch) | |
tree | 26720c1cc52db28b8895f76e2999dd925c0cddbb | |
parent | bb40b3e957b29d9147198aecdbc6c58d1486a610 (diff) | |
download | llvm-a54ba12ae7a8cf826b65d2e4a882258e952c35b1.tar.gz llvm-a54ba12ae7a8cf826b65d2e4a882258e952c35b1.tar.bz2 llvm-a54ba12ae7a8cf826b65d2e4a882258e952c35b1.tar.xz |
Convert a use of sys::Path::GetTemporaryDirectory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183987 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Support/GraphWriter.h | 18 | ||||
-rw-r--r-- | lib/Support/GraphWriter.cpp | 19 |
2 files changed, 17 insertions, 20 deletions
diff --git a/include/llvm/Support/GraphWriter.h b/include/llvm/Support/GraphWriter.h index b021364019..62547ddf0c 100644 --- a/include/llvm/Support/GraphWriter.h +++ b/include/llvm/Support/GraphWriter.h @@ -319,25 +319,23 @@ raw_ostream &WriteGraph(raw_ostream &O, const GraphType &G, return O; } -std::string createGraphFilename(const Twine &Name); +std::string createGraphFilename(const Twine &Name, int &FD); template <typename GraphType> std::string WriteGraph(const GraphType &G, const Twine &Name, bool ShortNames = false, const Twine &Title = "") { - std::string Filename = createGraphFilename(Name); - errs() << "Writing '" << Filename << "'... "; + int FD; + std::string Filename = createGraphFilename(Name, FD); + raw_fd_ostream O(FD, /*shouldClose=*/ true); - std::string ErrorInfo; - raw_fd_ostream O(Filename.c_str(), ErrorInfo); - - if (ErrorInfo.empty()) { - llvm::WriteGraph(O, G, ShortNames, Title); - errs() << " done. \n"; - } else { + if (FD == -1) { errs() << "error opening file '" << Filename << "' for writing!\n"; return ""; } + llvm::WriteGraph(O, G, ShortNames, Title); + errs() << " done. \n"; + return Filename; } diff --git a/lib/Support/GraphWriter.cpp b/lib/Support/GraphWriter.cpp index f651e25e76..163345e4e6 100644 --- a/lib/Support/GraphWriter.cpp +++ b/lib/Support/GraphWriter.cpp @@ -66,18 +66,17 @@ StringRef llvm::DOT::getColorString(unsigned ColorNumber) { return Colors[ColorNumber % NumColors]; } -std::string llvm::createGraphFilename(const Twine &Name) { - std::string ErrMsg; - sys::Path Filename = sys::Path::GetTemporaryDirectory(&ErrMsg); - if (Filename.isEmpty()) { - errs() << "Error: " << ErrMsg << "\n"; - return ""; - } - Filename.appendComponent((Name + ".dot").str()); - if (Filename.makeUnique(true,&ErrMsg)) { - errs() << "Error: " << ErrMsg << "\n"; +std::string llvm::createGraphFilename(const Twine &Name, int &FD) { + FD = -1; + SmallString<128> Filename; + error_code EC = sys::fs::unique_file(Twine(Name) + "-%%%%%%%.dot", + FD, Filename); + if (EC) { + errs() << "Error: " << EC.message() << "\n"; return ""; } + + errs() << "Writing '" << Filename << "'... "; return Filename.str(); } |