aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>2018-05-21 20:30:00 +0000
committerJeff Law <law@gcc.gnu.org>2018-05-21 14:30:00 -0600
commita3c7081913149383df639270f4972d3d5876b7b3 (patch)
tree4e0b0de8dc7e6c1d1f8f9afd43801b74a1d12cf3 /gcc
parent18759120664263a56fa993f5501cbe674383c3ef (diff)
downloadgcc-a3c7081913149383df639270f4972d3d5876b7b3.zip
gcc-a3c7081913149383df639270f4972d3d5876b7b3.tar.gz
gcc-a3c7081913149383df639270f4972d3d5876b7b3.tar.bz2
re PR target/84923 (gcc.dg/attr-weakref-1.c failed on aarch64)
PR gcc/84923 * varasm.c (weak_finish): Clean up weak_decls. From-SVN: r260485
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/varasm.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b247c1f..6555126 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-05-21 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gcc/84923
+ * varasm.c (weak_finish): Clean up weak_decls.
+
2018-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/aarch64/aarch64.md ("unspec"): Define UNSPEC_SABAL,
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 85296b4..8cf6e1e 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -5652,7 +5652,8 @@ weak_finish (void)
tree alias_decl = TREE_PURPOSE (t);
tree target = ultimate_transparent_alias_target (&TREE_VALUE (t));
- if (! TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (alias_decl)))
+ if (! TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (alias_decl))
+ || TREE_SYMBOL_REFERENCED (target))
/* Remove alias_decl from the weak list, but leave entries for
the target alone. */
target = NULL_TREE;