From 233e39bb7b9ca7660c7a63a386e285aa5524bd20 Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Wed, 7 Apr 2021 16:48:39 -0300
Subject: [PATCH] shader: Fix dangling labels

---
 src/shader_recompiler/frontend/maxwell/control_flow.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/shader_recompiler/frontend/maxwell/control_flow.cpp b/src/shader_recompiler/frontend/maxwell/control_flow.cpp
index 1a4ee4f6cb..847bb19864 100644
--- a/src/shader_recompiler/frontend/maxwell/control_flow.cpp
+++ b/src/shader_recompiler/frontend/maxwell/control_flow.cpp
@@ -518,6 +518,11 @@ Block* CFG::AddLabel(Block* block, Stack stack, Location pc, FunctionId function
         }
         return &*it;
     }
+    // Make sure we don't insert the same layer twice
+    const auto label_it{std::ranges::find(function.labels, pc, &Label::address)};
+    if (label_it != function.labels.end()) {
+        return label_it->block;
+    }
     Block* const new_block{block_pool.Create(Block{
         .begin{pc},
         .end{pc},