type Plain = record a: Word8; b: Word8 end Spread = record a, #aligned(8) b: Word8 end Packed = record a: Word8; #aligned(1) wide: Word end Over = #aligned(16) record a: Word8 end var #aligned(32) tuned: Word8 spread: Spread first: ^Word8 second: ^Word8 program() begin assert(#size(Plain) = 2u); assert(#size(Spread) = 16u); assert(#offset(Spread, a) = 0u); assert(#offset(Spread, b) = 8u); assert(#size(Packed) = 9u); assert(#offset(Packed, wide) = 1u); assert(#size(Over) = 16u); assert(#alignment(Over) = 16u); first := @spread.a; second := @spread.b; assert(cast(second: Word) - cast(first: Word) = 8u) return 0u8 end.