Enable and fix warnings during the build.
Although CMake adds warning flags, they are ignored in the libc++ headers because the headers '#pragma system header' themselves. This patch disables the system header pragma when building libc++ and fixes the warnings that arose. The warnings fixed were: 1. <memory> - anonymous structs are a GNU extension 2. <functional> - anonymous structs are a GNU extension. 3. <__hash_table> - Embedded preprocessor directives have undefined behavior. 4. <string> - Definition is missing noexcept from declaration. 5. <__std_stream> - Unused variable. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@242623 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -984,15 +984,17 @@ public:
|
||||
__equal_range_multi(const _Key& __k) const;
|
||||
|
||||
void swap(__hash_table& __u)
|
||||
#if _LIBCPP_STD_VER <= 11
|
||||
_NOEXCEPT_(
|
||||
__is_nothrow_swappable<hasher>::value && __is_nothrow_swappable<key_equal>::value
|
||||
#if _LIBCPP_STD_VER <= 11
|
||||
&& (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value
|
||||
|| __is_nothrow_swappable<__pointer_allocator>::value)
|
||||
&& (!__node_traits::propagate_on_container_swap::value
|
||||
|| __is_nothrow_swappable<__node_allocator>::value)
|
||||
#endif
|
||||
);
|
||||
#else
|
||||
_NOEXCEPT_(__is_nothrow_swappable<hasher>::value && __is_nothrow_swappable<key_equal>::value);
|
||||
#endif
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
size_type max_bucket_count() const _NOEXCEPT
|
||||
@@ -2351,15 +2353,17 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi(
|
||||
template <class _Tp, class _Hash, class _Equal, class _Alloc>
|
||||
void
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::swap(__hash_table& __u)
|
||||
#if _LIBCPP_STD_VER <= 11
|
||||
_NOEXCEPT_(
|
||||
__is_nothrow_swappable<hasher>::value && __is_nothrow_swappable<key_equal>::value
|
||||
#if _LIBCPP_STD_VER <= 11
|
||||
&& (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value
|
||||
|| __is_nothrow_swappable<__pointer_allocator>::value)
|
||||
&& (!__node_traits::propagate_on_container_swap::value
|
||||
|| __is_nothrow_swappable<__node_allocator>::value)
|
||||
#endif
|
||||
)
|
||||
#else
|
||||
_NOEXCEPT_(__is_nothrow_swappable<hasher>::value && __is_nothrow_swappable<key_equal>::value)
|
||||
#endif
|
||||
{
|
||||
{
|
||||
__node_pointer_pointer __npp = __bucket_list_.release();
|
||||
|
Reference in New Issue
Block a user