diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9f0505b7063b..f64897845c0a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-11-12 Jan Hubicka + + PR bootstrap/50822 + * cgraphunit.c (output_weakrefs): Output really only weakrefs. + 2011-11-12 Nathan Sidwell * gcov.c (struct name_map): New. diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index e401b8f2f2b3..40bcf8fc9ef9 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -2101,13 +2101,15 @@ output_weakrefs (void) struct varpool_node *vnode; for (node = cgraph_nodes; node; node = node->next) if (node->alias && DECL_EXTERNAL (node->decl) - && !TREE_ASM_WRITTEN (node->decl)) + && !TREE_ASM_WRITTEN (node->decl) + && lookup_attribute ("weakref", DECL_ATTRIBUTES (node->decl))) assemble_alias (node->decl, node->thunk.alias ? DECL_ASSEMBLER_NAME (node->thunk.alias) : get_alias_symbol (node->decl)); for (vnode = varpool_nodes; vnode; vnode = vnode->next) if (vnode->alias && DECL_EXTERNAL (vnode->decl) - && !TREE_ASM_WRITTEN (vnode->decl)) + && !TREE_ASM_WRITTEN (vnode->decl) + && lookup_attribute ("weakref", DECL_ATTRIBUTES (vnode->decl))) assemble_alias (vnode->decl, vnode->alias_of ? DECL_ASSEMBLER_NAME (vnode->alias_of) : get_alias_symbol (vnode->decl));