Hi Honza, Ping. Regtests cleanly for c,fortran,c++,ada,d,go,lto,objc,obj-c++ Ok? I'd need this for attribute target_clones for the Fortran FE. thanks,
On Wed, 9 Nov 2022 20:02:24 +0100 Bernhard Reutner-Fischer <rep.dot....@gmail.com> wrote: > We were changing the ASSEMBLER_NAME of the function decl > but not the name in DECL_RTL which is used as the function name > fnname in rest_of_handle_final(). This led to using the old, wrong name > for the attribute target default function when using target_clones. > > Bootstrapped and regtested cleanly on x86_64-unknown-linux > for c,c++,fortran,lto. > Ok for trunk? > > gcc/ChangeLog: > > * symtab.cc: Remove stray comment. > (symbol_table::change_decl_assembler_name): Also update the > name in DECL_RTL. > > Cc: Jan Hubicka <hubi...@ucw.cz> > --- > gcc/symtab.cc | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/gcc/symtab.cc b/gcc/symtab.cc > index f2d96c0268b..2e20bf5fefc 100644 > --- a/gcc/symtab.cc > +++ b/gcc/symtab.cc > @@ -154,8 +154,6 @@ symbol_table::decl_assembler_name_equal (tree decl, > const_tree asmname) > } > > > -/* Returns nonzero if P1 and P2 are equal. */ > - > /* Insert NODE to assembler name hash. */ > > void > @@ -303,6 +301,10 @@ symbol_table::change_decl_assembler_name (tree decl, > tree name) > warning (0, "%qD renamed after being referenced in assembly", decl); > > SET_DECL_ASSEMBLER_NAME (decl, name); > + /* Set the new name in rtl. */ > + if (DECL_RTL_SET_P (decl)) > + XSTR (XEXP (DECL_RTL (decl), 0), 0) = IDENTIFIER_POINTER (name); > + > if (alias) > { > IDENTIFIER_TRANSPARENT_ALIAS (name) = 1;