------- Comment #11 from dave at hiauly1 dot hia dot nrc dot ca 2010-07-11 22:22 ------- Subject: Re: [4.6 Regression] FAIL: gcc.dg/pr35258.c execution test
> > The above testcase doesn't work with 4.5 and I doubt it ever worked on > > PA. The pointer passed to foo is used as is. It's only the memcpy special > > case that is handled by 4.5 and earlier. > > On i?86 we get correct 1-byte alignment for the pointer access while on > my ia64-cross the MEM has 4-byte alignment which is wrong. t is properly > 1-byte aligned (and pointer-to packed structs for example will work only > because there's a handled_component_ref around the pointer dereference). On hppa64, I see (insn 7 6 8 3 xxx.c:3 (set (reg:SI 71) (mem:SI (reg/v/f:DI 69 [ p ]) [0 *p_1(D)+0 S4 A32])) -1 (nil)) in expand. The alignment is passed into the move expander. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44903