summaryrefslogtreecommitdiff
path: root/src/glsl/linker.cpp
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2011-01-25 12:06:18 -0800
committerIan Romanick <ian.d.romanick@intel.com>2011-01-25 13:41:26 -0800
commit0f4b2a0a23650d8f773c53d84cb2ead1f6d4fc8e (patch)
tree981f7e654707c8c26bc6a13551f21eefbefd779c /src/glsl/linker.cpp
parentc87e9ef4d291b3fc18f7af2c7a7646b9a860f4af (diff)
linker: Propagate max_array_access while linking functions
Update the max_array_access of a global as functions that use that global are pulled into the linked shader. Fixes piglit test glsl-fs-implicit-array-size-01 and bugzilla #33219. NOTE: This is a candidate for the 7.9 and 7.10 branches.
Diffstat (limited to 'src/glsl/linker.cpp')
-rw-r--r--src/glsl/linker.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 58b029460e..bf7a56353a 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -356,11 +356,8 @@ cross_validate_globals(struct gl_shader_program *prog,
&& (var->type->fields.array == existing->type->fields.array)
&& ((var->type->length == 0)
|| (existing->type->length == 0))) {
- if (existing->type->length == 0) {
+ if (var->type->length != 0) {
existing->type = var->type;
- existing->max_array_access =
- MAX2(existing->max_array_access,
- var->max_array_access);
}
} else {
linker_error_printf(prog, "%s `%s' declared as type "