Mesa (master): ast_to_hir: Reject function names that start with "gl_".

Kenneth Graunke kwg at kemper.freedesktop.org
Fri Aug 20 09:42:56 UTC 2010


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Aug 20 02:14:35 2010 -0700

ast_to_hir: Reject function names that start with "gl_".

Fixes piglit test redeclaration-03.vert.

---

 src/glsl/ast_to_hir.cpp |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 0d2c471..4188348 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2099,6 +2099,18 @@ ast_function::hir(exec_list *instructions,
 
    const char *const name = identifier;
 
+   /* From page 15 (page 21 of the PDF) of the GLSL 1.10 spec,
+    *
+    *   "Identifiers starting with "gl_" are reserved for use by
+    *   OpenGL, and may not be declared in a shader as either a
+    *   variable or a function."
+    */
+   if (strncmp(name, "gl_", 3) == 0) {
+      YYLTYPE loc = this->get_location();
+      _mesa_glsl_error(&loc, state,
+		       "identifier `%s' uses reserved `gl_' prefix", name);
+   }
+
    /* Convert the list of function parameters to HIR now so that they can be
     * used below to compare this function's signature with previously seen
     * signatures for functions with the same name.




More information about the mesa-commit mailing list