From 36dfe5f1e5aa0b278e18a0cd603a3040b464b5b6 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Thu, 8 Mar 2018 09:55:59 +0100 Subject: [PATCH] Backport r254257 2018-03-08 Martin Liska Backport from mainline 2017-10-31 Martin Liska 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. From-SVN: r258357 --- gcc/ChangeLog | 12 ++++++++++++ gcc/configure | 4 ++-- gcc/configure.ac | 4 ++-- gcc/doc/gcov.texi | 7 +++++++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a0b9fd33c3de..55ee561efdcb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2018-03-08 Martin Liska + + Backport from mainline + 2017-10-31 Martin Liska + + PR gcov-profile/82633 + * doc/gcov.texi: Document -fkeep-{static,inline}-functions and + their interaction with GCOV infrastructure. + * configure.ac: Add -fkeep-static-functions to + coverage_flags. + * configure: Regenerate. + 2018-03-08 Martin Liska Backport from mainline diff --git a/gcc/configure b/gcc/configure index ff3c6e63c030..b4caeeb813a8 100755 --- a/gcc/configure +++ b/gcc/configure @@ -7352,10 +7352,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-static-functions" ;; opt) - coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2" + coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2 -fkeep-static-functions" ;; no) # a.k.a. --disable-coverage diff --git a/gcc/configure.ac b/gcc/configure.ac index 0aaa32201a92..4bda5318c99a 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -717,10 +717,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-static-functions" ;; opt) - coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2" + coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2 -fkeep-static-functions" ;; no) # a.k.a. --disable-coverage diff --git a/gcc/doc/gcov.texi b/gcc/doc/gcov.texi index ff1eca714b1a..f7b84dd15e7e 100644 --- a/gcc/doc/gcov.texi +++ b/gcc/doc/gcov.texi @@ -327,6 +327,13 @@ 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 completely remove the bodies of functions that are +not needed -- for instance if they are inlined everywhere. Such functions +are marked with @samp{-}, which can be confusing. +Use the @option{-fkeep-inline-functions} and @option{-fkeep-static-functions} +options to retain these functions and +allow gcov to properly show their @var{execution_count}. + Some lines of information at the start have @var{line_number} of zero. These preamble lines are of the form -- 2.47.2