r600g: compute support for evergreen
[mesa.git] / src / glsl / glsl_parser_extras.h
index 35d1e3aee26ea90ebf665aaffb8ce66a0013a2d6..1a909c68b7f174bfc5c00f14f54c974f6f8413a9 100644 (file)
@@ -48,11 +48,16 @@ struct glsl_switch_state {
    ir_variable *is_fallthru_var;
    ir_variable *is_break_var;
    class ast_switch_statement *switch_nesting_ast;
+
+   /** Table of constant values already used in case labels */
+   struct hash_table *labels_ht;
+   class ast_case_label *previous_default;
+
    bool is_switch_innermost; // if switch stmt is closest to break, ...
 };
 
 struct _mesa_glsl_parse_state {
-   _mesa_glsl_parse_state(struct gl_context *ctx, GLenum target,
+   _mesa_glsl_parse_state(struct gl_context *_ctx, GLenum target,
                          void *mem_ctx);
 
    /* Callers of this ralloc-based new need not call delete. It's
@@ -72,6 +77,7 @@ struct _mesa_glsl_parse_state {
       ralloc_free(mem);
    }
 
+   struct gl_context *const ctx;
    void *scanner;
    exec_list translation_unit;
    glsl_symbol_table *symbols;
@@ -127,6 +133,7 @@ struct _mesa_glsl_parse_state {
       unsigned GLSL_110:1;
       unsigned GLSL_120:1;
       unsigned GLSL_130:1;
+      unsigned GLSL_140:1;
       /*@}*/
    } Const;