]> Cypherpunks repositories - gostls13.git/commit
cmd/link: stop checking reflect.Value.Call in deadcode pass
authorCherry Zhang <cherryyz@google.com>
Sat, 18 Apr 2020 00:41:59 +0000 (20:41 -0400)
committerCherry Zhang <cherryyz@google.com>
Sat, 18 Apr 2020 01:09:57 +0000 (01:09 +0000)
commitb0da26a668fd6d4e351a00ca76695c5a233e84a2
tree2bb2e9f24e6202a0b39784a5c278a5ab8b41290c
parent4d9ecde30a77f4a4197b585b42cc2117607a8c40
cmd/link: stop checking reflect.Value.Call in deadcode pass

In the linker's deadcode pass, we need to keep a method live if
it can be reached through reflection. We do this by marking all
exported method live if reflect.Value.Method or
reflect.Type.Method is used. Currently we also check for
reflect.Value.Call, which is unnecessary because in order to call
a method through reflection, the method must be obtained through
reflect.Value.Method or reflect.Type.Method, which we already
check.

Per discussion in https://groups.google.com/d/msg/golang-dev/eG9It63-Bxg/_bnoVy-eAwAJ
Thanks Brad, Russ, and Ian for bringing this up.

Change-Id: I8e9529a224bb898dbf5752674cc9d155db386c14
Reviewed-on: https://go-review.googlesource.com/c/go/+/228792
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/link/internal/ld/deadcode2.go