[Bug gcov-profile/96913] [10/11 regression] gcov TOPN streaming is incorrect for shared libraries
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Sep 22 10:42:10 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96913
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Sergei Trofimovich <slyfox@gcc.gnu.org>:
https://gcc.gnu.org/g:4ecf368f4b4223fb2df4f3887429dfbb48852e38
commit r11-3351-g4ecf368f4b4223fb2df4f3887429dfbb48852e38
Author: Sergei Trofimovich <siarheit@google.com>
Date: Sun Sep 6 12:13:54 2020 +0100
gcov: fix TOPN streaming from shared libraries
Before the change gcc did not stream correctly TOPN counters
if counters belonged to a non-local shared object.
As a result zero-section optimization generated TOPN sections
in a form not recognizable by '__gcov_merge_topn'.
The problem happens because in a case of multiple shared objects
'__gcov_merge_topn' function is present in address space multiple
times (once per each object).
The fix is to never rely on function address and predicate on TOPN
counter types.
libgcc/ChangeLog:
PR gcov-profile/96913
* libgcov-driver.c (write_one_data): Avoid function pointer
comparison in TOP streaming decision.
More information about the Gcc-bugs
mailing list