From a9a2cb69c874646235eb3a7edfdea531534b43ba Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 24 Aug 2019 09:58:08 +0200 Subject: [PATCH] Avoiding one assertion by not considering floating device terminals --- src/db/db/dbNetlistCompare.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/db/db/dbNetlistCompare.cc b/src/db/db/dbNetlistCompare.cc index f76bb6235..499bc4041 100644 --- a/src/db/db/dbNetlistCompare.cc +++ b/src/db/db/dbNetlistCompare.cc @@ -732,7 +732,14 @@ public: // .. nothing yet .. } + /** + * @brief Builds a node for a net + */ NetGraphNode (const db::Net *net, DeviceCategorizer &device_categorizer, CircuitCategorizer &circuit_categorizer, const DeviceFilter &device_filter, const std::map *circuit_map, const CircuitPinMapper *pin_map); + + /** + * @brief Builds a virtual node for a subcircuit + */ NetGraphNode (const db::SubCircuit *sc, CircuitCategorizer &circuit_categorizer, const std::map *circuit_map, const CircuitPinMapper *pin_map); void expand_subcircuit_nodes (NetGraph *graph); @@ -1102,6 +1109,9 @@ NetGraphNode::NetGraphNode (const db::Net *net, DeviceCategorizer &device_catego Transition ed2 (d, device_cat, terminal1_id, terminal2_id); const db::Net *net2 = d->net_for_terminal (it->id ()); + if (! net2) { + continue; + } std::map::const_iterator in = n2entry.find ((const void *) net2); if (in == n2entry.end ()) { @@ -1138,6 +1148,9 @@ NetGraphNode::NetGraphNode (const db::SubCircuit *sc, CircuitCategorizer &circui size_t pin_id = p->id (); const db::Net *net_at_pin = sc->net_for_pin (pin_id); + if (! net_at_pin) { + continue; + } // A pin assignment may be missing because there is no net for a pin -> skip this