summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2010-09-01 14:08:08 -0700
committerKenneth Graunke <kenneth@whitecape.org>2010-09-01 20:39:09 -0700
commita789ca649cb143c0c5bf3209ff1bde398fbd777e (patch)
tree3c015354d16e3b28c6283cc5b71af09e0ac20b9f
parent37200d83d3e61aa480e6dbb350e522bd0388644c (diff)
glsl2: Don't generate constructor functions for structures
-rw-r--r--src/glsl/ast_to_hir.cpp3
-rw-r--r--src/glsl/glsl_symbol_table.cpp2
2 files changed, 2 insertions, 3 deletions
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 84aa6501c5..970ac0818e 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 ed71244cbf..c71f3f830c 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;
}