[gcc r11-4553] libstdc++: Avoid narrowing conversion in subrange constructor

Jonathan Wakely redi@gcc.gnu.org
Thu Oct 29 22:50:57 GMT 2020


https://gcc.gnu.org/g:a55cda891d69b5a238d2e237903829995ca7249c

commit r11-4553-ga55cda891d69b5a238d2e237903829995ca7249c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Oct 29 22:47:22 2020 +0000

    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:
---
 libstdc++-v3/include/bits/ranges_util.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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>


More information about the Libstdc++-cvs mailing list