Commit Graph

22 Commits

Author SHA1 Message Date
Phil Edwards
bd2726e0ca Intro.3: Update with new (proper) names.
2003-02-25  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/Intro.3:  Update with new (proper) names.
	* docs/doxygen/TODO:  Update.
	* docs/doxygen/run_doxygen:  More comments, fix up man pages.
	Fake entries for standard typedefs.
	* docs/doxygen/user.cfg.in:  Turn INLINE_INHERITED_MEMB back on.
	* docs/html/documentation.html:  Top-level man page is now called
	C++Intro.
	* include/std/std_limits.h:  Doxygenate.

From-SVN: r63433
2003-02-26 00:02:16 +00:00
Mark Mitchell
14d22dd667 c-common.c (builtin_define_float_constants): Define __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
* c-common.c (builtin_define_float_constants): Define
	__<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.

	* call.c (build_field_call): Use build_new_op, not build_opfncall.
	(prep_operand): New function.
	(build_new_op): Use it.  Remove dead code.
	* class.c (pushclass): Change "modify" parameter type from int to
	bool.
	(currently_open_class): Use same_type_p, not pointer equality.
	(push_nested_class): Adjust calls to pushclass, remove modify
	parameter.
	* cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro.
	(pushclass): Change prototype.
	(push_nested_class): Likewise.
	(grokoptypename): Remove.
	(build_opfncall): Remove.
	(value_dependent_expression_p): Declare.
	(resolve_typename_type): Likewise.
	(resolve_typename_type_in_current_instantiation): Likewise.
	(enter_scope_of): Remove.
	(tsubst): Remove.
	(tsubst_expr): Likewise.
	(tsubst_copy): Likewise.
	(tsubst_copy_and_build): Likewise.
	* decl.c (warn_about_implicit_typename_lookup): Remove.
	(finish_case_label): Return error_mark_node for erroneous labels.
	(start_decl): Adjust calls to push_nested_class.
	(grokfndecl): Call push_scope/pop_scope around call to
	duplicate_decls.
	(grokdeclarator): Do not call tsubst.
	(start_function): Adjust calls to push_nested_class.
	* decl2.c (grok_array_decl): Use build_new_op, not build_opfncall.
	(check_classfn): Use push_scope/pop_scope around type comparisions.
	(grokoptypename): Remove.
	(push_sscope): Adjust call to push_nested_class.
	* error.c (dump_type): Show cv-qualification of typename types.
	* init.c (build_member_call): Use build_new_op, not
	build_opfncall.
	* method.c (build_opfncall): Remove.
	* parser.c (cp_parser): Add allow_non_constant_expression_p and
	non_constant_expression_p.
	(cp_parser_constant_expression): Adjust prototype.
	(cp_parser_resolve_typename_type): Remove.
	(cp_parser_non_constant_expression): New function.
	(cp_parser_non_constant_id_expression): Likewise.
	(cp_parser_new): Set allow_non_constant_expression_p and
	non_constant_expression_p.
	(cp_parser_primary_expression): Reject `this' and `va_arg' in
	constant-expressions.  Note that dependent names aren't really
	constant.
	(cp_parser_postfix_expression): Reject conversions to non-integral
	types in constant-expressions.  Neither are increments or
	decrements.
	(cp_parser_unary_expression): Reject increments and decrements in
	constant-expressions.
	(cp_parser_direct_new_declarator): Adjust call to
	cp_parser_constant_expression.
	(cp_parser_cast_expression): Reject conversions to non-integral
	types in constant-expressions.
	(cp_parser_assignment_expression): Rejects assignments in
	constant-expressions.
	(cp_parser_expression): Reject commas in constant-expressions.
	(cp_parser_labeled_statement): Adjust call to
	cp_parser_constant_expression.
	(cp_parser_direct_declarator): Simplify array bounds, even in
	templates, when they are non-dependent.  Use
	resolve_typename_type, not cp_parser_resolve_typename_type.
	(cp_parser_class_head): Use resolve_typename_type, not
	cp_parser_resolve_typename_type.
	(cp_parser_member_declaration): Adjust call to
	cp_parser_constant_expression.
	(cp_parser_constant_initializer): Likewise.
	(cp_parser_constructor_declarator): Use resolve_typename_type, not
	cp_parser_resolve_typename_type.
	(cp_parser_late_parsing_default_args): Adjust call to
	push_nested_class.
	* pt.c (tsubst): Give it internal linkage.
	(tsubst_expr): Likewise.
	(tsubst_copy): Likewise.
	(tsubst_copy_and_build): Likewise.
	(push_access_scope_real): Likewise.
	(tsubst_friend_class): Likewise.
	(instantiate_class_template): Adjust call to pushclass.
	(value_dependent_expression_p): Give it external linkage.
	Robustify.
	(resolve_typename_type): New function.
	* semantics.c (finish_call_expr): Use build_new_op, not
	build_opfncall.
	(begin_constructor_declarator): Remove.
	(begin_class_definition): Adjust call to pushclass.
	(enter_scope_of): Remove.
	* typeck.c (comptypes): Resolve typename types as appropriate.
	(build_x_indirect_ref): Use build_new_op, not build_opfncall.
	(build_x_compound_expr): Likewise.
	(build_modify_expr): Likewise.
	(build_x_modify_expr): Likewise.
	* typeck2.c (build_x_arrow): Likewise.

	* g++.dg/parser/constant1.C: New test.

	* include/std/std_limits.h (numeric_limits<float>::has_infinity):
	Use __FLT_HAS_INIFINITY__ to initialize.
	(numeric_limits<float>::has_quiet_NaN): Likewise.
	(numeric_limits<double>::has_infinity): Use __DBL_HAS_INIFINITY__
	to initialize.
	(numeric_limits<double>::has_quiet_NaN): Likewise.
	(numeric_limits<long double>::has_infinity): Use
	__LDBL_HAS_INIFINITY__ to initialize.
	(numeric_limits<long_double>::has_quiet_NaN): Likewise.

From-SVN: r62130
2003-01-30 07:24:02 +00:00
Paolo Carlini
77bd447bb4 re PR libstdc++/8949 (numeric_limits<>::denorm_min() and is_iec559 problems.)
2002-12-16  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/8949
	* include/std/std_limits.h
	(struct numeric_limits<short>,
	struct numeric_limits<unsigned short>,
	struct numeric_limits<int>,
	struct numeric_limits<unsigned int>,
	struct numeric_limits<long>,
	struct numeric_limits<unsigned long>,
	struct numeric_limits<long long>,
	struct numeric_limits<unsigned long long>): According
	to 18.2.1.2,53 and 18.2.1.5,1 is_iec559 shall be false.
	* testsuite/18_support/numeric_limits.cc: Add test04.

From-SVN: r60181
2002-12-16 19:52:37 +00:00
Richard Henderson
d3d09886b3 std_limits.h (numeric_limits<T>::is_iec559): False if denormals are not supported.
* include/std/std_limits.h (numeric_limits<T>::is_iec559): False
        if denormals are not supported.

From-SVN: r57595
2002-09-27 15:39:28 -07:00
Benjamin Kosnik
ca017eef3a Makefile.am (target_headers): Remove cpu_limits.h.
2002-09-25  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (target_headers): Remove cpu_limits.h.
	* include/Makefile.in: Regenerate.
	* configure.in (CPU_LIMITS_INC_SRCDIR): Remove
	* configure: Regenerate.
	* configure.target (CPULIMITS): Remove.

	* include/std/std_limits.h: Remove cpu_limits.h include.

	* config/os/solaris/solaris2.7/os_defines.h (__glibcpp_long_bits):
	Remove.
	* config/os/irix/irix6.5/os_defines.h
	(__glibcpp_long_double_bits): Remove.
	(__glibcpp_wchar_t_bits): Remove.
	(__glibcpp_long_bits): Remove.
	* config/os/irix/irix5.2/os_defines.h
	(__glibcpp_long_double_bits): Remove.
	(__glibcpp_long_bits): Remove.
	* config/os/hpux/os_defines.h (__glibcpp_wchar_t_is_signed): Remove.
	* config/os/bsd/freebsd/os_defines.h:
	(__glibcpp_long_double_bits): Remove.
	* config/os/aix/os_defines.h (__glibcpp_wchar_t_bits): Remove.
	(__glibcpp_wchar_t_is_signed): Remove.
	(__glibcpp_long_bits): Remove.
	* config/os/gnu-linux/os_defines.h (__glibcpp_long_bits): Remove.
	(__glibcpp_long_double_bits): Remove.

	* config/os/osf/osf5.0/cpu_limits.h: Remove.
	* config/cpu/alpha/cpu_limits.h: Remove.
	* config/cpu/arm/cpu_limits.h: Remove.
	* config/cpu/cris/cpu_limits.h: Remove.
	* config/cpu/generic/cpu_limits.h: Remove.
	* config/cpu/generic/limits.h: Remove.
	* config/cpu/ia64/cpu_limits.h: Remove.
	* config/cpu/m68k/cpu_limits.h: Remove.
	* config/cpu/mmix/cpu_limits.h: Remove.
	* config/cpu/powerpc/cpu_limits.h: Remove.
	* config/cpu/S390/cpu_limits.h: Remove.

From-SVN: r57524
2002-09-26 05:25:14 +00:00
Mark Mitchell
0b4c7d8042 std_limits.h (numeric_limits<unsigned char>::digits): Fix typo.
* include/std/std_limits.h (numeric_limits<unsigned char>::digits):
	Fix typo.

From-SVN: r57507
2002-09-25 18:32:14 +00:00
Richard Henderson
6ad8f94953 std_limits.h (__glibcpp_plain_char_is_signed, [...]): Remove.
* include/std/std_limits.h (__glibcpp_plain_char_is_signed,
	__glibcpp_wchar_t_is_signed, __glibcpp_s8_max, __glibcpp_s8_min,
	__glibcpp_s8_digits, __glibcpp_s8_digits10, __glibcpp_u8_min,
	__glibcpp_u8_max, __glibcpp_u8_digits, __glibcpp_u8_digits10,
	__glibcpp_s16_max, __glibcpp_s16_min, __glibcpp_s16_digits,
	__glibcpp_s16_digits10, __glibcpp_u16_min, __glibcpp_u16_max,
	__glibcpp_u16_digits, __glibcpp_u16_digits10, __glibcpp_s32_max,
	__glibcpp_s32_min, __glibcpp_s32_digits, __glibcpp_s32_digits10,
	__glibcpp_u32_min, __glibcpp_u32_max, __glibcpp_u32_digits,
	__glibcpp_u32_digits10, __glibcpp_s64_max, __glibcpp_s64_min,
	__glibcpp_s64_digits, __glibcpp_s64_digits10, __glibcpp_u64_min,
	__glibcpp_u64_max, __glibcpp_u64_digits, __glibcpp_u64_digits10,
	__glibcpp_bool_digits, __glibcpp_signed_char_min,
	__glibcpp_signed_char_max, __glibcpp_signed_char_digits,
	__glibcpp_signed_char_digits10, __glibcpp_unsigned_char_min,
	__glibcpp_unsigned_char_max, __glibcpp_unsigned_char_digits,
	__glibcpp_unsigned_char_digits10, __glibcpp_char_min,
	__glibcpp_char_max, __glibcpp_char_digits, __glibcpp_char_digits10,
	__glibcpp_signed_short_min, __glibcpp_signed_short_max,
	__glibcpp_signed_short_digits, __glibcpp_signed_short_digits10,
	__glibcpp_unsigned_short_min, __glibcpp_unsigned_short_max,
	__glibcpp_unsigned_short_digits, __glibcpp_unsigned_short_digits10,
	__glibcpp_signed_int_min, __glibcpp_signed_int_max,
	__glibcpp_signed_int_digits, __glibcpp_signed_int_digits10,
	__glibcpp_unsigned_int_min, __glibcpp_unsigned_int_max,
	__glibcpp_unsigned_int_digits, __glibcpp_unsigned_int_digits10,
	__glibcpp_signed_long_min, __glibcpp_signed_long_max,
	__glibcpp_unsigned_long_digits, __glibcpp_unsigned_long_digits10,
	__glibcpp_signed_long_long_min, __glibcpp_signed_long_long_max,
	__glibcpp_signed_long_long_digits, __glibcpp_signed_long_long_digits10,
	__glibcpp_wchar_t_min, __glibcpp_wchar_t_max, __glibcpp_wchar_t_digits,
	__glibcpp_wchar_t_digits10): Remove.
	(__glibcpp_byte, __glibcpp_word_bits, __glibcpp_word): Remove.
	(__float_storage, __double_storage, __long_double_storage): Remove.
	(__glibcpp_signed, __glibcpp_min, __glibcpp_max): New.
	(__glibcpp_digits, __glibcpp_digits10): New.
	(numeric_limits<T>::min): Use __glibcpp_min or limits.h builtins.
	(numeric_limits<T>::max): Use __glibcpp_max or limits.h builtins.
	(numeric_limits<T>::is_signed, T=char,wchar_t): Use __glibcpp_signed.
	(numeric_limits<T>::digits): Use __glibcpp_digits.
	(numeric_limits<T>::digits10): Use __glibcpp_digits10.
	* testsuite/18_support/numeric_limits.cc (test03): Don't use
	__glibcpp_s8_digits10 et al; check vs the installed versions
	of digits10 for particular sizes.

        * include/std/std_limits.h (__glibcpp_float_is_modulo,
        __glibcpp_double_is_modulo, __glibcpp_long_double_is_modulo): Kill.
        (numeric_limits<T>::is_modulo, T floating): Use false.

