I fixed that one. Sorry for the late reply, but we have both been a little busy. I cannot guarantee that there are no other places where we are doing misaligned memory checks. We only played around with valgrind and the AC flag. I feel a little guilty of wasting your time with these bugs. Unfortunately though, I only have logins on x86 linux machines for testing. So just in case someone has a machine somewhere and feels like giving us a login...
best
arne
On Sun, 30 Jan 2011, Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum wrote:
Well, it's not terribly complicated. What it all boils down to is this: Any primitive object (i.e. scalar, floating point or pointer) needs to reside at an address which is a multiple of the size of said object. The C compiler will normally take care of this for you, but by performing pointer arithmetic on type-punned pointers it is possible to shoot oneself in the foot.