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:
@@ -2402,14 +2402,14 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<long double>
|
||||
size_t __b;
|
||||
size_t __c;
|
||||
size_t __d;
|
||||
};
|
||||
} __s;
|
||||
} __u;
|
||||
__u.__a = 0;
|
||||
__u.__b = 0;
|
||||
__u.__c = 0;
|
||||
__u.__d = 0;
|
||||
__u.__s.__a = 0;
|
||||
__u.__s.__b = 0;
|
||||
__u.__s.__c = 0;
|
||||
__u.__s.__d = 0;
|
||||
__u.__t = __v;
|
||||
return __u.__a ^ __u.__b ^ __u.__c ^ __u.__d;
|
||||
return __u.__s.__a ^ __u.__s.__b ^ __u.__s.__c ^ __u.__s.__d;
|
||||
#elif defined(__x86_64__)
|
||||
// Zero out padding bits
|
||||
union
|
||||
@@ -2419,12 +2419,12 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<long double>
|
||||
{
|
||||
size_t __a;
|
||||
size_t __b;
|
||||
};
|
||||
} __s;
|
||||
} __u;
|
||||
__u.__a = 0;
|
||||
__u.__b = 0;
|
||||
__u.__s.__a = 0;
|
||||
__u.__s.__b = 0;
|
||||
__u.__t = __v;
|
||||
return __u.__a ^ __u.__b;
|
||||
return __u.__s.__a ^ __u.__s.__b;
|
||||
#else
|
||||
return __scalar_hash<long double>::operator()(__v);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user