OSDN Git Service

PR bootstrap/50822
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 12 Nov 2011 13:19:55 +0000 (13:19 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 12 Nov 2011 13:19:55 +0000 (13:19 +0000)
* cgraphunit.c (output_weakrefs): Output really only weakrefs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181311 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cgraphunit.c

index 9f0505b..f648978 100644 (file)
@@ -1,3 +1,8 @@
+2011-11-12  Jan Hubicka  <jh@suse.cz>
+
+       PR bootstrap/50822
+       * cgraphunit.c (output_weakrefs): Output really only weakrefs.
+
 2011-11-12  Nathan Sidwell  <nathan@acm.org>
 
        * gcov.c (struct name_map): New.
index e401b8f..40bcf8f 100644 (file)
@@ -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));