re PR ipa/92242 (LTO ICE in ipa_get_cs_argument_count ipa-prop.h:598)

PR ipa/92242
	* ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check
	for missing EDGE_REF
	* ipa-prop.c (update_jump_functions_after_inlining): Likewise.

From-SVN: r277504
This commit is contained in:
Jan Hubicka 2019-10-28 09:19:56 +01:00 committed by Jan Hubicka
parent ffbdd78a4a
commit 5a0236f8ca
3 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2019-10-25 Jan Hubicka <hubicka@ucw.cz>
PR ipa/92242
* ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check
for missing EDGE_REF
* ipa-prop.c (update_jump_functions_after_inlining): Likewise.
2019-10-25 Jiufu Guo <guojiufu@linux.ibm.com>
PR tree-optimization/88760

View File

@ -3315,7 +3315,7 @@ ipa_merge_fn_summary_after_inlining (struct cgraph_edge *edge)
if (ipa_node_params_sum && callee_info->conds)
{
class ipa_edge_args *args = IPA_EDGE_REF (edge);
int count = ipa_get_cs_argument_count (args);
int count = args ? ipa_get_cs_argument_count (args) : 0;
int i;
if (count)

View File

@ -2741,7 +2741,7 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs,
/* We must check range due to calls with variable number of arguments
and we cannot combine jump functions with operations. */
if (dst->value.pass_through.operation == NOP_EXPR
&& (dst->value.pass_through.formal_id
&& (top && dst->value.pass_through.formal_id
< ipa_get_cs_argument_count (top)))
{
int dst_fid = dst->value.pass_through.formal_id;
@ -3430,7 +3430,7 @@ update_indirect_edges_after_inlining (struct cgraph_edge *cs,
continue;
/* We must check range due to calls with variable number of arguments: */
if (ici->param_index >= ipa_get_cs_argument_count (top))
if (!top || ici->param_index >= ipa_get_cs_argument_count (top))
{
ici->param_index = -1;
continue;