• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
          • Vl-warninglist->types
          • Vl-warning
          • Propagating-errors
          • Vl-reportcard
          • Vl-warning-sort
          • Lint-warning-suppression
            • Vl-mash-warning-strings
            • Vl-design-lint-ignoreall
            • Vl-design-suppress-lint-warnings
            • Vl-warninglist-lint-ignoreall
            • Vl-lint-scan-for-ignore
            • Vl-mash-warning-string
            • Vl-lint-suppress-warnings
            • Vl-warning-type-mash
            • Vl-lint-ignore-att-p
            • Vl-lint-atts-say-ignore
            • Vl-lint-attname-says-ignore
            • Vl-lint-ignore-att-mash
          • Clean-warnings
          • Warn
          • Vl-print-warnings-with-header
          • Vl-some-warning-fatalp
          • Vl-print-warnings-with-named-header
          • Flat-warnings
          • Vl-remove-warnings
          • Vl-keep-warnings
          • Vl-print-warnings
          • Vl-some-warning-of-type-p
          • Vl-clean-warnings
          • Vl-warnings-to-string
          • Vl-warninglist
          • Vl-print-warning
          • Ok
          • Vl-trace-warnings
          • Fatal
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
        • Transforms
        • Lint
        • Mlib
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Lint
  • Warnings

Lint-warning-suppression

An attribute- mechanism for suppressing particular warnings when using 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-warninglist-lint-ignoreall
Globally suppress certain kinds of warnings.
Vl-lint-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-atts-say-ignore
Vl-lint-attname-says-ignore
Vl-lint-ignore-att-mash