libstdc++: Use __extension__ instead of diagnostic pragmas
This reverts c1676651b6
and uses the
__extension__ keyword to prevent pedantic warnings instead of diagnostic
pragmas.
This also adds the __extension__ keyword in <limits> and <bits/random.h>
where there are some more warnings that I missed in the previous commit.
Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/ChangeLog:
* include/bits/cpp_type_traits.h (__INT_N): Use __extension__
instead of diagnostic pragmas.
* include/bits/functional_hash.h: Likewise.
* include/bits/iterator_concepts.h (__is_signed_int128)
(__is_unsigned_int128): Likewise.
* include/bits/max_size_type.h (__max_size_type): Likewise.
(numeric_limits<__max_size_type>): Likewise.
* include/bits/std_abs.h (abs): Likewise.
* include/bits/stl_algobase.h (__size_to_integer): Likewise.
* include/bits/uniform_int_dist.h (uniform_int_distribution):
Likewise.
* include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
Likewise.
* include/std/type_traits (__is_integral_helper<INT_N>)
(__is_signed_integer, __is_unsigned_integer)
(__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
* include/std/limits (__INT_N): Add __extension__ keyword.
* include/bits/random.h (_Select_uint_least_t)
(random_device): Likewise.
This commit is contained in:
parent
1af937eb62
commit
42167831ab
|
@ -253,12 +253,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
};
|
||||
|
||||
#define __INT_N(TYPE) \
|
||||
__extension__ \
|
||||
template<> \
|
||||
struct __is_integer<TYPE> \
|
||||
{ \
|
||||
enum { __value = 1 }; \
|
||||
typedef __true_type __type; \
|
||||
}; \
|
||||
__extension__ \
|
||||
template<> \
|
||||
struct __is_integer<unsigned TYPE> \
|
||||
{ \
|
||||
|
@ -266,9 +268,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
typedef __true_type __type; \
|
||||
};
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
#ifdef __GLIBCXX_TYPE_INT_N_0
|
||||
__INT_N(__GLIBCXX_TYPE_INT_N_0)
|
||||
#endif
|
||||
|
@ -282,8 +281,6 @@ __INT_N(__GLIBCXX_TYPE_INT_N_2)
|
|||
__INT_N(__GLIBCXX_TYPE_INT_N_3)
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#undef __INT_N
|
||||
|
||||
//
|
||||
|
|
|
@ -171,28 +171,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
/// Explicit specialization for unsigned long long.
|
||||
_Cxx_hashtable_define_trivial_hash(unsigned long long)
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
#ifdef __GLIBCXX_TYPE_INT_N_0
|
||||
__extension__
|
||||
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_0)
|
||||
__extension__
|
||||
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_0 unsigned)
|
||||
#endif
|
||||
#ifdef __GLIBCXX_TYPE_INT_N_1
|
||||
__extension__
|
||||
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_1)
|
||||
__extension__
|
||||
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_1 unsigned)
|
||||
#endif
|
||||
#ifdef __GLIBCXX_TYPE_INT_N_2
|
||||
__extension__
|
||||
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_2)
|
||||
__extension__
|
||||
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_2 unsigned)
|
||||
#endif
|
||||
#ifdef __GLIBCXX_TYPE_INT_N_3
|
||||
__extension__
|
||||
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_3)
|
||||
__extension__
|
||||
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_3 unsigned)
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#undef _Cxx_hashtable_define_trivial_hash
|
||||
|
||||
struct _Hash_impl
|
||||
|
|
|
@ -553,9 +553,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
class __max_diff_type;
|
||||
class __max_size_type;
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
__extension__
|
||||
template<typename _Tp>
|
||||
concept __is_signed_int128
|
||||
#if __SIZEOF_INT128__
|
||||
|
@ -564,6 +562,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
= false;
|
||||
#endif
|
||||
|
||||
__extension__
|
||||
template<typename _Tp>
|
||||
concept __is_unsigned_int128
|
||||
#if __SIZEOF_INT128__
|
||||
|
@ -572,8 +571,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
= false;
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
template<typename _Tp>
|
||||
concept __cv_bool = same_as<const volatile _Tp, const volatile bool>;
|
||||
|
||||
|
|
|
@ -417,10 +417,8 @@ namespace ranges
|
|||
#endif
|
||||
|
||||
#if __SIZEOF_INT128__
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
__extension__
|
||||
using __rep = unsigned __int128;
|
||||
#pragma GCC diagnostic pop
|
||||
#else
|
||||
using __rep = unsigned long long;
|
||||
#endif
|
||||
|
@ -774,10 +772,7 @@ namespace ranges
|
|||
static constexpr bool is_integer = true;
|
||||
static constexpr bool is_exact = true;
|
||||
#if __SIZEOF_INT128__
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
static_assert(same_as<_Sp::__rep, unsigned __int128>);
|
||||
#pragma GCC diagnostic pop
|
||||
static_assert(__extension__ same_as<_Sp::__rep, __uint128_t>);
|
||||
static constexpr int digits = 129;
|
||||
#else
|
||||
static_assert(same_as<_Sp::__rep, unsigned long long>);
|
||||
|
|
|
@ -101,7 +101,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
#if __SIZEOF_INT128__ > __SIZEOF_LONG_LONG__
|
||||
template<int __s>
|
||||
struct _Select_uint_least_t<__s, 1>
|
||||
{ typedef unsigned __int128 type; };
|
||||
{ __extension__ typedef unsigned __int128 type; };
|
||||
#endif
|
||||
|
||||
// Assume a != 0, a < m, c < m, x < m.
|
||||
|
@ -1663,7 +1663,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
|
||||
void _M_init(const char*, size_t); // not exported from the shared library
|
||||
|
||||
union
|
||||
__extension__ union
|
||||
{
|
||||
struct
|
||||
{
|
||||
|
|
|
@ -80,35 +80,30 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
{ return __builtin_fabsl(__x); }
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_0)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_0
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_0
|
||||
abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; }
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_1)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_1
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_1
|
||||
abs(__GLIBCXX_TYPE_INT_N_1 __x) { return __x >= 0 ? __x : -__x; }
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_2)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_2
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_2
|
||||
abs(__GLIBCXX_TYPE_INT_N_2 __x) { return __x >= 0 ? __x : -__x; }
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_3)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_3
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_3
|
||||
abs(__GLIBCXX_TYPE_INT_N_3 __x) { return __x >= 0 ? __x : -__x; }
|
||||
#endif
|
||||
|
||||
#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128)
|
||||
inline _GLIBCXX_CONSTEXPR
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR
|
||||
__float128
|
||||
abs(__float128 __x)
|
||||
{ return __x < 0 ? -__x : __x; }
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
} // extern "C"++"
|
||||
|
|
|
@ -1013,36 +1013,31 @@ _GLIBCXX_END_NAMESPACE_CONTAINER
|
|||
inline _GLIBCXX_CONSTEXPR unsigned long long
|
||||
__size_to_integer(unsigned long long __n) { return __n; }
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_0)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_0
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_0
|
||||
__size_to_integer(__GLIBCXX_TYPE_INT_N_0 __n) { return __n; }
|
||||
inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_0
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_0
|
||||
__size_to_integer(unsigned __GLIBCXX_TYPE_INT_N_0 __n) { return __n; }
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_1)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_1
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_1
|
||||
__size_to_integer(__GLIBCXX_TYPE_INT_N_1 __n) { return __n; }
|
||||
inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_1
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_1
|
||||
__size_to_integer(unsigned __GLIBCXX_TYPE_INT_N_1 __n) { return __n; }
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_2)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_2
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_2
|
||||
__size_to_integer(__GLIBCXX_TYPE_INT_N_2 __n) { return __n; }
|
||||
inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_2
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_2
|
||||
__size_to_integer(unsigned __GLIBCXX_TYPE_INT_N_2 __n) { return __n; }
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_3)
|
||||
inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_3
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_3
|
||||
__size_to_integer(__GLIBCXX_TYPE_INT_N_3 __n) { return __n; }
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_3
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_3
|
||||
__size_to_integer(unsigned __GLIBCXX_TYPE_INT_N_3 __n) { return __n; }
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
inline _GLIBCXX_CONSTEXPR long long
|
||||
__size_to_integer(float __n) { return (long long)__n; }
|
||||
inline _GLIBCXX_CONSTEXPR long long
|
||||
|
@ -1050,7 +1045,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER
|
|||
inline _GLIBCXX_CONSTEXPR long long
|
||||
__size_to_integer(long double __n) { return (long long)__n; }
|
||||
#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128)
|
||||
inline _GLIBCXX_CONSTEXPR long long
|
||||
__extension__ inline _GLIBCXX_CONSTEXPR long long
|
||||
__size_to_integer(__float128 __n) { return (long long)__n; }
|
||||
#endif
|
||||
|
||||
|
|
|
@ -299,17 +299,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
|
||||
#if defined __UINT64_TYPE__ && defined __UINT32_TYPE__
|
||||
#if __SIZEOF_INT128__
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
if _GLIBCXX17_CONSTEXPR (__urngrange == __UINT64_MAX__)
|
||||
{
|
||||
// __urng produces values that use exactly 64-bits,
|
||||
// so use 128-bit integers to downscale to desired range.
|
||||
__UINT64_TYPE__ __u64erange = __uerange;
|
||||
__ret = _S_nd<unsigned __int128>(__urng, __u64erange);
|
||||
__ret = __extension__ _S_nd<unsigned __int128>(__urng,
|
||||
__u64erange);
|
||||
}
|
||||
else
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
if _GLIBCXX17_CONSTEXPR (__urngrange == __UINT32_MAX__)
|
||||
{
|
||||
|
|
|
@ -93,12 +93,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
// Enable __numeric_traits_integer for types where the __is_integer_nonstrict
|
||||
// primary template doesn't give the right answer.
|
||||
#define _GLIBCXX_INT_N_TRAITS(T, WIDTH) \
|
||||
__extension__ \
|
||||
template<> struct __is_integer_nonstrict<T> \
|
||||
{ \
|
||||
enum { __value = 1 }; \
|
||||
typedef std::__true_type __type; \
|
||||
enum { __width = WIDTH }; \
|
||||
}; \
|
||||
__extension__ \
|
||||
template<> struct __is_integer_nonstrict<unsigned T> \
|
||||
{ \
|
||||
enum { __value = 1 }; \
|
||||
|
@ -123,12 +125,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
#endif
|
||||
|
||||
#if defined __STRICT_ANSI__ && defined __SIZEOF_INT128__
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
// In strict modes __is_integer<__int128> is false,
|
||||
// but we still want to define __numeric_traits_integer<__int128>.
|
||||
_GLIBCXX_INT_N_TRAITS(__int128, 128)
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
#undef _GLIBCXX_INT_N_TRAITS
|
||||
|
|
|
@ -1478,6 +1478,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
};
|
||||
|
||||
#define __INT_N(TYPE, BITSIZE, EXT, UEXT) \
|
||||
__extension__ \
|
||||
template<> \
|
||||
struct numeric_limits<TYPE> \
|
||||
{ \
|
||||
|
@ -1546,6 +1547,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
= round_toward_zero; \
|
||||
}; \
|
||||
\
|
||||
__extension__ \
|
||||
template<> \
|
||||
struct numeric_limits<unsigned TYPE> \
|
||||
{ \
|
||||
|
|
|
@ -347,48 +347,52 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
struct __is_integral_helper<unsigned long long>
|
||||
: public true_type { };
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
// Conditionalizing on __STRICT_ANSI__ here will break any port that
|
||||
// uses one of these types for size_t.
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_0)
|
||||
__extension__
|
||||
template<>
|
||||
struct __is_integral_helper<__GLIBCXX_TYPE_INT_N_0>
|
||||
: public true_type { };
|
||||
|
||||
__extension__
|
||||
template<>
|
||||
struct __is_integral_helper<unsigned __GLIBCXX_TYPE_INT_N_0>
|
||||
: public true_type { };
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_1)
|
||||
__extension__
|
||||
template<>
|
||||
struct __is_integral_helper<__GLIBCXX_TYPE_INT_N_1>
|
||||
: public true_type { };
|
||||
|
||||
__extension__
|
||||
template<>
|
||||
struct __is_integral_helper<unsigned __GLIBCXX_TYPE_INT_N_1>
|
||||
: public true_type { };
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_2)
|
||||
__extension__
|
||||
template<>
|
||||
struct __is_integral_helper<__GLIBCXX_TYPE_INT_N_2>
|
||||
: public true_type { };
|
||||
|
||||
__extension__
|
||||
template<>
|
||||
struct __is_integral_helper<unsigned __GLIBCXX_TYPE_INT_N_2>
|
||||
: public true_type { };
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_3)
|
||||
__extension__
|
||||
template<>
|
||||
struct __is_integral_helper<__GLIBCXX_TYPE_INT_N_3>
|
||||
: public true_type { };
|
||||
|
||||
__extension__
|
||||
template<>
|
||||
struct __is_integral_helper<unsigned __GLIBCXX_TYPE_INT_N_3>
|
||||
: public true_type { };
|
||||
#endif
|
||||
#pragma GCC diagnostic pop
|
||||
/// @endcond
|
||||
|
||||
/// is_integral
|
||||
|
@ -621,10 +625,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
template<typename _Tp, typename... _Types>
|
||||
using __is_one_of = __or_<is_same<_Tp, _Types>...>;
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
// Check if a type is one of the signed integer types.
|
||||
__extension__
|
||||
template<typename _Tp>
|
||||
using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>,
|
||||
signed char, signed short, signed int, signed long,
|
||||
|
@ -644,6 +646,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
>;
|
||||
|
||||
// Check if a type is one of the unsigned integer types.
|
||||
__extension__
|
||||
template<typename _Tp>
|
||||
using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>,
|
||||
unsigned char, unsigned short, unsigned int, unsigned long,
|
||||
|
@ -661,7 +664,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
, unsigned __GLIBCXX_TYPE_INT_N_3
|
||||
#endif
|
||||
>;
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
// Check if a type is one of the signed or unsigned integer types.
|
||||
template<typename _Tp>
|
||||
|
@ -1725,32 +1727,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
struct __make_unsigned<long long>
|
||||
{ typedef unsigned long long __type; };
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_0)
|
||||
__extension__
|
||||
template<>
|
||||
struct __make_unsigned<__GLIBCXX_TYPE_INT_N_0>
|
||||
{ typedef unsigned __GLIBCXX_TYPE_INT_N_0 __type; };
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_1)
|
||||
__extension__
|
||||
template<>
|
||||
struct __make_unsigned<__GLIBCXX_TYPE_INT_N_1>
|
||||
{ typedef unsigned __GLIBCXX_TYPE_INT_N_1 __type; };
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_2)
|
||||
__extension__
|
||||
template<>
|
||||
struct __make_unsigned<__GLIBCXX_TYPE_INT_N_2>
|
||||
{ typedef unsigned __GLIBCXX_TYPE_INT_N_2 __type; };
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_3)
|
||||
__extension__
|
||||
template<>
|
||||
struct __make_unsigned<__GLIBCXX_TYPE_INT_N_3>
|
||||
{ typedef unsigned __GLIBCXX_TYPE_INT_N_3 __type; };
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
// Select between integral and enum: not possible to be both.
|
||||
template<typename _Tp,
|
||||
bool _IsInt = is_integral<_Tp>::value,
|
||||
|
@ -1886,32 +1887,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
struct __make_signed<unsigned long long>
|
||||
{ typedef signed long long __type; };
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_0)
|
||||
__extension__
|
||||
template<>
|
||||
struct __make_signed<unsigned __GLIBCXX_TYPE_INT_N_0>
|
||||
{ typedef __GLIBCXX_TYPE_INT_N_0 __type; };
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_1)
|
||||
__extension__
|
||||
template<>
|
||||
struct __make_signed<unsigned __GLIBCXX_TYPE_INT_N_1>
|
||||
{ typedef __GLIBCXX_TYPE_INT_N_1 __type; };
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_2)
|
||||
__extension__
|
||||
template<>
|
||||
struct __make_signed<unsigned __GLIBCXX_TYPE_INT_N_2>
|
||||
{ typedef __GLIBCXX_TYPE_INT_N_2 __type; };
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_3)
|
||||
__extension__
|
||||
template<>
|
||||
struct __make_signed<unsigned __GLIBCXX_TYPE_INT_N_3>
|
||||
{ typedef __GLIBCXX_TYPE_INT_N_3 __type; };
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
// Select between integral and enum: not possible to be both.
|
||||
template<typename _Tp,
|
||||
bool _IsInt = is_integral<_Tp>::value,
|
||||
|
|
Loading…
Reference in New Issue