timinginfo: Error instead of segfault on const signals.
authorMarcelina Kościelnicka <mwk@0x04.net>
Mon, 14 Dec 2020 17:14:42 +0000 (18:14 +0100)
committerMarcelina Kościelnicka <mwk@0x04.net>
Mon, 14 Dec 2020 23:51:16 +0000 (00:51 +0100)
Reported by @Ravenslofty

kernel/timinginfo.h

index d818e580b96766be81d828223dfac76b84c1f06e..eba3386d6f262664e6fe3472f789840362dbc845 100644 (file)
@@ -88,10 +88,10 @@ struct TimingInfo
                                auto src = cell->getPort(ID::SRC);
                                auto dst = cell->getPort(ID::DST);
                                for (const auto &c : src.chunks())
-                                       if (!c.wire->port_input)
+                                       if (!c.wire || !c.wire->port_input)
                                                log_error("Module '%s' contains specify cell '%s' where SRC '%s' is not a module input.\n", log_id(module), log_id(cell), log_signal(src));
                                for (const auto &c : dst.chunks())
-                                       if (!c.wire->port_output)
+                                       if (!c.wire || !c.wire->port_output)
                                                log_error("Module '%s' contains specify cell '%s' where DST '%s' is not a module output.\n", log_id(module), log_id(cell), log_signal(dst));
                                int rise_max = cell->getParam(ID::T_RISE_MAX).as_int();
                                int fall_max = cell->getParam(ID::T_FALL_MAX).as_int();