diff options
author | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-06 12:44:03 -0300 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-06 12:44:03 -0300 |
commit | c3b38f65b51d043133e6e69a8ae3ae24534bcdfe (patch) | |
tree | cac603892ebda9881a3a878579738a505215ab98 | |
parent | bbd954d9e8fe8bc754c8b5598b789de46d914e10 (diff) | |
download | gcc-c3b38f65b51d043133e6e69a8ae3ae24534bcdfe.zip gcc-c3b38f65b51d043133e6e69a8ae3ae24534bcdfe.tar.gz gcc-c3b38f65b51d043133e6e69a8ae3ae24534bcdfe.tar.bz2 |
Fix wrong asm name output
When compiling in parallel, static variables may have its name changed
to avoid clashes with other symbols, however, a bug prevented that some
symbols got renamed in this process. This commit fix this.
Authored-by: Richard Biener <rguenther@suse.de>
gcc/ChangeLog
2020-08-06 Giuliano Belinasssi <giuliano.belinassi@usp.br>
* symtab.c (change_decl_assembler_name): Remove RTL output if
assember name is changed afterward.
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/symtab.c | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2d32f7f..2887adc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2020-08-06 Giuliano Belinasssi <giuliano.belinassi@usp.br> + + * symtab.c (change_decl_assembler_name): Remove RTL output if + assember name is changed afterward. + 2020-07-31 Giuliano Belinassi <giuliano.belinassi@usp.br> * Makefile.in: Use `+' on rule calling GCC diff --git a/gcc/symtab.c b/gcc/symtab.c index f56dd69..e1556fb 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -297,9 +297,13 @@ symbol_table::change_decl_assembler_name (tree decl, tree name) unlink_from_assembler_name_hash (node, true); const char *old_name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)); - if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) - && DECL_RTL_SET_P (decl)) - warning (0, "%qD renamed after being referenced in assembly", decl); + if (DECL_RTL_SET_P (decl)) + { + if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) + && DECL_RTL_SET_P (decl)) + warning (0, "%qD renamed after being referenced in assembly", decl); + SET_DECL_RTL (decl, NULL); + } SET_DECL_ASSEMBLER_NAME (decl, name); if (alias) |