
UVMF Custom Pragma Waivers
~~~~~~~~~~~~~~~~~~~~~~~~~~

UVMF Custom pragma waivers are also extracted from user comments, and they have a specific format.

.. code-block::
   :caption: UVMF Pragmas syntax:

   code line 1
   code line 2
   // pragma uvmf ... begin
   code line 4
   ...
   code line 7
   // pragma uvmf ... end
   code line 9

Unlike regular inline waivers, Verissimo will only show failures for the code included between begin and end of the pragmas.
To enable this behavior, the lint waivers XML file must contain the **<uvmf_generated_code>** tag as child of the root tag.
Inside the <uvmf_generated_code> tag, you can specify the paths or files that contain generated code and which will be waived using the node **<paths>**, with one or multiple **<path>** nodes as children.
If there is no <path> node defined, the waiver applies for all files.
Likewise, you can specify the checks for which you want the hits to be waived using the **<checks>** tag with **<check>** children for each rule.
If there is no <check> node defined, the waiver applies for all checks.
 
Implementation Notes:
 
- A waiver titled #Waive all UVMF Custom Pragmas# will be created to waive all failures in files specified inside the  tag.
- Subsequently, individual waivers for each UVMF custom pragma will be created to re-enable failures within the scope of those specific pragmas.
- These waivers are placed first in the waivers list since they have the highest precedence.
- The waiver will take the name of the pragma.
