------- Comment #5 from rguenth at gcc dot gnu dot org 2006-03-13 10:01 ------- On powerpc64-linux I get
(gdb) call debug_tree(exp) <addr_expr 0xf7d7a620 type <pointer_type 0xf7ea0070 type <integer_type 0xf7e90460 int sizes-gimplified public SI size <integer_cst 0xf7e929e0 constant invariant 32> unit size <integer_cst 0xf7e926a0 constant invariant 4> align 32 symtab 0 alias set -1 precision 32 min <integer_cst 0xf7e92980 -2147483648> max <integer_cst 0xf7e929a0 2147483647> pointer_to_this <pointer_type 0xf7ea0070>> unsigned DI size <integer_cst 0xf7e92b00 constant invariant 64> unit size <integer_cst 0xf7e92b20 constant invariant 8> align 64 symtab 0 alias set -1> invariant arg 0 <var_decl 0xf7d7b460 x type <array_type 0xf7d7b3f0 type <integer_type 0xf7e90460 int> sizes-gimplified BLK size <integer_cst 0xf7e9e660 constant invariant 256> unit size <integer_cst 0xf7e92680 constant invariant 32> align 32 symtab 0 alias set -1 domain <integer_type 0xf7f16ee0>> addressable used BLK file t.c line 5 size <integer_cst 0xf7e9e660 256> unit size <integer_cst 0xf7e92680 32> align 128 context <function_decl 0xf7f7d400 foo> attributes <tree_list 0xf7d7a5c0> (mem/s/c:BLK (reg/f:DI 115 virtual-stack-vars) [0 x+0 S32 A128])>> so the decl has an alignment of 128 -- I wonder why i686 is different here. So, I have a fix. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26659