[clang] dd870f6 - Fix warning about unused std::unique result, erase shifted elements

David Blaikie via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 18 16:44:06 PST 2019


Hey Ben - if you're still involved with this part of the project - could
you check that this change (to code you committed back in 2014, r215810) is
correct & add a test case if possible?

On Thu, Nov 7, 2019 at 10:39 AM Reid Kleckner via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

>
> Author: Reid Kleckner
> Date: 2019-11-07T10:39:29-08:00
> New Revision: dd870f6929ee0b1dfb5fd000c7b826a1bd2d2571
>
> URL:
> https://github.com/llvm/llvm-project/commit/dd870f6929ee0b1dfb5fd000c7b826a1bd2d2571
> DIFF:
> https://github.com/llvm/llvm-project/commit/dd870f6929ee0b1dfb5fd000c7b826a1bd2d2571.diff
>
> LOG: Fix warning about unused std::unique result, erase shifted elements
>
> This is actually a functional change. I haven't added any new test
> coverage. I'm just trying to fix the warning and hoping for the best.
>
> Added:
>
>
> Modified:
>     clang/include/clang/Serialization/ContinuousRangeMap.h
>
> Removed:
>
>
>
>
> ################################################################################
> diff  --git a/clang/include/clang/Serialization/ContinuousRangeMap.h
> b/clang/include/clang/Serialization/ContinuousRangeMap.h
> index 0c05537dd108..c2665c097416 100644
> --- a/clang/include/clang/Serialization/ContinuousRangeMap.h
> +++ b/clang/include/clang/Serialization/ContinuousRangeMap.h
> @@ -118,14 +118,17 @@ class ContinuousRangeMap {
>
>      ~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) {
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20191118/464a2665/attachment-0001.html>


More information about the cfe-commits mailing list