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
commit31835567f21821149685472d4fa9c0fcf5c6b734 (patch)
tree4dab215e2c5ee46b5283dcfa9a18c0a5aafa70f9 /src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
parent4678dc7246e88a404ee455c20b183fdf7b5efdf9 (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();
+ }
}
}