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

--- Comment #3 from deller at gmx dot de ---
Hi Arnd,

I think the problem with your testcase is, that the compiler doesn't know the 
alignment of the parameter "p" in your f_unaligned() function.
So it will generate byte-accesses.

If you modify your testcase by adding this and compiling with -O1 (or higher)
you see the problem:

int evil;
int f_unaligned2(void)
{
     return get_unaligned(&evil);
}

00000000 <f_unaligned2>:
   0:   2b 60 00 00     addil L%0,dp,r1
   4:   34 21 00 00     ldo 0(r1),r1
   8:   e8 40 c0 00     bv r0(rp)
   c:   0c 20 10 9c     ldw 0(r1),ret0

Reply via email to