This fixes the ICE on our regular -flto-partition=none testers
which sees an edge w/o call-stmt after inlining (see the PR
for details).  I'm not sure this is supposed to happen but the
following re-instantiates the guard to inline_update_overall_summary
which was present before the last change to that area.

LTO bootstrap / regtest running on x86_64-unknown-linux-gnu, ok?

Thanks,
Richard.

2014-02-25  Richard Biener  <rguent...@suse.de>

        PR ipa/60327
        * ipa.c (walk_polymorphic_call_targets): Properly guard
        call to inline_update_overall_summary.

Index: gcc/ipa.c
===================================================================
*** gcc/ipa.c   (revision 208124)
--- gcc/ipa.c   (working copy)
*************** walk_polymorphic_call_targets (pointer_s
*** 223,232 ****
                     edge->caller->order,
                     target->name (), target->order);
          edge = cgraph_make_edge_direct (edge, target);
!         if (!inline_summary_vec && edge->call_stmt)
!           cgraph_redirect_edge_call_stmt_to_callee (edge);
!         else
            inline_update_overall_summary (node);
        }
      }
  }
--- 223,232 ----
                     edge->caller->order,
                     target->name (), target->order);
          edge = cgraph_make_edge_direct (edge, target);
!         if (inline_summary_vec)
            inline_update_overall_summary (node);
+         else if (edge->call_stmt)
+           cgraph_redirect_edge_call_stmt_to_callee (edge);
        }
      }
  }

Reply via email to