summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/ast_to_hir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/glsl/ast_to_hir.cpp')
-rw-r--r--src/compiler/glsl/ast_to_hir.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
index cbd5746648d..d7c8b47f9d4 100644
--- a/src/compiler/glsl/ast_to_hir.cpp
+++ b/src/compiler/glsl/ast_to_hir.cpp
@@ -6763,8 +6763,7 @@ ast_case_label::hir(exec_list *instructions,
}
body.emit(assign(fallthru_var,
- body.constant(true),
- equal(label, deref_test_var)));
+ logic_or(fallthru_var, equal(label, deref_test_var))));
} else { /* default case */
if (state->switch_state.previous_default) {
YYLTYPE loc = this->get_location();
@@ -6777,8 +6776,9 @@ ast_case_label::hir(exec_list *instructions,
state->switch_state.previous_default = this;
/* Set fallthru condition on 'run_default' bool. */
- body.emit(assign(fallthru_var, body.constant(true),
- state->switch_state.run_default));
+ body.emit(assign(fallthru_var,
+ logic_or(fallthru_var,
+ state->switch_state.run_default)));
}
/* Case statements do not have r-values. */