aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2017-07-21 16:37:40 -0700
committerIan Lance Taylor <iant@golang.org>2017-07-24 18:05:00 +0000
commitee392ac10c7bed0ef1984dbb421491ca7b18e190 (patch)
tree811aa2ddb54f2ce59fed4b9b4b3344e9a38cf4e0 /src/cmd
parent6bb88fc280518150e31bf12744596467796a4528 (diff)
downloadgo-ee392ac10c7bed0ef1984dbb421491ca7b18e190.tar.xz
cmd/compile: consider exported flag in namedata
It is possible to have an unexported name with a nil package, for an embedded field whose type is a pointer to an unexported type. We must encode that fact in the type..namedata symbol name, to avoid incorrectly merging an unexported name with an exported name. Fixes #21120 Change-Id: I2e3879d77fa15c05ad92e0bf8e55f74082db5111 Reviewed-on: https://go-review.googlesource.com/50710 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/compile/internal/gc/reflect.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/gc/reflect.go b/src/cmd/compile/internal/gc/reflect.go
index decd3beda7..91e6f46804 100644
--- a/src/cmd/compile/internal/gc/reflect.go
+++ b/src/cmd/compile/internal/gc/reflect.go
@@ -582,7 +582,11 @@ func dname(name, tag string, pkg *types.Pkg, exported bool) *obj.LSym {
sname += "-noname-unexported." + tag
}
} else {
- sname += name + "." + tag
+ if exported {
+ sname += name + "." + tag
+ } else {
+ sname += name + "-" + tag
+ }
}
} else {
sname = fmt.Sprintf(`%s"".%d`, sname, dnameCount)