Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com>
---
 src/glsl/glsl_parser.yy |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 7adc06d..8e6b04d 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -1935,6 +1935,20 @@ basic_interface_block:
              }
           }
 
+          /* GLSLangSpec.1.50.11, 4.3.7 Interface Blocks:
+           * "It is illegal to have an input block in a vertex shader
+           *  or an output block in a fragment shader"
+           */
+          if ((state->target == vertex_shader) && $1.flags.q.in) {
+             _mesa_glsl_error(& @1, state,
+                              "in interface block is not allowed for "
+                              "a vertex shader\n");
+          } else if ((state->target == fragment_shader) && $1.flags.q.out) {
+             _mesa_glsl_error(& @1, state,
+                              "out interface block is not allowed for "
+                              "a fragment shader\n");
+          }
+
           /* Since block arrays require names, and both features are added in
            * the same language versions, we don't have to explicitly
            * version-check both things.
-- 
1.7.10.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to