.. program is needed to resolve :option: references .. program:: gcovr .. _exclusion markers: Exclusion Markers ================= You can exclude parts of your code from coverage metrics. - If ``GCOVR_EXCL_LINE`` appears within a line, that line is ignored. - If ``GCOVR_EXCL_START`` appears within a line, all following lines (including the current line) are ignored until a ``GCOVR_EXCL_STOP`` marker is encountered. - If ``GCOVR_EXCL_FUNCTION`` in the line of the function definition but not in front of the definition, the lines of the function are ignored. This marker needs the ``gcov`` JSON format version 2 which is generated by ``gcc-14`` and newer. If the needed info isn't available a warning is printed if the tag is found. Also a warning is printed if no function is defined at the tag location. See also :option:`--exclude-function`. - If ``GCOVR_EXCL_BR_*`` markers are used the same exclusion rules apply as above, with the difference being that they are only taken into account for branch coverage. - If ``GCOVR_EXCL_BR_SOURCE`` appears within a line, the branches which have one of the block ids of the current line as destination block are excluded from the coverage. This can be used e.g. in a ``default`` branch which is used for error handling to exclude the source branch from the coverage. - If ``GCOVR_EXCL_BR_WITHOUT_HIT: uncovered/total`` appears within a line, the uncovered branches are ignored, e.g. ``GCOVR_EXCL_BR_WITHOUT_HIT: 2/6`` will exclude the 2 uncovered branches out of 6 branches in the line. If the uncovered or total branches doesn't match the branches in the line a error is logged and nothing is excluded. Instead of ``GCOVR_*``, the markers may also start with ``GCOV_*`` or ``LCOV_*``. However, start and stop markers must use the same style. The prefix is configurable with the option :option:`--exclude-pattern-prefix`. The excluded region not includes the line with the stop marker:: code code excluded // GCOVR_EXCL_START still excluded ... still excluded NOT excluded // GCOVR_EXCL_STOP code code In the excluded regions, *any* coverage is excluded. .. versionadded:: 8.0 If :option:`--verbose` is used the exclusion ranges are logged. .. versionadded:: 8.0 Comment ``GCOVR_EXCL_BR_SOURCE``. .. versionadded:: 8.4 Comment ``GCOVR_EXCL_BR_WITHOUT_HIT: uncovered/total``.