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.
This commit is contained in:
Ian Romanick
2011-01-25 12:06:18 -08:00
parent c87e9ef4d2
commit 0f4b2a0a23
2 changed files with 13 additions and 4 deletions
+1 -4
View File
@@ -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 "