Will be used in a later commit to differentiate between a structure type declaration and a variable declaration of a struct type. I.e., the difference between
struct S { float x; }; (is_declaration = true) and S s; (is_declaration = false) Also note that is_declaration = true for struct S { float x; } s; --- src/glsl/ast.h | 1 + src/glsl/glsl_parser_extras.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/glsl/ast.h b/src/glsl/ast.h index 0b70bb7..836750b 100644 --- a/src/glsl/ast.h +++ b/src/glsl/ast.h @@ -467,6 +467,7 @@ public: virtual ir_rvalue *hir(exec_list *instructions, struct _mesa_glsl_parse_state *state); + bool is_declaration; const char *name; /* List of ast_declarator_list * */ exec_list declarations; diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp index 664f8d1..e12582e 100644 --- a/src/glsl/glsl_parser_extras.cpp +++ b/src/glsl/glsl_parser_extras.cpp @@ -1234,6 +1234,7 @@ ast_struct_specifier::ast_struct_specifier(const char *identifier, identifier = ralloc_asprintf(this, "#anon_struct_%04x", anon_count); anon_count++; } + is_declaration = true; name = identifier; this->declarations.push_degenerate_list_at_head(&declarator_list->link); } -- 1.8.1.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev