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; Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>tags/mesa-9.2-rc1
@@ -460,7 +460,8 @@ public: | |||
* be modified. Zeros the inherited ast_node's fields. | |||
*/ | |||
ast_struct_specifier(const ast_struct_specifier& that): | |||
ast_node(), name(that.name), declarations(that.declarations) | |||
ast_node(), name(that.name), declarations(that.declarations), | |||
is_declaration(that.is_declaration) | |||
{ | |||
/* empty */ | |||
} | |||
@@ -475,6 +476,7 @@ public: | |||
const char *name; | |||
/* List of ast_declarator_list * */ | |||
exec_list declarations; | |||
bool is_declaration; | |||
}; | |||
@@ -1236,6 +1236,7 @@ ast_struct_specifier::ast_struct_specifier(const char *identifier, | |||
} | |||
name = identifier; | |||
this->declarations.push_degenerate_list_at_head(&declarator_list->link); | |||
is_declaration = true; | |||
} | |||
extern "C" { |