diff options
| -rw-r--r-- | source/slang/slang-ir-util.cpp | 4 |
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; |
