PR105169 Fix references to discarded sections
authorGiuliano Belinassi <gbelinassi@suse.de>
Sat, 7 May 2022 02:37:52 +0000 (23:37 -0300)
committerGiuliano Belinassi <gbelinassi@suse.de>
Tue, 17 May 2022 17:34:21 +0000 (14:34 -0300)
commit7a3f38a966a52893fb5bae301a1a3d56961358fb
treedf14ac7daa89f5beeed9584761f482d3d5be9985
parent941efd87e22b1b88e3488b8e681d14d0d66e45ac
PR105169 Fix references to discarded sections

When -fpatchable-function-entry= is enabled, certain C++ codes fails to
link because of generated references to discarded sections in
__patchable_function_entry section. This commit fixes this problem by
puting those references in a COMDAT section.

2022-05-06  Giuliano Belinassi  <gbelinassi@suse.de>

gcc/ChangeLog
PR c++/105169
* targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
* varasm.cc (switch_to_comdat_section): New
(handle_vtv_comdat_section): Call switch_to_comdat_section.
* varasm.h: Declare switch_to_comdat_section.

gcc/testsuite/ChangeLog
2022-05-06  Giuliano Belinassi  <gbelinassi@suse.de>

PR c++/105169
* g++.dg/modules/pr105169.h: New file.
* g++.dg/modules/pr105169_a.C: New test.
* g++.dg/modules/pr105169_b.C: New file.
gcc/targhooks.cc
gcc/testsuite/g++.dg/modules/pr105169.h [new file with mode: 0644]
gcc/testsuite/g++.dg/modules/pr105169_a.C [new file with mode: 0644]
gcc/testsuite/g++.dg/modules/pr105169_b.C [new file with mode: 0644]
gcc/varasm.cc
gcc/varasm.h