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