From: Konstantin Varlamov Date: Thu, 12 Jan 2023 01:42:20 +0000 (-0800) Subject: [libc++][ranges] Fix incorrect integer type in `view_interface` tests. X-Git-Tag: upstream/17.0.6~21287 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=17e6bd8070bb52b4178cf20f92bd429b11851870;p=platform%2Fupstream%2Fllvm.git [libc++][ranges] Fix incorrect integer type in `view_interface` tests. `ForwardIter() - ForwardIter()` returns `ptrdiff_t`, and converting it to an unsigned type isn't guaranteed to produce the same type as `size_t`. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D141456 --- diff --git a/libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp b/libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp index 830f3f77c29e..b1ed28f80e91 100644 --- a/libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp +++ b/libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp @@ -15,6 +15,7 @@ #include #include +#include #include "test_macros.h" #include "test_iterators.h" @@ -233,17 +234,20 @@ constexpr bool testSize() { static_assert(!SizeInvocable); static_assert( SizeInvocable); - using SignedSize = std::common_type_t>; + // Test the test. + static_assert(std::same_as() - std::declval()), std::ptrdiff_t>); + using UnsignedSize = std::make_unsigned_t; + using SignedSize = std::common_type_t>; ForwardRange forwardRange; assert(forwardRange.size() == 8); assert(static_cast(forwardRange).size() == 8); assert(std::ranges::size(forwardRange) == 8); - static_assert(std::same_as())), std::size_t>); + static_assert(std::same_as())), UnsignedSize>); static_assert(std::same_as())), SignedSize>); assert(std::ranges::size(static_cast(forwardRange)) == 8); - static_assert(std::same_as())), std::size_t>); + static_assert(std::same_as())), UnsignedSize>); static_assert(std::same_as())), SignedSize>); SizeIsTen sizeTen;