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

--- Comment #2 from Zhangxi Tan <tanzhangxi at gmail dot com> 2011-04-26 
22:25:42 UTC ---
(In reply to comment #1)
> The alignment of __uint128_t is 16byte.  I think you are invoking undefined
> behavior by using a data type which increases the alignment.

_uint128_t does not assume a 16-byte alignment, right? Maybe using (unsigned
int *) for pointer 'data' is not an good example.

Changing it to (void *) and casting it to (__uint128_t *) has the same problem.
Seems like, it's the combination of -O3, -mtune and -march. Problem doesn't
show up if I don't use -O3.

Reply via email to