http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55882



--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> 2013-01-09 
11:26:10 UTC ---

(In reply to comment #8)

> Or more correct

> 

> Index: gcc/emit-rtl.c

> ===================================================================

> --- gcc/emit-rtl.c      (revision 195014)

> +++ gcc/emit-rtl.c      (working copy)

> @@ -1839,7 +1839,12 @@ set_mem_attributes_minus_bitpos (rtx ref

> 

>        if (!align_computed)

>         {

> -         unsigned int obj_align = get_object_alignment (t);

> +         unsigned int obj_align;

> +         unsigned HOST_WIDE_INT obj_bitpos;

> +         get_object_alignment_1 (t, &obj_align, &obj_bitpos);

> +         obj_bitpos = (obj_bitpos + apply_bitpos) & (obj_align - 1);



And actually



         obj_bitpos = (obj_bitpos - apply_bitpos) & (obj_align - 1);



> +         if (obj_bitpos != 0)

> +           obj_align = (obj_bitpos & -obj_bitpos);

>           attrs.align = MAX (attrs.align, obj_align);

>         }

>      }

Reply via email to