re PR middle-end/51510 (gcc for arm-linux-gnueabi ICEs on gcc.c-torture/execute/20050713-1.c due to PR50074+PR51323 fix)

PR middle-end/51510
	* calls.c (internal_arg_pointer_based_exp_scan): Don't use
	VEC_safe_grow_cleared if idx is smaller than VEC_length.

From-SVN: r182246
This commit is contained in:
Jakub Jelinek 2011-12-12 17:44:23 +01:00 committed by Jakub Jelinek
parent 431e1124ed
commit c79be1dc34
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2011-12-12 Jakub Jelinek <jakub@redhat.com>
PR middle-end/51510
* calls.c (internal_arg_pointer_based_exp_scan): Don't use
VEC_safe_grow_cleared if idx is smaller than VEC_length.
2011-12-12 Richard Sandiford <richard.sandiford@linaro.org>
PR middle-end/50873

View File

@ -1705,9 +1705,11 @@ internal_arg_pointer_based_exp_scan (void)
val = internal_arg_pointer_based_exp (SET_SRC (set), false);
if (val != NULL_RTX)
{
VEC_safe_grow_cleared (rtx, heap,
internal_arg_pointer_exp_state.cache,
idx + 1);
if (idx
>= VEC_length (rtx, internal_arg_pointer_exp_state.cache))
VEC_safe_grow_cleared (rtx, heap,
internal_arg_pointer_exp_state.cache,
idx + 1);
VEC_replace (rtx, internal_arg_pointer_exp_state.cache,
idx, val);
}