Ensure that anonymous structures have non-NULL names

This commit is contained in:
Ian Romanick
2010-04-20 16:48:24 -07:00
parent 6efaeeea44
commit 1d28b617ba

View File

@@ -2328,9 +2328,22 @@ ast_struct_specifier::hir(exec_list *instructions,
assert(i == decl_count);
glsl_type *t = new glsl_type(fields, decl_count, this->name);
const char *name;
if (this->name == NULL) {
static unsigned anon_count = 1;
char buf[32];
state->symbols->add_type(this->name, t);
snprintf(buf, sizeof(buf), "#anon_struct_%04x", anon_count);
anon_count++;
name = strdup(buf);
} else {
name = this->name;
}
glsl_type *t = new glsl_type(fields, decl_count, name);
state->symbols->add_type(name, t);
/* Structure type definitions do not have r-values.
*/