Mesa (master): glsl: Remove name_declared_this_scope check when adding functions.

Ian Romanick idr at kemper.freedesktop.org
Thu Aug 26 16:25:17 UTC 2010


Module: Mesa
Branch: master
Commit: e09591317b2470fe9c104606577d4e10255727c0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e09591317b2470fe9c104606577d4e10255727c0

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed Aug 25 16:37:46 2010 -0700

glsl: Remove name_declared_this_scope check when adding functions.

Instead, rely on the symbol table's rules.

Fixes redeclaration-02.vert.

---

 src/glsl/ast_to_hir.cpp |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 8c105e7..8caf950 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2197,17 +2197,16 @@ ast_function::hir(exec_list *instructions,
 	    _mesa_glsl_error(& loc, state, "function `%s' redefined", name);
 	 }
       }
-   } else if (state->symbols->name_declared_this_scope(name)) {
-      /* This function name shadows a non-function use of the same name.
-       */
-      YYLTYPE loc = this->get_location();
-
-      _mesa_glsl_error(& loc, state, "function name `%s' conflicts with "
-		       "non-function", name);
-      return NULL;
    } else {
       f = new(ctx) ir_function(name);
-      state->symbols->add_function(f->name, f);
+      if (!state->symbols->add_function(f->name, f)) {
+	 /* This function name shadows a non-function use of the same name. */
+	 YYLTYPE loc = this->get_location();
+
+	 _mesa_glsl_error(&loc, state, "function name `%s' conflicts with "
+			  "non-function", name);
+	 return NULL;
+      }
 
       /* Emit the new function header */
       instructions->push_tail(f);




More information about the mesa-commit mailing list