Commit Graph

543 Commits

Author SHA1 Message Date
Paolo Carlini
78593d78f1 istream.cc (basic_istream<char>::ignore(streamsize), [...]): In case more than numeric_limits<streamsize>::max() chars are skipped...
2005-01-11  Paolo Carlini  <pcarlini@suse.de>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* src/istream.cc (basic_istream<char>::ignore(streamsize),
	basic_istream<char>::ignore(streamsize, int_type),
	basic_istream<wchar_t>::ignore(streamsize),
	basic_istream<wchar_t>::ignore(streamsize, int_type)): In case
	more than numeric_limits<streamsize>::max() chars are skipped,
	set _M_gcount = max().
	* include/bits/istream.tcc (ignore(streamsize), ignore(streamsize,
	int_type)): Likewise; keep simple, don't forward.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r93208
2005-01-11 23:35:43 +00:00
Paolo Carlini
a141a5afe1 istream.cc (basic_istream<char>::ignore(streamsize), [...]): Revert 2005-01-05 change...
2005-01-11  Paolo Carlini  <pcarlini@suse.de>

	* src/istream.cc (basic_istream<char>::ignore(streamsize),
	basic_istream<char>::ignore(streamsize, int_type),
	basic_istream<wchar_t>::ignore(streamsize),
	basic_istream<wchar_t>::ignore(streamsize, int_type)): Revert
	2005-01-05 change: actually, the previous behavior is conforming
	and consistent with that of get(char_type*, streamsize, char_type),
	albeit slightly different from that of 3.3/3.4 in a corner case
	due to the use of snextc.
	* include/bits/istream.tcc (ignore(streamsize), ignore(streamsize,
	int_type)): Likewise.
	* testsuite/27_io/basic_istream/ignore/char/4.cc: Remove.
	* testsuite/27_io/basic_istream/ignore/wchar_t/4.cc: Likewise.

From-SVN: r93189
2005-01-11 16:48:14 +00:00
Paolo Carlini
3e636396c8 Makefile.in: Regenerate.
2005-01-10  Paolo Carlini  <pcarlini@suse.de>

	* Makefile.in: Regenerate.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* po/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

2005-01-10  Paolo Carlini  <pcarlini@suse.de>

        * include/bits/stl_algobase.h (lexicographical_compare):
        Fix concept check.

From-SVN: r93143
2005-01-10 17:07:50 +00:00
Benjamin Kosnik
825bd0e1e8 acinclude.m4: Remove CCODECVT_H.
2005-01-07  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4: Remove CCODECVT_H.
	* configure: Regenerate.
	* include/Makefile.am (host_headers_extra): Move to...
	(ext_headers): ...here.
	* include/Makefile.in: Regenerate.
	* include/ext/enc_filebuf: Remove enc_filebuf, consolidate
	enc_traits to...
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h: Move...
	* include/ext/codecvt_specializations.h: ...here. Remove
	_GLIBCXX_USE___ENC_TRAITS.
	(__enc_traits): To __encoding_state, put in __gnu_cxx namespace.
	(enc_char_traits): To __encoding_char_traits, put in __gnu_cxx
	namespace.
	* config/locale/generic/codecvt_specializations.h: Remove.
	* include/bits/codecvt.h: Remove codecvt_specializations.h include.
	* src/codecvt.cc: Remove __enc_traits::_S_max_size.

From-SVN: r93062
2005-01-07 19:34:46 +00:00
Benjamin Kosnik
56ffd9b3ba 2005-01-05 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/testsuite_hooks.h:
	(copy_constructor::mark_call):  Use __throw_runtime_error.
	(assignment_operator::mark_call): Same.
	* testsuite/testsuite_hooks.cc (verify_demangle): Same.
	(locale_data): Remove, just use runtime_error directly.
	(environment_variable): Same.
	(not_found): Same.
	(run_tests_wrapped_locale): Use __throw_runtime_error.
	(run_tests_wrapped_env): Same.
	(semaphore::semaphore): Same.
	(semaphore::signal): Same.
	(semaphore::wait): Same.
	* testsuite/testsuite_abi.h (symbol_error): Remove, use logic_error.
	* testsuite/testsuite_abi.cc (get_symbol): Use __throw_logic_error.
	(create_symbols): Use __throw_runtime_error.
	* src/bitmap_allocator.cc: Use __throw_bad_alloc.

From-SVN: r92989
2005-01-06 07:08:48 +00:00
Paolo Carlini
1e156882fa istream.cc (basic_istream<char>::ignore(streamsize), [...]): At the end, first check _M_gcount vs __n.
2005-01-05  Paolo Carlini  <pcarlini@suse.de>

	* src/istream.cc (basic_istream<char>::ignore(streamsize),
	basic_istream<char>::ignore(streamsize, int_type),
	basic_istream<wchar_t>::ignore(streamsize),
	basic_istream<wchar_t>::ignore(streamsize, int_type)): At the end,
	first check _M_gcount vs __n.
	* include/bits/istream.tcc (ignore(streamsize), ignore(streamsize,
	int_type)): Likewise.
	* testsuite/27_io/basic_istream/ignore/char/4.cc: New.
	* testsuite/27_io/basic_istream/ignore/wchar_t/4.cc: Likewise.

