This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][PR66010] Don't take address of ap unless necessary
- From: Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- To: Tom de Vries <Tom_deVries at mentor dot com>, Richard Biener <rguenther at suse dot de>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 13 May 2015 07:52:46 +0200
- Subject: Re: [PATCH][PR66010] Don't take address of ap unless necessary
- Authentication-results: sourceware.org; auth=none
- References: <554D0BE4 dot 8090305 at mentor dot com> <alpine dot LSU dot 2 dot 11 dot 1505110941130 dot 18702 at zhemvz dot fhfr dot qr> <5550C7DA dot 6070406 at mentor dot com> <alpine dot LSU dot 2 dot 11 dot 1505120945140 dot 18702 at zhemvz dot fhfr dot qr> <5551D014 dot 3040205 at mentor dot com> <5551E7CF dot 9060304 at mentor dot com>
On 05/12/2015 01:45 PM, Tom de Vries wrote:
> On 12-05-15 12:04, Tom de Vries wrote:
>> Committed with comments below added.
>
> Hmm, this causes an ice for s390 in gcc.dg/tree-ssa/stdarg-2.c:
> ...
> gimplification failed:
> &ap <addr_expr 0x7f132f54fb20
> type <pointer_type 0x7f132f55f1f8
> type <array_type 0x7f132f53fe70 va_list type <record_type
> 0x7f132f46b888 __va_list_tag>
> sizes-gimplified BLK
> size <integer_cst 0x7f132f4539f0 constant 128>
> unit size <integer_cst 0x7f132f453a08 constant 16>
> align 32 symtab 0 alias set -1 canonical type 0x7f132f46b9d8 domain
> <integer_type 0x7f132f46b930> context <translation_unit_decl 0x7f1330fa8258 D.1477>
> pointer_to_this <pointer_type 0x7f132f55f1f8>>
> unsigned SI
> size <integer_cst 0x7f132f453690 constant 32>
> unit size <integer_cst 0x7f132f4536a8 constant 4>
> align 32 symtab 0 alias set -1 canonical type 0x7f132f55f2a0>
>
> arg 0 <var_decl 0x7f132f549630 ap type <array_type 0x7f132f53fe70 va_list>
> addressable used BLK file stdarg-2.c line 32 col 11 size <integer_cst
> 0x7f132f4539f0 128> unit size <integer_cst 0x7f132f453a08 16>
> align 32 context <function_decl 0x7f132f5434d8 f2>>
> stdarg-2.c:35:15>
> stdarg-2.c: In function ‘f2’:
> stdarg-2.c:35:15: internal compiler error: gimplification failed
> res = f2_1 (ap);
> ^
> 0xad3d02 gimplify_expr(tree_node**, gimple_statement_base**,
> gimple_statement_base**, bool (*)(tree_node*), int)
> /home/vries/gcc_versions/devel/devel3/src/gcc/gimplify.c:8856
> 0xad5762 gimplify_va_arg_internal(tree_node*, tree_node*,
> gimple_statement_base**, gimple_statement_base**)
> /home/vries/gcc_versions/devel/devel3/src/gcc/gimplify.c:9326
> 0x10a3349 expand_ifn_va_arg_1
> /home/vries/gcc_versions/devel/devel3/src/gcc/tree-stdarg.c:1062
> 0x10a3596 expand_ifn_va_arg
> /home/vries/gcc_versions/devel/devel3/src/gcc/tree-stdarg.c:1122
> 0x10a36d3 execute
> /home/vries/gcc_versions/devel/devel3/src/gcc/tree-stdarg.c:1174
> Please submit a full bug report,
> with preprocessed source if appropriate.
> Please include the complete backtrace with any bug report.
> See <http://gcc.gnu.org/bugs.html> for instructions.
> ...
>
> Attached patch is a tentative fix. I'll bootstrap and reg-test on x86_64.
S/390 doesn't bootstrap since r223054. This patch fixes it.
-Andreas-