http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55466



--- Comment #9 from H.J. Lu <hjl.tools at gmail dot com> 2012-12-07 13:02:12 
UTC ---

I am testing this patch:



---

diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c

index 0b0cdac..295fd37 100644

--- a/gcc/lto-symtab.c

+++ b/gcc/lto-symtab.c

@@ -443,10 +443,6 @@ lto_symtab_merge_decls_1 (symtab_node first)



   symtab_prevail_in_asm_name_hash (prevailing);



-  /* Record the prevailing variable.  */

-  if (TREE_CODE (prevailing->symbol.decl) == VAR_DECL)

-    vec_safe_push (lto_global_var_decls, prevailing->symbol.decl);

-

   /* Diagnose mismatched objects.  */

   for (e = prevailing->symbol.next_sharing_asm_name;

        e; e = e->symbol.next_sharing_asm_name)

diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c

index 376af85..c637ec8 100644

--- a/gcc/lto/lto.c

+++ b/gcc/lto/lto.c

@@ -3083,8 +3083,16 @@ read_cgraph_and_symbols (unsigned nfiles, const char

**fnames)

      supports inlining, so we can push it here by hand.  In future we need to

stream

      this field into ltrans compilation.  */

   if (flag_ltrans)

-    FOR_EACH_DEFINED_FUNCTION (node)

-      node->ipa_transforms_to_apply.safe_push

((ipa_opt_pass)&pass_ipa_inline);

+    {

+      struct varpool_node *vnode;

+

+      FOR_EACH_DEFINED_FUNCTION (node)

+    node->ipa_transforms_to_apply.safe_push ((ipa_opt_pass)&pass_ipa_inline);

+

+      /* Record the global variables.  */

+      FOR_EACH_DEFINED_VARIABLE (vnode)

+    vec_safe_push (lto_global_var_decls, vnode->symbol.decl);

+    }



   timevar_pop (TV_IPA_LTO_CGRAPH_MERGE);



---

Reply via email to