aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-06 12:44:03 -0300
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-06 12:44:03 -0300
commitc3b38f65b51d043133e6e69a8ae3ae24534bcdfe (patch)
treecac603892ebda9881a3a878579738a505215ab98
parentbbd954d9e8fe8bc754c8b5598b789de46d914e10 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/symtab.c10
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)