diff options
-rw-r--r-- | clang/include/clang/Serialization/ContinuousRangeMap.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/clang/include/clang/Serialization/ContinuousRangeMap.h b/clang/include/clang/Serialization/ContinuousRangeMap.h index 0c05537dd10..c2665c09741 100644 --- a/clang/include/clang/Serialization/ContinuousRangeMap.h +++ b/clang/include/clang/Serialization/ContinuousRangeMap.h @@ -118,14 +118,17 @@ public: ~Builder() { llvm::sort(Self.Rep, Compare()); - std::unique(Self.Rep.begin(), Self.Rep.end(), - [](const_reference A, const_reference B) { - // FIXME: we should not allow any duplicate keys, but there are a lot of - // duplicate 0 -> 0 mappings to remove first. - assert((A == B || A.first != B.first) && - "ContinuousRangeMap::Builder given non-unique keys"); - return A == B; - }); + Self.Rep.erase( + std::unique( + Self.Rep.begin(), Self.Rep.end(), + [](const_reference A, const_reference B) { + // FIXME: we should not allow any duplicate keys, but there are + // a lot of duplicate 0 -> 0 mappings to remove first. + assert((A == B || A.first != B.first) && + "ContinuousRangeMap::Builder given non-unique keys"); + return A == B; + }), + Self.Rep.end()); } void insert(const value_type &Val) { |