From: Ian Romanick Date: Tue, 20 Apr 2010 23:48:24 +0000 (-0700) Subject: Ensure that anonymous structures have non-NULL names X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1d28b617ba66cfcb1641c9f516146d51aa82b118;p=mesa.git Ensure that anonymous structures have non-NULL names --- diff --git a/ast_to_hir.cpp b/ast_to_hir.cpp index 2f83dd6597e..a29a49d98dd 100644 --- a/ast_to_hir.cpp +++ b/ast_to_hir.cpp @@ -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. */