Fixed
- ARM64: HFA return checkptr crash —
handleHFAReturncast(*[4]float64)(rvalue)was oversized for 2-3 element HFAs (CGSize, CGPoint = 16 bytes, cast = 32 bytes).go test -racecrashed with "converted pointer straddles multiple allocations". Fix: per-element writes viaunsafe.Add. (#67, reported by @jbunds) - ARM64: 9-16B struct return silent corruption —
(*[2]uint64)(rvalue)wrote 8 full bytes for the hi word when struct was smaller than 16 bytes. Fix:copywith exact remaining size, matching AMD64 pattern. Proactive fix — not catchable by checkptr but could corrupt with packed C structs - Added
TestHandleHFAReturn_CheckptrandTestHandleHFAReturn_Float32unit tests
Thanks to @jbunds for reporting the checkptr crash on Apple M1!