glsl/gs: Fix transform feedback of gl_ClipDistance.

Since gl_ClipDistance is lowered from an array of floats to an array
of vec4's during compilation, transform feedback has special logic to
keep track of the pre-lowered array size so that attempting to perform
transform feedback on gl_ClipDistance produces a result with the
correct size.

Previously, this special logic always consulted the vertex shader's
size for gl_ClipDistance.  This patch fixes it so that it uses the
geometry shader's size for gl_ClipDistance when a geometry shader is
in use.

Fixes piglit test spec/glsl-1.50/transform-feedback-type-and-size.

v2: Change the type of LastClipDistanceArraySize to "unsigned", and
clarify the comment above it.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index b23c31a..d8f655c 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -2100,6 +2100,7 @@
       validate_vertex_shader_executable(prog, sh);
       if (!prog->LinkStatus)
 	 goto done;
+      prog->LastClipDistanceArraySize = prog->Vert.ClipDistanceArraySize;
 
       _mesa_reference_shader(ctx, &prog->_LinkedShaders[MESA_SHADER_VERTEX],
 			     sh);
@@ -2132,6 +2133,7 @@
       validate_geometry_shader_executable(prog, sh);
       if (!prog->LinkStatus)
 	 goto done;
+      prog->LastClipDistanceArraySize = prog->Geom.ClipDistanceArraySize;
 
       _mesa_reference_shader(ctx, &prog->_LinkedShaders[MESA_SHADER_GEOMETRY],
 			     sh);