diff options
author | Paul Berry <[email protected]> | 2013-09-27 17:41:07 -0700 |
---|---|---|
committer | Paul Berry <[email protected]> | 2013-10-10 14:27:15 -0700 |
commit | 9fb6f5955276154f04320d096b679b2ae8f61da5 (patch) | |
tree | fb0e482ab3dbf05124e00a5293c68d5f94de2bf4 | |
parent | 9b5b0320b65631aa53bb591681bdb730c90c99da (diff) |
glsl: Don't allow invalid identifiers as interface block instance names.
Note: we need to make an exception for the gl_PerVertex interface
block, since in geometry shaders it is allowed to be redeclared with
the instance name gl_in. Future patches will make redeclaration of
gl_PerVertex work properly.
Fixes piglit test
spec/glsl-1.50/compiler/interface-block-instance-name-uses-gl-prefix.vert.
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
-rw-r--r-- | src/glsl/ast_to_hir.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index 1d7539d56fe..1a5df71201d 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -4692,6 +4692,9 @@ ast_interface_block::hir(exec_list *instructions, * field selector ( . ) operator (analogously to structures)." */ if (this->instance_name) { + if (!redeclaring_per_vertex) + validate_identifier(this->instance_name, loc, state); + ir_variable *var; if (this->is_array) { |