aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/abi/abiutils.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/abi/abiutils.go')
-rw-r--r--src/cmd/compile/internal/abi/abiutils.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/abi/abiutils.go b/src/cmd/compile/internal/abi/abiutils.go
index 56e008830f..50a818c025 100644
--- a/src/cmd/compile/internal/abi/abiutils.go
+++ b/src/cmd/compile/internal/abi/abiutils.go
@@ -211,8 +211,11 @@ func appendParamOffsets(offsets []int64, at int64, t *types.Type) ([]int64, int6
offsets, at = appendParamOffsets(offsets, at, t.Elem())
}
case types.TSTRUCT:
- for _, f := range t.FieldSlice() {
+ for i, f := range t.FieldSlice() {
offsets, at = appendParamOffsets(offsets, at, f.Type)
+ if f.Type.Width == 0 && i == t.NumFields()-1 {
+ at++ // last field has zero width
+ }
}
at = align(at, t) // type size is rounded up to its alignment
case types.TSLICE: