gc: bug264

Fixes #692.

R=ken2
CC=golang-dev
https://golang.org/cl/1092041
diff --git a/src/cmd/gc/sinit.c b/src/cmd/gc/sinit.c
index 6f0772b..2082254 100644
--- a/src/cmd/gc/sinit.c
+++ b/src/cmd/gc/sinit.c
@@ -31,8 +31,10 @@
 	case PFUNC:
 		break;
 	default:
-		if(isblank(n))
+		if(isblank(n) && n->defn != N && !n->defn->initorder) {
+			n->defn->initorder = 1;
 			*out = list(*out, n->defn);
+		}
 		return;
 	}
 
diff --git a/test/bugs/bug264.go b/test/fixedbugs/bug264.go
similarity index 91%
rename from test/bugs/bug264.go
rename to test/fixedbugs/bug264.go
index e0b288d..6d86c6f 100644
--- a/test/bugs/bug264.go
+++ b/test/fixedbugs/bug264.go
@@ -8,27 +8,22 @@
 
 package main
 
-import "fmt"
-
 var fooCount = 0
 var barCount = 0
 var balCount = 0
 
 func foo() (int, int) {
 	fooCount++
-	fmt.Println("foo")
 	return 0, 0
 }
 
 func bar() (int, int) {
 	barCount++
-	fmt.Println("bar")
 	return 0, 0
 }
 
 func bal() (int, int) {
 	balCount++
-	fmt.Println("bal")
 	return 0, 0
 }
 
diff --git a/test/golden.out b/test/golden.out
index 59aec77..49bca4b 100644
--- a/test/golden.out
+++ b/test/golden.out
@@ -177,14 +177,3 @@
 =========== bugs/bug260.go
 FAIL
 BUG: bug260 failed
-
-=========== bugs/bug264.go
-foo
-bar
-bar
-bal
-bal
-panic: barCount != 1
-
-panic PC=xxx
-BUG