From-SVN: r92947
2005-01-05 11:11:48 +00:00
Paolo Carlini
ab4af6a549 istream.tcc (ignore(streamsize), [...]): Reset _M_gcount to numeric_limits<streamsize>::min().
2005-01-03  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/istream.tcc (ignore(streamsize), ignore(streamsize,
	int_type)): Reset _M_gcount to numeric_limits<streamsize>::min().
	* src/istream.cc (basic_istream<char>::ignore(streamsize, int_type),
	basic_istream<wchar_t>::ignore(streamsize, int_type)): Likewise.
	* src/istream.cc (basic_istream<char>::ignore(streamsize),
	basic_istream<wchar_t>::ignore(streamsize)): Likewise; fix a typo.

From-SVN: r92827
2005-01-03 14:07:26 +00:00
Paolo Carlini
bea53dbfbc istream.cc (basic_istream<char>::ignore(streamsize), [...]): Avoid _M_gcount overflows.
2005-01-02  Paolo Carlini  <pcarlini@suse.de>

	* src/istream.cc (basic_istream<char>::ignore(streamsize),
	basic_istream<char>::ignore(streamsize, int_type),
	basic_istream<wchar_t>::ignore(streamsize),
	basic_istream<wchar_t>::ignore(streamsize, int_type)): Avoid
	_M_gcount overflows.
	* include/bits/istream.tcc (ignore(streamsize), ignore(streamsize,
	int_type)): Likewise; use snextc in the main loop, consistently
	with the specializations above.

From-SVN: r92816
2005-01-03 00:02:47 +00:00
Paolo Carlini
d98fd13429 Minimal fixes for -fno-exceptions.
2004-12-29  Paolo Carlini  <pcarlini@suse.de>

	Minimal fixes for -fno-exceptions.
	* src/bitmap_allocator.cc (free_list::_M_get): Use
	__throw_exception_again, instead of plain throw.
	* testsuite/testsuite_abi.cc (get_symbol, examine_symbol,
	create_symbols): Likewise.
	* testsuite/testsuite_hooks.cc (verify_demangle,
	run_tests_wrapped_locale, run_tests_wrapped_env): Likewise.
	(try_named_locale): Wrap the whole catch in __EXCEPTIONS.

From-SVN: r92720
2004-12-30 00:21:10 +00:00
Paolo Carlini
75a25e3f65 DR 243.
2004-11-26  Paolo Carlini  <pcarlini@suse.de>

	DR 243. get and getline when sentry reports failure [WP]
	* include/bits/istream.tcc (istream<>::get, istream<>::getline):
	Store a null character only if the array has a non-zero size.
	* src/istream.cc (istream<char>::getline, istream<wchar_t>::getline):
	Likewise.
	* testsuite/27_io/basic_istream/get/char/3.cc: New.
	* testsuite/27_io/basic_istream/getline/char/6.cc: New.
	* testsuite/27_io/basic_istream/getline/wchar_t/6.cc: New.
	* docs/html/ext/howto.html: Add an entry for DR 243.

	* testsuite/27_io/basic_istream/getline/wchar_t/1.cc: New.
	* testsuite/27_io/basic_istream/getline/wchar_t/2.cc: New.
	* testsuite/27_io/basic_istream/getline/wchar_t/3.cc: New.
	* testsuite/27_io/basic_istream/getline/wchar_t/4.cc: New.
	* testsuite/27_io/basic_istream/getline/wchar_t/5.cc: New.

From-SVN: r91348
2004-11-26 20:34:27 +00:00
Kelley Cook
a38fb0a7a4 Makefile.in, aclocal.m4: Regenerate with automake 1.9.3.
2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in, aclocal.m4: Regenerate with automake 1.9.3.
	* include/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* po/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

From-SVN: r91197
2004-11-24 21:12:26 +00:00
Paolo Carlini
e9fb72e85f istream.tcc (getline(basic_istream<>&, basic_string<>&, _CharT)): Remove temporary kludge for libstdc++/15002.
2004-11-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/istream.tcc (getline(basic_istream<>&, basic_string<>&,
	_CharT)): Remove temporary kludge for libstdc++/15002.
	* include/std/std_streambuf.h (class basic_streambuf): Declare
	getline(basic_istream<>&, basic_string<>&, _CharT) as friend.
	* include/bits/basic_string.h (getline(basic_istream<>&,
	basic_string<>&, _CharT)): Declare optimized specializations for
	char and wchar_t, using protected members of basic_streambuf.
	* src/istream.cc: Define the latter.

From-SVN: r90801
2004-11-17 09:04:14 +00:00
Paolo Carlini
2bf8accc31 streambuf.tcc (__copy_streambufs): Provide a generic version of the function...
2004-11-15  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/streambuf.tcc (__copy_streambufs): Provide
	a generic version of the function, not using the protected
	members of basic_streambuf.
	* include/std/std_streambuf.h (__copy_streambufs): Declare
	optimized specializations for char and wchar_t.
	* src/streambuf.cc: New file, define the latter.
	* src/Makefile.am: Add.
	* src/Makefile.in: Regenerate.

From-SVN: r90701
2004-11-15 23:33:05 +00:00
Benjamin Kosnik
948af8ae9c re PR libstdc++/17664 ([3.4 only] Crash in std::map when using _GLIBCXX_DEBUG with multithreading)
2004-11-08  Benjamin Kosnik  <bkoz@redhat.com>
	    Doug Gregor  <dgregor@cs.indiana.edu>

	PR libstdc++/17664
	* src/debug.cc: Just use one mutex.

Co-Authored-By: Doug Gregor <dgregor@cs.indiana.edu>
Co-Authored-By: Lothar Werzinger <lothar@xcerla.com>

From-SVN: r90296
2004-11-08 20:47:25 +00:00
Paolo Carlini
adb31ad60d istream.tcc (getline(char_type*, streamsize, char_type), [...]): Restore a generic version of the functions...
2004-11-08  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/istream.tcc (getline(char_type*, streamsize,
	char_type), ignore(streamsize), ignore(streamsize, int_type)):
	Restore a generic version of the functions, not using the
	protected members of basic_streambuf.
	* include/std/std_istream.h (getline(char_type*, streamsize,
	char_type), ignore(streamsize), ignore(streamsize, int_type)):
	Declare optimized specializations for char and wchar_t.
	* src/istream.cc: New file, define the latter.
	* src/Makefile.am: Add.
	* src/Makefile.in: Regenerate.

From-SVN: r90268
2004-11-08 15:46:28 +00:00
Benjamin Kosnik
656cee9aa2 re PR libstdc++/17627 (M68060 fails with libstdc++-v3/config/cpu/m68k/atomicity.h)
2004-11-02  Benjamin Kosnik  <bkoz@redhat.com>
  	    Lothar Werzinger  <lothar@xcerla.com>

	PR libstdc++/17627
	* src/debug.cc: Include concurrence, use mutexes.
	(_Safe_iterator_base::_M_attach): Here.
	(_Safe_iterator_base::_M_detach): Here.

Co-Authored-By: Lothar Werzinger <lothar@xcerla.com>

From-SVN: r90004
2004-11-02 23:56:56 +00:00
Benjamin Kosnik
bd80bd9b93 re PR libstdc++/17922 (Spurious warnings about std::ios_base::seekdir)
2004-11-02  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/17922
	* include/bits/ios_base.h : Add enum values.
	* testsuite/testsuite_hooks.h (bitmask_operators): Add function.
	* testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc: New.
	* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: New.
	* testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc: New.
	* testsuite/27_io/ios_base/types/iostate/case_label.cc: New.
	* testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc: New.
	* testsuite/27_io/ios_base/types/openmode/case_label.cc: New.
	* testsuite/27_io/ios_base/types/seekdir/case_label.cc: New.

	* config/io/c_io_stdio.h (__ios_flags): Mark deprecated.
	* src/ios.cc: 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: r89996
2004-11-02 19:00:19 +00:00
Benjamin Kosnik
7befac7140 mt_allocator.h (__pool::_M_get_align): New.
2004-10-17  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/mt_allocator.h (__pool::_M_get_align): New.
	(__mt_alloc::allocate): Use it.
	* src/mt_allocator.cc (__pool::_M_reclaim_block): Use it.
	(__pool::_M_reserve_block): Simplify block allocation.

From-SVN: r89171
2004-10-17 15:22:03 +00:00
Dhruv Matani
a815571193 bitmap_allocator.h: Change unsigned int -> size_t...
2004-10-17  Dhruv Matani  <dhruvbird@gmx.net>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/ext/bitmap_allocator.h: Change unsigned int -> size_t: this
	makes the code 64-bit correct and also fixes (together with using at
	the beginning a bitmap 2 * size_t bytes wide) alignment issues: now
	8 is guaranteed, easily tunable to 16 via _BALLOC_ALIGN_BYTES.
	Fix pthread-rope7.cc fail by nulling out __mini_vector<> destructor.
	* src/bitmap_allocator.cc: Change to size_t.
	* config/linker-map.gnu: Adjust.

Co-Authored-By: Paolo Carlini <pcarlini@suse.de>

From-SVN: r89170
2004-10-17 14:46:29 +00:00
Paolo Carlini
0d6b41f2dd bitmap_allocator.h: Qualify ::operator delete.
2004-10-15  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/bitmap_allocator.h: Qualify ::operator delete.
	* src/bitmap_allocator.cc: Likewise.
	* src/mt_allocator.cc: Use ::operator delete, not delete,
	consistently with ::operator new.

	* include/ext/bitmap_allocator.h (deallocate): Check for null
	pointer.
	* testsuite/ext/bitmap_allocator/check_deallocate_null.cc: New.
	* testsuite/testsuite_allocator.h (check_deallocate_null): Add test.

