diff options
author | Russ Cox <rsc@golang.org> | 2015-08-17 21:38:46 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2015-08-18 14:36:01 +0000 |
commit | f68d1df6b987ce7d0e33bb836670c92ad66f65dd (patch) | |
tree | f9f57af7e0e29244ee3e61fb4a1558b75e65c2c6 | |
parent | 9e26cde78697b5b31fac0b205adba57bd8d1f674 (diff) | |
download | go-f68d1df6b987ce7d0e33bb836670c92ad66f65dd.tar.gz go-f68d1df6b987ce7d0e33bb836670c92ad66f65dd.zip |
cmd/compile: fix interaction between GOEXPERIMENT=fieldtrack and race detector
Tested by hand.
Only lines of code changing are protected by Fieldtrack_enabled > 0,
which is never true in standard Go distributions.
Fixes #12171.
Change-Id: I963b9997dac10829db8ad4bfc97a7d6bf14b55c6
Reviewed-on: https://go-review.googlesource.com/13676
Reviewed-by: Ian Lance Taylor <iant@golang.org>
-rw-r--r-- | src/cmd/compile/internal/gc/typecheck.go | 2 | ||||
-rw-r--r-- | src/cmd/compile/internal/gc/walk.go | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/gc/typecheck.go b/src/cmd/compile/internal/gc/typecheck.go index dc2ba75e69..befe3b2652 100644 --- a/src/cmd/compile/internal/gc/typecheck.go +++ b/src/cmd/compile/internal/gc/typecheck.go @@ -2532,7 +2532,7 @@ func lookdot(n *Node, t *Type, dostrcmp int) *Type { n.Xoffset = f1.Width n.Type = f1.Type if obj.Fieldtrack_enabled > 0 { - dotField[typeSym{t, s}] = f1 + dotField[typeSym{t.Orig, s}] = f1 } if t.Etype == TINTER { if Isptr[n.Left.Type.Etype] { diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index 91c0a47b2a..ce73018b8b 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -3873,7 +3873,7 @@ func usefield(n *Node) { if Isptr[t.Etype] { t = t.Type } - field := dotField[typeSym{t, n.Right.Sym}] + field := dotField[typeSym{t.Orig, n.Right.Sym}] if field == nil { Fatal("usefield %v %v without paramfld", n.Left.Type, n.Right.Sym) } |