parsefields: fix padding calculation
commitf3414a492bf4623731f3850aaae5b4a7a2a83a4d
authorDrew DeVault <sir@cmpwn.com>
Tue, 17 Aug 2021 13:18:00 +0000 (17 15:18 +0200)
committerQuentin Carbonneaux <quentin@c9x.me>
Mon, 23 Aug 2021 08:03:13 +0000 (23 10:03 +0200)
treeb2846c060327a421e5894527ca10225112daacf2
parent2bbfcf61b38edfe3c347cd270380e5117454c0cf
parsefields: fix padding calculation

This was causing issues with aggregate types. A simple reproduction is:

type :type.1 = align 8 { 24 }
type :type.2 = align 8 { w 1, :type.1 1 }

The size of type.2 should be 32, adding only 4 bytes of padding between
the first and second field. Prior to this patch, 20 bytes of padding was
added instead, causing the type to have a size of 48.

Signed-off-by: Drew DeVault <sir@cmpwn.com>
parse.c
test/abi7.ssa [new file with mode: 0644]