From cb5742b8287f888b384de23f34706d9a50c04692 Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Mon, 20 Oct 2014 17:46:56 +0000 Subject: [PATCH] Don't use mkstemp, as it doesn't exist on Windows. Differential Revision: http://reviews.llvm.org/D5849 Reviewed by: Jason Molenda llvm-svn: 220218 --- lldb/source/Expression/ClangExpressionParser.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lldb/source/Expression/ClangExpressionParser.cpp b/lldb/source/Expression/ClangExpressionParser.cpp index ad7ec2f..af91d9b 100644 --- a/lldb/source/Expression/ClangExpressionParser.cpp +++ b/lldb/source/Expression/ClangExpressionParser.cpp @@ -301,18 +301,19 @@ ClangExpressionParser::Parse (Stream &stream) { std::string temp_source_path; + int temp_fd = -1; + llvm::SmallString result_path; FileSpec tmpdir_file_spec; if (HostInfo::GetLLDBPath(lldb::ePathTypeLLDBTempSystemDir, tmpdir_file_spec)) { - tmpdir_file_spec.AppendPathComponent("expr.XXXXXX"); + tmpdir_file_spec.AppendPathComponent("lldb-%%%%%%.expr"); temp_source_path = std::move(tmpdir_file_spec.GetPath()); + llvm::sys::fs::createUniqueFile(temp_source_path, temp_fd, result_path); } else { - temp_source_path = "/tmp/expr.XXXXXX"; + llvm::sys::fs::createTemporaryFile("lldb", "expr", temp_fd, result_path); } - - int temp_fd = ::mkstemp(&temp_source_path[0]); if (temp_fd != -1) { @@ -325,7 +326,7 @@ ClangExpressionParser::Parse (Stream &stream) { file.Close(); SourceMgr.setMainFileID(SourceMgr.createFileID( - m_file_manager->getFile(temp_source_path), + m_file_manager->getFile(result_path), SourceLocation(), SrcMgr::C_User)); created_main_file = true; } -- 2.7.4