* c-common.c (cpp_define_data_format): Remove.
(cb_register_builtins): Don't define __WCHAR_BIT__, __SHRT_BIT__,
__INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
__DOUBLE_BIT__, __LONG_DOUBLE_BIT__.
* doc/cpp.texi: Don't document them either.
(__SCHAR_MAX__, __SHRT_MAX__, __INT_MAX__, __LONG_MAX__,
__LONG_LONG_MAX__): Document.
(__TARGET_FLOAT_FORMAT__): Remove.
From-SVN: r57436
+2002-09-23 Richard Henderson <rth@redhat.com>
+
+ * c-common.c (cpp_define_data_format): Remove.
+ (cb_register_builtins): Don't define __WCHAR_BIT__, __SHRT_BIT__,
+ __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
+ __DOUBLE_BIT__, __LONG_DOUBLE_BIT__.
+ * doc/cpp.texi: Don't document them either.
+ (__SCHAR_MAX__, __SHRT_MAX__, __INT_MAX__, __LONG_MAX__,
+ __LONG_LONG_MAX__): Document.
+ (__TARGET_FLOAT_FORMAT__): Remove.
+
2002-09-23 Richard Henderson <rth@redhat.com>
* real.c (do_multiply): Normalize U before addition.
int, const char *,
const char *));
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));
static void builtin_define_float_constants PARAMS ((const char *,
const char *, tree));
return val;
}
\f
-/* Define macros necessary to describe fundamental data type formats. */
-static void
-cpp_define_data_format (pfile)
- cpp_reader *pfile;
-{
- const char *format;
-
- /* Define supported floating-point format enumeration values. */
- cpp_define (pfile, "__UNKNOWN_FORMAT__=0");
- cpp_define (pfile, "__IEEE_FORMAT__=1");
- cpp_define (pfile, "__IBM_FORMAT__=2");
- cpp_define (pfile, "__C4X_FORMAT__=3");
- cpp_define (pfile, "__VAX_FORMAT__=4");
-
- switch (TARGET_FLOAT_FORMAT)
- {
- case UNKNOWN_FLOAT_FORMAT:
- format = "__UNKNOWN_FORMAT__";
- break;
- case IEEE_FLOAT_FORMAT:
- format = "__IEEE_FORMAT__";
- break;
- case VAX_FLOAT_FORMAT:
- format = "__VAX_FORMAT__";
- break;
- case IBM_FLOAT_FORMAT:
- format = "__IBM_FORMAT__";
- break;
- case C4X_FLOAT_FORMAT:
- format = "__C4X_FORMAT__";
- break;
- default:
- abort();
- }
-
- builtin_define_with_value ("__GCC_FLOAT_FORMAT__", format, 0);
-}
-
/* Define NAME with value TYPE precision. */
static void
builtin_define_type_precision (name, type)
builtin_define_type_max ("__LONG_LONG_MAX__", long_long_integer_type_node, 2);
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);
/* float.h needs to know these. */
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. */
if (flag_objc && flag_next_runtime)
cpp_define (pfile, "__NEXT_RUNTIME__");
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.
+Defined to the number of bits used in the representation of the
+@code{char} data type. It exists to make the standard header given
+numerical limits work correctly. You should not use
+this macro directly; instead, include the appropriate headers.
+
+@item __SCHAR_MAX__
+@itemx __SHRT_MAX__
+@itemx __INT_MAX__
+@itemx __LONG_MAX__
+@itemx __LONG_LONG_MAX__
+Defined to the maximum value of the @code{signed char}, @code{signed short},
+@code{signed int}, @code{signed long}, and @code{signed long long} types
+respectively. 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
(as in @option{-fnext-runtime}) is in use for Objective-C. If the GNU
runtime is used, this macro is not defined, so that you can use this
macro to determine which runtime (NeXT or GNU) is being used.
-
-@item __TARGET_FLOAT_FORMAT__
-This macro is defined to describe the floating-point format used by the
-target. It has value in the set comprised of:
-@code{__UNKNOWN_FORMAT__}, @code{__IEEE_FORMAT__},
-@code{__IBM_FORMAT__}, @code{__C4X_FORMAT__} and @code{__VAX_FORMAT__}.
@end table
@node System-specific Predefined Macros