Commit 01971b97 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder Committed by Daniel Martí

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: default avatarMatthew Dempsky <mdempsky@google.com>
parent 8ca559ee
...@@ -493,7 +493,7 @@ opswitch: ...@@ -493,7 +493,7 @@ opswitch:
n.Left = walkexpr(n.Left, init) n.Left = walkexpr(n.Left, init)
n.Right = walkexpr(n.Right, init) n.Right = walkexpr(n.Right, init)
case ODOT: case ODOT, ODOTPTR:
usefield(n) usefield(n)
n.Left = walkexpr(n.Left, init) n.Left = walkexpr(n.Left, init)
...@@ -508,17 +508,6 @@ opswitch: ...@@ -508,17 +508,6 @@ opswitch:
n.List.Set1(itabname(n.Type, n.Left.Type)) 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: case OLEN, OCAP:
if isRuneCount(n) { if isRuneCount(n) {
// Replace len([]rune(string)) with runtime.countrunes(string). // Replace len([]rune(string)) with runtime.countrunes(string).
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment