summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/ClangExpressionParser.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2014-10-20 17:46:56 +0000
committerZachary Turner <zturner@google.com>2014-10-20 17:46:56 +0000
commitcb5742b8287f888b384de23f34706d9a50c04692 (patch)
treeab56cc5ce5a3d36ad016007293e48ac485d9ee57 /lldb/source/Expression/ClangExpressionParser.cpp
parent10687b0ea5f45dffc800f5d38cb73269aecc9f45 (diff)
downloadbcm5719-llvm-cb5742b8287f888b384de23f34706d9a50c04692.tar.gz
bcm5719-llvm-cb5742b8287f888b384de23f34706d9a50c04692.zip
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
Diffstat (limited to 'lldb/source/Expression/ClangExpressionParser.cpp')
-rw-r--r--lldb/source/Expression/ClangExpressionParser.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/lldb/source/Expression/ClangExpressionParser.cpp b/lldb/source/Expression/ClangExpressionParser.cpp
index ad7ec2f9da3..af91d9b405f 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<PATH_MAX> 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;
}
OpenPOWER on IntegriCloud