diff options
author | Ruben Undheim <ruben.undheim@gmail.com> | 2019-10-18 19:56:55 +0000 |
---|---|---|
committer | Ruben Undheim <ruben.undheim@gmail.com> | 2019-10-18 19:56:55 +0000 |
commit | b9e09c69c0570486f3f8a73499049b636a4b4c34 (patch) | |
tree | e36d38108251cdbc8ed83721a9ae06da73cfd848 /passes/cmds/cover.cc | |
parent | 3c2327501d79de3f007014c1fd8817c95c477aa4 (diff) | |
parent | 1f6bb85359149a016811e7e7fef980c3d45211e7 (diff) |
Update upstream source from tag 'upstream/0.9'
Update to upstream version '0.9'
with Debian dir df447efe4e1efaece1d926cd037de4a7c3c1bebe
Diffstat (limited to 'passes/cmds/cover.cc')
-rw-r--r-- | passes/cmds/cover.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/passes/cmds/cover.cc b/passes/cmds/cover.cc index 0ec74767..1128116b 100644 --- a/passes/cmds/cover.cc +++ b/passes/cmds/cover.cc @@ -98,21 +98,23 @@ struct CoverPass : public Pass { } if ((args[argidx] == "-o" || args[argidx] == "-a" || args[argidx] == "-d") && argidx+1 < args.size()) { const char *open_mode = args[argidx] == "-a" ? "a+" : "w"; - std::string filename = args[++argidx]; + const std::string &filename = args[++argidx]; + FILE *f = nullptr; if (args[argidx-1] == "-d") { #ifdef _WIN32 log_cmd_error("The 'cover -d' option is not supported on win32.\n"); #else char filename_buffer[4096]; snprintf(filename_buffer, 4096, "%s/yosys_cover_%d_XXXXXX.txt", filename.c_str(), getpid()); - filename = mkstemps(filename_buffer, 4); + f = fdopen(mkstemps(filename_buffer, 4), "w"); #endif + } else { + f = fopen(filename.c_str(), open_mode); } - FILE *f = fopen(filename.c_str(), open_mode); if (f == NULL) { for (auto f : out_files) fclose(f); - log_cmd_error("Can't create file %s.\n", args[argidx].c_str()); + log_cmd_error("Can't create file %s%s.\n", args[argidx-1] == "-d" ? "in directory " : "", args[argidx].c_str()); } out_files.push_back(f); continue; |