mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
glsl: fix lowering conditional returns in subroutines
this fix applies to the lower_sub_return 'branch' of the lower_jumps pass Fixes piglit tests glsl-functions-5 and glsl-functions-6.
This commit is contained in:
parent
834cc8e501
commit
ef534f3838
1 changed files with 5 additions and 1 deletions
|
|
@ -512,7 +512,11 @@ lower_continue:
|
|||
if(this->loop.may_set_return_flag) {
|
||||
assert(this->function.return_flag);
|
||||
ir_if* return_if = new(ir) ir_if(new(ir) ir_dereference_variable(this->function.return_flag));
|
||||
return_if->then_instructions.push_tail(new(ir) ir_loop_jump(saved_loop.loop ? ir_loop_jump::jump_break : ir_loop_jump::jump_continue));
|
||||
saved_loop.may_set_return_flag = true;
|
||||
if(saved_loop.loop)
|
||||
return_if->then_instructions.push_tail(new(ir) ir_loop_jump(ir_loop_jump::jump_break));
|
||||
else
|
||||
move_outer_block_inside(ir, &return_if->else_instructions);
|
||||
ir->insert_after(return_if);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue