mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: cull dead code
The special case for ODOTPTR to handle zero-width fields is unneeded. It is an artifact of the old backend, from which time this code dates. The Node to SSA converter is careful to insert a nil check. This is tested in test/nilptr2.go, among other places. Passes toolstash-check. Change-Id: I6c1d99f7ff5abdae9aa08ee047dc088a3fe8dc3c Reviewed-on: https://go-review.googlesource.com/c/148828 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
8ca559eed5
commit
01971b97c1
1 changed files with 1 additions and 12 deletions
|
|
@ -493,7 +493,7 @@ opswitch:
|
|||
n.Left = walkexpr(n.Left, init)
|
||||
n.Right = walkexpr(n.Right, init)
|
||||
|
||||
case ODOT:
|
||||
case ODOT, ODOTPTR:
|
||||
usefield(n)
|
||||
n.Left = walkexpr(n.Left, init)
|
||||
|
||||
|
|
@ -508,17 +508,6 @@ opswitch:
|
|||
n.List.Set1(itabname(n.Type, n.Left.Type))
|
||||
}
|
||||
|
||||
case ODOTPTR:
|
||||
usefield(n)
|
||||
if n.Op == ODOTPTR && n.Left.Type.Elem().Width == 0 {
|
||||
// No actual copy will be generated, so emit an explicit nil check.
|
||||
n.Left = cheapexpr(n.Left, init)
|
||||
|
||||
checknil(n.Left, init)
|
||||
}
|
||||
|
||||
n.Left = walkexpr(n.Left, init)
|
||||
|
||||
case OLEN, OCAP:
|
||||
if isRuneCount(n) {
|
||||
// Replace len([]rune(string)) with runtime.countrunes(string).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue