glsl: replace index layout min boundary check

Use new helper that will in a later patch allow for
compile time constants.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
Timothy Arceri 2015-11-14 13:09:46 +11:00 committed by Timothy Arceri
parent 1d87d6f9ca
commit efa34e4a1d

View file

@ -2804,7 +2804,10 @@ apply_explicit_location(const struct ast_type_qualifier *qual,
break;
}
if (qual->flags.q.explicit_index) {
unsigned qual_index;
if (qual->flags.q.explicit_index &&
process_qualifier_constant(state, loc, "index", qual->index,
&qual_index)) {
/* From the GLSL 4.30 specification, section 4.4.2 (Output
* Layout Qualifiers):
*
@ -2814,12 +2817,12 @@ apply_explicit_location(const struct ast_type_qualifier *qual,
* Older specifications don't mandate a behavior; we take
* this as a clarification and always generate the error.
*/
if (qual->index < 0 || qual->index > 1) {
if (qual_index > 1) {
_mesa_glsl_error(loc, state,
"explicit index may only be 0 or 1");
} else {
var->data.explicit_index = true;
var->data.index = qual->index;
var->data.index = qual_index;
}
}
}