gcc/ChangeLog: 2017-10-23 Martin Liska <mli...@suse.cz>
PR gcov-profile/82633 * doc/gcov.texi: Document -fkeep-{static,inline}-functions and their interaction with GCOV infrastructure. * configure.ac: Add -fkeep-{inline,static}-functions to coverage_flags. * configure: Regenerate. --- gcc/configure | 4 ++-- gcc/configure.ac | 4 ++-- gcc/doc/gcov.texi | 5 +++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gcc/configure b/gcc/configure index aa5937df84c..7f9d740e93c 100755 --- a/gcc/configure +++ b/gcc/configure @@ -7321,10 +7321,10 @@ fi if test "${enable_coverage+set}" = set; then : enableval=$enable_coverage; case "${enableval}" in yes|noopt) - coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0" + coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0 -fkeep-inline-functions -fkeep-static-functions" ;; opt) - coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2" + coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2 -fkeep-inline-functions -fkeep-static-functions" ;; no) # a.k.a. --disable-coverage diff --git a/gcc/configure.ac b/gcc/configure.ac index d905d0d980a..46b4a80b9a1 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -728,10 +728,10 @@ AC_ARG_ENABLE(coverage, default is noopt])], [case "${enableval}" in yes|noopt) - coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0" + coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0 -fkeep-inline-functions -fkeep-static-functions" ;; opt) - coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2" + coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2 -fkeep-inline-functions -fkeep-static-functions" ;; no) # a.k.a. --disable-coverage diff --git a/gcc/doc/gcov.texi b/gcc/doc/gcov.texi index 706aa6cf0b0..c527b89f13b 100644 --- a/gcc/doc/gcov.texi +++ b/gcc/doc/gcov.texi @@ -327,6 +327,11 @@ non-exceptional paths or only exceptional paths such as C++ exception handlers, respectively. Given @samp{-a} option, unexecuted blocks are marked @samp{$$$$$} or @samp{%%%%%}, depending on whether a basic block is reachable via non-exceptional or exceptional paths. +Note that GCC can perform function removal for functions obviously not +used in a compilation unit. Such functions are marked with @samp{-} +even though they contain a code. Use @option{-fkeep-inline-functions} and +@option{-fkeep-static-functions} in order to properly +record @var{execution_count} of such functions. Some lines of information at the start have @var{line_number} of zero. These preamble lines are of the form -- 2.14.2