Fail compile if gl_FragCoord is redeclared with different layout qualifiers in
one shader.
---
 src/glsl/ast_to_hir.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 63fbd5a..d6362b0 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2213,6 +2213,16 @@ get_variable_being_redeclared(ir_variable *var, 
ast_declaration *decl,
       /* Allow redeclaration of gl_FragCoord for ARB_fcc layout
        * qualifiers.
        */
+
+      /* Prevent inconsistent redeclaration of layout qualifier. */
+      if (earlier->redeclared
+         && (earlier->origin_upper_left != var->origin_upper_left ||
+             earlier->pixel_center_integer != var->pixel_center_integer)) {
+        _mesa_glsl_error(&loc, state,
+                         "`gl_FragCoord' redeclared with different layout "
+                         "qualifier");
+      }
+
       earlier->origin_upper_left = var->origin_upper_left;
       earlier->pixel_center_integer = var->pixel_center_integer;
 
-- 
1.8.1.2

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

Reply via email to