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 <sly...@gcc.gnu.org>:

https://gcc.gnu.org/g:4ecf368f4b4223fb2df4f3887429dfbb48852e38

commit r11-3351-g4ecf368f4b4223fb2df4f3887429dfbb48852e38
Author: Sergei Trofimovich <siarh...@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.

Reply via email to