cmd/gc: say 'non-constant array bound' instead of 'invalid array bound'

Fixes #8196.

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/141510044
diff --git a/test/fixedbugs/bug255.go b/test/fixedbugs/bug255.go
index acf4f23..65ed1b8 100644
--- a/test/fixedbugs/bug255.go
+++ b/test/fixedbugs/bug255.go
@@ -6,10 +6,15 @@
 
 package main
 
-var a [10]int	// ok
-var b [1e1]int	// ok
-var c [1.5]int	// ERROR "truncated"
-var d ["abc"]int	// ERROR "invalid array bound|not numeric"
-var e [nil]int	// ERROR "invalid array bound|not numeric"
-var f [e]int	// ERROR "invalid array bound|not constant"
-var g [1<<65]int	// ERROR "array bound is too large|overflows"
+var a [10]int      // ok
+var b [1e1]int     // ok
+var c [1.5]int     // ERROR "truncated"
+var d ["abc"]int   // ERROR "invalid array bound|not numeric"
+var e [nil]int     // ERROR "invalid array bound|not numeric"
+var f [e]int       // ERROR "invalid array bound|not constant"
+var g [1 << 65]int // ERROR "array bound is too large|overflows"
+var h [len(a)]int  // ok
+
+func ff() string
+
+var i [len([1]string{ff()})]int // ERROR "non-constant array bound|not constant"