device: fix alignment on 32-bit machines and test for it

The test previously checked the offset within a substruct, not the
offset within the allocated struct, so this adds the two together.

It then fixes an alignment crash on 32-bit machines.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld
2021-02-09 15:30:32 +01:00
parent d6e76fdbd6
commit d7bc7508e5
2 changed files with 2 additions and 8 deletions

View File

@@ -61,6 +61,5 @@ func TestDeviceAlignment(t *testing.T) {
field.Type.Align(),
)
}
checkAlignment(t, "Device.rate.underLoadUntil", unsafe.Offsetof(d.rate.underLoadUntil))
checkAlignment(t, "Device.rate.underLoadUntil", unsafe.Offsetof(d.rate)+unsafe.Offsetof(d.rate.underLoadUntil))
}