From 1d28b617ba66cfcb1641c9f516146d51aa82b118 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 20 Apr 2010 16:48:24 -0700 Subject: [PATCH] Ensure that anonymous structures have non-NULL names --- ast_to_hir.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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. */ -- 2.30.2