From: Martin Liska Date: Thu, 8 Mar 2018 08:55:59 +0000 (+0100) Subject: Backport r254257 X-Git-Tag: releases/gcc-6.5.0~461 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=36dfe5f1e5aa0b278e18a0cd603a3040b464b5b6;p=thirdparty%2Fgcc.git 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 --- 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