]> granicus.if.org Git - llvm/commitdiff
[LCSSA] Assert that we always have a valid loop.
authorDavide Italiano <davide@freebsd.org>
Thu, 13 Apr 2017 20:05:37 +0000 (20:05 +0000)
committerDavide Italiano <davide@freebsd.org>
Thu, 13 Apr 2017 20:05:37 +0000 (20:05 +0000)
We could otherwise add BBs not belonging to a loop in `formLCSSA`
and later crash when trying to iterate the loop blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300244 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/LCSSA.cpp

index 99f8759ebddccd00ff0d253a34d02e99f428488b..493c7c085afea180cf6ed301a27162662f3cd9c7 100644 (file)
@@ -87,6 +87,7 @@ bool llvm::formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist,
     Instruction *I = Worklist.pop_back_val();
     BasicBlock *InstBB = I->getParent();
     Loop *L = LI.getLoopFor(InstBB);
+    assert(L && "Instruction belongs to a BB that's not part of a loop");
     if (!LoopExitBlocks.count(L))
       L->getExitBlocks(LoopExitBlocks[L]);
     assert(LoopExitBlocks.count(L));