While-loops also start a new scope.

This commit is contained in:
Ian Romanick
2010-04-16 16:42:43 -07:00
parent 44b694e1f6
commit 484606610e

View File

@@ -2284,9 +2284,9 @@ ir_rvalue *
ast_iteration_statement::hir(exec_list *instructions, ast_iteration_statement::hir(exec_list *instructions,
struct _mesa_glsl_parse_state *state) struct _mesa_glsl_parse_state *state)
{ {
/* For loops start a new scope, but while and do-while loops do not. /* For-loops and while-loops start a new scope, but do-while loops do not.
*/ */
if (mode == ast_for) if (mode != ast_do_while)
state->symbols->push_scope(); state->symbols->push_scope();
if (init_statement != NULL) if (init_statement != NULL)
@@ -2317,7 +2317,7 @@ ast_iteration_statement::hir(exec_list *instructions,
if (mode == ast_do_while) if (mode == ast_do_while)
condition_to_hir(stmt, state); condition_to_hir(stmt, state);
if (mode == ast_for) if (mode != ast_do_while)
state->symbols->pop_scope(); state->symbols->pop_scope();
/* Restore previous nesting before returning. /* Restore previous nesting before returning.