From-SVN: r89089
2004-10-15 10:54:57 +00:00
Benjamin Kosnik
11aaaa84ae mt_allocator.h: Tweaks.
2004-10-14  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/mt_allocator.h: Tweaks.
	* src/mt_allocator.cc: Same.

From-SVN: r89052
2004-10-14 21:05:24 +00:00
Dhruv Matani
1399eca190 bitmap_allocator.h: Clean-up add/remove functions.
2004-10-14  Dhruv Matani  <dhruvbird@gmx.net>

	* ext/bitmap_allocator.h: Clean-up add/remove functions.
	* src/bitmap_allocator.cc: New file. Contains the out-of-line
	function definitions, static initialization of variables, and
	explicit instantiations needed for the allocator.
	* src/Makefile.am: Add.
	* src/Makefile.in: Regenerate.
	* config/linker.map.gnu: Add the necessary symbols.

From-SVN: r89042
2004-10-14 17:52:18 +00:00
Benjamin Kosnik
5a1e5472f5 re PR libstdc++/17937 (Critical ~__pool troubles)
2004-10-11  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_deque.h: Correct for over-long lines.

2004-10-11  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/17937
	* include/ext/mt_allocator.h (__pool::_M_destroy): New.
	* src/mt_allocator.cc (__pool::~__pool): Change definitions to
	_M_destroy.
	* acconfig.h: Remove _GLIBCXX_USE___CXA_ATEXIT.
	* acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): Remove.
	* configure.ac: Remove call to GLIBCXX_ENABLE_CXA_EXIT.
	* configure: Regenerate.
	* config/linker-map.gnu: Tweak exports.
	* docs/html/ext/mt_allocator.html: Update docs.
	* testsuite/ext/mt_allocator/deallocate_global-2.cc: Fix.
	* testsuite/ext/mt_allocator/deallocate_global-4.cc: Fix.
	* testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Fix.
	* testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Fix.
	* testsuite/ext/mt_allocator/deallocate_local-2.cc: Fix.
	* testsuite/ext/mt_allocator/deallocate_local-4.cc: Fix.
	* testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Fix.
	* testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Fix.

From-SVN: r88913
2004-10-12 01:10:39 +00:00
Joachim Kuebart
e55096f0ce pool_allocator.cc (__pool_alloc_base::_M_allocate_chunk): Deal properly with exceptions thrown by ::operator new(size_t).
2004-10-11  Joachim Kuebart  <kuebart@mathematik.uni-ulm.de>
	    Paolo Carlini  <pcarlini@suse.de>

	* src/pool_allocator.cc (__pool_alloc_base::_M_allocate_chunk):
	Deal properly with exceptions thrown by ::operator new(size_t).
	* testsuite/ext/pool_allocator/allocate_chunk.cc: New.

	* include/ext/pool_allocator.h: Include <cstdlib>.

Co-Authored-By: Paolo Carlini <pcarlini@suse.de>

From-SVN: r88872
2004-10-11 08:19:35 +00:00
Benjamin Kosnik
c3e7f18406 acconfig.h: Add _GLIBCXX_USE___CXA_ATEXIT.
2004-10-08  Benjamin Kosnik  <bkoz@redhat.com>

	* acconfig.h: Add _GLIBCXX_USE___CXA_ATEXIT.
	* acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): New.
	* configure.ac: Call GLIBCXX_ENABLE_CXA_EXIT.
	* configure: Regenerate.
	* src/mt_allocator.cc (__pool::~__pool): Make conditional on
	_GLIBCXX_USE___CXA_ATEXIT macro.
	* docs/html/ext/mt_allocator.html: Add note about deallocation.
	* testsuite/ext/mt_allocator/deallocate_local-2.cc: Guard checks
	with _GLIBCXX_USE___CXA_ATEXIT.
	* testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Same.
	* testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Same.
	* testsuite/ext/mt_allocator/deallocate_global-4.cc: Same.
	* testsuite/ext/mt_allocator/deallocate_global-2.cc: Same.
	* testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Same.
	* testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Same.
	* testsuite/ext/mt_allocator/deallocate_local-4.cc: Same.

