Hi,
while merging nodes in lto-symtab, we need to copy the force_output and 
forced_by_abi flags.
Thanks to Markus who noticed the issue.

Bootstrapped/regtested x86_64-linux, comitted.

Honza

Index: ChangeLog
===================================================================
--- ChangeLog   (revision 207438)
+++ ChangeLog   (working copy)
@@ -1,3 +1,9 @@
+2014-02-04  Jan Hubicka  <hubi...@ucw.cz>
+           Markus Trippelsdorf
+
+       * lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
+       merge force_output and forced_by_abi flags.
+
 2014-01-24  Balaji V. Iyer  <balaji.v.i...@intel.com>
 
        * lto-lang.c (lto_init): Replaced flag_enable_cilkplus with
Index: lto-symtab.c
===================================================================
--- lto-symtab.c        (revision 207438)
+++ lto-symtab.c        (working copy)
@@ -59,6 +59,8 @@ lto_cgraph_replace_node (struct cgraph_n
   /* Merge node flags.  */
   if (node->force_output)
     cgraph_mark_force_output_node (prevailing_node);
+  if (node->forced_by_abi)
+    prevailing_node->forced_by_abi = true;
   if (node->address_taken)
     {
       gcc_assert (!prevailing_node->global.inlined_to);
@@ -110,6 +112,10 @@ lto_varpool_replace_node (varpool_node *
   gcc_assert (!vnode->analyzed || prevailing_node->analyzed);
 
   ipa_clone_referring (prevailing_node, &vnode->ref_list);
+  if (vnode->force_output)
+    prevailing_node->force_output = true;
+  if (vnode->forced_by_abi)
+    prevailing_node->forced_by_abi = true;
 
   /* Be sure we can garbage collect the initializer.  */
   if (DECL_INITIAL (vnode->decl)

Reply via email to