glsl: added slang_assemble_ctx::EmitContReturn field, init
authorBrian Paul <brianp@vmware.com>
Thu, 18 Jun 2009 20:11:38 +0000 (14:11 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 26 Jun 2009 19:16:32 +0000 (13:16 -0600)
src/mesa/shader/slang/slang_codegen.h
src/mesa/shader/slang/slang_compile.c

index ce6cc7cb8f0437e6f6693d0576cc2c54eaa37c49..bb736585aa1047e74c7412391a301587fd9139ce 100644 (file)
@@ -43,6 +43,7 @@ typedef struct slang_assemble_ctx_
    struct slang_ir_node_ *CurLoop;
    struct slang_function_ *CurFunction;
    GLboolean UnresolvedRefs;
+   GLboolean EmitContReturn;
 } slang_assemble_ctx;
 
 
index d7ad879e97abcfaa4d4c4c502c7b460ed2535d13..c1b97c7cb708efdb2a7a8a4e7c8e5520469656f7 100644 (file)
@@ -1953,6 +1953,7 @@ static int
 parse_init_declarator(slang_parse_ctx * C, slang_output_ctx * O,
                       const slang_fully_specified_type * type)
 {
+   GET_CURRENT_CONTEXT(ctx); /* a hack */
    slang_variable *var;
    slang_atom a_name;
 
@@ -2066,6 +2067,7 @@ parse_init_declarator(slang_parse_ctx * C, slang_output_ctx * O,
       A.vartable = O->vartable;
       A.log = C->L;
       A.curFuncEndLabel = NULL;
+      A.EmitContReturn = ctx->Shader.EmitContReturn;
       if (!_slang_codegen_global_variable(&A, var, C->type))
          RETURN0;
    }
@@ -2430,6 +2432,7 @@ parse_code_unit(slang_parse_ctx * C, slang_code_unit * unit,
       A.program = o.program;
       A.pragmas = &shader->Pragmas;
       A.vartable = o.vartable;
+      A.EmitContReturn = ctx->Shader.EmitContReturn;
       A.log = C->L;
 
       /* main() takes no parameters */