Remove SF_SIZE etc. target macros.
authorJoseph Myers <joseph@codesourcery.com>
Mon, 8 Sep 2014 12:25:35 +0000 (13:25 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Mon, 8 Sep 2014 12:25:35 +0000 (13:25 +0100)
gcc:
* config/i386/cygming.h (TF_SIZE): Remove.
* config/i386/darwin.h (TF_SIZE): Remove.
* config/i386/dragonfly.h (TF_SIZE): Remove.
* config/i386/freebsd.h (TF_SIZE): Remove.
* config/i386/gnu-user-common.h (TF_SIZE): Remove.
* config/i386/openbsdelf.h (TF_SIZE): Remove.
* config/i386/sol2.h (TF_SIZE): Remove.
* config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
* config/ia64/linux.h (TF_SIZE): Remove.
* doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
* doc/tm.texi: Regenerate.
* system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.

gcc/c-family:
* c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
digits of floating-point modes if -fbuilding-libgcc.

libgcc:
* libgcc2.c (SF_SIZE): Change all uses to __LIBGCC_SF_MANT_DIG__.
(DF_SIZE): Change all uses to __LIBGCC_DF_MANT_DIG__.
(XF_SIZE): Change all uses to __LIBGCC_XF_MANT_DIG__.
(TF_SIZE): Change all uses to __LIBGCC_TF_MANT_DIG__.
* libgcc2.h (SF_SIZE): Change to __LIBGCC_SF_MANT_DIG__.  Give
error if not defined and LIBGCC2_HAS_SF_MODE is defined.
(DF_SIZE): Change to __LIBGCC_DF_MANT_DIG__.  Give error if not
defined and LIBGCC2_HAS_DF_MODE is defined.
(XF_SIZE): Change to __LIBGCC_XF_MANT_DIG__.  Give error if not
defined and LIBGCC2_HAS_XF_MODE is defined.
(TF_SIZE): Change to __LIBGCC_TF_MANT_DIG__.  Give error if not
defined and LIBGCC2_HAS_TF_MODE is defined.

From-SVN: r215014

18 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-cppbuiltin.c
gcc/config/i386/cygming.h
gcc/config/i386/darwin.h
gcc/config/i386/dragonfly.h
gcc/config/i386/freebsd.h
gcc/config/i386/gnu-user-common.h
gcc/config/i386/openbsdelf.h
gcc/config/i386/sol2.h
gcc/config/ia64/hpux.h
gcc/config/ia64/linux.h
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/system.h
libgcc/ChangeLog
libgcc/libgcc2.c
libgcc/libgcc2.h

index 4d882a16691c4da29a1709bd7eb8048dbf2cc0c4..33b106b6296684ed136aba2eeb50f7c137d047e3 100644 (file)
@@ -1,3 +1,18 @@
+2014-09-08  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/i386/cygming.h (TF_SIZE): Remove.
+       * config/i386/darwin.h (TF_SIZE): Remove.
+       * config/i386/dragonfly.h (TF_SIZE): Remove.
+       * config/i386/freebsd.h (TF_SIZE): Remove.
+       * config/i386/gnu-user-common.h (TF_SIZE): Remove.
+       * config/i386/openbsdelf.h (TF_SIZE): Remove.
+       * config/i386/sol2.h (TF_SIZE): Remove.
+       * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
+       * config/ia64/linux.h (TF_SIZE): Remove.
+       * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
+       * doc/tm.texi: Regenerate.
+       * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
+
 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
 
        * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
index 38330fb9c8a2d43edcdc82d0f010c162b83b9ac9..7768555e473cc525ac6d10c485c25ccf13d07356 100644 (file)
@@ -1,3 +1,8 @@
+2014-09-08  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
+       digits of floating-point modes if -fbuilding-libgcc.
+
 2014-09-05  Joseph Myers  <joseph@codesourcery.com>
 
        * c-cppbuiltin.c (c_cpp_builtins): Also define
index a47473534b55f4f7cf92382088a94fffb7e88c0f..411ca194adae075ea489cccf8c6afd380ca84b18 100644 (file)
@@ -944,6 +944,20 @@ c_cpp_builtins (cpp_reader *pfile)
   /* For libgcc-internal use only.  */
   if (flag_building_libgcc)
     {
+      /* Properties of floating-point modes for libgcc2.c.  */
+      for (enum machine_mode mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
+          mode != VOIDmode;
+          mode = GET_MODE_WIDER_MODE (mode))
+       {
+         const char *name = GET_MODE_NAME (mode);
+         char *macro_name
+           = (char *) alloca (strlen (name)
+                              + sizeof ("__LIBGCC__MANT_DIG__"));
+         sprintf (macro_name, "__LIBGCC_%s_MANT_DIG__", name);
+         builtin_define_with_int_value (macro_name,
+                                        REAL_MODE_FORMAT (mode)->p);
+       }
+
       /* For libgcc crtstuff.c and libgcc2.c.  */
       builtin_define_with_int_value ("__LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__",
                                     EH_TABLES_CAN_BE_READ_ONLY);
index 039edccb979650929f927413c108211d657fa7a1..98d652be5ee331678e65760236836906f7634715 100644 (file)
@@ -343,7 +343,6 @@ do {                                                \
 #undef LIBGCC2_HAS_TF_MODE
 #define LIBGCC2_HAS_TF_MODE 1
 #define LIBGCC2_TF_CEXT q
-#define TF_SIZE 113
 
 /* Output function declarations at the end of the file.  */
 #undef TARGET_ASM_FILE_END
index a85aa42d5fc5a28299c2fd5f2857f034d5d0a31e..f6a5b6b0e97e65c4b7ecaea747ea5619603cc59c 100644 (file)
@@ -157,7 +157,6 @@ extern int darwin_emit_branch_islands;
 #undef LIBGCC2_HAS_TF_MODE
 #define LIBGCC2_HAS_TF_MODE 1
 #define LIBGCC2_TF_CEXT q
-#define TF_SIZE 113
 
 #undef TARGET_ASM_FILE_END
 #define TARGET_ASM_FILE_END darwin_file_end
index 71362d58e32333e5fecdcf40977c516df6c40972..ed5f508f7ed18e6450e5ef488b500f3470b88ef6 100644 (file)
@@ -93,7 +93,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #undef LIBGCC2_HAS_TF_MODE
 #define LIBGCC2_HAS_TF_MODE 1
 #define LIBGCC2_TF_CEXT q
-#define TF_SIZE 113
 
 /* Static stack checking is supported by means of probes.  */
 #define STACK_CHECK_STATIC_BUILTIN 1
index bdca1b80b27f489d88347cf681033c85aaaaa279..25ab5468d99332e7aa54fd5b7fcbcf1e4b348a17 100644 (file)
@@ -135,7 +135,6 @@ along with GCC; see the file COPYING3.  If not see
 #undef LIBGCC2_HAS_TF_MODE
 #define LIBGCC2_HAS_TF_MODE 1
 #define LIBGCC2_TF_CEXT q
-#define TF_SIZE 113
 
 /* Static stack checking is supported by means of probes.  */
 #define STACK_CHECK_STATIC_BUILTIN 1
index b34528217f17068046e509f06cce1f73d9e2327d..e01491a4737e1d7a504ecc33638214d1380b7add 100644 (file)
@@ -61,7 +61,6 @@ along with GCC; see the file COPYING3.  If not see
 #undef LIBGCC2_HAS_TF_MODE
 #define LIBGCC2_HAS_TF_MODE 1
 #define LIBGCC2_TF_CEXT q
-#define TF_SIZE 113
 
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 
index 46ae0b6cdad3968c0c5a9a2af1d899a7252462d9..06913eb2b2e155694204148653e474098d2cc751 100644 (file)
@@ -116,4 +116,3 @@ along with GCC; see the file COPYING3.  If not see
 #undef LIBGCC2_HAS_TF_MODE
 #define LIBGCC2_HAS_TF_MODE 1
 #define LIBGCC2_TF_CEXT q
-#define TF_SIZE 113
index 9c3a6f49662b013bb827dfa9295a4d221b941b36..5c9232360d15601049cb5e01ce9fae47fd91df4e 100644 (file)
@@ -241,4 +241,3 @@ along with GCC; see the file COPYING3.  If not see
 #undef LIBGCC2_HAS_TF_MODE
 #define LIBGCC2_HAS_TF_MODE 1
 #define LIBGCC2_TF_CEXT q
-#define TF_SIZE 113
index 0261c7096af02a2d509942ee2fb0cab4e9c16ed3..f19e6b38dc19cbdb2b206041be060940628e3574 100644 (file)
@@ -192,12 +192,10 @@ do {                                                              \
 /* Put all *xf routines in libgcc, regardless of long double size.  */
 #undef LIBGCC2_HAS_XF_MODE
 #define LIBGCC2_HAS_XF_MODE 1
-#define XF_SIZE 64
 
 /* Put all *tf routines in libgcc, regardless of long double size.  */
 #undef LIBGCC2_HAS_TF_MODE
 #define LIBGCC2_HAS_TF_MODE 1
-#define TF_SIZE 113
 
 /* HP-UX headers are C++-compatible.  */
 #define NO_IMPLICIT_EXTERN_C
index e4a3ea750c0af471b647374dda1542cb576946eb..61138c828f39e99601bd7a82240d94f012714f47 100644 (file)
@@ -81,7 +81,6 @@ do {                                          \
 #define LIBGCC2_HAS_TF_MODE 1
 #undef LIBGCC2_TF_CEXT
 #define LIBGCC2_TF_CEXT q
-#define TF_SIZE 113
 
 #undef TARGET_INIT_LIBFUNCS
 #define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs
index 904ee5af3ef5e2bf078ad15f72c60297ac6b5f2f..53c33e50a580453ad9f54dadb6417f5f04c5a288 100644 (file)
@@ -1581,20 +1581,6 @@ uses this macro should also arrange to use @file{t-gnu-prefix} in
 the libgcc @file{config.host}.
 @end defmac
 
-@defmac SF_SIZE
-@defmacx DF_SIZE
-@defmacx XF_SIZE
-@defmacx TF_SIZE
-Define these macros to be the size in bits of the mantissa of
-@code{SFmode}, @code{DFmode}, @code{XFmode} and @code{TFmode} values,
-if the defaults in @file{libgcc2.h} are inappropriate.  By default,
-@code{FLT_MANT_DIG} is used for @code{SF_SIZE}, @code{LDBL_MANT_DIG}
-for @code{XF_SIZE} and @code{TF_SIZE}, and @code{DBL_MANT_DIG} or
-@code{LDBL_MANT_DIG} for @code{DF_SIZE} according to whether
-@code{DOUBLE_TYPE_SIZE} or
-@code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is 64.
-@end defmac
-
 @defmac TARGET_FLT_EVAL_METHOD
 A C expression for the value for @code{FLT_EVAL_METHOD} in @file{float.h},
 assuming, if applicable, that the floating-point control word is in its
index 50d1ac1cff80e9cab22436e02c38d7a9c7b3092f..57cf92b90fe02707ebfdfaad714c91d19f769e04 100644 (file)
@@ -1423,20 +1423,6 @@ uses this macro should also arrange to use @file{t-gnu-prefix} in
 the libgcc @file{config.host}.
 @end defmac
 
-@defmac SF_SIZE
-@defmacx DF_SIZE
-@defmacx XF_SIZE
-@defmacx TF_SIZE
-Define these macros to be the size in bits of the mantissa of
-@code{SFmode}, @code{DFmode}, @code{XFmode} and @code{TFmode} values,
-if the defaults in @file{libgcc2.h} are inappropriate.  By default,
-@code{FLT_MANT_DIG} is used for @code{SF_SIZE}, @code{LDBL_MANT_DIG}
-for @code{XF_SIZE} and @code{TF_SIZE}, and @code{DBL_MANT_DIG} or
-@code{LDBL_MANT_DIG} for @code{DF_SIZE} according to whether
-@code{DOUBLE_TYPE_SIZE} or
-@code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is 64.
-@end defmac
-
 @defmac TARGET_FLT_EVAL_METHOD
 A C expression for the value for @code{FLT_EVAL_METHOD} in @file{float.h},
 assuming, if applicable, that the floating-point control word is in its
index a1e89f4fb2269b05963c15987c77462d65f03195..692e67e42154bc93ce4233a24de96cf1e5058a7c 100644 (file)
@@ -935,7 +935,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
        EXTRA_CONSTRAINT_STR EXTRA_MEMORY_CONSTRAINT                       \
        EXTRA_ADDRESS_CONSTRAINT CONST_DOUBLE_OK_FOR_CONSTRAINT_P          \
        CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL                  \
-       ROUND_TOWARDS_ZERO
+       ROUND_TOWARDS_ZERO SF_SIZE DF_SIZE XF_SIZE TF_SIZE
 
 /* Hooks that are no longer used.  */
  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE  \
index 8133025a6482c8abfe6c57623825d198d57b9863..b53f2e824732d7461133f0fa35dc6c008e902458 100644 (file)
@@ -1,3 +1,18 @@
+2014-09-08  Joseph Myers  <joseph@codesourcery.com>
+
+       * libgcc2.c (SF_SIZE): Change all uses to __LIBGCC_SF_MANT_DIG__.
+       (DF_SIZE): Change all uses to __LIBGCC_DF_MANT_DIG__.
+       (XF_SIZE): Change all uses to __LIBGCC_XF_MANT_DIG__.
+       (TF_SIZE): Change all uses to __LIBGCC_TF_MANT_DIG__.
+       * libgcc2.h (SF_SIZE): Change to __LIBGCC_SF_MANT_DIG__.  Give
+       error if not defined and LIBGCC2_HAS_SF_MODE is defined.
+       (DF_SIZE): Change to __LIBGCC_DF_MANT_DIG__.  Give error if not
+       defined and LIBGCC2_HAS_DF_MODE is defined.
+       (XF_SIZE): Change to __LIBGCC_XF_MANT_DIG__.  Give error if not
+       defined and LIBGCC2_HAS_XF_MODE is defined.
+       (TF_SIZE): Change to __LIBGCC_TF_MANT_DIG__.  Give error if not
+       defined and LIBGCC2_HAS_TF_MODE is defined.
+
 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
 
        * fp-bit.c (pack_d, unpack_d): Remove LARGEST_EXPONENT_IS_NORMAL
index aea476a34e6d2475fe2dc3e0adf53f54a5b13cdf..2800fe949e2a682bba695147d63d7ac453fa67ca 100644 (file)
@@ -1506,7 +1506,7 @@ __fixsfdi (SFtype a)
 XFtype
 __floatdixf (DWtype u)
 {
-#if W_TYPE_SIZE > XF_SIZE
+#if W_TYPE_SIZE > __LIBGCC_XF_MANT_DIG__
 # error
 #endif
   XFtype d = (Wtype) (u >> W_TYPE_SIZE);
@@ -1520,7 +1520,7 @@ __floatdixf (DWtype u)
 XFtype
 __floatundixf (UDWtype u)
 {
-#if W_TYPE_SIZE > XF_SIZE
+#if W_TYPE_SIZE > __LIBGCC_XF_MANT_DIG__
 # error
 #endif
   XFtype d = (UWtype) (u >> W_TYPE_SIZE);
@@ -1534,7 +1534,7 @@ __floatundixf (UDWtype u)
 TFtype
 __floatditf (DWtype u)
 {
-#if W_TYPE_SIZE > TF_SIZE
+#if W_TYPE_SIZE > __LIBGCC_TF_MANT_DIG__
 # error
 #endif
   TFtype d = (Wtype) (u >> W_TYPE_SIZE);
@@ -1548,7 +1548,7 @@ __floatditf (DWtype u)
 TFtype
 __floatunditf (UDWtype u)
 {
-#if W_TYPE_SIZE > TF_SIZE
+#if W_TYPE_SIZE > __LIBGCC_TF_MANT_DIG__
 # error
 #endif
   TFtype d = (UWtype) (u >> W_TYPE_SIZE);
@@ -1568,11 +1568,11 @@ __floatunditf (UDWtype u)
 #if defined(L_floatdisf)
 #define FUNC __floatdisf
 #define FSTYPE SFtype
-#define FSSIZE SF_SIZE
+#define FSSIZE __LIBGCC_SF_MANT_DIG__
 #else
 #define FUNC __floatdidf
 #define FSTYPE DFtype
-#define FSSIZE DF_SIZE
+#define FSSIZE __LIBGCC_DF_MANT_DIG__
 #endif
 
 FSTYPE
@@ -1584,18 +1584,18 @@ FUNC (DWtype u)
   f *= Wtype_MAXp1_F;
   f += (UWtype)u;
   return f;
-#elif (LIBGCC2_HAS_DF_MODE && F_MODE_OK (DF_SIZE))     \
-     || (LIBGCC2_HAS_XF_MODE && F_MODE_OK (XF_SIZE))   \
-     || (LIBGCC2_HAS_TF_MODE && F_MODE_OK (TF_SIZE))
+#elif (LIBGCC2_HAS_DF_MODE && F_MODE_OK (__LIBGCC_DF_MANT_DIG__))      \
+     || (LIBGCC2_HAS_XF_MODE && F_MODE_OK (__LIBGCC_XF_MANT_DIG__))    \
+     || (LIBGCC2_HAS_TF_MODE && F_MODE_OK (__LIBGCC_TF_MANT_DIG__))
 
-#if (LIBGCC2_HAS_DF_MODE && F_MODE_OK (DF_SIZE))
-# define FSIZE DF_SIZE
+#if (LIBGCC2_HAS_DF_MODE && F_MODE_OK (__LIBGCC_DF_MANT_DIG__))
+# define FSIZE __LIBGCC_DF_MANT_DIG__
 # define FTYPE DFtype
-#elif (LIBGCC2_HAS_XF_MODE && F_MODE_OK (XF_SIZE))
-# define FSIZE XF_SIZE
+#elif (LIBGCC2_HAS_XF_MODE && F_MODE_OK (__LIBGCC_XF_MANT_DIG__))
+# define FSIZE __LIBGCC_XF_MANT_DIG__
 # define FTYPE XFtype
-#elif (LIBGCC2_HAS_TF_MODE && F_MODE_OK (TF_SIZE))
-# define FSIZE TF_SIZE
+#elif (LIBGCC2_HAS_TF_MODE && F_MODE_OK (__LIBGCC_TF_MANT_DIG__))
+# define FSIZE __LIBGCC_TF_MANT_DIG__
 # define FTYPE TFtype
 #else
 # error
@@ -1684,11 +1684,11 @@ FUNC (DWtype u)
 #if defined(L_floatundisf)
 #define FUNC __floatundisf
 #define FSTYPE SFtype
-#define FSSIZE SF_SIZE
+#define FSSIZE __LIBGCC_SF_MANT_DIG__
 #else
 #define FUNC __floatundidf
 #define FSTYPE DFtype
-#define FSSIZE DF_SIZE
+#define FSSIZE __LIBGCC_DF_MANT_DIG__
 #endif
 
 FSTYPE
@@ -1700,18 +1700,18 @@ FUNC (UDWtype u)
   f *= Wtype_MAXp1_F;
   f += (UWtype)u;
   return f;
-#elif (LIBGCC2_HAS_DF_MODE && F_MODE_OK (DF_SIZE))     \
-     || (LIBGCC2_HAS_XF_MODE && F_MODE_OK (XF_SIZE))   \
-     || (LIBGCC2_HAS_TF_MODE && F_MODE_OK (TF_SIZE))
+#elif (LIBGCC2_HAS_DF_MODE && F_MODE_OK (__LIBGCC_DF_MANT_DIG__))      \
+     || (LIBGCC2_HAS_XF_MODE && F_MODE_OK (__LIBGCC_XF_MANT_DIG__))    \
+     || (LIBGCC2_HAS_TF_MODE && F_MODE_OK (__LIBGCC_TF_MANT_DIG__))
 
-#if (LIBGCC2_HAS_DF_MODE && F_MODE_OK (DF_SIZE))
-# define FSIZE DF_SIZE
+#if (LIBGCC2_HAS_DF_MODE && F_MODE_OK (__LIBGCC_DF_MANT_DIG__))
+# define FSIZE __LIBGCC_DF_MANT_DIG__
 # define FTYPE DFtype
-#elif (LIBGCC2_HAS_XF_MODE && F_MODE_OK (XF_SIZE))
-# define FSIZE XF_SIZE
+#elif (LIBGCC2_HAS_XF_MODE && F_MODE_OK (__LIBGCC_XF_MANT_DIG__))
+# define FSIZE __LIBGCC_XF_MANT_DIG__
 # define FTYPE XFtype
-#elif (LIBGCC2_HAS_TF_MODE && F_MODE_OK (TF_SIZE))
-# define FSIZE TF_SIZE
+#elif (LIBGCC2_HAS_TF_MODE && F_MODE_OK (__LIBGCC_TF_MANT_DIG__))
+# define FSIZE __LIBGCC_TF_MANT_DIG__
 # define FTYPE TFtype
 #else
 # error
index 498ecdfb3517b736f8201762f0422a7434929fc5..8abd0b7f8bcd6466b65a1b510222429de0e21999 100644 (file)
@@ -59,41 +59,35 @@ extern void __eprintf (const char *, const char *, unsigned int, const char *)
   (BITS_PER_UNIT == 8 && LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128)
 #endif
 
-#ifndef SF_SIZE
+#ifndef __LIBGCC_SF_MANT_DIG__
 #if LIBGCC2_HAS_SF_MODE
-#define SF_SIZE FLT_MANT_DIG
+#error __LIBGCC_SF_MANT_DIG__ not defined
 #else
-#define SF_SIZE 0
+#define __LIBGCC_SF_MANT_DIG__ 0
 #endif
 #endif
 
-#ifndef DF_SIZE
+#ifndef __LIBGCC_DF_MANT_DIG__
 #if LIBGCC2_HAS_DF_MODE
-#if __SIZEOF_DOUBLE__ * __CHAR_BIT__ == 64
-#define DF_SIZE DBL_MANT_DIG
-#elif LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 64
-#define DF_SIZE LDBL_MANT_DIG
+#error __LIBGCC_DF_MANT_DIG__ not defined
 #else
-#define DF_SIZE 0
-#endif
-#else
-#define DF_SIZE 0
+#define __LIBGCC_DF_MANT_DIG__ 0
 #endif
 #endif
 
-#ifndef XF_SIZE
+#ifndef __LIBGCC_XF_MANT_DIG__
 #if LIBGCC2_HAS_XF_MODE
-#define XF_SIZE LDBL_MANT_DIG
+#error __LIBGCC_XF_MANT_DIG__ not defined
 #else
-#define XF_SIZE 0
+#define __LIBGCC_XF_MANT_DIG__ 0
 #endif
 #endif
 
-#ifndef TF_SIZE
+#ifndef __LIBGCC_TF_MANT_DIG__
 #if LIBGCC2_HAS_TF_MODE
-#define TF_SIZE LDBL_MANT_DIG
+#error __LIBGCC_TF_MANT_DIG__ not defined
 #else
-#define TF_SIZE 0
+#define __LIBGCC_TF_MANT_DIG__ 0
 #endif
 #endif