aboutsummaryrefslogtreecommitdiffstats
path: root/prog/encodingexec.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-12-20 13:57:42 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-12-20 16:45:34 +0100
commitae5ed0b14052adc4be0d98e5e8a46a0b0ab2c565 (patch)
tree162cebcc1f8d487399415f1b11ac9738fabd7ec7 /prog/encodingexec.go
parent4bba9fd1629d5351877b21fc662a125342a18a9e (diff)
pkg/compiler: fix bitfield layout bug
Fixes #1542 Found thanks to syz-check. Update #590
Diffstat (limited to 'prog/encodingexec.go')
-rw-r--r--prog/encodingexec.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/prog/encodingexec.go b/prog/encodingexec.go
index 2e69f2116..45fb2d75e 100644
--- a/prog/encodingexec.go
+++ b/prog/encodingexec.go
@@ -125,6 +125,7 @@ func (w *execContext) writeCopyin(c *Call) {
return
}
addr := w.target.PhysicalAddr(ctx.Base) + ctx.Offset
+ addr -= arg.Type().UnitOffset()
if w.willBeUsed(arg) {
w.args[arg] = argInfo{Addr: addr}
}