diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/glsl/pp/sl_pp_define.c | 16 | 
1 files changed, 16 insertions, 0 deletions
| diff --git a/src/glsl/pp/sl_pp_define.c b/src/glsl/pp/sl_pp_define.c index 391178aa69..d18a7ee289 100644 --- a/src/glsl/pp/sl_pp_define.c +++ b/src/glsl/pp/sl_pp_define.c @@ -26,7 +26,9 @@   **************************************************************************/  #include <stdlib.h> +#include <string.h>  #include "sl_pp_process.h" +#include "sl_pp_public.h"  static void @@ -126,6 +128,20 @@ sl_pp_process_define(struct sl_pp_context *context,        return -1;     } +   /* Check for reserved macro names */ +   { +      const char *name = sl_pp_context_cstr(context, macro_name); + +      if (strstr(name, "__")) { +         strcpy(context->error_msg, "macro names containing `__' are reserved"); +         return 1; +      } +      if (name[0] == 'G' && name[1] == 'L' && name[2] == '_') { +         strcpy(context->error_msg, "macro names prefixed with `GL_' are reserved"); +         return 1; +      } +   } +     for (macro = context->macro; macro; macro = macro->next) {        if (macro->name == macro_name) {           break; | 
