.. _exclusion markers: Exclusion Markers ================= .. program is needed to resolve option links .. program:: gcovr 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``. 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`` 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.e. in a ``default`` branch which is used for error handling to exclude the source branch from the coverage. 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.