Hi,

This patch prevents output of both instrumented and not instrumented weakref 
variants.

Thanks,
Ilya
--
gcc/

2014-06-02  Ilya Enkovich  <ilya.enkov...@intel.com>

        * cgraphunit.c (output_weakrefs): If there are both
        instrumented and original versions, output only one
        of them.


diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index c5c3333..ae9e699 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -2111,9 +2111,13 @@ static void
 output_weakrefs (void)
 {
   symtab_node *node;
+  cgraph_node *cnode;
   FOR_EACH_SYMBOL (node)
     if (node->alias
         && !TREE_ASM_WRITTEN (node->decl)
+       && (!(cnode = dyn_cast <cgraph_node> (node))
+           || !cnode->instrumented_version
+           || !TREE_ASM_WRITTEN (cnode->instrumented_version->decl))
        && node->weakref)
       {
        tree target;

Reply via email to