The code below runs on Icarus (and ModelSim), reporting 'Hello world'. However, it is rejected as invalid by Riviera-PRO, Incisive, and VCS. Note that 'top.foo.foo.baz' is not a valid path to 'baz':
module foo; task baz; $write("Hello world!\n"); endtask endmodule module bar; initial begin top.foo.foo.baz; $finish; end endmodule module top; foo foo(); bar bar(); endmodule
See also https://www.edaplayground.com/x/4hFf.
Also - getting confused - presumably v10 is still the latest-and-greatest? And is the search working? 'reported_by:EML' returns nothing.
The hierarchical search algorithm is indeed broken - it matches module names as well as instance names at intermediate levels in the hierarchy.
Setting target to devel, as that is where this will be fixed first.
v10.2 is the latest stable release - see https://github.com/steveicarus/iverilog/releases. v10.3 is coming soon.