diff --git a/lib/Analysis/CodeMetrics.cpp b/lib/Analysis/CodeMetrics.cpp index 97d04636fc5..f3b34bfe089 100644 --- a/lib/Analysis/CodeMetrics.cpp +++ b/lib/Analysis/CodeMetrics.cpp @@ -37,7 +37,9 @@ static void completeEphemeralValues(SmallVector &WorkSet, // alive only by ephemeral values. while (!WorkSet.empty()) { - const Value *V = WorkSet.pop_back_val(); + const Value *V = WorkSet.front(); + WorkSet.erase(WorkSet.begin()); + if (!Visited.insert(V)) continue;