MikePopoloski / slang

SystemVerilog compiler and language services
MIT License
555 stars 120 forks source link

slang-netlist assertion failure #985

Closed udif closed 1 month ago

udif commented 1 month ago

@jameshanlon

Describe the bug slang-netlist fails with assertion while reading verilog code.

To Reproduce

% git clone https://github.com/ultraembedded/core_jpeg
Cloning into 'core_jpeg'...
remote: Enumerating objects: 79, done.
remote: Counting objects: 100% (79/79), done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 79 (delta 32), reused 64 (delta 23), pack-reused 0
Receiving objects: 100% (79/79), 171.89 KiB | 72.00 KiB/s, done.
Resolving deltas: 100% (32/32), done.
% slang-netlist core_jpeg/src_v/jpeg_dht*
Top level design units:
    jpeg_dht

Build succeeded: 0 errors, 0 warnings
Assertion 'it != nodes.end() && "Could not find node"' failed
  in file /home/udif/git/slang/tools/netlist/include/DirectedGraph.h, line 188
  function: netlist::DirectedGraph<NodeType, EdgeType>::node_descriptor netlist::DirectedGraph<NodeType, EdgeType>::findNode(const NodeType&) const [with NodeType = netlist::NetlistNode; EdgeType = netlist::NetlistEdge; netlist::DirectedGraph<NodeType, EdgeType>::node_descriptor = long unsigned int]

Additional context Just to be clear, this fails on the master branch, unrelated to #984 .