CallTargets: Actually erase duplicate callee entries once identified.
Also, use same comparator for unique() determination as used when doing
original sort.
llvm-svn: 238381
diff --git a/poolalloc/lib/DSA/CallTargets.cpp b/poolalloc/lib/DSA/CallTargets.cpp
index 32da727..4306d30 100644
--- a/poolalloc/lib/DSA/CallTargets.cpp
+++ b/poolalloc/lib/DSA/CallTargets.cpp
@@ -166,11 +166,13 @@
// Sort callees alphabetically, remove duplicates
for(auto &i: IndMap) {
auto &callees = i.second;
- std::sort(callees.begin(), callees.end(),
- [](const Function *a, const Function *b) {
- return a->getName() < b->getName();
- });
- std::unique(callees.begin(), callees.end());
+ auto FuncNameCmp = [](const Function *a, const Function *b) {
+ return a->getName() < b->getName();
+ };
+
+ std::sort(callees.begin(), callees.end(), FuncNameCmp);
+ callees.erase(std::unique(callees.begin(), callees.end(), FuncNameCmp),
+ callees.end());
}
return false;