diff options
Diffstat (limited to 'llvm/lib/Analysis/LazyCallGraph.cpp')
-rw-r--r-- | llvm/lib/Analysis/LazyCallGraph.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/Analysis/LazyCallGraph.cpp b/llvm/lib/Analysis/LazyCallGraph.cpp index b658fed40c4..5aeea9ef1f7 100644 --- a/llvm/lib/Analysis/LazyCallGraph.cpp +++ b/llvm/lib/Analysis/LazyCallGraph.cpp @@ -1105,14 +1105,10 @@ LazyCallGraph::RefSCC::removeInternalRefEdge(Node &SourceN, // or we return new RefSCCs and this RefSCC is dead. verify(); auto VerifyOnExit = make_scope_exit([&]() { - if (Result.empty()) { + // If we didn't replace our RefSCC with new ones, check that this one + // remains valid. + if (G) verify(); - } else { - assert(!G && "A dead RefSCC should have its graph pointer nulled."); - assert(SCCs.empty() && "A dead RefSCC should have no SCCs in it."); - for (RefSCC *RC : Result) - RC->verify(); - } }); #endif @@ -1325,6 +1321,12 @@ LazyCallGraph::RefSCC::removeInternalRefEdge(Node &SourceN, SCCs.clear(); SCCIndices.clear(); +#ifndef NDEBUG + // Verify the new RefSCCs we've built. + for (RefSCC *RC : Result) + RC->verify(); +#endif + // Return the new list of SCCs. return Result; } |