From-SVN: r88809
2004-10-09 02:30:10 +00:00
Benjamin Kosnik
e3f78d9b11 acinclude.m4 (GLIBCXX_ENABLE_THREADS): Set enable_thread.
2004-10-06  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCXX_ENABLE_THREADS): Set enable_thread.
	(GLIBCXX_CONFIGURE_TESTSUITE): Use it.
	* configure: Regenerated.
	* testsuite/Makefile.am (CLEANFILES): Add TEST for
	check-performance executables.
	(stamp_thread): New.
	(all-local): Use it.
	* testsuite/Makefile.in: Regenerate.
	* scripts/create_testsuite_files: Filter thread tests.

	* testsuite/thread/pthread1.cc: Remove macro conditionals: this
	file will only be run by thread enabled configurations.
	* testsuite/thread/pthread7-rope.cc: Same, add rope_type typedef.
	* testsuite/thread/pthread6.cc: Same.
	* testsuite/thread/pthread5.cc: Same.
	* testsuite/thread/pthread4.cc: Same.
	* testsuite/thread/pthread3.cc: Same.
	* testsuite/thread/pthread2.cc: Same.

	* testsuite/ext/mt_allocator/instantiate.cc: Add in __GTHREADS guard.
	* testsuite/ext/mt_allocator/deallocate_global-1.cc: Move to...
	* testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: ...here.
	* testsuite/ext/mt_allocator/deallocate_global-3.cc: Move to...
	* testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: ...here.
	* testsuite/ext/mt_allocator/deallocate_local-1.cc: Move to...
	* testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: ...here.
	* testsuite/ext/mt_allocator/deallocate_local-3.cc: Move to...
	* testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: ...here.

From-SVN: r88628
2004-10-06 22:12:34 +00:00
Benjamin Kosnik
8470634361 re PR libstdc++/17780 (std::allocator vs. static init)
2004-10-06  Benjamin Kosnik  <bkoz@redhat.com>
	    Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/17780
	* src/mt_allocator.cc (__pool<true>::_M_reserve_block): Revert
	to old locking order.

Co-Authored-By: Paolo Carlini <pcarlini@suse.de>

From-SVN: r88611
2004-10-06 16:31:19 +00:00
Benjamin Kosnik
12cde21b12 re PR libstdc++/17780 (std::allocator vs. static init)
2004-10-05  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/17780
	* include/ext/mt_allocator.h (__pool_base::_Tune): Add default
	options as compile-time constant enums.
	(__pool_base::_Tune::is_default): New.
	(__pool_base::_Block_address): New.
	(__pool_base): Rearrange data members.
	(__pool::_M_reserve_memory): To _M_reserve_block.
	(__pool::_M_reclaim_memory): To _M_reclaim_block.
	(__pool::_Bin_record): Add _Block_address data member.
	(__pool<false>): Add _M_thread_freelist_initial.
	(__pool::~__pool): Declare.
	(__common_pool_policy): Move static data member to...
	(__common_pool_policy::_S_get_pool): ...here, make static local.
	(__per_type_pool_policy): Move static data member to...
	(__per_type_pool_policy::_S_get_pool): ...here, make static local.
	(__mt_alloc::__mt_alloc): Call __policy_type::_S_get_pool.
	Remove static member definitions. Use define for __default_policy.
	* src/mt_allocator.cc: Same.
	* config/linker-map.gnu: Don't export _S_get_pool. Renames.
	* testsuite/ext/new_allocator: New.
	* testsuite/ext/new_allocator/instantiate.cc: New.
	* testsuite/ext/new_allocator/check_new.cc: New.
	* testsuite/ext/new_allocator/deallocate_global.cc: New.
	* testsuite/ext/new_allocator/deallocate_local.cc: New.
	* testsuite/ext/mt_allocator/instantiate.cc: Instantiate all
	template arguments.
	* testsuite/ext/mt_allocator/deallocate_global-1.cc: New.
	* testsuite/ext/mt_allocator/deallocate_global-2.cc: New.
	* testsuite/ext/mt_allocator/deallocate_global-3.cc: New.
	* testsuite/ext/mt_allocator/deallocate_global-4.cc: New.
	* testsuite/ext/mt_allocator/deallocate_local-1.cc: New.
	* testsuite/ext/mt_allocator/deallocate_local-2.cc: New.
	* testsuite/ext/mt_allocator/deallocate_local-3.cc: New.
	* testsuite/ext/mt_allocator/deallocate_local-4.cc: New.
	* testsuite/ext/mt_allocator/deallocate.cc: New.
	* testsuite/ext/malloc_allocator/deallocate.cc: New.
	* testsuite/ext/malloc_allocator/deallocate_global.cc: New.
	* testsuite/ext/malloc_allocator/deallocate_local.cc: New.

From-SVN: r88589
2004-10-06 04:22:42 +00:00
Paolo Carlini
17c08c32de localename.cc (locale::locale(const char*)): Minor tweaks: rename a variable, move an assignment.
2004-09-24  Paolo Carlini  <pcarlini@suse.de>

	* src/localename.cc (locale::locale(const char*)): Minor tweaks:
	rename a variable, move an assignment.
	(locale::_Impl::_Impl(const char*, size_t)): Likewise, minor tweak.

