diff options
Diffstat (limited to 'vendor/modernc.org/cc/v3/abi.go')
-rw-r--r-- | vendor/modernc.org/cc/v3/abi.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/vendor/modernc.org/cc/v3/abi.go b/vendor/modernc.org/cc/v3/abi.go index e03255843..bf46d6cf4 100644 --- a/vendor/modernc.org/cc/v3/abi.go +++ b/vendor/modernc.org/cc/v3/abi.go @@ -395,8 +395,12 @@ func (a *ABI) layout(ctx *context, n Node, t *structType) *structType { group += f.bitFieldWidth default: if n := group % 64; n != 0 { - group -= n - off += int64(normalizeBitFieldWidth(group) - group) + if ctx.cfg.FixBitfieldPadding { + off += int64(normalizeBitFieldWidth(group-n) - group) + } else { + group -= n + off += int64(normalizeBitFieldWidth(group) - group) + } } off0 := off off = roundup(off, 8*int64(al)) |