gcov: dump in a static dtor instead of in an atexit handler
authorMartin Liska <mliska@suse.cz>
Tue, 27 Sep 2016 11:07:11 +0000 (13:07 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 27 Sep 2016 11:07:11 +0000 (11:07 +0000)
commit8c9434c2f9358b8b8bad2c1990edf10a21645f9d
tree0dfe81cd421cbccec0f0b4ed0c7bdb2943ad2f00
parent511d092e41fcea25a4367dec16ea4b44d947f699
gcov: dump in a static dtor instead of in an atexit handler

PR gcov-profile/7970
PR gcov-profile/16855
PR gcov-profile/44779
* g++.dg/gcov/pr16855.C: New test.
* coverage.c (build_gcov_exit_decl): New function.
(coverage_obj_init): Call the function and generate __gcov_exit
destructor.
* doc/gcov.texi: Document when __gcov_exit function is called.
* libgcov-driver.c (__gcov_init): Do not register a atexit
handler.
(__gcov_exit): Rename from gcov_exit.
* libgcov.h (__gcov_exit): Declare.

From-SVN: r240529
gcc/ChangeLog
gcc/coverage.c
gcc/doc/gcov.texi
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/gcov/pr16855.C [new file with mode: 0644]
libgcc/ChangeLog
libgcc/libgcov-driver.c
libgcc/libgcov.h