cmd/...: remove use of func() { ... }() in loop increment

These were introduced during C -> Go translation when the loop increment
contained multiple statements.

Change-Id: Ic8abd8dcb3308851a1f7024de00711f0f984e684
Reviewed-on: https://go-review.googlesource.com/7627
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Rob Pike <r@golang.org>
diff --git a/src/cmd/5g/peep.go b/src/cmd/5g/peep.go
index 4fd2225..70109ac 100644
--- a/src/cmd/5g/peep.go
+++ b/src/cmd/5g/peep.go
@@ -788,7 +788,7 @@
 func findpre(r *gc.Flow, v *obj.Addr) *gc.Flow {
 	var r1 *gc.Flow
 
-	for r1 = gc.Uniqp(r); r1 != nil; (func() { r = r1; r1 = gc.Uniqp(r) })() {
+	for r1 = gc.Uniqp(r); r1 != nil; r, r1 = r1, gc.Uniqp(r1) {
 		if gc.Uniqs(r1) != r {
 			return nil
 		}
@@ -814,7 +814,7 @@
 	var r1 *gc.Flow
 	var p *obj.Prog
 
-	for r1 = gc.Uniqs(r); r1 != nil && r1 != r2; (func() { r = r1; r1 = gc.Uniqs(r) })() {
+	for r1 = gc.Uniqs(r); r1 != nil && r1 != r2; r, r1 = r1, gc.Uniqs(r1) {
 		if gc.Uniqp(r1) != r {
 			return nil
 		}
diff --git a/src/cmd/9l/asm.go b/src/cmd/9l/asm.go
index 2b6cdad..a32b39c 100644
--- a/src/cmd/9l/asm.go
+++ b/src/cmd/9l/asm.go
@@ -115,7 +115,7 @@
 	// us to save and restore the TOC pointer.
 	pprevtextp = &ld.Ctxt.Textp
 
-	for s = *pprevtextp; s != nil; (func() { pprevtextp = &s.Next; s = *pprevtextp })() {
+	for s = *pprevtextp; s != nil; pprevtextp, s = &s.Next, s.Next {
 		for i = range s.R {
 			r = &s.R[i]
 			if r.Type != 256+ld.R_PPC64_REL24 || r.Sym.Type != ld.SDYNIMPORT {
diff --git a/src/cmd/internal/gc/bv.go b/src/cmd/internal/gc/bv.go
index 07b17bb..9ee23af 100644
--- a/src/cmd/internal/gc/bv.go
+++ b/src/cmd/internal/gc/bv.go
@@ -66,7 +66,7 @@
 	}
 	i = 0
 	w = 0
-	for ; i < dst.n; (func() { i += WORDBITS; w++ })() {
+	for ; i < dst.n; i, w = i+WORDBITS, w+1 {
 		dst.b[w] = src1.b[w] &^ src2.b[w]
 	}
 }
@@ -157,7 +157,7 @@
 
 	i = 0
 	w = 0
-	for ; i < bv.n; (func() { i += WORDBITS; w++ })() {
+	for ; i < bv.n; i, w = i+WORDBITS, w+1 {
 		bv.b[w] = ^bv.b[w]
 	}
 }
@@ -172,7 +172,7 @@
 	}
 	i = 0
 	w = 0
-	for ; i < dst.n; (func() { i += WORDBITS; w++ })() {
+	for ; i < dst.n; i, w = i+WORDBITS, w+1 {
 		dst.b[w] = src1.b[w] | src2.b[w]
 	}
 }
@@ -187,7 +187,7 @@
 	}
 	i = 0
 	w = 0
-	for ; i < dst.n; (func() { i += WORDBITS; w++ })() {
+	for ; i < dst.n; i, w = i+WORDBITS, w+1 {
 		dst.b[w] = src1.b[w] & src2.b[w]
 	}
 }
diff --git a/src/cmd/internal/gc/esc.go b/src/cmd/internal/gc/esc.go
index 3560cd3..d7a8869 100644
--- a/src/cmd/internal/gc/esc.go
+++ b/src/cmd/internal/gc/esc.go
@@ -576,7 +576,7 @@
 		if count(n.List) == count(n.Rlist) {
 			ll = n.List
 			lr = n.Rlist
-			for ; ll != nil; (func() { ll = ll.Next; lr = lr.Next })() {
+			for ; ll != nil; ll, lr = ll.Next, lr.Next {
 				escassign(e, ll.N, lr.N)
 			}
 		}
@@ -615,7 +615,7 @@
 	case OAS2FUNC: // x,y = f()
 		lr = n.Rlist.N.Escretval
 
-		for ll = n.List; lr != nil && ll != nil; (func() { lr = lr.Next; ll = ll.Next })() {
+		for ll = n.List; lr != nil && ll != nil; lr, ll = lr.Next, ll.Next {
 			escassign(e, ll.N, lr.N)
 		}
 		if lr != nil || ll != nil {
@@ -973,7 +973,7 @@
 	}
 
 	em0 := em
-	for em >>= EscReturnBits; em != 0 && dsts != nil; (func() { em >>= 1; dsts = dsts.Next })() {
+	for em >>= EscReturnBits; em != 0 && dsts != nil; em, dsts = em>>1, dsts.Next {
 		if em&1 != 0 {
 			escassign(e, dsts.N, src)
 		}
@@ -1043,7 +1043,7 @@
 		}
 
 		var src *Node
-		for lr = fn.Ntype.List; ll != nil && lr != nil; (func() { ll = ll.Next; lr = lr.Next })() {
+		for lr = fn.Ntype.List; ll != nil && lr != nil; ll, lr = ll.Next, lr.Next {
 			src = ll.N
 			if lr.N.Isddd && !n.Isddd {
 				// Introduce ODDDARG node to represent ... allocation.
diff --git a/src/cmd/internal/gc/reflect.go b/src/cmd/internal/gc/reflect.go
index 60d6ea5..7b7eb63 100644
--- a/src/cmd/internal/gc/reflect.go
+++ b/src/cmd/internal/gc/reflect.go
@@ -1077,14 +1077,17 @@
 		ot = duintxx(s, ot, uint64(t.Outtuple), Widthint)
 
 		// slice data
-		for t1 = getthisx(t).Type; t1 != nil; (func() { t1 = t1.Down; n++ })() {
+		for t1 = getthisx(t).Type; t1 != nil; t1 = t1.Down {
 			ot = dsymptr(s, ot, dtypesym(t1.Type), 0)
+			n++
 		}
-		for t1 = getinargx(t).Type; t1 != nil; (func() { t1 = t1.Down; n++ })() {
+		for t1 = getinargx(t).Type; t1 != nil; t1 = t1.Down {
 			ot = dsymptr(s, ot, dtypesym(t1.Type), 0)
+			n++
 		}
-		for t1 = getoutargx(t).Type; t1 != nil; (func() { t1 = t1.Down; n++ })() {
+		for t1 = getoutargx(t).Type; t1 != nil; t1 = t1.Down {
 			ot = dsymptr(s, ot, dtypesym(t1.Type), 0)
+			n++
 		}
 
 	case TINTER:
@@ -1480,7 +1483,7 @@
 
 	proggendataflush(g)
 	proggenemit(g, obj.InsArray)
-	for i = 0; i < int32(Widthptr); (func() { i++; len >>= 8 })() {
+	for i = 0; i < int32(Widthptr); i, len = i+1, len>>8 {
 		proggenemit(g, uint8(len))
 	}
 }
diff --git a/src/cmd/internal/gc/subr.go b/src/cmd/internal/gc/subr.go
index ec4958a..7786a68 100644
--- a/src/cmd/internal/gc/subr.go
+++ b/src/cmd/internal/gc/subr.go
@@ -1009,7 +1009,7 @@
 		TSTRUCT:
 		t1 = t1.Type
 		t2 = t2.Type
-		for ; t1 != nil && t2 != nil; (func() { t1 = t1.Down; t2 = t2.Down })() {
+		for ; t1 != nil && t2 != nil; t1, t2 = t1.Down, t2.Down {
 			if t1.Etype != TFIELD || t2.Etype != TFIELD {
 				Fatal("struct/interface missing field: %v %v", Tconv(t1, 0), Tconv(t2, 0))
 			}
@@ -1027,7 +1027,7 @@
 	case TFUNC:
 		t1 = t1.Type
 		t2 = t2.Type
-		for ; t1 != nil && t2 != nil; (func() { t1 = t1.Down; t2 = t2.Down })() {
+		for ; t1 != nil && t2 != nil; t1, t2 = t1.Down, t2.Down {
 			var ta *Type
 			var tb *Type
 
@@ -1038,7 +1038,7 @@
 			// Loop over fields in structs, ignoring argument names.
 			ta = t1.Type
 			tb = t2.Type
-			for ; ta != nil && tb != nil; (func() { ta = ta.Down; tb = tb.Down })() {
+			for ; ta != nil && tb != nil; ta, tb = ta.Down, tb.Down {
 				if ta.Etype != TFIELD || tb.Etype != TFIELD {
 					Fatal("func struct missing field: %v %v", Tconv(ta, 0), Tconv(tb, 0))
 				}
diff --git a/src/cmd/internal/gc/typecheck.go b/src/cmd/internal/gc/typecheck.go
index e6acdd1..df164e6 100644
--- a/src/cmd/internal/gc/typecheck.go
+++ b/src/cmd/internal/gc/typecheck.go
@@ -3422,7 +3422,7 @@
 		// easy
 		ll = n.List
 		lr = n.Rlist
-		for ; ll != nil; (func() { ll = ll.Next; lr = lr.Next })() {
+		for ; ll != nil; ll, lr = ll.Next, lr.Next {
 			if ll.N.Type != nil && lr.N.Type != nil {
 				lr.N = assignconv(lr.N, ll.N.Type, "assignment")
 			}
diff --git a/src/cmd/internal/gc/walk.go b/src/cmd/internal/gc/walk.go
index 5fe8314..d1298eb 100644
--- a/src/cmd/internal/gc/walk.go
+++ b/src/cmd/internal/gc/walk.go
@@ -83,7 +83,7 @@
 }
 
 func samelist(a *NodeList, b *NodeList) bool {
-	for ; a != nil && b != nil; (func() { a = a.Next; b = b.Next })() {
+	for ; a != nil && b != nil; a, b = a.Next, b.Next {
 		if a.N != b.N {
 			return false
 		}
@@ -1651,7 +1651,7 @@
 	var nn *NodeList
 	ll = nl
 	lr = nr
-	for ; ll != nil && lr != nil; (func() { ll = ll.Next; lr = lr.Next })() {
+	for ; ll != nil && lr != nil; ll, lr = ll.Next, lr.Next {
 		// Do not generate 'x = x' during return. See issue 4014.
 		if op == ORETURN && ll.N == lr.N {
 			continue
diff --git a/src/cmd/internal/ld/data.go b/src/cmd/internal/ld/data.go
index e1f79e8..75ccfae 100644
--- a/src/cmd/internal/ld/data.go
+++ b/src/cmd/internal/ld/data.go
@@ -1032,7 +1032,7 @@
 
 	proggendataflush(g)
 	proggenemit(g, obj.InsArray)
-	for i = 0; i < int32(Thearch.Ptrsize); (func() { i++; length >>= 8 })() {
+	for i = 0; i < int32(Thearch.Ptrsize); i, length = i+1, length>>8 {
 		proggenemit(g, uint8(length))
 	}
 }
diff --git a/src/cmd/internal/ld/elf.go b/src/cmd/internal/ld/elf.go
index ab79cf3..b90cf12 100644
--- a/src/cmd/internal/ld/elf.go
+++ b/src/cmd/internal/ld/elf.go
@@ -1146,7 +1146,7 @@
 		}
 
 		b = 0
-		for j = 0; j < 2; (func() { j++; val = val[1:] })() {
+		for j = 0; j < 2; j, val = j+1, val[1:] {
 			b *= 16
 			if val[0] >= '0' && val[0] <= '9' {
 				b += int(val[0]) - '0'
diff --git a/src/cmd/internal/obj/arm/asm5.go b/src/cmd/internal/obj/arm/asm5.go
index b801bd7..96074c7 100644
--- a/src/cmd/internal/obj/arm/asm5.go
+++ b/src/cmd/internal/obj/arm/asm5.go
@@ -595,7 +595,7 @@
 	var i int
 	var m int
 	var o *Optab
-	for ; p != nil || ctxt.Blitrl != nil; (func() { op = p; p = p.Link })() {
+	for ; p != nil || ctxt.Blitrl != nil; op, p = p, p.Link {
 		if p == nil {
 			if checkpool(ctxt, op, 0) {
 				p = op
diff --git a/src/cmd/internal/obj/arm/obj5.go b/src/cmd/internal/obj/arm/obj5.go
index 7c28add..1f59c62 100644
--- a/src/cmd/internal/obj/arm/obj5.go
+++ b/src/cmd/internal/obj/arm/obj5.go
@@ -935,7 +935,7 @@
 	if p.Mark&FOLL != 0 {
 		i = 0
 		q = p
-		for ; i < 4; (func() { i++; q = q.Link })() {
+		for ; i < 4; i, q = i+1, q.Link {
 			if q == *last || q == nil {
 				break
 			}
diff --git a/src/cmd/internal/obj/ppc64/obj9.go b/src/cmd/internal/obj/ppc64/obj9.go
index 027fffa..f47d81d 100644
--- a/src/cmd/internal/obj/ppc64/obj9.go
+++ b/src/cmd/internal/obj/ppc64/obj9.go
@@ -855,7 +855,7 @@
 	if p.Mark&FOLL != 0 {
 		i = 0
 		q = p
-		for ; i < 4; (func() { i++; q = q.Link })() {
+		for ; i < 4; i, q = i+1, q.Link {
 			if q == *last || (q.Mark&NOSCHED != 0) {
 				break
 			}
diff --git a/src/cmd/internal/obj/x86/obj6.go b/src/cmd/internal/obj/x86/obj6.go
index 2e47d9a..cf226d8 100644
--- a/src/cmd/internal/obj/x86/obj6.go
+++ b/src/cmd/internal/obj/x86/obj6.go
@@ -1017,7 +1017,7 @@
 		 */
 		i = 0
 		q = p
-		for ; i < 4; (func() { i++; q = q.Link })() {
+		for ; i < 4; i, q = i+1, q.Link {
 			if q == nil {
 				break
 			}