From ec7dcaf578b26179f6d6782f20af17c3b75149df Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 19 Jan 2015 12:32:12 +0100 Subject: [PATCH] glsl: can't have 'const' qualifier used with struct or interface block members Fixes the following 2 dEQP tests: dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_const_vertex dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_const_fragment Reviewed-by: Ian Romanick --- src/glsl/ast_to_hir.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index c2c9f0653e8..ed0eb0982dd 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -5201,6 +5201,13 @@ ast_process_structure_or_interface_block(exec_list *instructions, "members"); } + if (qual->flags.q.constant) { + YYLTYPE loc = decl_list->get_location(); + _mesa_glsl_error(&loc, state, + "const storage qualifier cannot be applied " + "to struct or interface block members"); + } + field_type = process_array_type(&loc, decl_type, decl->array_specifier, state); fields[i].type = field_type; -- 2.30.2