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.
Tested powerpc64le-linux. Committed to trunk.
commit a55cda891d69b5a238d2e237903829995ca7249c
Author: Jonathan Wakely <[email protected]>
Date: Thu Oct 29 22:47:22 2020
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 cc50e2ad4e4..416c3346254 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<sentinel_t<_Rng>, _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<subrange> _Rng>