From-SVN: r57434
2002-09-23 04:24:57 -07:00
Richard Henderson
da28539cd6 std_limits.h (__glibcpp_integral_traps): New.
* include/std/std_limits.h (__glibcpp_integral_traps): New.
        (__glibcpp_char_traps, __glibcpp_short_traps, __glibcpp_int_traps,
        __glibcpp_long_traps, __glibcpp_wchar_t_traps,
        __glibcpp_long_long_traps, __glibcpp_plain_char_traps,
        __glibcpp_signed_char_traps, __glibcpp_unsigned_char_traps,
        __glibcpp_signed_short_traps, __glibcpp_unsigned_short_traps,
        __glibcpp_signed_int_traps, __glibcpp_unsigned_int_traps,
        __glibcpp_signed_long_traps, __glibcpp_unsigned_long_traps,
        __glibcpp_signed_long_long_traps, __glibcpp_unsigned_long_long_traps,
        __glibcpp_char_is_modulo, __glibcpp_signed_char_is_modulo,
        __glibcpp_signed_short_is_modulo, __glibcpp_signed_int_is_modulo,
        __glibcpp_signed_long_is_modulo, __glibcpp_signed_long_long_is_modulo,
        __glibcpp_wchar_t_is_modulo, __glibcpp_float_is_bounded,
        __glibcpp_double_is_bounded, __glibcpp_long_double_is_bounded): Kill.
        (numeric_limits<T>::traps, T integral): Use __glibcpp_integral_traps.
        (numeric_limits<T>::is_modulo, T integral): Use true.
        (numeric_limits<T>::is_bounded, T floating): Use true.

From-SVN: r57414
2002-09-22 11:37:51 -07:00
Richard Henderson
cf2214db0c std_limits.h (__glibcpp_f32_is_iec559, [...]): Remove.
* include/std/std_limits.h (__glibcpp_f32_is_iec559,
        __glibcpp_f64_is_iec559, __glibcpp_f80_is_iec559,
        __glibcpp_f96_is_iec559, __glibcpp_f128_is_iec559,
        __glibcpp_float_is_iec559, __glibcpp_double_is_iec559,
        __glibcpp_long_double_is_iec559): Remove.
        (numeric_limits<float>::is_iec559): Use has_infinity & has_quiet_NaN.
        (numeric_limits<double>, numeric_limits<long double>): Similarly.

From-SVN: r57413
2002-09-22 11:36:38 -07:00
Richard Henderson
be71ea9dae std_limits.h (__glibcpp_f32_round_error, [...]): Kill.
* include/std/std_limits.h (__glibcpp_f32_round_error,
	__glibcpp_f64_round_error, __glibcpp_f80_round_error,
	__glibcpp_f96_round_error, __glibcpp_f128_round_error,
	__glibcpp_float_round_error, __glibcpp_double_round_error,
	__glibcpp_long_double_round_error, __glibcpp_float_round_style,
	__glibcpp_double_round_style, __glibcpp_long_double_round_style): Kill.
	(numeric_limits<char>::epsilon, round_error): Use constant 0.
	(numeric_limits<float>::round_error): Use constant 0.5.
	(numeric_limits<float>::round_style): Use round_to_nearest.
	(numeric_limits<double>, numeric_limits<long double>): Similarly.

From-SVN: r57412
2002-09-22 11:35:24 -07:00
Richard Henderson
1472e41cb3 builtin-types.def (BT_FN_FLOAT_CONST_STRING): New.
gcc/
        * builtin-types.def (BT_FN_FLOAT_CONST_STRING): New.
        (BT_FN_DOUBLE_CONST_STRING, BT_FN_LONG_DOUBLE_CONST_STRING): New.
        * builtins.def (__builtin_nan, __builtin_nanf, __builtin_nanl): New.
        (__builtin_nans, __builtin_nansf, __builtin_nansl): New.
        * builtins.c (fold_builtin_nan): New.
        (fold_builtin): Call it.
        * real.c (real_nan): Parse a non-empty string.
        (round_for_format): Fix NaN significand truncation.
        * real.h (real_nan): Return bool.
        * doc/extend.texi: Document new builtins.

libstdc++/
        * include/std/std_limits.h (__glibcpp_f32_QNaN_bytes,
        __glibcpp_f32_has_QNaN, __glibcpp_f32_SNaN_bytes,
        __glibcpp_f32_has_SNaN, __glibcpp_f64_QNaN_bytes,
        __glibcpp_f64_has_QNaN, __glibcpp_f64_SNaN_bytes,
        __glibcpp_f64_has_SNaN, __glibcpp_f80_QNaN_bytes,
        __glibcpp_f80_has_QNaN, __glibcpp_f80_SNaN_bytes,
        __glibcpp_f80_has_SNaN, __glibcpp_f96_QNaN_bytes,
        __glibcpp_f96_has_QNaN, __glibcpp_f96_SNaN_bytes,
        __glibcpp_f96_has_SNaN, __glibcpp_f128_QNaN_bytes,
        __glibcpp_f128_has_QNaN, __glibcpp_f128_SNaN_bytes,
        __glibcpp_f128_has_SNaN, __glibcpp_float_QNaN_bytes,
        __glibcpp_float_has_QNaN, __glibcpp_float_SNaN_bytes,
        __glibcpp_float_has_SNaN, __glibcpp_double_QNaN_bytes,
        __glibcpp_double_has_QNaN, __glibcpp_double_SNaN_bytes,
        __glibcpp_double_has_SNaN, __glibcpp_long_double_QNaN_bytes,
        __glibcpp_long_double_has_QNaN, __glibcpp_long_double_SNaN_bytes,
        __glibcpp_long_double_has_SNaN): Remove.
        (__glibcpp_f128_is_iec559): True if IEEE.
        (__glibcpp_float_QNaN, __glibcpp_float_SNaN): Remove.
        (__glibcpp_double_QNaN, __glibcpp_double_SNaN): Remove.
        (__glibcpp_long_double_QNaN, __glibcpp_long_double_SNaN): Remove.
        (std::numeric_limits<float>::has_quiet_NaN): Use __builtin_nanf.
        (std::numeric_limits<float>::has_signaling_NaN): Mirror has_quiet_NaN.
        (std::numeric_limits<float>::quiet_NaN): Use __builtin_nanf.
        (std::numeric_limits<float>::signaling_NaN): Use __builtin_nansf.
        (std::numeric_limits<double>): Similarly.
        (std::numeric_limits<long double>): Similarly.
        * src/limits.cc (__glibcpp_float_QNaN, __glibcpp_float_SNaN): Remove.
        (__glibcpp_double_QNaN, __glibcpp_double_SNaN): Remove.
        (__glibcpp_long_double_QNaN, __glibcpp_long_double_SNaN): Remove.

        * testsuite/18_support/numeric_limits.cc (test_infinity): New.
        (test_denorm_min, test_qnan, test_is_iec559): New.

From-SVN: r57221
2002-09-16 18:28:50 -07:00
Richard Henderson
ac520ec919 c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__.
gcc/
        * c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__.

libstdc++/
        * include/std/std_limits.h (__glibcpp_f32_denorm_min_bytes,
        __glibcpp_f32_has_denorm, __glibcpp_f64_denorm_min_bytes,
        __glibcpp_f64_has_denorm, __glibcpp_f80_denorm_min_bytes,
        __glibcpp_f80_has_denorm, __glibcpp_f96_denorm_min_bytes,
        __glibcpp_f96_has_denorm, __glibcpp_f128_denorm_min_bytes,
        __glibcpp_f128_has_denorm, __glibcpp_float_denorm_min_bytes,
        __glibcpp_float_has_denorm, __glibcpp_double_denorm_min_bytes,
        __glibcpp_double_has_denorm, __glibcpp_long_double_denorm_min_bytes,
        __glibcpp_long_double_has_denorm): Remove.
        (__glibcpp_float_denorm_min, __glibcpp_double_denorm_min,
        __glibcpp_long_double_denorm_min): Remove.
        (std::numeric_limits<float>::has_denorm): Use __FLT_DENORM_MIN__.
        (std::numeric_limits<float>::denorm_min): Likewise.
        (std::numeric_limits<double>): Similarly.
        (std::numeric_limits<long double>): Similarly.
        * src/limits.cc (__glibcpp_float_denorm_min,
        __glibcpp_double_denorm_min, __glibcpp_long_double_denorm_min): Remove.

From-SVN: r57200
2002-09-16 09:58:42 -07:00
Richard Henderson
65e32b88a6 std_limits.h (__glibcpp_f32_infinity_bytes, [...]): Remove.
* include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
        __glibcpp_f32_has_infinity, __glibcpp_f64_infinity_bytes,
        __glibcpp_f64_has_infinity, __glibcpp_f80_infinity_bytes,
        __glibcpp_f80_has_infinity, __glibcpp_f96_infinity_bytes,
        __glibcpp_f96_has_infinity, __glibcpp_f128_infinity_bytes,
        __glibcpp_f128_has_infinity, __glibcpp_float_infinity_bytes,
        __glibcpp_float_has_infinity, __glibcpp_double_infinity_bytes,
        __glibcpp_double_has_infinity, __glibcpp_long_double_infinity_bytes,
        __glibcpp_long_double_has_infinity): Remove.
        (std::numeric_limits<float>, std::numeric_limits<double>,
        std::numeric_limits<long double>): Use __builtin_huge_val
        to implement has_infinity and infinity().
        * src/limits.cc (__glibcpp_float_infinity, __glibcpp_double_infinity,
        __glibcpp_long_double_infinity): Remove.

