From 01971b97c11cd55e9e65f628b7f1c3fc8ef81944 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Sat, 10 Nov 2018 06:58:36 -0800 Subject: [PATCH] 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 TryBot-Result: Gobot Gobot Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/gc/walk.go | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index 509579d21f..9bfdaffa62 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -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). -- 2.50.0