cmd/internal/gc: manual goto removal + grind to move var decls
Also change gc.Naddr to return the Addr instead of filling it in.
Change-Id: I98a86705d23bee49626a12a042a4d51cabe290ea
Reviewed-on: https://go-review.googlesource.com/6601
Reviewed-by: Rob Pike <r@golang.org>
diff --git a/src/cmd/internal/gc/range.go b/src/cmd/internal/gc/range.go
index ed50bdf..3de70ba 100644
--- a/src/cmd/internal/gc/range.go
+++ b/src/cmd/internal/gc/range.go
@@ -136,7 +136,6 @@
func walkrange(n *Node) {
t := n.Type
- var init *NodeList
a := n.Right
lno := int(setlineno(a))
@@ -154,9 +153,8 @@
// to avoid erroneous processing by racewalk.
n.List = nil
- var hv2 *Node
-
var body *NodeList
+ var init *NodeList
switch t.Etype {
default:
Fatal("walkrange")
@@ -366,6 +364,7 @@
init = list(init, Nod(OAS, hv1, nil))
var a *Node
+ var hv2 *Node
if v2 == nil {
a = Nod(OAS, hv1, mkcall("stringiter", Types[TINT], nil, ha, hv1))
} else {