Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fuzzer: Internal error after other error on existing testcase #1559

Closed
veripoolbot opened this issue Oct 16, 2019 · 1 comment
Closed

Fuzzer: Internal error after other error on existing testcase #1559

veripoolbot opened this issue Oct 16, 2019 · 1 comment

Comments

@veripoolbot
Copy link

@veripoolbot veripoolbot commented Oct 16, 2019


Author Name: Eric Rippey
Original Redmine Issue: 1559 from https://www.veripool.org


Running:

verilator_bin --lint-only

with test existing testcase at "test_regress/t/t_order_loop_bad.v", which is a regression test for this ancient bug:

https://www.veripool.org/issues/513

Produces:

%Error: Circular logic when ordering code (non-cutable edge loop)
verilator-veripool/test_regress/t/t_order_loop_bad.v:24: Example path: ACTIVE
verilator-veripool/test_regress/t/t_order_loop_bad.v:31: Example path: ALWAYS
verilator-veripool/test_regress/t/t_order_loop_bad.v:18: Example path: t.ready
verilator-veripool/test_regress/t/t_order_loop_bad.v:24: Example path: ACTIVE
verilator-veripool/test_regress/t/t_order_loop_bad.v:18: Example path: t.ready
verilator-veripool/test_regress/t/t_order_loop_bad.v:24: Example path: ACTIVE
verilator-veripool/test_regress/t/t_order_loop_bad.v:31: Example path: ALWAYS
verilator-veripool/test_regress/t/t_order_loop_bad.v:18: Example path: t.ready
%Error: Internal Error: verilator-veripool/test_regress/t/t_order_loop_bad.v:18: ../V3Graph.cpp:275: Loops detected in graph: VERTEX=0x299b770\n TOP->t__DOT__ready r5 c5
reg ready;
^~~~~

So it diagnoses that there is a loop, which the test harness look for. But then it goes on to produce the internal error message.

I would assume that it's intended that when there's a construct that Verilator's design can't support it should just be an error given to the user and all paths that lead to "Internal Error" are meant to be unreachable. But I don't know this for sure.

@veripoolbot

This comment has been minimized.

Copy link
Author

@veripoolbot veripoolbot commented Oct 16, 2019


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2019-10-16T23:33:06Z


In general as long as there is an %Error printed first then I'm going to consider a later internal error as being acceptable. Otherwise there's too much stuff that will need to be cleaned up, and while it would be nicer not to print the internal error, cleaning it up is of low value (relative to other fixes).

If the internal error comes first, or there's a core dump, then that's something we should fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.