------- Comment #12 from rguenth at gcc dot gnu dot org 2010-08-24 15:48 ------- Try
Index: emit-rtl.c =================================================================== --- emit-rtl.c (revision 163519) +++ emit-rtl.c (working copy) @@ -1615,6 +1615,11 @@ set_mem_attributes_minus_bitpos (rtx ref align = MAX (align, TYPE_ALIGN (type)); } + else if (TREE_CODE (t) == TARGET_MEM_REF) + /* ??? This isn't fully correct, we can't set the alignment from the + type in all cases. */ + align = MAX (align, TYPE_ALIGN (type)); + else if (TREE_CODE (t) == MISALIGNED_INDIRECT_REF) { if (integer_zerop (TREE_OPERAND (t, 1))) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45379