re PR target/46234 (ICE in expand_expr_real_2 for va-arg-XXX tescases)

PR target/46234
	* config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
	instead of build_va_arg_indirect_ref.
	* config/spu/spu.c (spu_va_start): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.

From-SVN: r166323
This commit is contained in:
Jakub Jelinek 2010-11-04 19:43:00 +01:00
parent 4aa8fe39a1
commit 86710a8bf2
4 changed files with 12 additions and 4 deletions

View File

@ -1,7 +1,15 @@
2010-11-04 Jakub Jelinek <jakub@redhat.com>
PR target/46234
* config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
instead of build_va_arg_indirect_ref.
* config/spu/spu.c (spu_va_start): Likewise.
* config/s390/s390.c (s390_va_start): Likewise.
2010-11-03 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/46292
* lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
* lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
if the innermode is not vector mode, determine the mode of a subreg
by using mode_for_size of inner_size.

View File

@ -9252,7 +9252,7 @@ rs6000_va_start (tree valist, rtx nextarg)
f_ovf = DECL_CHAIN (f_res);
f_sav = DECL_CHAIN (f_ovf);
valist = build_va_arg_indirect_ref (valist);
valist = build_simple_mem_ref (valist);
gpr = build3 (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE);
fpr = build3 (COMPONENT_REF, TREE_TYPE (f_fpr), unshare_expr (valist),
f_fpr, NULL_TREE);

View File

@ -8719,7 +8719,7 @@ s390_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED)
f_ovf = DECL_CHAIN (f_fpr);
f_sav = DECL_CHAIN (f_ovf);
valist = build_va_arg_indirect_ref (valist);
valist = build_simple_mem_ref (valist);
gpr = build3 (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE);
fpr = build3 (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE);
ovf = build3 (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE);

View File

@ -4154,7 +4154,7 @@ spu_va_start (tree valist, rtx nextarg)
f_args = TYPE_FIELDS (TREE_TYPE (va_list_type_node));
f_skip = DECL_CHAIN (f_args);
valist = build_va_arg_indirect_ref (valist);
valist = build_simple_mem_ref (valist);
args =
build3 (COMPONENT_REF, TREE_TYPE (f_args), valist, f_args, NULL_TREE);
skip =