Mesa (7.9): glsl: Fix linker bug in cross_validate_globals()

Ian Romanick idr at kemper.freedesktop.org
Fri Dec 17 22:54:20 UTC 2010


Module: Mesa
Branch: 7.9
Commit: b2cd388b7953f544bf8669cccfd1fa94d85c7f3c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b2cd388b7953f544bf8669cccfd1fa94d85c7f3c

Author: Chad Versace <chad.versace at 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
(cherry picked from commit 7528f143dfb77e3e0486006676e990964392aebf)

---

 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 fab5344..6832466 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -398,6 +398,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->name, var);
       }




More information about the mesa-commit mailing list