diff options
author | Henner Zeller <h.zeller@acm.org> | 2019-05-14 22:01:15 -0700 |
---|---|---|
committer | Henner Zeller <h.zeller@acm.org> | 2019-05-14 22:01:15 -0700 |
commit | 5e443a5d0db8f517582818e756871ec2e8117dbe (patch) | |
tree | 5886cacde23aaa6adb7497267eb450c29d895383 /passes | |
parent | c8c1df23a0ddf85b6d5a822299634b42b82a6e15 (diff) | |
download | yosys-5e443a5d0db8f517582818e756871ec2e8117dbe.tar.gz yosys-5e443a5d0db8f517582818e756871ec2e8117dbe.tar.bz2 yosys-5e443a5d0db8f517582818e756871ec2e8117dbe.zip |
Fix two instances of integer-assignment to string.
o In cover.cc, the int-result of mkstemps() was assigned to a string
and silently interpreted as a single-character filename with a funny
value. Fix with the intent: assign the filename.
o in libparse.cc, an int was assigned to a string, but depending on
visible constructors, this is ambiguous. Explicitly cast this to
a char.
Diffstat (limited to 'passes')
-rw-r--r-- | passes/cmds/cover.cc | 3 | ||||
-rw-r--r-- | passes/techmap/libparse.cc | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/passes/cmds/cover.cc b/passes/cmds/cover.cc index 0ec747671..721ebded4 100644 --- a/passes/cmds/cover.cc +++ b/passes/cmds/cover.cc @@ -105,7 +105,8 @@ struct CoverPass : public Pass { #else char filename_buffer[4096]; snprintf(filename_buffer, 4096, "%s/yosys_cover_%d_XXXXXX.txt", filename.c_str(), getpid()); - filename = mkstemps(filename_buffer, 4); + mkstemps(filename_buffer, 4); + filename = filename_buffer; #endif } FILE *f = fopen(filename.c_str(), open_mode); diff --git a/passes/techmap/libparse.cc b/passes/techmap/libparse.cc index 991cc4498..349ccc115 100644 --- a/passes/techmap/libparse.cc +++ b/passes/techmap/libparse.cc @@ -94,7 +94,7 @@ int LibertyParser::lexer(std::string &str) // search for identifiers, numbers, plus or minus. if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && c <= '9') || c == '_' || c == '-' || c == '+' || c == '.') { - str = c; + str = static_cast<char>(c); while (1) { c = f.get(); if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && c <= '9') || c == '_' || c == '-' || c == '+' || c == '.') |