From efa34e4a1d09c6f140fba7ff339a989ea079e212 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Sat, 14 Nov 2015 13:09:46 +1100 Subject: [PATCH] glsl: replace index layout min boundary check MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Use new helper that will in a later patch allow for compile time constants. Reviewed-by: Samuel Iglesias Gonsálvez Reviewed-by: Emil Velikov --- src/glsl/ast_to_hir.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index f0f2d52d811..fde3df5d9b6 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -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; } } } -- 2.30.2