mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
glsl: fix switch statement default case regressions
This patch fixes regressions caused by commit 48deb4d. Regressions
happened because 'run_default' var did not get initialized when default
case was the last one.
Now all the switch tests in es3conform suite are passing.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81857
This commit is contained in:
parent
47e5039680
commit
d66acc7077
1 changed files with 6 additions and 6 deletions
|
|
@ -4597,12 +4597,6 @@ ast_case_statement_list::hir(exec_list *instructions,
|
|||
*/
|
||||
if (!default_case.is_empty()) {
|
||||
|
||||
/* Default case was the last one, no checks required. */
|
||||
if (after_default.is_empty()) {
|
||||
instructions->append_list(&default_case);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ir_rvalue *const true_val = new (state) ir_constant(true);
|
||||
ir_dereference_variable *deref_run_default_var =
|
||||
new(state) ir_dereference_variable(state->switch_state.run_default);
|
||||
|
|
@ -4614,6 +4608,12 @@ ast_case_statement_list::hir(exec_list *instructions,
|
|||
new(state) ir_assignment(deref_run_default_var, true_val);
|
||||
instructions->push_tail(init_var);
|
||||
|
||||
/* Default case was the last one, no checks required. */
|
||||
if (after_default.is_empty()) {
|
||||
instructions->append_list(&default_case);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
foreach_in_list(ir_instruction, ir, &after_default) {
|
||||
ir_assignment *assign = ir->as_assignment();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue