diff options
Diffstat (limited to 'llvm/unittests/Transforms/Utils')
| -rw-r--r-- | llvm/unittests/Transforms/Utils/Local.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/unittests/Transforms/Utils/Local.cpp b/llvm/unittests/Transforms/Utils/Local.cpp index 312c32e38ac..53cfc6b4a34 100644 --- a/llvm/unittests/Transforms/Utils/Local.cpp +++ b/llvm/unittests/Transforms/Utils/Local.cpp @@ -844,4 +844,23 @@ TEST(Local, RemoveUnreachableBlocks) { runWithDomTree(*M, "br_self_loop", runLazy); runWithDomTree(*M, "br_constant", runLazy); runWithDomTree(*M, "br_loop", runLazy); + + M = parseIR(C, + R"( + define void @f() { + entry: + ret void + bb0: + ret void + } + )"); + + auto checkRUBlocksRetVal = [&](Function &F, DominatorTree *DT) { + DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy); + EXPECT_TRUE(removeUnreachableBlocks(F, nullptr, &DTU)); + EXPECT_FALSE(removeUnreachableBlocks(F, nullptr, &DTU)); + EXPECT_TRUE(DTU.getDomTree().verify()); + }; + + runWithDomTree(*M, "f", checkRUBlocksRetVal); }
\ No newline at end of file |

