diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-25 00:55:28 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-25 00:55:28 +0000 |
commit | 503b726b43085a826257af6738df99d3b1f7a37c (patch) | |
tree | 9a0bd4052ffa0db69df13c11ff352e57ed83d32e /clang/lib/Driver/Driver.cpp | |
parent | 7c4d2da8e802a70069ffd75215ebdbfbc8cdaf0d (diff) | |
download | bcm5719-llvm-503b726b43085a826257af6738df99d3b1f7a37c.tar.gz bcm5719-llvm-503b726b43085a826257af6738df99d3b1f7a37c.zip |
Use the new PathV2 instead of implementing the logic in clang.
llvm-svn: 184803
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r-- | clang/lib/Driver/Driver.cpp | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 43b66ba9ee1..d524dc38553 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -1615,29 +1615,15 @@ std::string Driver::GetProgramPath(const char *Name, std::string Driver::GetTemporaryPath(StringRef Prefix, const char *Suffix) const { - // FIXME: This is lame; sys::Path should provide this function (in particular, - // it should know how to find the temporary files dir). - std::string Error; - const char *TmpDir = ::getenv("TMPDIR"); - if (!TmpDir) - TmpDir = ::getenv("TEMP"); - if (!TmpDir) - TmpDir = ::getenv("TMP"); - if (!TmpDir) - TmpDir = "/tmp"; - llvm::sys::Path P(TmpDir); - P.appendComponent(Prefix); - if (P.makeUnique(false, &Error)) { - Diag(clang::diag::err_unable_to_make_temp) << Error; + SmallString<128> Path; + llvm::error_code EC = + llvm::sys::fs::unique_file(Prefix + "-%%%%%%." + Suffix, Path); + if (EC) { + Diag(clang::diag::err_unable_to_make_temp) << EC.message(); return ""; } - // FIXME: Grumble, makeUnique sometimes leaves the file around!? PR3837. - P.eraseFromDisk(false, 0); - - if (Suffix) - P.appendSuffix(Suffix); - return P.str(); + return Path.str(); } /// \brief Compute target triple from args. |