From: Jonathan Wakely Date: Thu, 29 Oct 2020 22:47:22 +0000 (+0000) Subject: libstdc++: Avoid narrowing conversion in subrange constructor X-Git-Tag: basepoints/gcc-12~3704 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a55cda891d69b5a238d2e237903829995ca7249c;p=thirdparty%2Fgcc.git libstdc++: Avoid narrowing conversion in subrange constructor libstdc++-v3/ChangeLog: * include/bits/ranges_util.h (subrange::subrange(R&&)): Use direct-initialization instead of list-initialization, so a potential narrowing conversion from ranges::size(r) to the stored size isn't ill-formed. --- diff --git a/libstdc++-v3/include/bits/ranges_util.h b/libstdc++-v3/include/bits/ranges_util.h index cc50e2ad4e42..416c33462541 100644 --- a/libstdc++-v3/include/bits/ranges_util.h +++ b/libstdc++-v3/include/bits/ranges_util.h @@ -247,7 +247,7 @@ namespace ranges && convertible_to, _Sent> constexpr subrange(_Rng&& __r) requires _S_store_size && sized_range<_Rng> - : subrange{__r, ranges::size(__r)} + : subrange(__r, ranges::size(__r)) { } template<__detail::__not_same_as _Rng>