mirror of
https://github.com/golang/go
synced 2024-11-24 04:20:03 -07:00
8a2db409c4
CL 51010045 fixed the first one of these: cmd/gc: return canonical Node* from temp For historical reasons, temp was returning a copy of the created Node*, not the original Node*. This meant that if analysis recorded information in the returned node (for example, n->addrtaken = 1), the analysis would not show up on the original Node*, the one kept in fn->dcl and consulted during liveness bitmap creation. Correct this, and watch for it when setting addrtaken. Fixes #7083. R=khr, dave, minux.ma CC=golang-codereviews https://golang.org/cl/51010045 CL 53200043 fixed the second: cmd/gc: fix race build Missed this case in CL 51010045. TBR=khr CC=golang-codereviews https://golang.org/cl/53200043 This CL fixes the third. There are only three nod(OXXX, ...) calls in sinit.c, so maybe we're done. Embarassing that it took three CLs to find all three. Fixes #8028. LGTM=khr R=golang-codereviews, khr CC=golang-codereviews, iant https://golang.org/cl/100800046
28 lines
427 B
Go
28 lines
427 B
Go
// compile
|
|
|
|
// Copyright 2014 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Issue 8028. Used to fail in -race mode with "non-orig name" error.
|
|
|
|
package p
|
|
|
|
var (
|
|
t2 = T{F, "s1"}
|
|
t1 = T{F, "s2"}
|
|
|
|
tt = [...]T{t1, t2}
|
|
)
|
|
|
|
type I interface{}
|
|
|
|
type T struct {
|
|
F func() I
|
|
S string
|
|
}
|
|
|
|
type E struct{}
|
|
|
|
func F() I { return new(E) }
|