[PATCH] Fix PR60327 - dealII and Xalanbmk ICEing with LTO

Richard Biener rguenther@suse.de
Tue Feb 25 14:07:00 GMT 2014


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  <rguenther@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);
  	}
      }
  }



More information about the Gcc-patches mailing list