summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Support/Path.cpp3
-rw-r--r--llvm/unittests/Support/Path.cpp5
2 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Support/Path.cpp b/llvm/lib/Support/Path.cpp
index 88137eac9a5..6d10c0e67bb 100644
--- a/llvm/lib/Support/Path.cpp
+++ b/llvm/lib/Support/Path.cpp
@@ -665,7 +665,8 @@ static error_code
createTemporaryFile(const Twine &Prefix, StringRef Suffix, int &ResultFD,
llvm::SmallVectorImpl<char> &ResultPath,
FSEntity Type) {
- return createTemporaryFile(Prefix + "-%%%%%%." + Suffix, ResultFD, ResultPath,
+ const char *Middle = Suffix.empty() ? "-%%%%%%" : "-%%%%%%.";
+ return createTemporaryFile(Prefix + Middle + Suffix, ResultFD, ResultPath,
Type);
}
diff --git a/llvm/unittests/Support/Path.cpp b/llvm/unittests/Support/Path.cpp
index b6c1dd80c2b..2f19bb29442 100644
--- a/llvm/unittests/Support/Path.cpp
+++ b/llvm/unittests/Support/Path.cpp
@@ -213,6 +213,7 @@ TEST_F(FileSystemTest, TempFiles) {
int FD2;
SmallString<64> TempPath2;
ASSERT_NO_ERROR(fs::createTemporaryFile("prefix", "temp", FD2, TempPath2));
+ ASSERT_TRUE(TempPath2.endswith(".temp"));
ASSERT_NE(TempPath.str(), TempPath2.str());
fs::file_status A, B;
@@ -230,6 +231,10 @@ TEST_F(FileSystemTest, TempFiles) {
ASSERT_NO_ERROR(fs::exists(Twine(TempPath2), TempFileExists));
EXPECT_FALSE(TempFileExists);
+ SmallString<64> TempPath3;
+ ASSERT_NO_ERROR(fs::createTemporaryFile("prefix", "", TempPath3));
+ ASSERT_FALSE(TempPath3.endswith("."));
+
// Create a hard link to Temp1.
ASSERT_NO_ERROR(fs::create_hard_link(Twine(TempPath), Twine(TempPath2)));
bool equal;
OpenPOWER on IntegriCloud