Module: Mesa
Branch: master
Commit: 7528f143dfb77e3e0486006676e990964392aebf
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7528f143dfb77e3e0486006676e990964392aebf

Author: Chad Versace <chad.vers...@intel.com>
Date:   Wed Nov 17 14:34:38 2010 -0800

glsl: Fix linker bug in cross_validate_globals()

Cause linking to fail if a global has mismatching invariant qualifiers.

See https://bugs.freedesktop.org/show_bug.cgi?id=30261

---

 src/glsl/linker.cpp |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index cde70ad..576b72a 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -411,6 +411,13 @@ cross_validate_globals(struct gl_shader_program *prog,
                  existing->constant_value =
                     var->constant_value->clone(talloc_parent(existing), NULL);
            }
+
+           if (existing->invariant != var->invariant) {
+              linker_error_printf(prog, "declarations for %s `%s' have "
+                                  "mismatching invariant qualifiers\n",
+                                  mode_string(var), var->name);
+              return false;
+           }
         } else
            variables.add_variable(var);
       }

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

Reply via email to