function: Set dummy DECL_ASSEMBLER_NAME in push_dummy_function [PR100580]
authorJakub Jelinek <jakub@redhat.com>
Tue, 18 May 2021 08:10:17 +0000 (10:10 +0200)
committerJakub Jelinek <jakub@redhat.com>
Tue, 18 May 2021 08:10:17 +0000 (10:10 +0200)
commit978b62e554ffb4b34844c72d259ce71fcbd87591
tree672c357f4404ac10712d3b7df7d53af49463a3f0
parent65061ea287a80cfb214e402cfd2373a14bfec95a
function: Set dummy DECL_ASSEMBLER_NAME in push_dummy_function [PR100580]

Last year I've added cgraph_node::get_create calls for the dummy
functions used for -fdump-passes, so that it interacts well with pass
disabling/enabling which is cgraph uid based.
Unfortunately, as the following testcase shows, when assembler hash
is present, that wants to compute DECL_ASSEMBLER_NAME and the C++ FE
is unprepared to handle it on the dummy functions which don't have
DECL_NAME etc.
The following patch fixes it by setting up a dummy DECL_ASSEMBLER_NAME
on these, so that the FEs don't need to compute it.

2021-05-18  Jakub Jelinek  <jakub@redhat.com>

PR c++/100580
* function.c (push_dummy_function): Set DECL_ARTIFICIAL and
DECL_ASSEMBLER_NAME on the fn_decl.

* g++.dg/other/pr100580.C: New test.
gcc/function.c
gcc/testsuite/g++.dg/other/pr100580.C [new file with mode: 0644]