From: Weverything Date: Fri, 24 Jan 2020 00:03:31 +0000 (-0800) Subject: Fix assert that doesn't check anything. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=fe5f233a938f5bc31c458c39cca54d7dcc2667ef;p=android-x86%2Fexternal-llvm-project.git Fix assert that doesn't check anything. Move the assert that checks for the end iterator inside the loop which actually moves over the elements. This allows it to check that the iteration stays within the range. --- diff --git a/llvm/lib/Analysis/SyncDependenceAnalysis.cpp b/llvm/lib/Analysis/SyncDependenceAnalysis.cpp index 8447dc87069..c16daa91a77 100644 --- a/llvm/lib/Analysis/SyncDependenceAnalysis.cpp +++ b/llvm/lib/Analysis/SyncDependenceAnalysis.cpp @@ -244,12 +244,12 @@ struct DivergencePropagator { ); auto ItBeginRPO = FuncRPOT.begin(); + auto ItEndRPO = FuncRPOT.end(); // skip until term (TODO RPOT won't let us start at @term directly) - for (; *ItBeginRPO != &RootBlock; ++ItBeginRPO) {} - - auto ItEndRPO = FuncRPOT.end(); - assert(ItBeginRPO != ItEndRPO); + for (; *ItBeginRPO != &RootBlock; ++ItBeginRPO) { + assert(ItBeginRPO != ItEndRPO && "Unable to find RootBlock"); + } // propagate definitions at the immediate successors of the node in RPO auto ItBlockRPO = ItBeginRPO;