summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ast_to_hir.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/ast_to_hir.cpp b/ast_to_hir.cpp
index 08e43a9aa6..823bab9dfa 100644
--- a/ast_to_hir.cpp
+++ b/ast_to_hir.cpp
@@ -1967,7 +1967,8 @@ ast_jump_statement::hir(exec_list *instructions,
struct _mesa_glsl_parse_state *state)
{
- if (mode == ast_return) {
+ switch (mode) {
+ case ast_return: {
ir_return *inst;
assert(state->current_function);
@@ -2005,9 +2006,10 @@ ast_jump_statement::hir(exec_list *instructions,
}
instructions->push_tail(inst);
+ break;
}
- if (mode == ast_discard) {
+ case ast_discard:
/* FINISHME: discard support */
if (state->target != fragment_shader) {
YYLTYPE loc = this->get_location();
@@ -2015,6 +2017,11 @@ ast_jump_statement::hir(exec_list *instructions,
_mesa_glsl_error(& loc, state,
"`discard' may only appear in a fragment shader");
}
+ break;
+
+ case ast_break:
+ case ast_continue:
+ break;
}
/* Jump instructions do not have r-values.