Hi, 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.
Bootstrapped/regtested x86_64-linux, comitted. gcc/ChangeLog: * symtab.cc (symbol_table::change_decl_assembler_name): Recompute DECL_RTL in case it is already computed. diff --git a/gcc/symtab.cc b/gcc/symtab.cc index fc1155f4696..2ce905cb4f1 100644 --- a/gcc/symtab.cc +++ b/gcc/symtab.cc @@ -303,6 +303,11 @@ 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); + if (DECL_RTL_SET_P (decl)) + { + SET_DECL_RTL (decl, NULL); + make_decl_rtl (decl); + } if (alias) { IDENTIFIER_TRANSPARENT_ALIAS (name) = 1;