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: Hang on inifinite define expansion #1574

Closed
veripoolbot opened this issue Oct 28, 2019 · 2 comments
Closed

Fuzzer: Hang on inifinite define expansion #1574

veripoolbot opened this issue Oct 28, 2019 · 2 comments
Assignees
Labels
resolution: fixed Closed; fixed

Comments

@veripoolbot
Copy link
Contributor


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

Original Assignee: Wilson Snyder (@wsnyder)


Running the attached testcase with:

verilator_bin --lint-only 2.sv

On version:

Verilator 4.020 devel rev v4.020-40-gbaa6a2c

Produces no output, nor does it terminate in a reasonable amount of time.

@veripoolbot
Copy link
Contributor Author


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2019-10-29T02:35:36Z


Good & relevant one. It's basically this

`define e fun `e
`e

There's already two checks for recursive substitution, but these miss this because it's creating (infinite) output.
Added new error, hopefully won't have any false positives as there's some oddball huge defines in the real world.

 Too many preprocessor tokens on a line (>20000); perhaps recursive `define

@veripoolbot
Copy link
Contributor Author


Original Redmine Comment
Author Name: Eric Rippey
Original Date: 2019-10-29T19:04:28Z


I'm glad this one was useful. I don't have a great procedure for figuring out what a minimal testcase looks like for hangs - hence this example being a little longer than what I normally aim for.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
resolution: fixed Closed; fixed
Projects
None yet
Development

No branches or pull requests

2 participants