
On Sat, 16 Dec 2017, Sven Panne wrote:
2017-12-16 15:16 GMT+01:00 Henning Thielemann
: I thought that arrays require alignment of their elements. Yes, and if you start aligned, the pokeElemOff law keeps you aligned. If you don't start aligned, Storable never magically aligns the first element, anyway, so this must have been intentional (e.g. an array within packed data).
In theory one could have an e.g. 7-byte data type with 8-byte alignment requirements, but I think we can re-open the discussion when a processor manufacturer is masochistic enough to do that. ;-)
I more think of a custom struct with size 12 bytes consisting of a 64 bit and 32 bit word. It must be 8-byte aligned. You would have to align all elements at multiples of 8-byte and the address difference between two array elements is 16 not 12. On x86 Linux there would be no problem because a 12 byte struct containing a 64 bit word must already be padded to 16 byte. But that's an ABI definition and Storable wants to keep independent from that, right?