+2017-10-31 Martin Liska <mliska@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.
+
2017-10-31 Uros Bizjak <ubizjak@gmail.com>
PR target/82772
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
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
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