diff --git a/design_dump.cc b/design_dump.cc index b9ce6ad04..d0213725b 100644 --- a/design_dump.cc +++ b/design_dump.cc @@ -1217,6 +1217,7 @@ void Design::dump(ostream&o) const if (nodes_) { NetNode*cur = nodes_->node_next_; do { + assert(cur); cur->dump_node(o, 0); cur = cur->node_next_; } while (cur != nodes_->node_next_); diff --git a/netlist.cc b/netlist.cc index 00c1dae11..a403a3f1b 100644 --- a/netlist.cc +++ b/netlist.cc @@ -1132,6 +1132,9 @@ NetArrayDq::NetArrayDq(NetScope*s, perm_string n, NetNet*mem, unsigned awid) pin(0).set_name(perm_string::literal("Result"), 0); pin(1).set_dir(Link::INPUT); pin(1).set_name(perm_string::literal("Address"), 0); + // Increment the expression reference count for the target + // memory so that it is not deleted underneath me. + mem->incr_eref(); } NetArrayDq::~NetArrayDq()