Ensure that anonymous structures have non-NULL names
This commit is contained in:
@@ -2328,9 +2328,22 @@ ast_struct_specifier::hir(exec_list *instructions,
|
|||||||
|
|
||||||
assert(i == decl_count);
|
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.
|
/* Structure type definitions do not have r-values.
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user