re PR tree-optimization/43607 (ICE in gimple_op, at gimple.h:1633 with -fipa-type-escape)

2010-04-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43607
	* ipa-type-escape.c (check_call): Do not access non-existing
	arguments.

From-SVN: r157911
This commit is contained in:
Richard Guenther 2010-04-01 14:05:49 +00:00 committed by Richard Biener
parent d3f76f836f
commit eb258d7f5d
2 changed files with 9 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2010-04-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43607
* ipa-type-escape.c (check_call): Do not access non-existing
arguments.
2010-04-01 Richard Guenther <rguenther@suse.de>
PR middle-end/43602

View file

@ -1340,7 +1340,8 @@ check_call (gimple call)
if (TYPE_ARG_TYPES (TREE_TYPE (callee_t)))
{
for (arg_type = TYPE_ARG_TYPES (TREE_TYPE (callee_t)), i = 0;
arg_type && TREE_VALUE (arg_type) != void_type_node;
arg_type && TREE_VALUE (arg_type) != void_type_node
&& i < gimple_call_num_args (call);
arg_type = TREE_CHAIN (arg_type), i++)
{
tree operand = gimple_call_arg (call, i);
@ -1362,7 +1363,7 @@ check_call (gimple call)
have to do this; the front ends should always process
the arg list from the TYPE_ARG_LIST. */
for (arg_type = DECL_ARGUMENTS (callee_t), i = 0;
arg_type;
arg_type && i < gimple_call_num_args (call);
arg_type = TREE_CHAIN (arg_type), i++)
{
tree operand = gimple_call_arg (call, i);