aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-10-10 18:34:19 +0200
committerClifford Wolf <clifford@clifford.at>2014-10-10 18:34:19 +0200
commit54bf3a95dd859ac1811a5265ad45f9eb596de3db (patch)
treeca4ef75f8ad7610b389103c8028ffba2d8f9f8bb
parent2c683102be85b0ee9c03c85ddcf5d7fd0f004ab7 (diff)
downloadyosys-54bf3a95dd859ac1811a5265ad45f9eb596de3db.tar.gz
yosys-54bf3a95dd859ac1811a5265ad45f9eb596de3db.tar.bz2
yosys-54bf3a95dd859ac1811a5265ad45f9eb596de3db.zip
More Win32 build fixes
-rw-r--r--libs/subcircuit/subcircuit.cc4
-rw-r--r--passes/techmap/extract.cc17
2 files changed, 11 insertions, 10 deletions
diff --git a/libs/subcircuit/subcircuit.cc b/libs/subcircuit/subcircuit.cc
index 84f23d636..cf14df0ac 100644
--- a/libs/subcircuit/subcircuit.cc
+++ b/libs/subcircuit/subcircuit.cc
@@ -34,6 +34,7 @@
using namespace SubCircuit;
+#ifndef _YOSYS_
static std::string my_stringf(const char *fmt, ...)
{
std::string string;
@@ -52,6 +53,9 @@ static std::string my_stringf(const char *fmt, ...)
return string;
}
+#else
+# define my_stringf YOSYS_NAMESPACE_PREFIX stringf
+#endif
SubCircuit::Graph::Graph(const Graph &other, const std::vector<std::string> &otherNodes)
{
diff --git a/passes/techmap/extract.cc b/passes/techmap/extract.cc
index e0b1d360a..994ef8f2a 100644
--- a/passes/techmap/extract.cc
+++ b/passes/techmap/extract.cc
@@ -518,24 +518,21 @@ struct ExtractPass : public Pass {
if (args[argidx] == "-swap" && argidx+2 < args.size()) {
std::string type = RTLIL::escape_id(args[++argidx]);
std::set<std::string> ports;
- char *ports_str = strdup(args[++argidx].c_str());
- for (char *sptr, *p = strtok_r(ports_str, ",\t\r\n ", &sptr); p != NULL; p = strtok_r(NULL, ",\t\r\n ", &sptr))
+ std::string ports_str = args[++argidx], p;
+ while (!(p = next_token(ports_str, ",\t\r\n ")).empty())
ports.insert(RTLIL::escape_id(p));
- free(ports_str);
solver.addSwappablePorts(type, ports);
continue;
}
if (args[argidx] == "-perm" && argidx+3 < args.size()) {
std::string type = RTLIL::escape_id(args[++argidx]);
std::vector<std::string> map_left, map_right;
- char *left_str = strdup(args[++argidx].c_str());
- char *right_str = strdup(args[++argidx].c_str());
- for (char *sptr, *p = strtok_r(left_str, ",\t\r\n ", &sptr); p != NULL; p = strtok_r(NULL, ",\t\r\n ", &sptr))
+ std::string left_str = args[++argidx];
+ std::string right_str = args[++argidx], p;
+ while (!(p = next_token(left_str, ",\t\r\n ")).empty())
map_left.push_back(RTLIL::escape_id(p));
- for (char *sptr, *p = strtok_r(right_str, ",\t\r\n ", &sptr); p != NULL; p = strtok_r(NULL, ",\t\r\n ", &sptr))
+ while (!(p = next_token(right_str, ",\t\r\n ")).empty())
map_right.push_back(RTLIL::escape_id(p));
- free(left_str);
- free(right_str);
if (map_left.size() != map_right.size())
log_cmd_error("Arguments to -perm are not a valid permutation!\n");
std::map<std::string, std::string> map;
@@ -665,7 +662,7 @@ struct ExtractPass : public Pass {
log("Solving for %s in %s.\n", ("needle_" + RTLIL::unescape_id(needle->name)).c_str(), haystack_it.first.c_str());
solver.solve(results, "needle_" + RTLIL::unescape_id(needle->name), haystack_it.first, false);
}
- log("Found %zd matches.\n", results.size());
+ log("Found %d matches.\n", GetSize(results));
if (results.size() > 0)
{