[PATCH][PR66010] Don't take address of ap unless necessary

Tom de Vries Tom_deVries@mentor.com
Tue May 12 11:48:00 GMT 2015


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.

Thanks,
- Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix-s390-va-arg-ice.patch
Type: text/x-patch
Size: 2419 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150512/208bbae6/attachment.bin>


More information about the Gcc-patches mailing list