From b0d5572abfe1f14e02d8219f0a4d7dd09ff36fd1 Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Mon, 29 Mar 2021 22:13:37 -0300
Subject: shader: Fix indirect branches to scheduler instructions

---
 src/shader_recompiler/frontend/maxwell/control_flow.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

(limited to 'src/shader_recompiler/frontend/maxwell/control_flow.cpp')

diff --git a/src/shader_recompiler/frontend/maxwell/control_flow.cpp b/src/shader_recompiler/frontend/maxwell/control_flow.cpp
index 1e9b8e4260..784f9df8a5 100644
--- a/src/shader_recompiler/frontend/maxwell/control_flow.cpp
+++ b/src/shader_recompiler/frontend/maxwell/control_flow.cpp
@@ -434,7 +434,10 @@ CFG::AnalysisState CFG::AnalyzeBRX(Block* block, Location pc, Instruction inst,
     block->indirect_branches.reserve(targets.size());
     for (const u32 target : targets) {
         Block* const branch{AddLabel(block, block->stack, target, function_id)};
-        block->indirect_branches.push_back(branch);
+        block->indirect_branches.push_back({
+            .block{branch},
+            .address{target},
+        });
     }
     block->cond = IR::Condition{true};
     block->end = pc + 1;
@@ -530,8 +533,8 @@ std::string CFG::Dot() const {
                 }
                 break;
             case EndClass::IndirectBranch:
-                for (Block* const branch : block.indirect_branches) {
-                    add_branch(branch, false);
+                for (const IndirectBranch& branch : block.indirect_branches) {
+                    add_branch(branch.block, false);
                 }
                 break;
             case EndClass::Call:
-- 
cgit v1.2.3-70-g09d2