diff options
author | Ryan Prichard <rprichard@google.com> | 2023-09-20 00:10:15 -0700 |
---|---|---|
committer | Ryan Prichard <rprichard@google.com> | 2023-09-20 00:10:15 -0700 |
commit | d18fb58c2f2b903bebc89ebfbdf4bfac164b143b (patch) | |
tree | 0c085351dbc5fd2cea90f8fa5b451b8c567ec0e5 | |
parent | 101d502358fca757c7df2a94d551a0b07f84781e (diff) | |
download | clang-d18fb58c2f2b903bebc89ebfbdf4bfac164b143b.tar.gz |
Don't discard the result of std::unique
After upgrading libc++, std::unique is marked [[nodiscard]], and it is
a build error to discard its result.
Cherry pick this commit:
https://github.com/llvm/llvm-project/commit/dd870f6929ee0b1dfb5fd000c7b826a1bd2d2571
Bug: b/175635923
Test: treehugger
Change-Id: I99fbe80b755f0ff4d9c897e91f2f15e334d5f1f6
-rw-r--r-- | include/clang/Serialization/ContinuousRangeMap.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/include/clang/Serialization/ContinuousRangeMap.h b/include/clang/Serialization/ContinuousRangeMap.h index 244b01b22a..edc42441b2 100644 --- a/include/clang/Serialization/ContinuousRangeMap.h +++ b/include/clang/Serialization/ContinuousRangeMap.h @@ -117,14 +117,17 @@ public: ~Builder() { std::sort(Self.Rep.begin(), Self.Rep.end(), 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) { |