Simon Marshall
95b147fe4a
re PR libstdc++/15090 (-fno-for-scope vs. libstdc++)
...
2004-05-13 Simon Marshall <simon.marshall@misys.com>
Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/15090
* include/bits/locale_facets.h: Fix for -fno-for-scope.
* include/debug/safe_sequence.h: Same.
* include/debug/safe_iterator.tcc: Same.
* src/debug.cc: Same.
* src/locale.cc: Same.
* src/locale_init.cc: Same.
* src/localename.cc: Same.
* config/locale/gnu/ctype_members.cc: Same.
* config/locale/gnu/numeric_members.cc: Same.
* testsuite/testsuite_abi.cc: Same.
* testsuite/testsuite_hooks.cc: Same.
Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
From-SVN: r81795
2004-05-13 16:29:39 +00:00
Paolo Carlini
4df9c41de5
Optimize locale::_M_impl->_M_names for the most common cases...
...
2004-05-03 Paolo Carlini <pcarlini@suse.de>
Optimize locale::_M_impl->_M_names for the most common cases:
!_M_names[0] means unnamed; !_M_names[1] means all the categories
the same name (_M_names[0] && _M_names[1] means that the full set
of _M_names must be processed, the general case).
* include/bits/locale_classes.h (locale::_Impl::_M_check_same_name):
Tweak, saving work when !_M_names[1].
(locale::locale(const locale&, _Facet*): Simplify: now just setting
_M_names[0] = 0 means unnamed.
* src/locale.cc (locale::operator==): Deal first with the common,
easy cases, otherwise fall back to locale::name().
(locale::name()): Tweak, if !_M_names[0] just return "*".
(locale::_Impl::_Impl(const _Impl&, size_t): Tweak, early stop
copying __imp._M_names if !__imp._M_names[0] or !__imp._M_names[1].
* src/locale_init.cc (locale::_Impl::_Impl(size_t)): Tweak.
* src/localename.cc (locale::_Impl::_Impl(const char*, size_t):
Simplify when !std::strchr, just updating _M_names[0]; clean up.
(locale::_Impl::_M_replace_categories): When !_M_names[1] prepare
for the general case (full set of names), then do the usual work;
clean up.
* src/locale.cc (locale::name()): Reserve space in __ret.
* src/locale_init.cc (locale::global(const locale&)): Save
the name in a temporary.
* src/localename.cc (locale::locale(const char*)): Reserve space
in __str.
From-SVN: r81430
2004-05-03 12:14:07 +00:00
Paolo Carlini
5963910694
locale.cc (locale::operator==): Always avoid constructing locale::name(), directly compare pairs of _M_names.
...
2004-04-29 Paolo Carlini <pcarlini@suse.de>
* src/locale.cc (locale::operator==): Always avoid constructing
locale::name(), directly compare pairs of _M_names.
From-SVN: r81309
2004-04-29 22:07:13 +00:00
Benjamin Kosnik
390e4c0dbe
c++config (_GLIBCXX_STD): New.
...
2004-04-16 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/c++config (_GLIBCXX_STD): New.
* src/list.cc: Use it.
* include/std/std_bitset.h: Same.
* include/bits/vector.tcc: Same.
* include/bits/stl_set.h: Same.
* include/bits/stl_multiset.h: Same.
* include/bits/stl_multimap.h: Same.
* include/bits/stl_map.h: Same.
* include/bits/stl_list.h: Same.
* include/bits/stl_vector.h: Same.
* include/bits/stl_bvector.h: Same.
* include/bits/stl_deque.h: Same.
* include/bits/deque.tcc: Same.
* include/bits/list.tcc: Same.
* include/debug/vector: Same.
* include/debug/set.h: Same.
* include/debug/multiset.h: Same.
* include/debug/multimap.h: Same.
* include/debug/map.h: Same.
* include/debug/list: Same.
* include/debug/deque: Same.
* include/debug/bitset: Same.
* include/debug/formatter.h (__gnu_debug): Remove using directive.
Add using declaration for std::type_info.
* include/debug/safe_iterator.h: Add using declaration for
std::iterator_traits and std::pair.
* src/debug_list.cc: New.
* src/Makefile.am: Add debug_list.cc.
* src/Makefile.in: Regenerate.
* config/linker-map.gnu: Add _List_node_base exports for std and
__gnu_norm.
* include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl
idiom that other containers use.
* testsuite/23_containers/vector/bool/clear_allocator.cc: New.
From-SVN: r80763
2004-04-16 19:04:07 +00:00
Paolo Carlini
d7ed521ba9
locale.cc (locale::operator==): When _M_impl == __rhs._M_impl avoid constructing unnecessarily this->name().
...
2004-04-15 Paolo Carlini <pcarlini@suse.de>
* src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl
avoid constructing unnecessarily this->name().
From-SVN: r80714
2004-04-15 08:27:29 +00:00
Benjamin Kosnik
563ae04fec
Fixups for EDG front end.
...
2004-04-06 Benjamin Kosnik <bkoz@redhat.com>
Fixups for EDG front end.
* include/ext/rope: Instead of non-existent function
_Data_allocate, use allocator's allocate. Use this.
(namespace _Rope_constants): Move _S_max_rope_depth, and _Tag
enumerations from _Rope_RopeRep here.
* include/ext/ropeimpl.h: Same.
* src/ext-inst.cc (_S_min_len): Fix up definition.
* config/locale/gnu/ctype_members.cc: Qualify base class members
with this.
* config/locale/generic/ctype_members.cc: Same.
* config/locale/gnu/messages_members.h: Same.
* config/locale/generic/messages_members.h: Same.
* src/ctype.cc: Same.
* include/bits/codecvt.h: Same.
* include/bits/boost_concept_check.h: Declare.
(__error_type_must_be_an_unsigned_integer_type): Remove this.
(__error_type_must_be_an_integer_type): Remove this.
(__error_type_must_be_a_signed_integer_type): Remove this.
* config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast.
* libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception
specification to definition.
(__cxa_allocate_exception): Same.
* libsupc++/eh_catch.cc (__cxa_begin_catch): Same.
* libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same.
(__cxa_get_globals): Same.
* libsupc++/del_op.cc: Add comment about freestanding.
From-SVN: r80475
2004-04-07 03:33:36 +00:00
Paolo Carlini
29d4adf460
acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
...
2004-03-22 Paolo Carlini <pcarlini@suse.de>
* acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
* configure: Regenerate.
* config/allocator/pool_allocator_base.h: New.
* include/ext/pool_allocator.h: Convert to a standard-conforming
allocator.
* src/allocator.cc: Tweak instantiations.
* testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc.
* testsuite/performance/20_util/allocator/insert_insert.cc: Ditto.
* testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto.
* testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
* testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
* testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
From-SVN: r79824
2004-03-22 13:07:13 +00:00
Phil Edwards
d54bc1d870
acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT): Set LIBICONV, not libiconv.
...
2004-03-19 Phil Edwards <phil@codesourcery.com>
* acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT): Set LIBICONV,
not libiconv. SUBST this variable as well.
* testsuite/Makefile.am (site.exp): New target, based on that
created by automake. Also set libiconv.
* configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
testsuite/Makefile.in: Regenerate.
From-SVN: r79678
2004-03-19 11:34:47 +00:00
Benjamin Kosnik
8b0d605196
allocator: New.
...
2004-03-13 Benjamin Kosnik <bkoz@redhat.com>
* config/allocator: New.
* config/allocator/bitmap_allocator_base.h: New.
* config/allocator/malloc_allocator_base.h: New.
* config/allocator/mt_allocator_base.h: New.
* config/allocator/new_allocator_base.h: New.
* include/bits/allocator.h: Include c++allocator.h.
* acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New.
* aclocal.m4: Regenerate.
* configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR.
* configure: Regenerate.
* include/Makefile.am (host_headers_extra): Add c++allocator.h.
* include/Makefile.in: Regenerate.
* docs/html/configopts.html: Add enable-libstdcxx-allocator.
From-SVN: r79435
2004-03-13 06:54:25 +00:00
Benjamin Kosnik
f83295bafc
re PR libstdc++/12658 (Thread safety problems in locale::global() and locale::locale())
...
2004-03-06 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/12658
* src/locale_init.cc (locale::locale): Lock critical regions with
external mutexes.
(locale::global): Same.
* include/bits/concurrence.h (__glibcxx_mutex_define_initialized):
Add in once bits for cases without __GTHREAD_MUTEX_INIT.
(__glibcxx_mutex_lock): Same.
* config/cpu/generic/atomicity.h: Remove
_GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
* src/misc-inst.cc: Move all locking bits out of this file.
* config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
* src/misc-inst.cc: Same.
* config/cpu/hppa/atomicity.h: Same.
* config/linker-map.gnu: Remove types in the signature of atomic
exports, as they may vary.
From-SVN: r79043
2004-03-07 01:32:43 +00:00
Benjamin Kosnik
f90e600a4e
1.cc: Provide explicit instantiations for non-weak systems.
...
2004-03-04 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/20_util/allocator/1.cc: Provide explicit
instantiations for non-weak systems.
* testsuite/20_util/binders.cc: Same.
* testsuite/20_util/allocator/8230.cc: Same.
* testsuite/20_util/allocator/10378.cc: Same.
* testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
* testsuite/22_locale/ctype/is/char/2.cc: Same.
* testsuite/thread/pthread7-rope.cc: Same.
* testsuite/thread/pthread6.cc: Same.
* testsuite/thread/pthread5.cc: Same.
* testsuite/thread/pthread4.cc: Same.
* testsuite/thread/pthread1.cc: Same.
* testsuite/ext/rope.cc: Same.
* testsuite/ext/hash_set.cc: Same.
* testsuite/ext/hash_map.cc: Same.
* testsuite/ext/concept_checks.cc: Same.
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
* testsuite/25_algorithms/unique/2.cc: Same.
* testsuite/25_algorithms/unique/1.cc: Same.
* testsuite/25_algorithms/rotate.cc: Same.
* testsuite/25_algorithms/min_max.cc: Same.
* testsuite/25_algorithms/equal.cc: Same.
* testsuite/24_iterators/rel_ops.cc: Same.
* testsuite/24_iterators/iterator.cc: Same.
* testsuite/24_iterators/insert_iterator.cc: Same.
* testsuite/24_iterators/front_insert_iterator.cc: Same.
* testsuite/24_iterators/back_insert_iterator.cc: Same.
* testsuite/23_containers/vector/resize/1.cc: Same.
* testsuite/23_containers/vector/modifiers/2.cc: Same.
* testsuite/23_containers/vector/modifiers/1.cc: Same.
* testsuite/23_containers/vector/invalidation/4.cc: Same.
* testsuite/23_containers/vector/invalidation/3.cc: Same.
* testsuite/23_containers/vector/invalidation/2.cc: Same.
* testsuite/23_containers/vector/invalidation/1.cc: Same.
* testsuite/23_containers/vector/element_access/1.cc: Same.
* testsuite/23_containers/vector/cons/6513.cc: Same.
* testsuite/23_containers/vector/cons/3.cc: Same.
* testsuite/23_containers/vector/cons/2.cc: Same.
* testsuite/23_containers/vector/cons/1.cc: Same.
* testsuite/23_containers/vector/capacity/8230.cc: Same.
* testsuite/23_containers/vector/capacity/1.cc: Same.
* testsuite/23_containers/vector/bool/6886.cc: Same.
* testsuite/23_containers/stack/members/7158.cc: Same.
* testsuite/23_containers/set/invalidation/2.cc: Same.
* testsuite/23_containers/set/invalidation/1.cc: Same.
* testsuite/23_containers/queue/members/7157.cc: Same.
* testsuite/23_containers/priority_queue/members/7161.cc: Same.
* testsuite/23_containers/multiset/invalidation/2.cc: Same.
* testsuite/23_containers/multiset/invalidation/2.cc: Same.
* testsuite/23_containers/multiset/insert/1.cc: Same.
* testsuite/23_containers/multimap/invalidation/2.cc: Same.
* testsuite/23_containers/multimap/invalidation/2.cc: Same.
* testsuite/23_containers/map/operators/1.cc: Same.
* testsuite/23_containers/map/invalidation/2.cc: Same.
* testsuite/23_containers/map/invalidation/1.cc: Same.
* testsuite/23_containers/map/insert/1.cc: Same.
* testsuite/23_containers/list/operators/4.cc: Same.
* testsuite/23_containers/list/operators/3.cc: Same.
* testsuite/23_containers/list/operators/2.cc: Same.
* testsuite/23_containers/list/operators/1.cc: Same.
* testsuite/23_containers/list/modifiers/3.cc: Same.
* testsuite/23_containers/list/modifiers/2.cc: Same.
* testsuite/23_containers/list/modifiers/1.cc: Same.
* testsuite/23_containers/list/invalidation/4.cc: Same.
* testsuite/23_containers/list/invalidation/3.cc: Same.
* testsuite/23_containers/list/invalidation/2.cc: Same.
* testsuite/23_containers/list/invalidation/1.cc: Same.
* testsuite/23_containers/list/cons/9.cc: Same.
* testsuite/23_containers/list/cons/8.cc: Same.
* testsuite/23_containers/list/cons/7.cc: Same.
* testsuite/23_containers/list/cons/6.cc: Same.
* testsuite/23_containers/list/cons/5.cc: Same.
* testsuite/23_containers/list/cons/4.cc: Same.
* testsuite/23_containers/list/cons/3.cc: Same.
* testsuite/23_containers/list/cons/2.cc: Same.
* testsuite/23_containers/list/cons/1.cc: Same.
* testsuite/23_containers/list/capacity/1.cc: Same.
* testsuite/23_containers/deque/operators/1.cc: Same.
* testsuite/23_containers/deque/invalidation/4.cc: Same.
* testsuite/23_containers/deque/invalidation/3.cc: Same.
* testsuite/23_containers/deque/invalidation/2.cc: Same.
* testsuite/23_containers/deque/invalidation/1.cc: Same.
* testsuite/23_containers/deque/cons/2.cc: Same.
* testsuite/23_containers/deque/cons/1.cc: Same.
* src/allocator.cc: Add char, wchar_t instantiations
to match extern template declarations in memory.h.
From-SVN: r78922
2004-03-04 18:11:08 +00:00
Benjamin Kosnik
ec2075e962
Support automake 1.8.2
...
2004-03-02 Benjamin Kosnik <bkoz@redhat.com>
Support automake 1.8.2
* configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
* po/Makefile.am (EXTRA_DIST): New.
* po/Makefile.in: Regenerate.
* Makefile.in: Same.
* include/Makefile.in: Same.
* libmath/Makefile.in: Same.
* libsupc++/Makefile.in: Same.
* src/Makefile.in: Same.
* testsuite/Makefile.in: Same.
* include/Makefile.am (${host_builddir}/gthr-posix.h): Use
__GXX_WEAK__ instead of SUPPORTS_WEAK.
(${host_builddir}/gthr-default.h): Same.
(${host_builddir}/gthr.h): Same.
* acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
_GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
-fno-weak.
* aclocal.m4: Regenerate.
* acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
* config.h.in: Regenerate.
* configure: Same.
From-SVN: r78770
2004-03-02 18:30:08 +00:00
Benjamin Kosnik
00d04db682
atomicity.h: Include c++config.h to get defines.
...
2004-02-27 Benjamin Kosnik <bkoz@redhat.com>
* config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
* src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
* config/os/irix/irix5.2/atomicity.h: Merge..
* config/os/irix/irix6.5/atomicity.h: Merge..
* config/os/irix/atomicity.h: ...into this.
* config/os/irix/atomic_word.h: New.
* configure.host: Set atomic_word_dir for irix.
* hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
* i386/atomicity.h: Same.
* m68k/atomicity.h: Same.
* sparc/atomicity.h: Same.
From-SVN: r78577
2004-02-27 20:56:46 +00:00
Paolo Carlini
f4bdbead2e
locale_facets.h (money_get<>::_M_extract): Change signature: now takes a plain string&.
...
2004-02-27 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.h (money_get<>::_M_extract):
Change signature: now takes a plain string&.
* include/bits/locale_facets.tcc (money_get<>::_M_extract):
Update consistently the definition; use the moneypunct cache
to parse the value; use swap to change __units.
(money_get<>::do_get(long double&)): Update call of _M_extract,
avoid ctype::narrow, not correct wrt the standard.
(money_get<>::do_get(string_type&)): Likewise, update call
of _M_extract, use ctype::widen.
* src/locale-inst.cc: Tweak instantiations of _M_extract.
From-SVN: r78562
2004-02-27 10:12:01 +00:00
Benjamin Kosnik
40fcf31b2f
[multiple changes]
...
2004-02-26 Ian Lance Taylor <ian@wasabisystems.com>
* testsuite/demangle/abi_examples/01.cc: Expect error -2.
* testsuite/demangle/abi_examples/02.cc: Likewise.
* testsuite/demangle/regression/cw-11.cc: Likewise.
* testsuite/demangle/regression/cw-16.cc: Change two expected
results to match libiberty demangler output.
2004-02-26 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/10246
* libsupc++/Makefile.am: Use libiberty demangler.
(c_sources): Add cp-demangle.c.
* libsupc++/Makefile.in: Regenerate.
* src/Makefile.am (sources): Remove demangle.cc.
* src/Makefile.in: Regenerate.
* include/Makefile.am (bits_headers): Move demangle.h.
(ext_headers): ...here.
* include/Makefile.in: Regenerate.
* include/bits/demangle.h: Move...
* include/ext/demangle.h: ...here.
* src/demangle.cc: Remove.
2004-02-26 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/demangle.h: Add type template parameter to all
templates with just an Allocator template parameter.
From-SVN: r78553
2004-02-27 03:21:16 +00:00
Benjamin Kosnik
2c5d0ae842
atomicity.h: New, forward declarations for __atomic_add and __exchange_and_add.
...
2004-02-25 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/atomicity.h: New, forward declarations for __atomic_add
and __exchange_and_add.
* config/cpu/generic/atomic_word.h: New, typdef for atomic word.
* config/cpu/cris/atomic_word.h: Same.
* config/cpu/sparc/atomic_word.h: Same.
* include/bits/ios_base.h (_Callback_list::_M_remove_reference):
Qualifiy with __gnu_cxx.
(_Callback_list::_M_add_reference): Same.
* include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
(locale::facet::_M_remove_reference): Same.
(locale::_Impl::_M_add_reference): Add.
(locale::_Impl::_M_remove_reference): Same.
* include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
(basic_string::_Rep::_M_dispose): Same.
* src/ios.cc (ios_base::xalloc): Same.
* src/ios_init.cc (ios_base::Init::Init): Same.
(ios_base::Init::~Init): Same.
* src/locale.cc (locale:🆔 :_M_id): Same.
* config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
static, and inline keyworks.
* config/cpu/alpha/atomicity.h: Same.
* config/cpu/cris/atomicity.h: Same.
* config/cpu/generic/atomicity.h: Same.
* config/cpu/hppa/atomicity.h: Same.
* config/cpu/i386/atomicity.h: Same.
* config/cpu/ia64/atomicity.h: Same.
* config/cpu/m68k/atomicity.h: Same.
* config/cpu/mips/atomicity.h: Same.
* config/cpu/powerpc/atomicity.h: Same.
* config/cpu/s390/atomicity.h: Same.
* config/cpu/sparc/atomicity.h: Same.
* src/Makefile.am (host_sources): Add atomicity.cc.
(atomicity.cc): New rule.
* src/Makefile.in: Regenerate.
* include/Makefile.am (host_headers): Remove host atomicity.h.
(host_headers): Add atomic_word.h.
(bits_headers): Add bits atomicity.h.
Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
* include/Makefile.in: Regenerate.
* configure.host (atomic_word_dir): Add.
* configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
* configure: Regenerate.
* config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
From-SVN: r78544
2004-02-27 00:49:50 +00:00
Benjamin Kosnik
f263b26e17
malloc_allocator.h: Add operators ==, !=.
...
2004-02-20 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/malloc_allocator.h: Add operators ==, !=.
* include/ext/new_allocator.h: Add operators ==, !=.
* include/ext/mt_allocator.h (__mt_alloc::tune): New.
(__mt_alloc::_S_get_options): New.
(__mt_alloc::_S_set_options): New.
(__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
(__mt_alloc::_S_no_of_bins): To _S_bin_size.
Move functions out of line, simplify, format.
* src/allocator.cc: Simplify explicit instantiations.
* include/bits/allocator.h: Tweak.
From-SVN: r78314
2004-02-23 15:41:43 +00:00
Paolo Carlini
20da06efdc
locale_facets.tcc (money_put<>::_M_insert): Restructure formatting of value component...
...
2004-02-22 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (money_put<>::_M_insert):
Restructure formatting of value component, first dealing with
the non-decimal digits; use reserve.
2004-02-22 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.h (class money_get): Inherit
from money_base too; tweak declaration of _M_extract, now
parameterized on _Intl too.
* include/bits/locale_facets.tcc (money_get<>::_M_extract):
Update definition to use the cache; call reserve on __res to
avoid multiple reallocations; fix parsing of sign component
according to 22.2.6.1.2, p3.
(money_get<>::do_get(long double&),
money_get<>::do_get(string_type&)): Update calls of _M_extract.
* src/locale-inst.cc: Add instantiations of
money_get::_M_extract<false> and money_get::_M_extract<true>.
* testsuite/22_locale/money_get/get/char/14.cc: New.
* testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
From-SVN: r78253
2004-02-22 11:13:27 +00:00
Mark Mitchell
afc3bb58d5
* libsupc++/vterminate.cc
...
(__gnu_cxx::__verbose_terminate_handler): Guard against recursive
calls to terminate.
* src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
From-SVN: r78235
2004-02-21 20:59:26 +00:00
Paolo Carlini
fe932e504b
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms.
...
2004-02-21 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.h (class money_base): Add { _S_minus,
_S_zero, _S_end } enum, _S_atoms.
(struct __moneypunct_cache<>): Parameterize on _Intl too; add
_M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
_M_negative_sign_size, _M_atoms; tweak constructor consistently.
(__moneypunct_cache<>::~__moneypunct_cache): Update.
(__moneypunct_cache<>::_M_cache): Fill the cache.
(class moneypunct): Tweak __cache_type typedef.
(class money_put): Inherit from money_base too; tweak declaration
of _M_insert, now parameterized on _Intl.
* include/bits/locale_facets.tcc
(struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
(money_put<>::_M_insert): Update definition to use the cache;
call reserve on __res to avoid multiple reallocations.
(money_put<>::do_put(long double),
money_put<>::do_put(const string_type&): Update calls of _M_insert.
* config/locale/generic/monetary_members.cc
(moneypunct<char, true>::_M_initialize_moneypunct,
moneypunct<char, false>::_M_initialize_moneypunct,
moneypunct<wchar_t, true>::_M_initialize_moneypunct,
moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
* config/locale/gnu/monetary_members.cc: Likewise.
* config/locale/gnu/monetary_members.cc
(moneypunct<wchar_t, true>::~moneypunct(),
moneypunct<wchar_t, false>::~moneypunct()): Likewise.
* src/globals_locale.cc: Tweak fake_money_cache_c.
* src/locale-inst.cc: Add instantiations for
money_put::_M_insert<false> and money_put::_M_insert<true> and
__moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
* src/locale_facets.cc: Define money_base::_S_atoms.
* src/locale_init.cc: Update placement new of
__moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
__moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
* config/locale/generic/numeric_members.cc: Clean up.
* config/locale/gnu/numeric_members.cc: Likewise.
* testsuite/22_locale/money_put/put/char/1.cc: Likewise.
* testsuite/22_locale/money_put/put/char/2.cc: Likewise.
* testsuite/22_locale/money_put/put/char/3.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
From-SVN: r78216
2004-02-21 09:26:35 +00:00
Paolo Carlini
cf0d2c4044
re PR libstdc++/14071 (locale::global doesn't always call setlocale)
...
2004-02-09 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/14071
* src/locale_init.cc (locale::global(const locale&)): Use
locale::name() in order to decide whether calling setlocale.
* testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
* include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
Avoid computing &= unnecessarily.
From-SVN: r77568
2004-02-09 23:10:47 +00:00
Benjamin Kosnik
c9732ce7d5
demangle.cc: Add instantiations.
...
2004-01-30 Benjamin Kosnik <bkoz@redhat.com>
* src/demangle.cc: Add instantiations.
* src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
* src/Makefile.in: Regenerate.
From-SVN: r76978
2004-01-30 17:54:10 +00:00
David Edelsohn
25d244475b
allocator.cc: Protect _S_get_thread_id() and _S_thread_key_destr() with #ifdef __GTHREADS.
...
* src/allocator.cc: Protect _S_get_thread_id() and
_S_thread_key_destr() with #ifdef __GTHREADS.
From-SVN: r76977
2004-01-30 12:45:01 -05:00
Benjamin Kosnik
ba9d552e03
Makefile.am (bits_headers): Remove allocator_traits.h.
...
2004-01-28 Benjamin Kosnik <bkoz@redhat.com>
* include/Makefile.am (bits_headers): Remove allocator_traits.h.
* include/Makefile.in: Regenerate.
* include/bits/allocator_traits.h: Remove.
* include/bits/allocator.h: Remove allocator_traits.h include, and
relevant comments.
(allocator): Empty base class, inherit from the underlying allocator.
* src/allocator-inst.cc: Move __pool_alloc instantiation to...
* src/allocator.cc: ...here. New. For the underlying allocators.
Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
* config/linker-map.gnu: Remove __pool_alloc bits.
* src/Makefile.am (sources): Add allocator.cc.
* src/Makefile.in: Regenerate.
* testsuite/20_util/allocator/1.cc: Split second test into...
* testsuite/20_util/allocator/8230.cc: ...this.
* include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
typedef to use std::allocatore. Format.
* include/ext/pool_allocator.h: Remove allocator_traits.h include,
_Alloc_traits.
* include/ext/mt_allocator.h (__gnu_cxx): Qualify
__throw_bad_alloc calls. Don't include <memory>.
* include/ext/malloc_allocator.h: Remove <memory> include.
* include/ext/new_allocator.h (new_allocator): Same.
* include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
declaration. Switch __alloc to _Alloc.
* include/ext/hashtable.h: Remove __alloc.
* include/backward/alloc.h: Only inject allocator, not
implementation details.
* include/ext/mt_allocator.h: Replace free with delete.
From-SVN: r76821
2004-01-29 00:18:40 +00:00
Benjamin Kosnik
ff4cf05b3d
globals_io.cc: Change to __gnu_internal namespace.
...
2004-01-28 Benjamin Kosnik <bkoz@redhat.com>
* src/globals_io.cc: Change to __gnu_internal namespace.
* src/globals_locale.cc: Same.
* src/locale_init.cc: Same.
* src/ios_init.cc: Same.
From-SVN: r76810
2004-01-28 21:20:42 +00:00
Jerry Quinn
2a837cf803
re PR libstdc++/11584 (ios::iword() fails to zero-initialize storage on failure)
...
2004-01-27 Jerry Quinn <jlquinn@optonline.net>
PR libstdc++/11584
* include/bits/ios_base.h (ios_base::_M_grow_words): Add
iword/pword selector.
(ios_base::iword, ios_base::pword): Use it.
* src/ios.cc (ios_base::_M_grow_words): Clear _M_word_zero
iword or pword member on alloc failure.
* testsuite/27_io/ios_base/storage/11584.cc: New test.
From-SVN: r76725
2004-01-27 15:45:43 +00:00
Paolo Carlini
ba9119ec89
c_locale.cc: Fix throw messages to use the __N marker.
...
2004-01-26 Paolo Carlini <pcarlini@suse.de>
* config/locale/generic/c_locale.cc: Fix throw messages
to use the __N marker.
* config/locale/gnu/c_locale.cc: Likewise.
* config/locale/ieee_1003.1-2001/codecvt_specializations.h:
Likewise.
* docs/html/17_intro/C++STYLE: Likewise.
* include/bits/basic_ios.tcc: Likewise.
* include/bits/fstream.tcc: Likewise.
* include/bits/vector.tcc: Likewise.
* include/ext/ropeimpl.h: Likewise.
* include/std/std_bitset.h: Likewise.
* src/ios.cc: Likewise.
* src/locale.cc: Likewise.
* src/localename.cc: Likewise.
From-SVN: r76684
2004-01-27 00:49:03 +00:00
Paolo Carlini
fefe561e80
basic_string.h (assign(const basic_string&, size_type, size_type)): Define inline here.
...
2004-01-24 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.h (assign(const basic_string&,
size_type, size_type)): Define inline here.
(replace(size_type, size_type, const basic_string&,
size_type, size_type)): Ditto.
(_M_replace_dispatch(iterator, iterator, _InputIterator,
_InputIterator, __false_type)): Only declare.
(_M_replace(iterator, iterator, _InputIterator,
_InputIterator)): Remove.
* include/bits/basic_string.tcc (assign(const basic_string&,
size_type, size_type)): Move inline.
(replace(size_type, size_type, const basic_string&,
size_type, size_type)): Ditto.
(_M_replace_dispatch(iterator, iterator, _InputIterator,
_InputIterator, __false_type)): Define, now does also what
_M_replace did before.
* src/string-inst.cc (_M_replace): Don't instantiate.
* include/bits/basic_string.tcc (find(const _CharT*,
size_type, size_type)): Tidy.
(rfind(_CharT, size_type)): Ditto.
(find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
(find_first_not_of(_CharT, size_type)): Ditto.
(find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
(find_last_not_of(_CharT, size_type)): Ditto.
From-SVN: r76508
2004-01-24 11:34:06 +00:00
Paolo Carlini
7bb9b33b3b
basic_string.h (_M_replace_safe): Change signatures to take size_types and const _CharT*.
...
2004-01-22 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.h (_M_replace_safe): Change
signatures to take size_types and const _CharT*.
(_M_replace_aux): Likewise, takes size_types instead of
iterators.
(append(size_type, _CharT)): Update call.
(assign(size_type, _CharT)): Ditto.
(replace(iterator, iterator, size_type, _CharT)): Ditto.
(_M_replace_dispatch(iterator, iterator, _Integer,
_Integer, __true_type)): Ditto.
* include/bits/basic_string.tcc (assign(const _CharT*,
size_type)): Ditto.
(insert(size_type, const _CharT*, size_type)): Ditto.
(replace(size_type, size_type, const _CharT*,
size_type)): Ditto.
(_M_replace(iterator, iterator, _InputIterator,
_InputIterator)): Ditto.
(append(const basic_string&)): Ditto.
(append(const basic_string&, size_type, size_type): Ditto.
(append(const _CharT*, size_type): Ditto.
(_M_replace_safe, _M_replace_safe): Change definitions
accordingly, simplify.
* string-inst.cc (_M_replace_safe): Don't instantiate.
From-SVN: r76353
2004-01-22 12:46:28 +00:00
Paolo Carlini
f18be892cb
debug.cc: Make sure all the names are prefixed with double (or single) underscore.
...
2004-01-19 Paolo Carlini <pcarlini@suse.de>
* src/debug.cc: Make sure all the names are prefixed with
double (or single) underscore.
From-SVN: r76163
2004-01-19 18:10:55 +00:00
Paolo Carlini
33d4e9b26c
debug.cc: Trivial formatting change.
...
2004-01-19 Paolo Carlini <pcarlini@suse.de>
* src/debug.cc: Trivial formatting change.
From-SVN: r76147
2004-01-19 12:11:50 +00:00
Paolo Carlini
9c96a6896b
basic_string.h (append(size_type, _CharT)): Moved inline...
...
2004-01-18 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.h (append(size_type, _CharT)):
Moved inline, just call _M_replace_aux, no source iterators at
risk of being clobbered.
(assign(size_type, _CharT)): Call directly _M_replace_aux.
(_M_replace(iterator, iterator, _InputIterator, _InputIterator,
input_iterator_tag)): Remove fifth unused argument.
(_M_replace_dispatch(iterator, iterator, _InputIterator,
_InputIterator, __false_type)): Update call.
* include/bits/basic_string.tcc (replace(size_type, size_type,
const _CharT*, size_type)): Update call.
(_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
throw string literal.
(_M_replace_safe(iterator, iterator, _ForwardIterator,
_ForwardIterator)): Likewise.
(_M_replace(iterator, iterator, _InputIterator, _InputIterator,
input_iterator_tag)): Remove fifth unused argument.
(append(size_type __n, _CharT __c)): Move inline.
* src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
const C*, const C*, input_iterator_tag)): Remove fifth unused
argument.
From-SVN: r76091
2004-01-18 09:54:46 +00:00
Paolo Carlini
47f62b27c8
locale_facets.h (struct __numpunct_cache): Add member _M_grouping_size, caching the length of _M_grouping.
...
2004-01-14 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.h (struct __numpunct_cache):
Add member _M_grouping_size, caching the length of _M_grouping.
(__numpunct_cache<>::_M_cache): Assign the latter.
(__verify_grouping): Move declaration...
* include/bits/locale_facets.tcc (__verify_grouping):
... here, change signature to take a const char* and a size_t
for the grouping; not a template anymore.
(__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
Likewise change signature and tweak consistently.
(num_get::_M_extract_float, num_get::_M_extract_int,
num_put::_M_insert_int, num_put::_M_insert_float,
money_get::do_get(string_type&), money_get::do_put(string_type)):
Update callers.
* config/locale/generic/numeric_members.cc
(numpunct<>::_M_initialize_numpunct): Assign the new member.
* config/locale/gnu/numeric_members.cc
(numpunct<>::_M_initialize_numpunct): Likewise.
* src/locale-inst.cc (__add_grouping): Tweak signature.
(__verify_grouping): Don't instantiate, not a template anymore.
* include/bits/locale_facets.h: Rename _M_truename_len ->
_M_truename_size, _M_falsename_len -> _M_falsename_size.
* include/bits/locale_facets.tcc: Likewise.
* config/locale/generic/numeric_members.cc: Likewise.
* config/locale/gnu/numeric_members.cc: Likewise.
From-SVN: r75876
2004-01-14 19:14:39 +00:00
Paolo Carlini
c951359074
locale-misc-inst.cc (__convert_from_v(long), [...]): Remove, unused.
...
2004-01-13 Paolo Carlini <pcarlini@suse.de>
* src/locale-misc-inst.cc (__convert_from_v(long),
__convert_from_v(unsigned long), __convert_from_v(long long),
__convert_from_v(unsigned long long)): Remove, unused.
From-SVN: r75822
2004-01-13 23:25:55 +00:00
Benjamin Kosnik
e135a038d3
[multiple changes]
...
2004-01-07 Gawain Bolton <gp.bolton@computer.org>
* include/bits/stl_list.h:
* include/bits/list.tc:
* src/list.cc:
Performance enhancements for destructor, push_front(),
push_back(), pop_front(), pop_back(), sort()
Eliminated static_casts where possible.
Moved code out of header files into new src/list.cc
implementation file for library where possible.
Remove inheritance from iterator class and create separate
classes for non-constant and constant iterators.
* include/bits/stl_tree.h (_Rb_tree class):
* src/tree.cc:
Only erase contents in destructor.
Eliminate unnecessary initialization in assignment operator.
Optimize for the nominal case by not checking whether
container is empty in clear().
Re-order test in _M_insert() to improve performance.
Move initialization of new node's left & right pointers to
src/tree.cc to where new node's colour is initialized
and to reduce the amount of inline code.
Use _M_leftmost() and _M_end() to improve readability where
appropriate.
Create separate classes for non-constant and constant
iterators to clarify code, avoid extra template parameters and
casting away constness.
2004-01-07 Benjamin Kosnik <bkoz@redhat.com>
* src/Makefile.am (sources): Add list.cc, tree.cc.
* src/stl_tree.cc: Move to...
* src/tree.cc: ...here.
* src/list.cc: Add.
* config/linker-map.gnu: Tweaks.
* testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
* testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
* bits/stl_vector.h: Column wrap comments.
From-SVN: r75515
2004-01-07 20:55:06 +00:00
Loren J. Rittle
677e7ddcee
(re-open) PR libstdc++/12658
...
(re-open) PR libstdc++/12658
* src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
(locale::global): Likewise.
From-SVN: r75509
2004-01-07 17:40:45 +00:00
Mark Mitchell
517da0ce8a
acconfig.h: Add _GLIBCXX_USE_C99_MATH.
...
* acconfig.h: Add _GLIBCXX_USE_C99_MATH.
* acinclude.m4 (GLIBCXX_ENABLE_C99): Define GLIBCXX_USE_C99_MATH.
* configure.ac: Define HAVE_S_ISREG and HAVE_S_IFREG when
targeting newlib.
* aclocal.m4: Regenerated.
* config.h.in: Likewise.
* configure: Likewise.
* Makefile.in: Likewise.
* include/Makefile.in: Likewise.
* libmath/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* include/c_std/std_cmath.h (_GLIBCXX_USE_C99): Replace with ...
(_GLIBCXX_USE_C99_MATH): ... this.
* testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: XFAIL for
arm-none-elf.
* testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Likewise.
* testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Likewise.
* testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Likewise.
* testsuite/27_io/basic_istream/readsome/char/6476-2.cc: Likewise.
* testsuite/27_io/objects/char/9.cc: Likewise.
* testsuite/ext/stdio_filebuf/char/10063-2.cc: Likewise.
From-SVN: r75209
2003-12-29 19:26:16 +00:00
Benjamin Kosnik
70a8416094
5.cc: Don't use stdc++.h.gch.
...
2003-12-22 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/27_io/objects/char/5.cc: Don't use stdc++.h.gch.
* testsuite/27_io/objects/wchar_t/5.cc: Same.
* docs/html/test.html: Add docs for constructing test files that
don't use stdc++.h.gch.
* scripts/testsuite_flags.in (PCHFLAGS): Move to --cxxpchflags.
* testsuite/libstdc++-dg/normal.exp: Compute DEFAULT_CXXFLAGS
differently.
* include/bits/ios_base.h (ios_base::Init::_S_initialized): Remove.
* src/ios_init.cc: Same.
* config/linker-map.gnu: Same.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Adjust line numbers.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
From-SVN: r74946
2003-12-22 20:09:23 +00:00
Carlo Wood
91daef582a
ios_base.h (Init::_S_initialized): Change into declaration.
...
* include/bits/ios_base.h (Init::_S_initialized): Change into declaration.
* src/ios_init.cc (Init::_S_initialized): Add definition.
From-SVN: r74656
2003-12-16 00:15:24 +00:00
Benjamin Kosnik
3fe1373814
re PR libstdc++/12658 (Thread safety problems in locale::global() and locale::locale())
...
2003-12-15 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/12658
* include/Makefile.am (bits_headers): Add concurrence.h.
* include/Makefile.in: Regenerated.
* include/bits/concurrence.h: New.
* src/locale_init.cc: Use it.
(locale::locale): Lock critical regions.
(locale::global): Same.
From-SVN: r74648
2003-12-15 21:08:03 +00:00
Benjamin Kosnik
1313d87fd3
basic_string.h: Change _*_references to _*_refcount.
...
2003-12-15 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/basic_string.h: Change _*_references to _*_refcount.
* include/bits/locale_classes.h: Same.
* src/locale.cc: Same.
* src/locale_name.cc: Same.
* src/locale_init.cc: Same.
From-SVN: r74645
2003-12-15 19:48:50 +00:00
Benjamin Kosnik
fa972243f6
re PR libstdc++/12855 (Thread safety problems in ios_base::Init)
...
2003-12-15 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/12855
* include/bits/ios_base.h (Init::_S_ios_base_init): Change to
_S_refcount, make atomic.
* src/ios.cc: Adjust definition.
* src/ios_init.cc (ios_base::Init::Init): Use __exchange_and_add,
and __atomic_add.
(ios_base::Init::~Init): Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
From-SVN: r74642
2003-12-15 19:03:13 +00:00
Paolo Carlini
e3c0c0989b
re PR libstdc++/13341 (ctype<wchar_t>::do_narrow(wchar_t, char) is slow)
...
2003-12-12 Paolo Carlini <pcarlini@suse.de>
Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/13341
* include/bits/locale_facets.h (ctype<wchar_t>): Declare
_M_initialize_ctype() and _M_narrow_ok, _M_narrow and _M_widen.
* src/ctype.cc (ctype<wchar_t>::ctype(size_t),
ctype<wchar_t>::ctype(__c_locale, size_t)): Use
_M_initialize_ctype to fill _M_narrow and _M_widen.
(ctype_byname<wchar_t>::ctype_byname(const char*, size_t)):
Likewise.
* config/locale/generic/ctype_members.cc (do_narrow, do_widen)
Use _M_narrow and _M_widen when possible, instead of calling
wctob and btowc, respectively.
(_M_initialize_ctype): Define, it fills at construction time
_M_narrow and _M_widen.
* config/locale/gnu/ctype_members.cc: Likewise.
* testsuite/performance/narrow_widen_wchar_t.cc: New.
Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
From-SVN: r74580
2003-12-12 19:44:17 +00:00
Benjamin Kosnik
8602555360
re PR libstdc++/13296 (unnecessary libunwind support in libstdc++-v3)
...
2003-12-09 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/13296
* acinclude.m4 (GLIBCXX_ENABLE_LIBUNWIND_EXCEPTIONS): Remove.
* aclocal.m4: Regenerate.
* configure.ac: Remove call to GLIBCXX_ENABLE_LIBUNWIND_EXCEPTIONS.
* conigure: Regenerate.
* src/Makefile.am (libstdc___la_LDFLAGS): Remove LIBUNWIND_FLAGS.
* src/Makefile.in: Regenerate.
* docs/html/17_intro/configury.html: Modify.
From-SVN: r74479
2003-12-10 00:05:36 +00:00
Paolo Carlini
0fa96a6006
c_locale.cc (__convert_to_v(long&), [...]): Remove.
...
2003-12-08 Paolo Carlini <pcarlini@suse.de>
* config/locale/generic/c_locale.cc (__convert_to_v(long&),
__convert_to_v(unsigned long&), __convert_to_v(long long&),
__convert_to_v(unsigned long long&): Remove.
(__convert_to_v(float&), __convert_to_v(double&),
__convert_to_v(long double&)): Remove last unused parameter.
* config/locale/gnu/c_locale.cc: Likewise.
* include/bits/locale_facets.h: Likewise.
(num_get::_M_extract_int): Update declaration.
(class __num_base): Tweak _S_ie and _S_iE according to the
_S_atoms_in changes.
* include/bits/locale_facets.tcc (num_get::_M_extract_int):
Provide directly the final _ValueT, not a string: accumulate
the result checking for overflow at each digit.
(num_get::do_get(bool&), num_get::do_get(long&),
num_get::do_get(unsigned short&), num_get::do_get(unsigned int&),
num_get::do_get(unsigned long&), num_get::do_get(long long&),
num_get::do_get(unsigned long long&), num_get::do_get(void*&)):
Use the new _M_extract_int, simplify.
* src/locale-inst.cc (num_get::_M_extract_int(long&),
num_get::_M_extract_int(unsigned short&),
num_get::_M_extract_int(unsigned int&),
num_get::_M_extract_int(unsigned long&),
num_get::_M_extract_int(long long&),
num_get::_M_extract_int(unsigned long long&): Instantiate.
* src/locale_facets.cc (__num_base::_S_atoms_in): Reorder
the chars in the natural order: abcdefABCDEF.
From-SVN: r74423
2003-12-08 15:37:03 +00:00
Carlo Wood
69f73bd395
re PR libstdc++/13045 (Demangler does demangle floating values.)
...
PR libstdc++/13045
* bits/demangle.h
namespace __gnu_cxx::demangler
(enum substitution_nt): Removed trailing comma.
(implementation_details): Added.
(session<Allocator>::M_implementation_details): Added.
(session<Allocator>::session): Pass implementation_details.
(session<Allocator>::decode_encoding): Same.
(session<Allocator>::decode_real): Added.
(_GLIBCXX_DEMANGLER_STYLE_VOID _GLIBCXX_DEMANGLER_STYLE_LITERAL
_GLIBCXX_DEMANGLER_STYLE_LITERAL_INT
_GLIBCXX_DEMANGLER_STYLE_COMPACT_EXPR_OPS
_GLIBCXX_DEMANGLER_STYLE_SIZEOF_TYPENAME): Replaced with
implementation_details equivalent.
(session<Allocator>::decode_expression):
Use M_implementation_details instead of macros. Add extra parentheses
around 'larger than' operator in expressions in template arguments.
(session<Allocator>::decode_bare_function_type): Idem.
(session<Allocator>::decode_literal):
Idem, and call decode_real for floating literals.
(session<Allocator>::decode_type_with_postfix): Put the postfix
of the return type of (member) functions after the function
instead of after the return type. Also, put a space after the
prefix of qualified function pointers: "int (* const<space>".
* src/demangle.cc: include most dependent header file first.
* testsuite/demangle/regression/cw-16.cc: Updated two
and added three tests.
From-SVN: r74304
2003-12-05 02:40:53 +00:00
Benjamin Kosnik
82fa4538b5
re PR libstdc++/13284 (126 g++ failures due to lrand48 not defined)
...
2003-12-04 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/13284
* include/bits/stl_algo.h (__random_number): Remove.
(random_shuffle): Use rand, as permitted by DR 395.
* include/ext/algorithm: Same.
* linkage.m4 (GLIBCXX_CHECK_STDLIB_SUPPORT): Remove lrand48.
* acconfig.h: Same.
* crossconfig.m4: Remove HAVE_DRAND48, HAVE_LRAND48.
* config.h.in: Regenerated.
* configure: Same.
* aclocal.m4: Same.
From-SVN: r74288
2003-12-04 19:37:21 +00:00
Paolo Carlini
fb8d463851
std_streambuf.h (__copy_streambufs): Remove the first, unused, basic_ios<> parameter.
...
2003-11-27 Paolo Carlini <pcarlini@suse.de>
* include/std/std_streambuf.h (__copy_streambufs): Remove
the first, unused, basic_ios<> parameter.
* src/streambuf-inst.cc: Likewise.
* include/bits/streambuf.tcc: Likewise.
* include/bits/istream.tcc (operator>>(__streambuf_type*)):
Tweak accordingly the call.
* include/bits/ostream.tcc (operator<<(__streambuf_type*)):
Likewise.
* include/bits/streambuf.tcc (__copy_streambufs): Remove
redundant try/catch.
From-SVN: r73992
2003-11-27 13:13:19 +00:00
Paolo Carlini
ce492af354
locale_init.cc: Cosmetic reformatting.
...
2003-11-24 Paolo Carlini <pcarlini@suse.de>
* src/locale_init.cc: Cosmetic reformatting.
From-SVN: r73882
2003-11-24 17:24:40 +00:00
Benjamin Kosnik
9dc420e68d
formatter.h: Use _Tp as template argument.
...
2003-11-20 Benjamin Kosnik <bkoz@redhat.com>
* include/debug/formatter.h: Use _Tp as template argument.
* src/debug.cc: Same, instantiate std::size_t.
From-SVN: r73792
2003-11-21 05:49:21 +00:00