#!/usr/bin/perl -p -i
usewarnings;usestrict;our$excluding;# This script is meant to post-process a .gcov file for an input source
# that was annotated with LCOV_EXCL_START, LCOV_EXCL_STOP, and LCOV_EXCL_LINE
# entries. It doesn't understand the LCOV_EXCL_BR* variations.
## It replaces unreached reached lines with x:, and reached excluded lines
# with !!!num:.
BEGIN{our$excluding=0;}if(m/LCOV_EXCL_START/){$excluding=1;}if($excludingandm/LCOV_EXCL_STOP/){$excluding=0;}my$exclude_this=(m/LCOV_EXCL_LINE/);if($excludingor$exclude_this){s{^\s*\#\#+:}{ x:};s{^(\s*)(\d+):}{$1!!!$2:};}if(eofand$excluding){warn"Runaway LCOV_EXCL_START in $ARGV";$excluding=0;}