Lint-warning-suppression
An attribute- mechanism for suppressing particular warnings
when using vl-lint.
This is quick and dirty, but probably is actually a pretty
effective and reasonable way to deal with suppressing unwanted warnings from
VL-Lint.
The basic idea is to stick attributes such as (* LINT_IGNORE *) into
the source code, which with our comment syntax can be done using the form
//@VL LINT_IGNORE, or similar. We then look for these attributes to
decide whether to suppress a warning.
For convenience we treat LINT_IGNORE directives in a case-insensitive
way and treat _ interchangeably with -. This is useful because the Verilog
user typically has to use _ since these are attribute names and hence must be
valid identifiers.
We let the user write things like LINT_IGNORE_VL_WARN_ODDEXPR, or, more
conveniently, LINT_IGNORE_ODDEXPR, by just "mashing" the tail of what
they write by throwing away any leading VL_ or VL_WARN_ part. By
convention a plain LINT_IGNORE with no further information means just
ignore all warnings.
Subtopics
- Vl-mash-warning-strings
- (vl-mash-warning-strings x) maps vl-mash-warning-string across a list.
- Vl-design-lint-ignoreall
- Vl-design-suppress-lint-warnings
- Vl-ctxelement-scan-for-ignore
- Vl-modelement-scan-for-ignore
- Vl-warninglist-lint-ignoreall
- Globally suppress certain kinds of warnings.
- Vl-function-specialization-map-scan-for-ignore
- Vl-portdecl-or-blockitem-list-scan-for-ignore
- Vl-portdecl-or-blockitem-scan-for-ignore
- Vl-maybe-delayoreventcontrol-scan-for-ignore
- Vl-fundecl-scan-for-ignore
- Vl-function-specialization-scan-for-ignore
- Vl-taskdecl-scan-for-ignore
- Vl-modport-portlist-scan-for-ignore
- Vl-delayoreventcontrol-scan-for-ignore
- Vl-repeateventcontrol-scan-for-ignore
- Vl-lint-suppress-warnings-att-compare-default
- Vl-clkdecl-scan-for-ignore
- Vl-vardecllist-scan-for-ignore
- Vl-typedeflist-scan-for-ignore
- Vl-taskdecllist-scan-for-ignore
- Vl-sequencelist-scan-for-ignore
- Vl-propportlist-scan-for-ignore
- Vl-propertylist-scan-for-ignore
- Vl-portdecllist-scan-for-ignore
- Vl-plainarglist-scan-for-ignore
- Vl-paramtype-scan-for-ignore
- Vl-paramdecllist-scan-for-ignore
- Vl-namedarglist-scan-for-ignore
- Vl-modport-port-scan-for-ignore
- Vl-modinstlist-scan-for-ignore
- Vl-maybe-gatedelay-scan-for-ignore
- Vl-maybe-exprdist-scan-for-ignore
- Vl-lint-scan-for-ignore
- Vl-lint-atts-say-ignore
- Vl-lint-attname-says-ignore
- Vl-fundecllist-scan-for-ignore
- Vl-exprdistlist-scan-for-ignore
- Vl-defaultdisable-scan-for-ignore
- Vl-clkassignlist-scan-for-ignore
- Vl-class-scan-for-ignore
- Vl-blockitemlist-scan-for-ignore
- Vl-blockitem-scan-for-ignore
- Vl-vardecl-scan-for-ignore
- Vl-sequence-scan-for-ignore
- Vl-repetition-scan-for-ignore
- Vl-regularport-scan-for-ignore
- Vl-propspec-scan-for-ignore
- Vl-propport-scan-for-ignore
- Vl-property-scan-for-ignore
- Vl-portdecl-scan-for-ignore
- Vl-modinst-scan-for-ignore
- Vl-maybe-clkskew-scan-for-ignore
- Vl-interfaceport-scan-for-ignore
- Vl-importlist-scan-for-ignore
- Vl-gateinst-scan-for-ignore
- Vl-gatedelay-scan-for-ignore
- Vl-eventcontrol-scan-for-ignore
- Vl-dpiimport-scan-for-ignore
- Vl-distlist-scan-for-ignore
- Vl-distitem-scan-for-ignore
- Vl-delaycontrol-scan-for-ignore
- Vl-typedef-scan-for-ignore
- Vl-plainarg-scan-for-ignore
- Vl-paramdecl-scan-for-ignore
- Vl-namedarg-scan-for-ignore
- Vl-modport-scan-for-ignore
- Vl-maybe-rhs-scan-for-ignore
- Vl-letdecl-scan-for-ignore
- Vl-initial-scan-for-ignore
- Vl-gclkdecl-scan-for-ignore
- Vl-fwdtypedef-scan-for-ignore
- Vl-exprdist-scan-for-ignore
- Vl-elabtask-scan-for-ignore
- Vl-dpiexport-scan-for-ignore
- Vl-covergroup-scan-for-ignore
- Vl-context1-scan-for-ignore
- Vl-clkassign-scan-for-ignore
- Vl-assign-scan-for-ignore
- Vl-arguments-scan-for-ignore
- Vl-rhs-scan-for-ignore
- Vl-import-scan-for-ignore
- Vl-genvar-scan-for-ignore
- Vl-final-scan-for-ignore
- Vl-clkskew-scan-for-ignore
- Vl-bind-scan-for-ignore
- Vl-always-scan-for-ignore
- Vl-alias-scan-for-ignore
- Vl-mash-warning-string
- Do basic string mashing to allow the user to refer to warnings in
either upper or lower case, treating - and _ as equivalent, and with or without
vl_warn_ prefixes.
- Vl-lint-suppress-warnings
- Vl-warning-type-mash
- Vl-lint-ignore-att-p
- Recognize strings that start with lint-ignore or lint_ignore, case
insensitive
- Vl-lint-ignore-att-mash