From-SVN: r88043
2004-09-24 15:26:35 +00:00
Benjamin Kosnik
8bfd0a46ea re PR libstdc++/16614 (Excessive resource usage in __mt_alloc)
2004-09-01  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/16614
	* include/ext/mt_allocator.h (__mt_base): Not type dependent,
	split into..
	(__pool): New, specialize.
	(__common_pool): New, static bits here.
	(__per_type_pool): New, and here.
	(__mt_alloc_base): New.
	(__mt_alloc): Add template parameter, inherit from it.
	* src/allocator.cc: Split this...
	* src/allocator-inst.cc: And this...
	* src/pool_allocator.cc: ...into this.
	* src/mt_allocator.cc: ... and this. Add definitions for
	__mt_base.
	* src/Makefile.am (sources): Split allocator.cc to
	pool_allocator.cc and mt_allocator.cc.
	* src/Makefile.in: Regenerate.
	* config/linker-map.gnu: Add symbols.
	* docs/html/ext/mt_allocator.html: Document new design.
	* testsuite/ext/mt_allocator/tune-1.cc: New.
	* testsuite/ext/mt_allocator/tune-2.cc: New.
	* testsuite/ext/mt_allocator/tune-3.cc: New.
	* testsuite/ext/mt_allocator/tune-4.cc: New.

	* testsuite/testsuite_allocator.h (__gnu_test::check_new): New.
	* testsuite/ext/allocators.cc: Use check_new, split into...
	* testsuite/ext/mt_allocator/check_new.cc: this.
	* testsuite/ext/pool_allocator/check_new.cc: this.
	* testsuite/ext/malloc_allocator/check_new.cc: this.
	* testsuite/ext/debug_allocator/check_new.cc: this.
	* testsuite/ext/mt_allocator/instantiate.cc: this.
	* testsuite/ext/pool_allocator/instantiate.cc: this.
	* testsuite/ext/malloc_allocator/instantiate.cc: this.
	* testsuite/ext/debug_allocator/instantiate.cc: this.

From-SVN: r86936
2004-09-01 22:17:00 +00:00
Benjamin Kosnik
fa01624514 pool_allocator.h: Rename __pool_base to __pool_alloc_base.
2004-08-30  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/pool_allocator.h: Rename __pool_base to
	__pool_alloc_base.
	* src/allocator.cc: Same.
	* config/linker-map.gnu: Same.

From-SVN: r86789
2004-08-30 18:22:01 +00:00
Paolo Carlini
a60945f82f configure.ac: Specify version 1.9.1 in AM_INIT_AUTOMAKE.
2004-08-23  Paolo Carlini  <pcarlini@suse.de>

	* configure.ac: Specify version 1.9.1 in AM_INIT_AUTOMAKE.
	* aclocal.m4: Regenerate with automake-1.9.1.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* include/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* po/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

From-SVN: r86423
2004-08-23 10:18:31 +00:00
Paolo Carlini
82cb25749b indirect_array.h: Trivial formatting fixes.
2004-08-16  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/indirect_array.h: Trivial formatting fixes.
	* include/bits/valarray_after.h: Likewise.
	* include/bits/valarray_array.h: Likewise.
	* src/valarray-inst.cc: Likewise.

From-SVN: r86056
2004-08-16 14:50:31 +00:00
Paolo Carlini
b13de673b1 debug.cc (_Error_formatter::_M_print_string): Fix thinko, memmove is not needed, memcpy suffices.
2004-08-13  Paolo Carlini  <pcarlini@suse.de>

	* src/debug.cc (_Error_formatter::_M_print_string): Fix thinko,
	memmove is not needed, memcpy suffices.

From-SVN: r85949
2004-08-13 16:53:12 +00:00
Kelley Cook
7eaf73d757 Makefile.in, [...]: Regenerate
2004-08-12  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in, aclocal.m4, configure, include/Makefile.in,
	libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
	src/Makefile.in, testsuite/Makefile.in: Regenerate

From-SVN: r85869
2004-08-12 11:54:13 +00:00
Paolo Carlini
48dd95f2a4 re PR libstdc++/16959 (Segmentation fault in ios_base::sync_with_stdio)
2004-08-11  Paolo Carlini  <pcarlini@suse.de>
	    Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/16959
	* src/ios_init.cc (ios_base::sync_with_stdio): Make sure the
	standard streams are constructed.
	* testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New.

Co-Authored-By: Petur Runolfsson <peturr02@ru.is>

From-SVN: r85797
2004-08-11 09:31:13 +00:00
Paolo Carlini
705debec1e stl_bvector.h: Trivial formatting fixes.
2004-08-09  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_bvector.h: Trivial formatting fixes.

2004-08-09  Paolo Carlini  <pcarlini@suse.de>

	* src/ios.cc (ios_base::_M_grow_words): Uglify the names.

From-SVN: r85716
2004-08-09 13:51:33 +00:00
Jonathan Wakely
8844a2f541 debug.cc (_Error_formatter::_M_print_string): In order to print individual words from __string...
2004-08-07  Jonathan Wakely  <redi@gcc.gnu.org>
	    Paolo Carlini  <pcarlini@suse.de>

	* src/debug.cc (_Error_formatter::_M_print_string): In order
	to print individual words from __string, _M_format_word can't
	be called since may be just sprintf, thus ignoring completely
	__n: instead, use memmove and append '\0' by hand.

