while working on patch assigning unique names to static symbols I noticed that
fortran symbols are not renamed since the frontend calls make_decl_rtl. This
gets DECL_ASSEMBBLER_NAME and DECL_RTL out of sync. I think we can drop that
call, but it is also good idea to avoid this inconsistence, so this patch makes
symbol_table::change_decl_assembler_name to recompute DECL_RTL in this case.
gcc/ChangeLog:
* symtab.cc (symbol_table::change_decl_assembler_name): Recompute DECL_RTL
in case it is already computed.
warning (0, "%qD renamed after being referenced in assembly", decl);
SET_DECL_ASSEMBLER_NAME (decl, name);
+ if (DECL_RTL_SET_P (decl))
+ {
+ SET_DECL_RTL (decl, NULL);
+ make_decl_rtl (decl);
+ }
if (alias)
{
gcc_assert (!IDENTIFIER_INTERNAL_P (name));