summaryrefslogtreecommitdiffstats
path: root/libcxx
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx')
-rw-r--r--libcxx/test/support/platform_support.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/libcxx/test/support/platform_support.h b/libcxx/test/support/platform_support.h
index f5981d1d087..f4c2247e0df 100644
--- a/libcxx/test/support/platform_support.h
+++ b/libcxx/test/support/platform_support.h
@@ -67,16 +67,17 @@ extern "C" {
#ifndef __CloudABI__
inline
-std::string
-get_temp_file_name()
+std::string get_temp_file_name()
{
-#if defined(_WIN32) || defined(__MINGW32__)
+#if defined(__MINGW32__)
+ char Path[MAX_PATH + 1];
+ char FN[MAX_PATH + 1];
+ do { } while (0 == GetTempPath(MAX_PATH+1, Path));
+ do { } while (0 == GetTempFileName(Path, "libcxx", 0, FN));
+ return FN;
+#elif defined(_WIN32)
char Name[] = "libcxx.XXXXXX";
-
- if (_mktemp_s(Name, sizeof(Name)) != 0) {
- abort();
- }
-
+ if (_mktemp_s(Name, sizeof(Name)) != 0) abort();
return Name;
#else
std::string Name;
OpenPOWER on IntegriCloud