The following patch fixes a problem exposed in LIPO random stress
testing with large module groups -- the error is that multiple copies
compiler generated static functions (ctor of class in anonymous
namespace) get emitted.


David


Index: cgraphunit.c
===================================================================
--- cgraphunit.c        (revision 191267)
+++ cgraphunit.c        (revision 191268)
@@ -1430,7 +1430,12 @@ cgraph_add_output_node (struct cgraph_no
   if (!L_IPO_COMP_MODE)
     return node;

-  if (!TREE_PUBLIC (node->decl))
+  /* Never common non public names except for compiler
+     generated static functions. (they are not promoted
+     to globals either.  */
+  if (!TREE_PUBLIC (node->decl)
+      && !(DECL_ARTIFICIAL (node->decl)
+          && DECL_ASSEMBLER_NAME_SET_P (node->decl)))
     return node;

   if (!output_node_hash)

Reply via email to