From a487a021ee4d0e5d656d2ecd481655f594e716da Mon Sep 17 00:00:00 2001 From: gdr Date: Wed, 28 Aug 2002 21:41:55 +0000 Subject: [PATCH] gcc/ 2002-08-28 Gabriel Dos Reis * c-common.c (builtin_define_type_precision): New function. (cb_register_builtins): Use it. Define __WCHAR_UNSIGNED__ is wchar_t is unsigned in C++. * doc/cpp.texi (Common Predefined Macros): Document __WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__, __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__, __DOUBLE_BIT__, __LONG_DOUBLE_BIT__. libstdc++-v3/ 2002-08-28 Gabriel Dos Reis * include/std/std_limits.h (__glibcpp_char_bits, __glibcpp_short_bits, __glibcpp_int_bits, __glibcpp_long_bits, __glibcpp_long_long_bits, __glibcpp_float_bits, __glibcpp_double_bits, __glibcpp_long_double_bits): Remove. Use compiler predifined macros. (__glibcpp_wchar_t_is_signed): Define based on compiler predefined __WCHAR_UNSIGNED__. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56646 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 10 +++ gcc/c-common.c | 32 +++++++-- gcc/doc/cpp.texi | 20 ++++++ libstdc++-v3/ChangeLog | 10 +++ libstdc++-v3/include/std/std_limits.h | 130 ++++++++++++++-------------------- 5 files changed, 119 insertions(+), 83 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 17b0ffe3b9b..223d00de5ad 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2002-08-28 Gabriel Dos Reis + + * c-common.c (builtin_define_type_precision): New function. + (cb_register_builtins): Use it. Define __WCHAR_UNSIGNED__ is + wchar_t is unsigned in C++. + * doc/cpp.texi (Common Predefined Macros): Document + __WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__, + __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__, + __DOUBLE_BIT__, __LONG_DOUBLE_BIT__. + 2002-08-28 Sylvain Pion * doc/invoke.texi (-Wreorder): Remove remaining pieces from the generic diff --git a/gcc/c-common.c b/gcc/c-common.c index 913aec19c6b..45879917c1c 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -760,9 +760,10 @@ static bool get_nonnull_operand PARAMS ((tree, unsigned HOST_WIDE_INT *)); void builtin_define_std PARAMS ((const char *)); static void builtin_define_with_value PARAMS ((const char *, const char *, - int)); + int)); static void builtin_define_type_max PARAMS ((const char *, tree, int)); static void cpp_define_data_format PARAMS ((cpp_reader *)); +static void builtin_define_type_precision PARAMS ((const char *, tree)); /* Table of machine-independent attributes common to all C-like languages. */ const struct attribute_spec c_common_attribute_table[] = @@ -4765,6 +4766,17 @@ cpp_define_data_format (pfile) builtin_define_with_value ("__GCC_FLOAT_FORMAT__", format, 0); } +/* Define NAME with value TYPE precision. */ +static void +builtin_define_type_precision (name, type) + const char *name; + tree type; +{ + char buf[8]; + sprintf (buf, "%d", (int) TYPE_PRECISION (type)); + builtin_define_with_value (name, buf, 0); +} + /* Hook that registers front end and target-specific built-ins. */ void cb_register_builtins (pfile) @@ -4807,11 +4819,16 @@ cb_register_builtins (pfile) builtin_define_type_max ("__LONG_MAX__", long_integer_type_node, 1); builtin_define_type_max ("__LONG_LONG_MAX__", long_long_integer_type_node, 2); - { - char buf[8]; - sprintf (buf, "%d", (int) TYPE_PRECISION (signed_char_type_node)); - builtin_define_with_value ("__CHAR_BIT__", buf, 0); - } + builtin_define_type_precision ("__CHAR_BIT__", char_type_node); + builtin_define_type_precision ("__WCHAR_BIT__", wchar_type_node); + builtin_define_type_precision ("__SHRT_BIT__", short_integer_type_node); + builtin_define_type_precision ("__INT_BIT__", integer_type_node); + builtin_define_type_precision ("__LONG_BIT__", long_integer_type_node); + builtin_define_type_precision ("__LONG_LONG_BIT__", + long_long_integer_type_node); + builtin_define_type_precision ("__FLOAT_BIT__", float_type_node); + builtin_define_type_precision ("__DOUBLE_BIT__", double_type_node); + builtin_define_type_precision ("__LONG_DOUBLE_BIT__", long_double_type_node); /* For use in assembly language. */ builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0); @@ -4849,6 +4866,9 @@ cb_register_builtins (pfile) if (!flag_signed_char) cpp_define (pfile, "__CHAR_UNSIGNED__"); + if (c_language == clk_cplusplus && TREE_UNSIGNED (wchar_type_node)) + cpp_define (pfile, "__WCHAR_UNSIGNED__"); + cpp_define_data_format (pfile); /* Make the choice of ObjC runtime visible to source code. */ diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi index bb0c39ce835..0770e418a83 100644 --- a/gcc/doc/cpp.texi +++ b/gcc/doc/cpp.texi @@ -1972,6 +1972,10 @@ unsigned on the target machine. It exists to cause the standard header file @file{limits.h} to work correctly. You should not use this macro yourself; instead, refer to the standard macros defined in @file{limits.h}. +@item __WCHAR_UNSIGNED__ +Like @code{__CHAR_UNSIGNED__}, this macro is defined if and only if the +data type @code{wchar_t} is unsigned and the front-end is in C++ mode. + @item __REGISTER_PREFIX__ This macro expands to a single token (not a string constant) which is the prefix applied to CPU register names in assembly language for this @@ -2002,6 +2006,22 @@ typedefs, respectively. They exist to make the standard header files these macros directly; instead, include the appropriate headers and use the typedefs. +@item __CHAR_BIT__ +@itemx __WCHAR_BIT__ +@itemx __SHRT_BIT__ +@itemx __INT_BIT__ +@itemx __LONG_BIT__ +@itemx __LONG_LONG_BIT__ +@itemx __FLOAT_BIT__ +@itemx __DOUBLE_BIT__ +@itemx __LONG_DOUBLE_BIT__ +These macros are defined to the number of bits used in the +representation of the data types @code{char}, @code{wchar_t}, +@code{short}, @code{int}, @code{long}, @code{long long}, @code{float}, +@code{double} and @code{long double}. They exist to make the standard +header given numerical limits work correctly. You should not use +these macros directly; instead, include the appropriate headers. + @item __USING_SJLJ_EXCEPTIONS__ This macro is defined, with value 1, if the compiler uses the old mechanism based on @code{setjmp} and @code{longjmp} for exception diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 86b6d841ff9..0320356c578 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,13 @@ +2002-08-28 Gabriel Dos Reis + + * include/std/std_limits.h (__glibcpp_char_bits, + __glibcpp_short_bits, __glibcpp_int_bits, __glibcpp_long_bits, + __glibcpp_long_long_bits, __glibcpp_float_bits, + __glibcpp_double_bits, __glibcpp_long_double_bits): Remove. Use + compiler predifined macros. + (__glibcpp_wchar_t_is_signed): Define based on compiler predefined + __WCHAR_UNSIGNED__. + 2002-08-27 Gabriel Dos Reis * include/std/std_limits.h (__glibcpp_f32_infinity_bytes, diff --git a/libstdc++-v3/include/std/std_limits.h b/libstdc++-v3/include/std/std_limits.h index f1878a74faa..190cfdfa3ec 100644 --- a/libstdc++-v3/include/std/std_limits.h +++ b/libstdc++-v3/include/std/std_limits.h @@ -77,44 +77,20 @@ // definitions given here. // -// These values can be overridden in the target configuration file. -// The default values are appropriate for many 32-bit targets. - -#ifndef __glibcpp_char_bits -# define __glibcpp_char_bits 8 -#endif #ifdef __CHAR_UNSIGNED__ # define __glibcpp_plain_char_is_signed false #else # define __glibcpp_plain_char_is_signed true #endif -#ifndef __glibcpp_short_bits -# define __glibcpp_short_bits 16 -#endif -#ifndef __glibcpp_int_bits -# define __glibcpp_int_bits 32 -#endif -#ifndef __glibcpp_long_bits -# define __glibcpp_long_bits 32 -#endif -#ifndef __glibcpp_wchar_t_bits -# define __glibcpp_wchar_t_bits 32 -#endif -#ifndef __glibcpp_wchar_t_is_signed + +#ifndef __WCHAR_UNSIGNED__ +# define __glibcpp_wchar_t_is_signed false +#else # define __glibcpp_wchar_t_is_signed true #endif -#ifndef __glibcpp_long_long_bits -# define __glibcpp_long_long_bits 64 -#endif -#ifndef __glibcpp_float_bits -# define __glibcpp_float_bits 32 -#endif -#ifndef __glibcpp_double_bits -# define __glibcpp_double_bits 64 -#endif -#ifndef __glibcpp_long_double_bits -# define __glibcpp_long_double_bits 128 -#endif + +// These values can be overridden in the target configuration file. +// The default values are appropriate for many 32-bit targets. #ifndef __glibcpp_char_traps # define __glibcpp_char_traps true @@ -430,7 +406,7 @@ #ifndef __glibcpp_signed_char_is_modulo # define __glibcpp_signed_char_is_modulo true #endif -#if __glibcpp_char_bits == 8 +#if __CHAR_BIT__ == 8 # define __glibcpp_signed_char_min __glibcpp_s8_min # define __glibcpp_signed_char_max __glibcpp_s8_max # define __glibcpp_signed_char_digits __glibcpp_s8_digits @@ -439,7 +415,7 @@ # define __glibcpp_unsigned_char_max __glibcpp_u8_max # define __glibcpp_unsigned_char_digits __glibcpp_u8_digits # define __glibcpp_unsigned_char_digits10 __glibcpp_u8_digits10 -#elif __glibcpp_char_bits == 16 +#elif __CHAR_BIT__ == 16 # define __glibcpp_signed_char_min __glibcpp_s16_min # define __glibcpp_signed_char_max __glibcpp_s16_max # define __glibcpp_signed_char_digits __glibcpp_s16_digits @@ -448,7 +424,7 @@ # define __glibcpp_unsigned_char_max __glibcpp_u16_max # define __glibcpp_unsigned_char_digits __glibcpp_u16_digits # define __glibcpp_unsigned_char_digits10 __glibcpp_u16_digits10 -#elif __glibcpp_char_bits == 32 +#elif __CHAR_BIT__ == 32 # define __glibcpp_signed_char_min (signed char)__glibcpp_s32_min # define __glibcpp_signed_char_max (signed char)__glibcpp_s32_max # define __glibcpp_signed_char_digits __glibcpp_s32_digits @@ -457,7 +433,7 @@ # define __glibcpp_unsigned_char_max (unsigned char)__glibcpp_u32_max # define __glibcpp_unsigned_char_digits __glibcpp_u32_digits # define __glibcpp_unsigned_char_digits10 __glibcpp_u32_digits10 -#elif __glibcpp_char_bits == 64 +#elif __CHAR_BIT__ == 64 # define __glibcpp_signed_char_min (signed char)__glibcpp_s64_min # define __glibcpp_signed_char_max (signed char)__glibcpp_s64_max # define __glibcpp_signed_char_digits __glibcpp_s64_digits @@ -489,7 +465,7 @@ #ifndef __glibcpp_signed_short_is_modulo # define __glibcpp_signed_short_is_modulo true #endif -#if __glibcpp_short_bits == 8 +#if __SHRT_BIT__ == 8 # define __glibcpp_signed_short_min __glibcpp_s8_min # define __glibcpp_signed_short_max __glibcpp_s8_max # define __glibcpp_signed_short_digits __glibcpp_s8_digits @@ -498,7 +474,7 @@ # define __glibcpp_unsigned_short_max __glibcpp_u8_max # define __glibcpp_unsigned_short_digits __glibcpp_u8_digits # define __glibcpp_unsigned_short_digits10 __glibcpp_u8_digits10 -#elif __glibcpp_short_bits == 16 +#elif __SHRT_BIT__ == 16 # define __glibcpp_signed_short_min __glibcpp_s16_min # define __glibcpp_signed_short_max __glibcpp_s16_max # define __glibcpp_signed_short_digits __glibcpp_s16_digits @@ -507,7 +483,7 @@ # define __glibcpp_unsigned_short_max __glibcpp_u16_max # define __glibcpp_unsigned_short_digits __glibcpp_u16_digits # define __glibcpp_unsigned_short_digits10 __glibcpp_u16_digits10 -#elif __glibcpp_short_bits == 32 +#elif __SHRT_BIT__ == 32 # define __glibcpp_signed_short_min (short)__glibcpp_s32_min # define __glibcpp_signed_short_max (short)__glibcpp_s32_max # define __glibcpp_signed_short_digits __glibcpp_s32_digits @@ -516,7 +492,7 @@ # define __glibcpp_unsigned_short_max (unsigned short)__glibcpp_u32_max # define __glibcpp_unsigned_short_digits __glibcpp_u32_digits # define __glibcpp_unsigned_short_digits10 __glibcpp_u32_digits10 -#elif __glibcpp_short_bits == 64 +#elif __SHRT_BIT__ == 64 # define __glibcpp_signed_short_min (short)__glibcpp_s64_min # define __glibcpp_signed_short_max (short)__glibcpp_s64_max # define __glibcpp_signed_short_digits __glibcpp_s64_digits @@ -536,7 +512,7 @@ #ifndef __glibcpp_signed_int_is_modulo # define __glibcpp_signed_int_is_modulo true #endif -#if __glibcpp_int_bits == 8 +#if __INT_BIT__ == 8 # define __glibcpp_signed_int_min __glibcpp_s8_min # define __glibcpp_signed_int_max __glibcpp_s8_max # define __glibcpp_signed_int_digits __glibcpp_s8_digits @@ -545,7 +521,7 @@ # define __glibcpp_unsigned_int_max __glibcpp_u8_max # define __glibcpp_unsigned_int_digits __glibcpp_u8_digits # define __glibcpp_unsigned_int_digits10 __glibcpp_u8_digits10 -#elif __glibcpp_int_bits == 16 +#elif __INT_BIT__ == 16 # define __glibcpp_signed_int_min __glibcpp_s16_min # define __glibcpp_signed_int_max __glibcpp_s16_max # define __glibcpp_signed_int_digits __glibcpp_s16_digits @@ -554,7 +530,7 @@ # define __glibcpp_unsigned_int_max __glibcpp_u16_max # define __glibcpp_unsigned_int_digits __glibcpp_u16_digits # define __glibcpp_unsigned_int_digits10 __glibcpp_u16_digits10 -#elif __glibcpp_int_bits == 32 +#elif __INT_BIT__ == 32 # define __glibcpp_signed_int_min (int)__glibcpp_s32_min # define __glibcpp_signed_int_max (int)__glibcpp_s32_max # define __glibcpp_signed_int_digits __glibcpp_s32_digits @@ -563,7 +539,7 @@ # define __glibcpp_unsigned_int_max (unsigned)__glibcpp_u32_max # define __glibcpp_unsigned_int_digits __glibcpp_u32_digits # define __glibcpp_unsigned_int_digits10 __glibcpp_u32_digits10 -#elif __glibcpp_int_bits == 64 +#elif __INT_BIT__ == 64 # define __glibcpp_signed_int_min (int)__glibcpp_s64_min # define __glibcpp_signed_int_max (int)__glibcpp_s64_max # define __glibcpp_signed_int_digits __glibcpp_s64_digits @@ -583,7 +559,7 @@ #ifndef __glibcpp_signed_long_is_modulo # define __glibcpp_signed_long_is_modulo true #endif -#if __glibcpp_long_bits == 8 +#if __LONG_BIT__ == 8 # define __glibcpp_signed_long_min __glibcpp_s8_min # define __glibcpp_signed_long_max __glibcpp_s8_max # define __glibcpp_signed_long_digits __glibcpp_s8_digits @@ -592,7 +568,7 @@ # define __glibcpp_unsigned_long_max __glibcpp_u8_max # define __glibcpp_unsigned_long_digits __glibcpp_u8_digits # define __glibcpp_unsigned_long_digits10 __glibcpp_u8_digits10 -#elif __glibcpp_long_bits == 16 +#elif __LONG_BIT__ == 16 # define __glibcpp_signed_long_min __glibcpp_s16_min # define __glibcpp_signed_long_max __glibcpp_s16_max # define __glibcpp_signed_long_digits __glibcpp_s16_digits @@ -601,7 +577,7 @@ # define __glibcpp_unsigned_long_max __glibcpp_u16_max # define __glibcpp_unsigned_long_digits __glibcpp_u16_digits # define __glibcpp_unsigned_long_digits10 __glibcpp_u16_digits10 -#elif __glibcpp_long_bits == 32 +#elif __LONG_BIT__ == 32 # define __glibcpp_signed_long_min __glibcpp_s32_min # define __glibcpp_signed_long_max __glibcpp_s32_max # define __glibcpp_signed_long_digits __glibcpp_s32_digits @@ -610,7 +586,7 @@ # define __glibcpp_unsigned_long_max __glibcpp_u32_max # define __glibcpp_unsigned_long_digits __glibcpp_u32_digits # define __glibcpp_unsigned_long_digits10 __glibcpp_u32_digits10 -#elif __glibcpp_long_bits == 64 +#elif __LONG_BIT__ == 64 # define __glibcpp_signed_long_min (long)__glibcpp_s64_min # define __glibcpp_signed_long_max (long)__glibcpp_s64_max # define __glibcpp_signed_long_digits __glibcpp_s64_digits @@ -630,7 +606,7 @@ #ifndef __glibcpp_signed_long_long_is_modulo # define __glibcpp_signed_long_long_is_modulo true #endif -#if __glibcpp_long_long_bits == 8 +#if __LONG_LONG_BIT__ == 8 # define __glibcpp_signed_long_long_min __glibcpp_s8_min # define __glibcpp_signed_long_long_max __glibcpp_s8_max # define __glibcpp_signed_long_long_digits __glibcpp_s8_digits @@ -639,7 +615,7 @@ # define __glibcpp_unsigned_long_long_max __glibcpp_u8_max # define __glibcpp_unsigned_long_long_digits __glibcpp_u8_digits # define __glibcpp_unsigned_long_long_digits10 __glibcpp_u8_digits10 -#elif __glibcpp_long_long_bits == 16 +#elif __LONG_LONG_BIT__ == 16 # define __glibcpp_signed_long_long_min __glibcpp_s16_min # define __glibcpp_signed_long_long_max __glibcpp_s16_max # define __glibcpp_signed_long_long_digits __glibcpp_s16_digits @@ -648,7 +624,7 @@ # define __glibcpp_unsigned_long_long_max __glibcpp_u16_max # define __glibcpp_unsigned_long_long_digits __glibcpp_u16_digits # define __glibcpp_unsigned_long_long_digits10 __glibcpp_u16_digits10 -#elif __glibcpp_long_long_bits == 32 +#elif __LONG_LONG_BIT__ == 32 # define __glibcpp_signed_long_long_min __glibcpp_s32_min # define __glibcpp_signed_long_long_max __glibcpp_s32_max # define __glibcpp_signed_long_long_digits __glibcpp_s32_digits @@ -657,7 +633,7 @@ # define __glibcpp_unsigned_long_long_max __glibcpp_u32_max # define __glibcpp_unsigned_long_long_digits __glibcpp_u32_digits # define __glibcpp_unsigned_long_long_digits10 __glibcpp_u32_digits10 -#elif __glibcpp_long_long_bits == 64 +#elif __LONG_LONG_BIT__ == 64 # define __glibcpp_signed_long_long_min __glibcpp_s64_min # define __glibcpp_signed_long_long_max __glibcpp_s64_max # define __glibcpp_signed_long_long_digits __glibcpp_s64_digits @@ -679,22 +655,22 @@ # define __glibcpp_wchar_t_is_modulo true #endif #if __glibcpp_wchar_t_is_signed -# if __glibcpp_wchar_t_bits == 8 +# if __WCHAR_BIT__ == 8 # define __glibcpp_wchar_t_min __glibcpp_s8_min # define __glibcpp_wchar_t_max __glibcpp_s8_max # define __glibcpp_wchar_t_digits __glibcpp_s8_digits # define __glibcpp_wchar_t_digits10 __glibcpp_s8_digits10 -# elif __glibcpp_wchar_t_bits == 16 +# elif __WCHAR_BIT__ == 16 # define __glibcpp_wchar_t_min __glibcpp_s16_min # define __glibcpp_wchar_t_max __glibcpp_s16_max # define __glibcpp_wchar_t_digits __glibcpp_s16_digits # define __glibcpp_wchar_t_digits10 __glibcpp_s16_digits10 -# elif __glibcpp_wchar_t_bits == 32 +# elif __WCHAR_BIT__ == 32 # define __glibcpp_wchar_t_min (wchar_t)__glibcpp_s32_min # define __glibcpp_wchar_t_max (wchar_t)__glibcpp_s32_max # define __glibcpp_wchar_t_digits __glibcpp_s32_digits # define __glibcpp_wchar_t_digits10 __glibcpp_s32_digits10 -# elif __glibcpp_wchar_t_bits == 64 +# elif __WCHAR_BIT__ == 64 # define __glibcpp_wchar_t_min (wchar_t)__glibcpp_s64_min # define __glibcpp_wchar_t_max (wchar_t)__glibcpp_s64_max # define __glibcpp_wchar_t_digits __glibcpp_s64_digits @@ -703,22 +679,22 @@ // You must define these macros in the configuration file. # endif #else -# if __glibcpp_wchar_t_bits == 8 +# if __WCHAR_BIT__ == 8 # define __glibcpp_wchar_t_min __glibcpp_u8_min # define __glibcpp_wchar_t_max __glibcpp_u8_max # define __glibcpp_wchar_t_digits __glibcpp_u8_digits # define __glibcpp_wchar_t_digits10 __glibcpp_u8_digits10 -# elif __glibcpp_wchar_t_bits == 16 +# elif __WCHAR_BIT__ == 16 # define __glibcpp_wchar_t_min __glibcpp_u16_min # define __glibcpp_wchar_t_max __glibcpp_u16_max # define __glibcpp_wchar_t_digits __glibcpp_u16_digits # define __glibcpp_wchar_t_digits10 __glibcpp_u16_digits10 -# elif __glibcpp_wchar_t_bits == 32 +# elif __WCHAR_BIT__ == 32 # define __glibcpp_wchar_t_min (wchar_t)__glibcpp_u32_min # define __glibcpp_wchar_t_max (wchar_t)__glibcpp_u32_max # define __glibcpp_wchar_t_digits __glibcpp_u32_digits # define __glibcpp_wchar_t_digits10 __glibcpp_u32_digits10 -# elif __glibcpp_wchar_t_bits == 64 +# elif __WCHAR_BIT__ == 64 # define __glibcpp_wchar_t_min (wchar_t)__glibcpp_u64_min # define __glibcpp_wchar_t_max (wchar_t)__glibcpp_u64_max # define __glibcpp_wchar_t_digits __glibcpp_u64_digits @@ -731,7 +707,7 @@ // float // -#if __glibcpp_float_bits == 32 +#if __FLOAT_BIT__ == 32 # define __glibcpp_float_min __glibcpp_f32_min # define __glibcpp_float_max __glibcpp_f32_max # define __glibcpp_float_digits __glibcpp_f32_digits @@ -752,7 +728,7 @@ # define __glibcpp_float_has_SNaN __glibcpp_f32_has_SNaN # define __glibcpp_float_has_denorm __glibcpp_f32_has_denorm # define __glibcpp_float_is_iec559 __glibcpp_f32_is_iec559 -#elif __glibcpp_float_bits == 64 +#elif __FLOAT_BIT__ == 64 # define __glibcpp_float_min __glibcpp_f64_min # define __glibcpp_float_max __glibcpp_f64_max # define __glibcpp_float_digits __glibcpp_f64_digits @@ -773,7 +749,7 @@ # define __glibcpp_float_has_SNaN __glibcpp_f64_has_SNaN # define __glibcpp_float_has_denorm __glibcpp_f64_has_denorm # define __glibcpp_float_is_iec559 __glibcpp_f64_is_iec559 -#elif __glibcpp_float_bits == 80 +#elif __FLOAT_BIT__ == 80 # define __glibcpp_float_min __glibcpp_f80_min # define __glibcpp_float_max __glibcpp_f80_max # define __glibcpp_float_digits __glibcpp_f80_digits @@ -850,7 +826,7 @@ // double -#if __glibcpp_double_bits == 32 +#if __DOUBLE_BIT__ == 32 # define __glibcpp_double_min __glibcpp_f32_min # define __glibcpp_double_max __glibcpp_f32_max # define __glibcpp_double_digits __glibcpp_f32_digits @@ -871,7 +847,7 @@ # define __glibcpp_double_has_SNaN __glibcpp_f32_has_SNaN # define __glibcpp_double_has_denorm __glibcpp_f32_has_denorm # define __glibcpp_double_is_iec559 __glibcpp_f32_is_iec559 -#elif __glibcpp_double_bits == 64 +#elif __DOUBLE_BIT__ == 64 # define __glibcpp_double_min __glibcpp_f64_min # define __glibcpp_double_max __glibcpp_f64_max # define __glibcpp_double_digits __glibcpp_f64_digits @@ -892,7 +868,7 @@ # define __glibcpp_double_has_SNaN __glibcpp_f64_has_SNaN # define __glibcpp_double_has_denorm __glibcpp_f64_has_denorm # define __glibcpp_double_is_iec559 __glibcpp_f64_is_iec559 -#elif __glibcpp_double_bits == 80 +#elif __DOUBLE_BIT__ == 80 # define __glibcpp_double_min __glibcpp_f80_min # define __glibcpp_double_max __glibcpp_f80_max # define __glibcpp_double_digits __glibcpp_f80_digits @@ -969,7 +945,7 @@ // long double -#if __glibcpp_long_double_bits == 32 +#if __LONG_DOUBLE_BIT__ == 32 # define __glibcpp_long_double_min __glibcpp_f32_min # define __glibcpp_long_double_max __glibcpp_f32_max # define __glibcpp_long_double_digits __glibcpp_f32_digits @@ -990,7 +966,7 @@ # define __glibcpp_long_double_has_SNaN __glibcpp_f32_has_SNaN # define __glibcpp_long_double_has_denorm __glibcpp_f32_has_denorm # define __glibcpp_long_double_is_iec559 __glibcpp_f32_is_iec559 -#elif __glibcpp_long_double_bits == 64 +#elif __LONG_DOUBLE_BIT__ == 64 # define __glibcpp_long_double_min __glibcpp_f64_min # define __glibcpp_long_double_max __glibcpp_f64_max # define __glibcpp_long_double_digits __glibcpp_f64_digits @@ -1011,7 +987,7 @@ # define __glibcpp_long_double_has_SNaN __glibcpp_f64_has_SNaN # define __glibcpp_long_double_has_denorm __glibcpp_f64_has_denorm # define __glibcpp_long_double_is_iec559 __glibcpp_f64_is_iec559 -#elif __glibcpp_long_double_bits == 80 +#elif __LONG_DOUBLE_BIT__ == 80 # define __glibcpp_long_double_min __glibcpp_f80_min # define __glibcpp_long_double_max __glibcpp_f80_max # define __glibcpp_long_double_digits __glibcpp_f80_digits @@ -1032,7 +1008,7 @@ # define __glibcpp_long_double_has_SNaN __glibcpp_f80_has_SNaN # define __glibcpp_long_double_has_denorm __glibcpp_f80_has_denorm # define __glibcpp_long_double_is_iec559 __glibcpp_f80_is_iec559 -#elif __glibcpp_long_double_bits == 96 +#elif __LONG_DOUBLE_BIT__ == 96 # define __glibcpp_long_double_min __glibcpp_f96_min # define __glibcpp_long_double_max __glibcpp_f96_max # define __glibcpp_long_double_digits __glibcpp_f96_digits @@ -1053,7 +1029,7 @@ # define __glibcpp_long_double_has_SNaN __glibcpp_f96_has_SNaN # define __glibcpp_long_double_has_denorm __glibcpp_f96_has_denorm # define __glibcpp_long_double_is_iec559 __glibcpp_f96_is_iec559 -#elif __glibcpp_long_double_bits == 128 +#elif __LONG_DOUBLE_BIT__ == 128 # define __glibcpp_long_double_min __glibcpp_f128_min # define __glibcpp_long_double_max __glibcpp_f128_max # define __glibcpp_long_double_digits __glibcpp_f128_digits @@ -1136,13 +1112,13 @@ namespace std // knows about better than we do.) -- Gaby typedef unsigned char __glibcpp_byte; #define __glibcpp_word_bits 32 -#if __glibcpp_char_bits == __glibcpp_word_bits +#if __CHAR_BIT__ == __glibcpp_word_bits # define __glibcpp_word unsigned char -#elif __glibcpp_short_bits == __glibcpp_word_bits +#elif __SHRT_BIT__ == __glibcpp_word_bits # define __glibcpp_word unsigned short -#elif __glibcpp_int_bits == __glibcpp_word_bits +#elif __INT_BIT__ == __glibcpp_word_bits # define __glibcpp_word unsigned int -#elif __glibcpp_long_bits == __glibcpp_word_bits +#elif __LONG_BIT__ == __glibcpp_word_bits # define __glibcpp_word unsigned long #endif @@ -1150,7 +1126,7 @@ namespace std // point data types. Maybe we could avoid the conditional #defines by // using the aligned_storage<> extension. -- Gaby typedef const -#if __glibcpp_float_bits % __glibcpp_word_bits == 0 +#if __FLOAT_BIT__ % __glibcpp_word_bits == 0 __glibcpp_word __float_storage[sizeof (float) / sizeof (__glibcpp_word)] #else __glibcpp_byte __float_storage[sizeof (float)] @@ -1158,7 +1134,7 @@ namespace std __attribute__((__aligned__(__alignof__(float)))); typedef const -#if __glibcpp_double_bits % __glibcpp_word_bits == 0 +#if __DOUBLE_BIT__ % __glibcpp_word_bits == 0 __glibcpp_word __double_storage[sizeof (double) / sizeof (__glibcpp_word)] #else __glibcpp_byte __double_storage[sizeof (double)] @@ -1166,7 +1142,7 @@ namespace std __attribute__((__aligned__(__alignof__(double)))); typedef const -#if __glibcpp_long_double_bits % __glibcpp_word_bits == 0 +#if __LONG_DOUBLE_BIT__ % __glibcpp_word_bits == 0 __glibcpp_word __long_double_storage[sizeof (long double) / sizeof (__glibcpp_word)] #else __glibcpp_byte __long_double_storage[sizeof (long double)] -- 2.11.4.GIT