Simultaneously fix only known memory leak and take the next step in supporting arrays of arrays.  Improved several minor things along the way.


git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20514 e7fa87d3-cd2b-0410-9028-fcbf551c1848
diff --git a/Test/array100.frag b/Test/array100.frag
new file mode 100644
index 0000000..87c125b
--- /dev/null
+++ b/Test/array100.frag
@@ -0,0 +1,48 @@
+#version 100
+
+float gu[];
+float g4[4];
+float g5[5];
+
+uniform int a;
+
+float[4] foo(float[5] a)  // ERROR  // ERROR
+{
+    return float[](a[0], a[1], a[2], a[3]);  // ERROR
+}
+
+void bar(float[5]) {}
+
+void main()
+{
+    {
+        float gu[2];  // okay, new scope
+
+        gu[2] = 4.0;  // ERROR, overflow
+    }
+
+    gu[2] = 4.0; // okay
+
+    gu[3] = 3.0;
+    gu[a] = 5.0; // ERROR
+
+    g4 = foo(g5);
+    g5 = g4;  // ERROR
+    gu = g4;  // ERROR
+
+    foo(gu);  // ERROR
+    bar(g5);
+
+    if (float[4](1.0, 2.0, 3.0, 4.0) == g4)  // ERROR
+        gu[0] = 2.0;
+
+    float u[];
+    u[2] = 3.0; // okay
+    float u[5];
+    u[5] = 5.0; // ERROR
+    foo(u);     // okay
+
+    gl_FragData[1000] = vec4(1.0); // ERROR
+    gl_FragData[-1] = vec4(1.0);   // ERROR
+    gl_FragData[3] = vec4(1.0);
+}