Module: Mesa Branch: master Commit: 665d75cc5a23f8024034d0c4176fb281f94a30e9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=665d75cc5a23f8024034d0c4176fb281f94a30e9
Author: Kenneth Graunke <kenn...@whitecape.org> Date: Wed Aug 18 13:54:50 2010 -0700 glsl: Fix scoping bug in if statements. Fixes glslparsertest/glsl2/scoping-01.frag (successfully compiled but should've failed) and scoping-02.frag (assertion triggered). --- src/glsl/ast_to_hir.cpp | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index 6e5d01e..bd1ab78 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -2395,11 +2395,17 @@ ast_selection_statement::hir(exec_list *instructions, ir_if *const stmt = new(ctx) ir_if(condition); - if (then_statement != NULL) + if (then_statement != NULL) { + state->symbols->push_scope(); then_statement->hir(& stmt->then_instructions, state); + state->symbols->pop_scope(); + } - if (else_statement != NULL) + if (else_statement != NULL) { + state->symbols->push_scope(); else_statement->hir(& stmt->else_instructions, state); + state->symbols->pop_scope(); + } instructions->push_tail(stmt); _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit