https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79256

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
(gdb) p debug_tree (exp)
 <mem_ref 0x7ffff6a4d230
    type <real_type 0x7ffff6a31e70 num_t DF
        size <integer_cst 0x7ffff68a2d38 constant 64>
        unit size <integer_cst 0x7ffff68a2d50 constant 8>
        align 64 symtab 0 alias set -1 canonical type 0x7ffff68c2540 precision
64 context <translation_unit_decl 0x7ffff6a398e8
/space/rguenther/src/svn/gcc-7-branch/gcc/testsuite/gcc.dg/vect/pr25413a.c>
        pointer_to_this <pointer_type 0x7ffff6a41498>>

so the MEM is marked aligned but somehow it is not in the end.

(gdb) p get_mode_alignment (DFmode)
$2 = 64

Hmm, so it's only 32bit aligned in structures but we use double_type_node
everywhere?  That makes all pointer accesses generate wrong MEM_REFs...

Reply via email to