Co-Authored-By: Paolo Carlini <pcarlini@suse.de>

From-SVN: r85670
2004-08-07 15:31:50 +00:00
Mark Mitchell
4c24b21a47 Makefile.am (hosted_source): Add libmath and testsuite.
* Makefile.am (hosted_source): Add libmath and testsuite.
	(SUBDIRS): Remove them.
	* acinclude.m4: (GLIBCXX_ENABLED_HOSTED): Default to freestanding
	on arm*-*-symbianelf*.
	* crossconfig.m4: Add arm*-*-symbianelf* support.
	* include/c_std/std/std_cstdlib.h (stdlib.h): Do not include it
	when freestanding.  Do not bring names into std:: namespace with
	"using" when freestanding.  Declare required functions and macros
	when freestanding.
	* libsupc++/Makefile.am (c_sources): Do not include cp-demangle.c
	when freestanding.
	* libsupc++/del_op.cc: Declare "free" only when freestanding.
	* libsupc++/eh_alloc.cc (cstring): Include it only when hosted.
	(malloc): Declare when freestanding.
	(free): Likewise.
	(memset): Likewise.
	(__cxa_allocate_exception): Call malloc, not std::malloc.  Likewise
	for memset.
	(__cxa_free_exception): Likewise for free.
	* libsupc++/new_op.cc: Declare "malloc" when freestanding.
	* libsupc++/pure.cc (writestr): Define to nothing when
	freestanding.
	* libsupc++/vterminate.cc: Do not define anything when
	freestanding.
	* Makefile.in: Regenerated.
	* aclocal.m4: Likewise.
	* configure: Likewise.
	* include/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* po/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

From-SVN: r85452
2004-08-02 20:28:22 +00:00
Paolo Carlini
c891b860da PR libstdc++/12658 (continued)
2004-07-29  Paolo Carlini  <pcarlini@suse.de>
            Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/12658 (continued)
	* src/locale_init.cc (locale::locale, locale::global): Use
	a single locale_mutex instead of two separate mutexes.

Co-Authored-By: Petur Runolfsson <peturr02@ru.is>

From-SVN: r85301
2004-07-29 15:54:50 +00:00
Paul Brook
1568430fae configure.ac: Set ABI_TWEAKS_SRCDIR.
* configure.ac: Set ABI_TWEAKS_SRCDIR.
	* configure.host: Set abi_tweaks_dir.  Check for atomicity.h when
	setting atomicity_dir.  Override type_cpu for arm based targets.
	* include/Makefile.am (host_headers): Add cxxabi_tweaks.h.
	* libsupc++/cxxabi.h: Include bits/cxxabi.h. Don't declare __guard.
	* libsupc++/guard.cc: Use definitions from cxxabi_tweaks.h.
	* libsupc++/vec.cc: Ditto.
	* config/cpu/arm/cxxabi_tweaks.h: New file.
	* config/cpu/generic/cxxabi_tweaks.h: New file.
	* */Makefile.in: Regenerate.
	* configure: Regenerate.

From-SVN: r84032
2004-07-02 23:40:19 +00:00
Benjamin Kosnik
f65d320115 Per Bothner <per@bothner.com > Mohan Embar <gnustuff@thisiscool.com>
2004-07-01  Benjamin Kosnik  <bkoz@redhat.com>
            Per Bothner  <per@bothner.com >
	    Mohan Embar  <gnustuff@thisiscool.com>

	PR libstdc++/16248
	* include/bits/concurrence.h (__glibcxx_mutex_type): New.
	(__glibcxx_mutex): Encapsulate mutex init function into type for
	threaded configurations without __GTHREAD_MUTEX_INIT.
	(lock::lock): Make device member a reference.
	(lock::~lock): Same.
	* include/ext/pool_allocator.h (__pool_base::_M_get_mutex): Change
	to mutex_type.
	* src/allocator.cc: Same.

Co-Authored-By: Mohan Embar <gnustuff@thisiscool.com>
Co-Authored-By: Per Bothner <per@bothner.com>

From-SVN: r83985
2004-07-01 14:49:29 +00:00
Paolo Carlini
2d91a076cc localename.cc (locale::_Impl::_Impl): Slightly improve the algorithm used to name the categories.
2004-06-28  Paolo Carlini  <pcarlini@suse.de>

	* src/localename.cc (locale::_Impl::_Impl): Slightly improve
	the algorithm used to name the categories.

