aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-04-11 20:40:00 -0300
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-22 21:51:27 -0400
commitdfd5341d7117e4299b6c34e8b1feb0e66c230478 (patch)
tree4dab215e2c5ee46b5283dcfa9a18c0a5aafa70f9 /src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
parent2ed80f6b1e85823d7a13dfbb119545a0a0ec7427 (diff)
shader: Mark blocks with no end branch as unreachable
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp')
-rw-r--r--src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp b/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
index 02cef26455..e63e25aa65 100644
--- a/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
+++ b/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
@@ -816,8 +816,13 @@ private:
throw NotImplementedException("Statement type {}", stmt.type);
}
}
- if (current_block && continue_block) {
- IR::IREmitter{*current_block}.Branch(continue_block);
+ if (current_block) {
+ IR::IREmitter ir{*current_block};
+ if (continue_block) {
+ ir.Branch(continue_block);
+ } else {
+ ir.Unreachable();
+ }
}
}