]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix interaction between GOEXPERIMENT=fieldtrack and race detector
authorRuss Cox <rsc@golang.org>
Tue, 18 Aug 2015 01:38:46 +0000 (21:38 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 18 Aug 2015 14:36:01 +0000 (14:36 +0000)
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>
src/cmd/compile/internal/gc/typecheck.go
src/cmd/compile/internal/gc/walk.go

index dc2ba75e69b1a29673d15659811d0980f7c7cbfb..befe3b26523251d0498bc4af4ef38710cc68d566 100644 (file)
@@ -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] {
index 91c0a47b2aef57fed22f436507e89f7375895753..ce73018b8b01a08d0eb075d78fbc11e4cd7846b1 100644 (file)
@@ -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)
        }