The wording of the description of -fprofile-exclude-files is easy to misunderstand. One can be led to believe a file is excluded only if it matches all of the patterns, not just one. This patch tries to clarify the function. It also adjusts the wording of -fprofile-filter-files accordingly.
2020-07-24 Göran Uddeborg <goe...@uddeborg.se> gcc/ PR gcov-profile/96285 * common.opt, doc/invoke.texi: Clarify wording of -fprofile-exclude-files and adjust -fprofile-filter-files to match. diff --git a/gcc/common.opt b/gcc/common.opt index a3893a4725e..1662cbfa92d 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -2207,11 +2207,11 @@ Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init( fprofile-filter-files= Common Joined RejectNegative Var(flag_profile_filter_files) -Instrument only functions from files where names match any regular expression (separated by a semi-colon). +Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons). fprofile-exclude-files= Common Joined RejectNegative Var(flag_profile_exclude_files) -Instrument only functions from files where names do not match all the regular expressions (separated by a semi-colon). +Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons). Enum Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ba18e05fb1a..781fe72ca97 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -13842,20 +13842,20 @@ is present in the command line. @item -fprofile-filter-files=@var{regex} @opindex fprofile-filter-files -Instrument only functions from files where names match -any regular expression (separated by a semi-colon). +Instrument only functions from files whose name matches +any of the regular expressions (separated by semi-colons). -For example, @option{-fprofile-filter-files=main.c;module.*.c} will instrument +For example, @option{-fprofile-filter-files=main\.c;module.*\.c} will instrument only @file{main.c} and all C files starting with 'module'. @item -fprofile-exclude-files=@var{regex} @opindex fprofile-exclude-files -Instrument only functions from files where names do not match -all the regular expressions (separated by a semi-colon). +Instrument only functions from files whose name does not match +any of the regular expressions (separated by semi-colons). -For example, @option{-fprofile-exclude-files=/usr/*} will prevent instrumentation -of all files that are located in @file{/usr/} folder. +For example, @option{-fprofile-exclude-files=/usr/.*} will prevent instrumentation +of all files that are located in the @file{/usr/} folder. @item -fprofile-reproducible @opindex fprofile-reproducible