From: Rupert Swarbrick Date: Mon, 19 Jul 2021 08:23:41 +0000 (+0100) Subject: Use new read_id_num helper function elsewhere in hierarchy.cc X-Git-Tag: yosys-0.10~90 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7a25246a7ebf0b7495beae4a19569f619ca19c78;p=yosys.git Use new read_id_num helper function elsewhere in hierarchy.cc --- diff --git a/passes/hierarchy/hierarchy.cc b/passes/hierarchy/hierarchy.cc index 5839a6c75..650036580 100644 --- a/passes/hierarchy/hierarchy.cc +++ b/passes/hierarchy/hierarchy.cc @@ -1106,8 +1106,8 @@ struct HierarchyPass : public Pass { pool> params_rename; for (const auto &p : cell->parameters) { - if (p.first[0] == '$' && '0' <= p.first[1] && p.first[1] <= '9') { - int id = atoi(p.first.c_str()+1); + int id; + if (read_id_num(p.first, &id)) { if (id <= 0 || id > GetSize(cell_mod->avail_parameters)) { log(" Failed to map positional parameter %d of cell %s.%s (%s).\n", id, RTLIL::id2cstr(mod->name), RTLIL::id2cstr(cell->name), RTLIL::id2cstr(cell->type)); @@ -1134,9 +1134,9 @@ struct HierarchyPass : public Pass { log("Mapping positional arguments of cell %s.%s (%s).\n", RTLIL::id2cstr(module->name), RTLIL::id2cstr(cell->name), RTLIL::id2cstr(cell->type)); dict new_connections; - for (auto &conn : cell->connections()) - if (conn.first[0] == '$' && '0' <= conn.first[1] && conn.first[1] <= '9') { - int id = atoi(conn.first.c_str()+1); + for (auto &conn : cell->connections()) { + int id; + if (read_id_num(conn.first, &id)) { std::pair key(design->module(cell->type), id); if (pos_map.count(key) == 0) { log(" Failed to map positional argument %d of cell %s.%s (%s).\n", @@ -1146,6 +1146,7 @@ struct HierarchyPass : public Pass { new_connections[pos_map.at(key)] = conn.second; } else new_connections[conn.first] = conn.second; + } cell->connections_ = new_connections; } }