libstdc++: Fix some warnings in headers

These are usually suppressed in system headers, but should be fixed
anyway.

libstdc++-v3/ChangeLog:

	* include/bits/parse_numbers.h (_Select_int_base): Avoid
	narrowing conversion in constant expression.
	* include/experimental/buffer (buffer_copy): Avoid narrowing
	conversion.
	* include/experimental/internet (hash<>::operator()): Do not
	use deprecated 'argument_type' member.
	* include/std/variant (variant::emplace): Use cast instead
	of implicit conversion from size_t to narrower unsigned type.
This commit is contained in:
Jonathan Wakely 2020-10-29 22:47:22 +00:00
parent 52ddf0d458
commit d7aa21a3c7
4 changed files with 9 additions and 7 deletions

View File

@ -266,7 +266,7 @@ namespace __select_int
template<unsigned long long _Val, typename _IntType, typename... _Ints> template<unsigned long long _Val, typename _IntType, typename... _Ints>
struct _Select_int_base<_Val, _IntType, _Ints...> struct _Select_int_base<_Val, _IntType, _Ints...>
: conditional_t<(_Val <= __gnu_cxx::__int_traits<_IntType>::__max), : conditional_t<(_Val <= __gnu_cxx::__int_traits<_IntType>::__max),
integral_constant<_IntType, _Val>, integral_constant<_IntType, (_IntType)_Val>,
_Select_int_base<_Val, _Ints...>> _Select_int_base<_Val, _Ints...>>
{ }; { };

View File

@ -315,7 +315,7 @@ inline namespace v1
inline size_t inline size_t
buffer_copy(const _MutableBufferSequence& __dest, buffer_copy(const _MutableBufferSequence& __dest,
const _ConstBufferSequence& __source) noexcept const _ConstBufferSequence& __source) noexcept
{ return net::buffer_copy(__dest, __source, size_t{-1}); } { return net::buffer_copy(__dest, __source, size_t(-1)); }
// buffer arithmetic: // buffer arithmetic:

View File

@ -2393,7 +2393,7 @@ namespace ip
: __hash_base<size_t, experimental::net::v1::ip::address> : __hash_base<size_t, experimental::net::v1::ip::address>
{ {
size_t size_t
operator()(const argument_type& __a) const operator()(const experimental::net::v1::ip::address& __a) const
{ {
if (__a.is_v4()) if (__a.is_v4())
return _Hash_impl::hash(__a.to_v4()); return _Hash_impl::hash(__a.to_v4());
@ -2407,7 +2407,7 @@ namespace ip
: __hash_base<size_t, experimental::net::v1::ip::address_v4> : __hash_base<size_t, experimental::net::v1::ip::address_v4>
{ {
size_t size_t
operator()(const argument_type& __a) const operator()(const experimental::net::v1::ip::address_v4& __a) const
{ return _Hash_impl::hash(__a.to_bytes()); } { return _Hash_impl::hash(__a.to_bytes()); }
}; };
@ -2415,7 +2415,7 @@ namespace ip
: __hash_base<size_t, experimental::net::v1::ip::address_v6> : __hash_base<size_t, experimental::net::v1::ip::address_v6>
{ {
size_t size_t
operator()(const argument_type& __a) const operator()(const experimental::net::v1::ip::address_v6& __a) const
{ return _Hash_impl::hash(__a.to_bytes()); } { return _Hash_impl::hash(__a.to_bytes()); }
}; };

View File

@ -1512,7 +1512,8 @@ namespace __variant
} }
__catch (...) __catch (...)
{ {
this->_M_index = variant_npos; using __index_type = decltype(this->_M_index);
this->_M_index = static_cast<__index_type>(variant_npos);
__throw_exception_again; __throw_exception_again;
} }
} }
@ -1559,7 +1560,8 @@ namespace __variant
} }
__catch (...) __catch (...)
{ {
this->_M_index = variant_npos; using __index_type = decltype(this->_M_index);
this->_M_index = static_cast<__index_type>(variant_npos);
__throw_exception_again; __throw_exception_again;
} }
} }