summaryrefslogtreecommitdiff
path: root/vendor/modernc.org/cc/v3/abi.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/modernc.org/cc/v3/abi.go')
-rw-r--r--vendor/modernc.org/cc/v3/abi.go8
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))