------- 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