Major Tools
Other Tools
General Info

Issue #1474

Document parse-order-dependency for config files

Added by Philipp Wagner 3 months ago. Updated 2 months ago.

% Done:



When including a *.vlt configuration file with lint waivers, only the global waivers (file == "*") are applied unconditionally; all file/line-specific waivers are only applied to files parsed after the configuration file has been parsed.

This behavior is not documented so far (and took me some time to figure out), so add a small note in the documentation.

Please find a patch here:

I'm not sure if you prefer to get pull requests on GitHub now, let me know and I'll do one over there.


#1 Updated by Wilson Snyder 3 months ago

Sorry you had to experiment to figure this out (I didn't realize myself ;) but major thanks for improving the docs.

Trivial really for a doc patch, but so you're set for the future, to the patch please insert your name in docs/CONTRIBUTORS to acknowledge this and future contributions are made under the Developer Certificate of Origin ( (Needed just once.)

#2 Updated by Philipp Wagner 3 months ago

Hi Wilson,

Sorry for the slow response, looks like the email notification didn't reach me.

An updated patch with a DCO Signed-off-by line is available here:

And a patch adding my name to the contributors list is here:

(Both patches are also in my note-config-parse-order branch at



#3 Updated by Wilson Snyder 3 months ago

  • Status changed from New to Closed
  • Assignee set to Philipp Wagner

Perfect, thanks, pushed to git towards 4.018.

#4 Updated by Shareef Jalloq 2 months ago

I've hit what I think is the same issue today but can't get the waivers to apply. I'm supplying the .wlt configuration file before any Verilog files or paths. I'm using v4.016 and compiled from source. My commandline follows. Is this not the way to fix the issue?


    verilator --lint-only -Wall \
    $(MODULE).vlt \
    -y $(PROJ_HOME)/src/misc/verilog \
    -y $(PROJ_HOME)/src/regfile/verilog \
    -y $(PROJ_HOME)/src/spis/verilog \
    -y $(PROJ_HOME)/src/top/verilog \
    $(MODULE).v > $(MODULE).log 2>&1

#5 Updated by Wilson Snyder 2 months ago

Yes, the .vlt should be first. If you don't see suppression working please reduce it to a test case and file a new bug, thanks.

#6 Updated by Shareef Jalloq 2 months ago

Creating the testcase shows me that you require an absolute path in the VLT file. Is that by design or a bug?

#7 Updated by Wilson Snyder 2 months ago

An absolute path wasn't really intended but isn't surprising since it was never thought about - would you be willing to make a new issue and try a patch, you can see preprocOpen in V3PreShell.cpp for an example of how to call filePath to resolve this.

#8 Updated by Shareef Jalloq 2 months ago

Thanks, will give it a go when I have time. Cheers.

Also available in: Atom