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;