aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-03-01 08:57:58 +0100
committerClifford Wolf <clifford@clifford.at>2013-03-01 09:01:49 +0100
commit1bc0f04789a8aeede49db5cdda298bc828a19f7f (patch)
treec3ea2839965eb5716f15ce084639d57fa9c94e0b /kernel
parent8a6b0a35207578342c10113b29ca3a303092c37a (diff)
downloadyosys-1bc0f04789a8aeede49db5cdda298bc828a19f7f.tar.gz
yosys-1bc0f04789a8aeede49db5cdda298bc828a19f7f.tar.bz2
yosys-1bc0f04789a8aeede49db5cdda298bc828a19f7f.zip
Added id2cstr API
Diffstat (limited to 'kernel')
-rw-r--r--kernel/rtlil.h7
-rw-r--r--kernel/select.cc16
-rw-r--r--kernel/show.cc4
3 files changed, 17 insertions, 10 deletions
diff --git a/kernel/rtlil.h b/kernel/rtlil.h
index 15fec2690..b5338a33c 100644
--- a/kernel/rtlil.h
+++ b/kernel/rtlil.h
@@ -110,6 +110,13 @@ namespace RTLIL
return str;
}
+ static const char *id2cstr(std::string str) __attribute__((unused));
+ static const char *id2cstr(std::string str) {
+ if (str.size() > 1 && str[0] == '\\' && str[1] != '$')
+ return str.c_str() + 1;
+ return str.c_str();
+ }
+
static IdString new_id(std::string file, int line, std::string func) __attribute__((unused));
static IdString new_id(std::string file, int line, std::string func) {
std::string str = "$auto$";
diff --git a/kernel/select.cc b/kernel/select.cc
index b55ee969c..f43cc8495 100644
--- a/kernel/select.cc
+++ b/kernel/select.cc
@@ -542,7 +542,7 @@ struct SelectPass : public Pass {
if (arg == "-module" && argidx+1 < args.size()) {
RTLIL::IdString mod_name = RTLIL::escape_id(args[++argidx]);
if (design->modules.count(mod_name) == 0)
- log_cmd_error("No such module: %s\n", mod_name.c_str());
+ log_cmd_error("No such module: %s\n", id2cstr(mod_name));
design->selected_active_module = mod_name;
got_module = true;
continue;
@@ -597,20 +597,20 @@ struct SelectPass : public Pass {
for (auto mod_it : design->modules)
{
if (sel->selected_whole_module(mod_it.first))
- log("%s\n", mod_it.first.c_str());
+ log("%s\n", id2cstr(mod_it.first));
if (sel->selected_module(mod_it.first)) {
for (auto &it : mod_it.second->wires)
if (sel->selected_member(mod_it.first, it.first))
- log("%s/%s\n", mod_it.first.c_str(), it.first.c_str());
+ log("%s/%s\n", id2cstr(mod_it.first), id2cstr(it.first));
for (auto &it : mod_it.second->memories)
if (sel->selected_member(mod_it.first, it.first))
- log("%s/%s\n", mod_it.first.c_str(), it.first.c_str());
+ log("%s/%s\n", id2cstr(mod_it.first), id2cstr(it.first));
for (auto &it : mod_it.second->cells)
if (sel->selected_member(mod_it.first, it.first))
- log("%s/%s\n", mod_it.first.c_str(), it.first.c_str());
+ log("%s/%s\n", id2cstr(mod_it.first), id2cstr(it.first));
for (auto &it : mod_it.second->processes)
if (sel->selected_member(mod_it.first, it.first))
- log("%s/%s\n", mod_it.first.c_str(), it.first.c_str());
+ log("%s/%s\n", id2cstr(mod_it.first), id2cstr(it.first));
}
}
return;
@@ -648,10 +648,10 @@ struct SelectPass : public Pass {
if (sel.full_selection)
log("*\n");
for (auto &it : sel.selected_modules)
- log("%s\n", it.c_str());
+ log("%s\n", id2cstr(it));
for (auto &it : sel.selected_members)
for (auto &it2 : it.second)
- log("%s/%s\n", it.first.c_str(), it2.c_str());
+ log("%s/%s\n", id2cstr(it.first), id2cstr(it2));
return;
}
diff --git a/kernel/show.cc b/kernel/show.cc
index eef4c44f8..b587a8568 100644
--- a/kernel/show.cc
+++ b/kernel/show.cc
@@ -289,9 +289,9 @@ struct ShowWorker
if (!design->selected_module(module->name))
continue;
if (design->selected_whole_module(module->name))
- log("Dumping module %s to page %d.\n", module->name.c_str(), ++page_counter);
+ log("Dumping module %s to page %d.\n", id2cstr(module->name), ++page_counter);
else
- log("Dumping selected parts of module %s to page %d.\n", module->name.c_str(), ++page_counter);
+ log("Dumping selected parts of module %s to page %d.\n", id2cstr(module->name), ++page_counter);
handle_module();
}
}