From-SVN: r56821
2002-09-04 16:22:18 -07:00
Richard Henderson
5e25fa2263 std_limits.h (__glibcpp_f32_min, [...]): Remove macros.
* include/std/std_limits.h (__glibcpp_f32_min, __glibcpp_f32_max,
	__glibcpp_f32_digits, __glibcpp_f32_digits10, __glibcpp_f32_radix,
	__glibcpp_f32_epsilon, __glibcpp_f32_min_exponent,
	__glibcpp_f32_min_exponent10, __glibcpp_f32_max_exponent,
	__glibcpp_f32_max_exponent10, __glibcpp_f64_min, __glibcpp_f64_max,
	__glibcpp_f64_digits, __glibcpp_f64_digits10, __glibcpp_f64_radix,
	__glibcpp_f64_min_exponent, __glibcpp_f64_min_exponent10,
	__glibcpp_f64_max_exponent, __glibcpp_f64_max_exponent10,
	__glibcpp_f80_min, __glibcpp_f80_max, __glibcpp_f80_digits,
	__glibcpp_f80_digits10, __glibcpp_f80_radix, __glibcpp_f80_epsilon,
	__glibcpp_f80_min_exponent, __glibcpp_f80_min_exponent10,
	__glibcpp_f80_max_exponent, __glibcpp_f80_max_exponent10,
	__glibcpp_f96_min, __glibcpp_f96_max, __glibcpp_f96_digits,
	__glibcpp_f96_digits10, __glibcpp_f96_radix, __glibcpp_f96_epsilon,
	__glibcpp_f96_min_exponent, __glibcpp_f96_min_exponent10,
	__glibcpp_f96_max_exponent, __glibcpp_f96_max_exponent10,
	__glibcpp_f128_min, __glibcpp_f128_max, __glibcpp_f128_digits,
	__glibcpp_f128_digits10, __glibcpp_f128_radix, __glibcpp_f128_epsilon,
	__glibcpp_f128_min_exponent, __glibcpp_f128_min_exponent10,
	__glibcpp_f128_max_exponent, __glibcpp_f128_max_exponent10,
	__glibcpp_float_min, __glibcpp_float_max, __glibcpp_float_digits,
	__glibcpp_float_digits10, __glibcpp_float_radix,
	__glibcpp_float_epsilon, __glibcpp_float_min_exponent,
	__glibcpp_float_min_exponent10, __glibcpp_float_max_exponent,
	__glibcpp_float_max_exponent10, __glibcpp_double_min,
	__glibcpp_double_max, __glibcpp_double_digits,
	__glibcpp_double_digits10, __glibcpp_double_radix,
	__glibcpp_double_epsilon, __glibcpp_double_min_exponent,
	__glibcpp_double_min_exponent10, __glibcpp_double_max_exponent,
	__glibcpp_double_max_exponent10, __glibcpp_long_double_min,
	__glibcpp_long_double_max, __glibcpp_long_double_digits,
	__glibcpp_long_double_digits10, __glibcpp_long_double_radix,
	__glibcpp_long_double_epsilon, __glibcpp_long_double_min_exponent,
	__glibcpp_long_double_min_exponent10,
	__glibcpp_long_double_max_exponent,
	__glibcpp_long_double_max_exponent10): Remove macros.
	(std::numeric_limits<float>, std::numeric_limits<double>,
	std::numeric_limits<long double>): Use protected float.h macros.

From-SVN: r56770
2002-09-03 13:22:06 -07:00
Gabriel Dos Reis
585e661a79 c-common.c (builtin_define_type_precision): New function.
gcc/
 2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

 * 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  <gdr@integrable-solutions.net>

	    * 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__.

