summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/slang/slang-ir-util.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/slang/slang-ir-util.cpp b/source/slang/slang-ir-util.cpp
index c4fc60bd2..f81cde30b 100644
--- a/source/slang/slang-ir-util.cpp
+++ b/source/slang/slang-ir-util.cpp
@@ -1430,11 +1430,15 @@ HashSet<IRBlock*> getParentBreakBlockSet(IRDominatorTree* dom, IRBlock* block)
currBlock = dom->getImmediateDominator(currBlock))
{
if (auto loopInst = as<IRLoop>(currBlock->getTerminator()))
+ {
if (!dom->dominates(loopInst->getBreakBlock(), block))
parentBreakBlocksSet.add(loopInst->getBreakBlock());
+ }
else if (auto switchInst = as<IRSwitch>(currBlock->getTerminator()))
+ {
if (!dom->dominates(switchInst->getBreakLabel(), block))
parentBreakBlocksSet.add(switchInst->getBreakLabel());
+ }
}
return parentBreakBlocksSet;