diff --git a/kernel/rtlil.h b/kernel/rtlil.h index 999b60fd7..471aa5e5f 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -121,6 +121,7 @@ namespace RTLIL constexpr StaticIdString(StaticId id, const IdString &id_str) : id_str(id_str), id(id) {} constexpr inline operator const IdString &() const { return id_str; } constexpr inline int index() const { return static_cast(id); } + constexpr inline const IdString &id_string() const { return id_str; } const IdString &id_str; const StaticId id; @@ -343,6 +344,8 @@ struct RTLIL::IdString *this = id; } + constexpr inline const IdString &id_string() const { return *this; } + inline const char *c_str() const { return global_id_storage_.at(index_); } diff --git a/passes/cmds/example_dt.cc b/passes/cmds/example_dt.cc index b10f50502..7d1c42a79 100644 --- a/passes/cmds/example_dt.cc +++ b/passes/cmds/example_dt.cc @@ -77,7 +77,7 @@ struct ExampleDtPass : public Pass auto enqueue = [&](DriveSpec const &spec) { int index = queue(spec); if (index == GetSize(graph_nodes)) - graph_nodes.emplace_back(compute_graph.add(ID($pending), index).index()); + graph_nodes.emplace_back(compute_graph.add(ID($pending).id_string(), index).index()); //if (index >= GetSize(graph_nodes)) return compute_graph[graph_nodes[index]]; };