From-SVN: r83778
2004-06-28 11:18:03 +00:00
Benjamin Kosnik
838d430929 concurrence.h (__gnu_cxx::lock): New.
2004-06-24  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/concurrence.h (__gnu_cxx::lock): New.
	* include/ext/pool_allocator.h (__pool_base::_Lock::_S_lock): Remove.
	(__pool_base::_M_get_mutex): New.
	* include/bits/allocator.h: Tweak.
	* src/allocator.cc (__pool_base::_M_get_free_list): Correct offset.
	* config/linker-map.gnu: Remove __pool_base::_Lock::_S_lock.
	* include/bits/stl_threads.h: Remove.
	* include/Makefile.am: Also here.
	* include/Makefile.in: Regenerate.

	* src/locale_init.cc: Use __gnu_cxx::lock.

	* src/allocator.cc: Move all instantiations...
	* src/allocator-inst.cc: ...here.

From-SVN: r83638
2004-06-25 06:10:44 +00:00
Benjamin Kosnik
2832d07bd1 pool_allocator.h: Qualify __throw_bad_alloc.
2004-06-18  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/pool_allocator.h: Qualify __throw_bad_alloc.
	(__pool_base): Remove unused template parameter.  Add
	protected. Move lock data into __pool_base::_Lock. Remove static
	on member functions.
	(__pool_base::_M_get_free_list): New.
	(__pool_alloc): Move _S_force new here.
	* src/allocator.cc: Move out of line __pool_base definitions here.
	* config/linker-map.gnu: Export bits from __pool_base.

From-SVN: r83355
2004-06-18 16:52:42 +00:00
Benjamin Kosnik
2373de3a83 Makefile.in: Regenerate with automake 1.8.5.
2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>

	* Makefile.in: Regenerate with automake 1.8.5.
	* aclocal.m4: Same.
	* include/Makefile.in: Same.
	* libmath/Makefile.in: Same.
	* libsupc++/Makefile.in: Same.
	* po/Makefile.in: Same.
	* src/Makefile.in: Same.
	* testsuite/Makefile.in: Same.

From-SVN: r83123
2004-06-14 17:49:30 +00:00
Paolo Carlini
4a787fa8bf [multiple changes]
2004-06-12  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/algorithm: Trivial formatting fixes.
	* include/ext/functional: Likewise.
	* include/ext/hash_fun.h: Likewise.
	* include/ext/iterator: Likewise.

2004-06-12  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.tcc (find(const _CharT*, size_type,
	size_type)): Reimplement using std::search.
	* src/string-inst.cc: Instantiate std::search for char/wchar_t.

2004-06-12  Dhruv Matani  <dhruvbird@gmx.net>

	* testsuite/performance/21_strings/string_find.cc: New.

From-SVN: r83022
2004-06-12 08:10:24 +00:00
Paolo Carlini
5f1a5ede6c pool_allocator.h: Convert to a global free-list, as per the original SGI/HP design...
2004-06-08  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/pool_allocator.h: Convert to a global free-list,
	as per the original SGI/HP design: move the implementation
	details to struct __pool_base, from which __pool_alloc derives.
	* src/allocator.cc: Instantiate __pool_base.

From-SVN: r82794
2004-06-08 22:19:18 +00:00
Benjamin Kosnik
26c691a88b re PR libstdc++/12854 (libstdc++ vs. -Weffc++)
2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/12854
	Fixups for -Weffc++.
	* include/bits/basic_string.h (basic_string::operator=): Return
	pointer to this instead of result of assign. Although redundant,
	this doesn't impact resultant codegen.

	* include/bits/locale_facets.h (__numpunct_cache): Declare
	assignment opxserator and copy constructor private.
	(__timepunct_cache): Same.
	(__moneypunct_cache): Same.
	(collate): Use member initialization list for _M_c_locale_collate.
	* config/locale/gnu/messages_members.h: Same.
	* config/locale/gnu/time_members.h (__timepunct): Same.
	* src/codecvt.cc: Use member initialization list to initialize
	_M_c_locale_codecvt.
	* src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok.
	* config/os/gnu-linux/ctype_noninline.h: Same.
	* src/locale.cc (_Impl): Same.
	* src/locale_init.cc: Same.
	* src/localename.cc: Same.

	* include/bits/basic_ios.h (basic_ios): Complete member
	initialization list.
	* include/bits/istream.tcc (basic_istream::sentry): Same.
	* include/bits/ostream.tcc (basic_ostream::sentry): Same.
	* include/bits/fstream.tcc (basic_filebuf): Add _M_lock and
	_M_pback to member initialization list.
	* include/std/std_streambuf.h: Same.
	* include/std/std_sstream.h: Same, for _M_mode.
	* src/ios.cc (ios_base): Same.

	* include/ext/rope: Make derived classes match exception

	 specifications. Add copy constructors and assignment operators.

	* include/debug/safe_base.h (_Safe_sequence_base): Declare copy
	constructor and assignment operator protected.
	(_Safe_iterator_base): Same.
	* include/debug/formatter.h (_Error_formatter): Define copy
	constructor and assignment operator.

	* include/backward/strstream: Declare assignment operator and copy
	constructor private.

From-SVN: r82153
2004-05-22 23:46:34 +00:00
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