From: Ian Romanick Date: Wed, 1 Sep 2010 21:08:08 +0000 (-0700) Subject: glsl2: Don't generate constructor functions for structures X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a789ca649cb143c0c5bf3209ff1bde398fbd777e;p=mesa.git glsl2: Don't generate constructor functions for structures --- diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index 84aa6501c55..970ac0818e8 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -2730,8 +2730,7 @@ ast_struct_specifier::hir(exec_list *instructions, glsl_type::get_record_instance(fields, decl_count, name); YYLTYPE loc = this->get_location(); - ir_function *ctor = t->generate_constructor(); - if (!state->symbols->add_type(name, t, ctor)) { + if (!state->symbols->add_type(name, t)) { _mesa_glsl_error(& loc, state, "struct `%s' previously defined", name); } else { diff --git a/src/glsl/glsl_symbol_table.cpp b/src/glsl/glsl_symbol_table.cpp index ed71244cbf8..c71f3f830c3 100644 --- a/src/glsl/glsl_symbol_table.cpp +++ b/src/glsl/glsl_symbol_table.cpp @@ -127,7 +127,7 @@ bool glsl_symbol_table::add_function(const char *name, ir_function *f) if (this->language_version == 110 && name_declared_this_scope(name)) { /* In 1.10, functions and variables have separate namespaces. */ symbol_table_entry *existing = get_entry(name); - if (existing->f == NULL) { + if ((existing->f == NULL) && (existing->t == NULL)) { existing->f = f; return true; }