From-SVN: r56646
2002-08-28 21:41:55 +00:00
Gabriel Dos Reis
2559486f3e std_limits.h (__glibcpp_f32_infinity_bytes, [...]): New macros.
* include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
 	__glibcpp_f32_has_infinity, __glibcpp_f32_QNaN_bytes,
	__glibcpp_f32_has_QNaN, __glibcpp_f32_SNaN_bytes,
	__glibcpp_f32_has_SNaN, __glibcpp_f32_denorm_min_bytes,
	__glibcpp_f32_has_denorm, __glibcpp_f32_is_iec559,
	__glibcpp_f64_infinity_bytes,
	__glibcpp_f64_has_infinity, __glibcpp_f64_QNaN_bytes,
	__glibcpp_f64_has_QNaN, __glibcpp_f64_SNaN_bytes,
	__glibcpp_f64_has_SNaN, __glibcpp_f64_denorm_min_bytes,
	__glibcpp_f64_has_denorm, __glibcpp_f64_is_iec559,
	__glibcpp_f80_infinity_bytes,
	__glibcpp_f80_has_infinity, __glibcpp_f80_QNaN_bytes,
	__glibcpp_f80_has_QNaN, __glibcpp_f80_SNaN_bytes,
	__glibcpp_f80_has_SNaN, __glibcpp_f80_denorm_min_bytes,
	__glibcpp_f80_has_denorm, __glibcpp_f80_is_iec559,
	__glibcpp_f96_infinity_bytes,
	__glibcpp_f96_has_infinity, __glibcpp_f96_QNaN_bytes,
	__glibcpp_f96_has_QNaN, __glibcpp_f96_SNaN_bytes,
	__glibcpp_f96_has_SNaN, __glibcpp_f96_denorm_min_bytes,
	__glibcpp_f96_has_denorm, __glibcpp_f96_is_iec559,
 	__glibcpp_f128_infinity_bytes,
 	__glibcpp_f128_has_infinity, __glibcpp_f128_QNaN_bytes,
	__glibcpp_f128_has_QNaN, __glibcpp_f128_SNaN_bytes,
	__glibcpp_f128_has_SNaN, __glibcpp_f128_denorm_min_bytes,
	__glibcpp_f128_has_denorm, __glibcpp_f128_is_iec559,
	__glibcpp_float_infinity_bytes,
	__glibcpp_float_has_infinity, __glibcpp_float_QNaN_bytes,
	__glibcpp_float_has_QNaN, __glibcpp_float_SNaN_bytes,
	__glibcpp_float_has_SNaN, __glibcpp_float_denorm_min_bytes,
	__glibcpp_float_has_denorm, __glibcpp_float_is_iec559,
	__glibcpp_double_infinity_bytes,
	__glibcpp_double_has_infinity, __glibcpp_double_QNaN_bytes,
	__glibcpp_double_has_QNaN, __glibcpp_double_SNaN_bytes,
	__glibcpp_double_has_SNaN, __glibcpp_double_denorm_min_bytes,
	__glibcpp_double_has_denorm, __glibcpp_double_is_iec559,
	__glibcpp_long_double_infinity_bytes,
	__glibcpp_long_double_has_infinity, __glibcpp_long_double_QNaN_bytes,
	__glibcpp_long_double_has_QNaN, __glibcpp_long_double_SNaN_bytes,
	__glibcpp_long_double_has_SNaN, __glibcpp_long_double_denorm_min_bytes,
	__glibcpp_long_double_has_denorm, __glibcpp_long_double_is_iec559:
	New macros.
	(__glibcpp_word_bits, __glibcpp_word): Likewise.
	(__glibcpp_byte): New typedef.
	(__float_storage, __double_storage, __long_double_storage): New types.
	(__glibcpp_float_infinity, __glibcpp_float_QNaN,
	__glibcpp_float_SNaN, __glibcpp_float_denorm_min): Now
	objects. Declare.
	(__glibcpp_double_infinity, __glibcpp_double_QNaN,
	__glibcpp_double_SNaN, __glibcpp_double_denorm_min): Likewise.
	(__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
	__glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
	Likewise.

	* src/limits.cc (__glibcpp_float_infinity, __glibcpp_float_QNaN,
	__glibcpp_float_SNaN, __glibcpp_float_denorm_min): Define.
	(__glibcpp_double_infinity, __glibcpp_double_QNaN,
	__glibcpp_double_SNaN, __glibcpp_double_denorm_min): Likewise.
	(__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
	__glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
	Likewise.

From-SVN: r56613
2002-08-27 20:30:26 +00:00
Gabriel Dos Reis
f3cd98c4d6 std_limits.h: Indent conditional macro definitions.
* include/std/std_limits.h: Indent conditional macro
          definitions.

From-SVN: r56570
2002-08-25 20:17:01 +00:00
Benjamin Kosnik
a9bb75a7e0 As per DR 184, libstdc++/3139
2002-04-03  Benjamin Kosnik  <bkoz@redhat.com>

        As per DR 184, libstdc++/3139
        * include/std/std_limits.h (__glibcpp_bool_digits): Change to 1.
        (numeric_limits<bool>::is_iec559): False.
        (numeric_limits<bool>::is_modulo): False.

	* testsuite/27_io/ios_init.cc: Add instantiations.

From-SVN: r51838
2002-04-04 05:32:59 +00:00
Benjamin Kosnik
8497934433 std_limits.h: Move static const data members out of generic template...
2002-03-08  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_limits.h: Move static const data members out of
	generic template, into base class __numeric_limits_base.
	* src/limits.cc: Add definitions.
	* config/linker-map.gnu: Add __numeric_limits_base.
	* testsuite/18_support/numeric_limits.cc: Declare test in scope.

From-SVN: r50447
2002-03-08 17:59:14 +00:00
Phil Edwards
ffe94f8380 Makefile.am (doxygen, [...]): Tweak targets.
2002-01-28  Phil Edwards  <pme@gcc.gnu.org>

	* Makefile.am (doxygen, doxygen-maint, doxygen-man):  Tweak targets.
	* Makefile.in:  Regenerate.

	* docs/doxygen/run_doxygen:  Update, mostly for man pages.
	* docs/doxygen/Intro.3:  Update.
	* docs/doxygen/TODO:  Update.
	* docs/doxygen/doxygroups.cc:  Add namespace hook for __gnu_cxx.
	* docs/doxygen/mainpage.doxy:  Update.
	* docs/doxygen/user.cfg.in:  Update for header rename.  Also
	regenerate comments and variables with 1.2.12.
	* docs/doxygen/maint.cfg.in:  Remove file.

	* include/bits/stl_relops.h:  Doxygenate.
	* include/bits/stl_tempbuf.h (std::_Temporary_buffer):  Likewise.

	* include/c_std/std_cassert.h, include/c_std/std_cctype.h,
	include/c_std/std_cerrno.h, include/c_std/std_cfloat.h,
	include/c_std/std_ciso646.h, include/c_std/std_climits.h,
	include/c_std/std_clocale.h, include/c_std/std_cmath.h,
	include/c_std/std_csetjmp.h, include/c_std/std_csignal.h,
	include/c_std/std_cstdarg.h, include/c_std/std_cstddef.h,
	include/c_std/std_cstdio.h, include/c_std/std_cstdlib.h,
	include/c_std/std_cstring.h, include/c_std/std_ctime.h,
	include/c_std/std_cwchar.h, include/c_std/std_cwctype.h,
	include/ext/algorithm, include/ext/functional, include/ext/hash_map,
	include/ext/hash_set, include/ext/iterator, include/ext/memory,
	include/ext/numeric, include/ext/rb_tree, include/ext/rope,
	include/ext/ropeimpl.h, include/ext/slist, include/ext/stl_hash_fun.h,
	include/ext/stl_hashtable.h, include/ext/stl_rope.h,
	include/std/std_algorithm.h, include/std/std_bitset.h,
	include/std/std_complex.h, include/std/std_deque.h,
	include/std/std_fstream.h, include/std/std_functional.h,
	include/std/std_iomanip.h, include/std/std_ios.h,
	include/std/std_iosfwd.h, include/std/std_iostream.h,
	include/std/std_istream.h, include/std/std_iterator.h,
	include/std/std_limits.h, include/std/std_list.h,
	include/std/std_locale.h, include/std/std_map.h,
	include/std/std_memory.h, include/std/std_numeric.h,
	include/std/std_ostream.h, include/std/std_queue.h,
	include/std/std_set.h, include/std/std_sstream.h,
	include/std/std_stack.h, include/std/std_stdexcept.h,
	include/std/std_streambuf.h, include/std/std_string.h,
	include/std/std_utility.h, include/std/std_valarray.h,
	include/std/std_vector.h:  Add/correct @file doxygen hook.

	* include/ext/memory:  Doxygenate most of rest of file.
	* libsupc++/exception:  Doxygen output formatting.
	* libsupc++/new:  Say which header it is.

	* testsuite/lib/libstdc++-v3-dg.exp:  Fix spacing.
	* docs/html/19_diagnostics/howto.html:  Describe concept-checks switch.
	* docs/html/23_containers/howto.html:  Describe O(n) list::size().
	* docs/html/27_io/howto.html:  Also link to Langer and Kreft text.

From-SVN: r49300
2002-01-28 22:13:12 +00:00
Gabriel Dos Reis
2bcb0aa081 std_limits.h (__glibcpp_float_has_quiet_NaN, [...]): Correct mispelling.
* include/std/std_limits.h (__glibcpp_float_has_quiet_NaN,
       __glibcpp_double_has_quiet_NaN): Correct mispelling.

From-SVN: r48955
2002-01-17 15:46:48 +00:00
Phil Edwards
066930bbe1 Makefile.am (std_headers): Update list with new names.
2002-01-11  Phil Edwards  <pme@gcc.gnu.org>

	* include/Makefile.am (std_headers):  Update list with new names.
	(stamp-std):  Link to standardized name.
	* include/Makefile.in:  Regenerate.

	* include/std/algorithm, include/std/bitset, include/std/complex,
	include/std/deque, include/std/fstream, include/std/functional,
	include/std/iomanip, include/std/ios, include/std/iosfwd,
	include/std/iostream, include/std/istream, include/std/iterator,
	include/std/limits, include/std/list, include/std/locale,
	include/std/map, include/std/memory, include/std/numeric,
	include/std/ostream, include/std/queue, include/std/set,
	include/std/sstream, include/std/stack, include/std/stdexcept,
	include/std/streambuf, include/std/string, include/std/utility,
	include/std/valarray, include/std/vector:  Rename to...

	* include/std/std_algorithm.h, include/std/std_bitset.h,
	include/std/std_complex.h, include/std/std_deque.h,
	include/std/std_fstream.h, include/std/std_functional.h,
	include/std/std_iomanip.h, include/std/std_ios.h,
	include/std/std_iosfwd.h, include/std/std_iostream.h,
	include/std/std_istream.h, include/std/std_iterator.h,
	include/std/std_limits.h, include/std/std_list.h,
	include/std/std_locale.h, include/std/std_map.h,
	include/std/std_memory.h, include/std/std_numeric.h,
	include/std/std_ostream.h, include/std/std_queue.h,
	include/std/std_set.h, include/std/std_sstream.h,
	include/std/std_stack.h, include/std/std_stdexcept.h,
	include/std/std_streambuf.h, include/std/std_string.h,
	include/std/std_utility.h, include/std/std_valarray.h,
	include/std/std_vector.h:  ...this.

From-SVN: r48788
2002-01-12 00:50:04 +00:00