2004-02-06 Paolo Carlini * testsuite/27_io/basic_filebuf/open/char/9507.cc: Adjust timings. 2004-02-05 Loren J. Rittle * scripts/check_performance: Support PCH. 2004-02-05 Geoffrey Keating PR 12179 * .cvsignore: New. * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not 'gcc-lib'. Add comment about poorly-named variables. * aclocal.m4: Regenerate. * configure: Regenerate. 2004-02-05 Paolo Carlini * include/bits/locale_facets.tcc (money_get::do_get(string_type&)): Thousands-sep are always optional; thousands-sep are not allowed after the decimal_point. * testsuite/22_locale/money_get/get/char/12.cc: New. * testsuite/22_locale/money_get/get/char/13.cc: New. * testsuite/22_locale/money_get/get/wchar_t/12.cc: New. * testsuite/22_locale/money_get/get/wchar_t/13.cc: New. * testsuite/22_locale/money_get/get/char/1.cc: Clean-up. * testsuite/22_locale/money_get/get/char/2.cc: Likewise. * testsuite/22_locale/money_get/get/char/3.cc: Likewise. * testsuite/22_locale/money_get/get/char/4.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise. * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from the standard. * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise. 2004-02-05 Richard Sandiford * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T): Define. * config/io/basic_file_stdio.cc (__basic_file::showmanyc): Use it to decide whether FIONREAD should take an off_t or int argument. 2004-02-05 Paolo Carlini * include/bits/stl_function.h: Minor formatting changes. 2004-02-04 Zack Weinberg Revert previous change to config/abi/*/baseline_symbols.txt. 2004-02-04 Benjamin Kosnik Zack Weinberg * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode): New function. (__basic_file::sys_open, __basic_file::open): Use it. (__basic_file::_M_open_mode): Delete. * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode. * testsuite/27_io/basic_filebuf/close/char/9964.cc * testsuite/27_io/basic_filebuf/open/char/9507.cc: Correct flags to filebuf::open calls. * config/abi/alpha-freebsd5/baseline_symbols.txt * config/abi/alpha-linux-gnu/baseline_symbols.txt * config/abi/hppa-linux-gnu/baseline_symbols.txt * config/abi/i386-freebsd4/baseline_symbols.txt * config/abi/i386-freebsd5/baseline_symbols.txt * config/abi/i486-linux-gnu/baseline_symbols.txt * config/abi/ia64-linux-gnu/baseline_symbols.txt * config/abi/mips-linux-gnu/baseline_symbols.txt * config/abi/sparc-freebsd5/baseline_symbols.txt * config/abi/sparc-linux-gnu/baseline_symbols.txt * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Remove entry for __basic_file::_M_open_mode. 2004-02-04 Loren J. Rittle * testsuite/performance/20_util/allocator/insert.cc (main): Tweak. 2004-02-04 Felix Yen * testsuite/performance/20_util/producer_consumer.cc: New. * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops. 2004-02-04 Benjamin Kosnik * testsuite/performance/20_util/allocator.cc: Move to.. * testsuite/performance/20_util/allocator/insert.cc: ...here. * testsuite/performance/20_util/allocator_thread.cc: Move to... * testsuite/performance/20_util/allocator/insert_insert.cc: ...here. * testsuite/performance/20_util/allocator_map_thread.cc: Move to... * testsuite/performance/20_util/allocator/map_thread.cc: ...here. 2004-02-04 Jonathan Wakely * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH. * docs/html/faq/index.txt: Regenerate. 2004-02-04 Dhruv Matani * include/ext/debug_allocator.h: _M_extra now stands for the number of extra objects instead of the number of extra bytes. (debug_allocator::allocate): Adjust. (debug_allocator::deallocate): Adjust. * include/ext/pool_allocator.h: Fix typo. 2004-02-03 Felix Yen Benjamin Kosnik * testsuite/performance/20_util/allocator.cc: Add map, deque, set tests. * testsuite/performance/20_util/allocator_thread.cc: Same. 2004-02-03 Paolo Carlini * include/bits/basic_string.h (insert(iterator)): Remove, non-standard and already scheduled for removal. 2004-02-03 Paolo Carlini * include/bits/stl_iterator_base_funcs.h: Minor formatting and indentation tweaks. * include/bits/stl_iterator_base_types.h: Likewise. * include/bits/stl_list.h: Likewise. * include/bits/stl_map.h: Likewise. * include/bits/stl_tempbuf.h: Likewise. 2004-02-02 Jerry Quinn * include/bits/gslice.h, include/bits/gslice_array.h, include/bits/indirect_array.h, include/bits/mask_array.h, include/bits/slice_array.h, include/bits/stl_numeric.h, include/std/std_valarray.h: Update copyright years. 2004-02-02 Jerry Quinn * include/bits/gslice.h (gslice): Document. * include/bits/gslice_array.h (gslice_array): Document. * include/bits/indirect_array (indirect_array): Document. * include/bits/mask_array (mask_array): Document. * include/bits/slice_array.h (slice,slice_array): Document. * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum, adjacent_difference): Document * include/std/std_valarray.h (valarray): Document. 2004-02-02 Benjamin Kosnik * docs/html/19_diagnostics/howto.html: Move verbose terminate documentation... * docs/html/18_support/howto.html: Here. * docs/html/documentation.html: Add reference here. 2004-02-02 Paolo Carlini * config/locale/gnu/c++locale_internal.h: Remove prototypes of no longer used GLIBC thread locale functions. 2004-02-02 Eric Christopher Zack Weinberg * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use -finput-charset. * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto. * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto. * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto. * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto. * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto. * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto. * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: Ditto. 2004-02-02 Paolo Carlini * include/bits/stl_function.h: Additional minor tweaks. * include/bits/stl_multiset.h: Likewise. * include/bits/stl_queue.h: Minor tweaks. 2004-02-02 Paolo Carlini PR libstdc++/13976 (continued) * include/ext/malloc_allocator.h (malloc_allocator::deallocate): Make the second parameter unnamed, to void unused parameter warnings. * include/ext/new_allocator.h (new_allocator::deallocate): Ditto. 2004-02-02 Paolo Carlini PR libstdc++/13976 * include/ext/malloc_allocator.h (malloc_allocator::allocate): Make the second parameter unnamed, to void unused parameter warnings. * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto. * include/ext/new_allocator.h (new_allocator::allocate): Ditto. 2004-02-01 Paolo Carlini * include/bits/stl_algo.h: Additional minor tweaks. * include/bits/stl_map.h: Likewise. * include/bits/stl_multimap.h: Likewise. * include/bits/stl_multiset.h: Likewise. * include/bits/stl_set.h: Likewise. * include/bits/stl_tree.h: Likewise. 2004-02-01 Paolo Carlini * include/bits/vector.tcc (vector::_M_insert_aux(iterator)): Remove, unused. 2004-02-01 Paolo Carlini * include/bits/stl_function.h: Additional minor tweaks. 2004-02-01 Paolo Carlini * include/bits/deque.tcc: Wrap overlong lines, constify a few variables, reformat according to the coding standards. * include/bits/list.tcc: Likewise. * include/bits/stl_deque.h: Likewise. * include/bits/stl_function.h: Likewise. * include/bits/stl_iterator.h: Likewise. * include/bits/stl_iterator_base_funcs.h: Likewise. * include/bits/stl_iterator_base_types.h: Likewise. * include/bits/stl_list.h: Likewise. * include/bits/stl_map.h: Likewise. * include/bits/stl_multimap.h: Likewise. * include/bits/stl_multiset.h: Likewise. * include/bits/stl_relops.h: Likewise. * include/bits/stl_set.h: Likewise. 2004-02-01 Paolo Carlini * include/bits/stl_bvector.h: Wrap overlong lines, constify a few variables, reformat according to the coding standards. * include/bits/stl_tree.h: Likewise. 2004-01-31 Paolo Carlini * include/bits/stl_algo.h: Minor additional reformat, add copyright year. * include/bits/stl_algobase.h: Add copyright year. 2004-01-31 Paolo Carlini * include/bits/stl_algo.h: Wrap overlong lines, constify a few variables, reformat according to the coding standards. * include/bits/stl_algobase.h: Likewise. * include/bits/stl_heap.h: Likewise. 2004-01-31 Paolo Carlini * include/bits/basic_string.h (_Rep::operator[]): Remove, unused. * include/bits/basic_string.h: Fix two comments. 2004-01-31 Per Bothner * include/ext/mt_allocator.h (__mt_alloc::_S_thread_freelist_mutex): Guard with __GTHREAD_MUTEX_INIT. 2004-01-31 Paolo Carlini * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak. 2004-01-30 Paolo Carlini * testsuite/21_strings/basic_string/cons/char/6.cc: New. * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New. * testsuite/performance/21_strings/string_cons_input_iterator.cc: New. 2004-01-30 Felix Yen * testsuite/performance/20_util/allocator_thread.cc (do_loop): Don't use clear, but instead assign. Use insert. 2004-01-30 Benjamin Kosnik * src/demangle.cc: Add instantiations. * src/Makefile.am: Remove special rules for demangle.lo, demangle.o. * src/Makefile.in: Regenerate. 2004-01-30 David Edelsohn * src/allocator.cc: Protect _S_get_thread_id() and _S_thread_key_destr() with #ifdef __GTHREADS. 2004-01-30 Paolo Carlini Reshuffle performance testsuite. * testsuite/performance/allocator.cc, allocator_map_thread.cc, allocator_thread.cc, complex_norm.cc, container_benchmark.cc, cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc, fstream_seek_write.cc, ifstream_extract_float.cc, ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc, list_create_fill_sort.cc, map_create_fill.cc, narrow_widen_char.cc, narrow_widen_wchar_t.cc, ofstream_insert_float.cc, ofstream_insert_int.cc, string_append.cc, wchar_t_in.cc, wchar_t_length.cc, wchar_t_out.cc: Split into... * testsuite/performance/20_util/allocator.cc: New. * testsuite/performance/20_util/allocator_map_thread.cc: New. * testsuite/performance/20_util/allocator_thread.cc: New. * testsuite/performance/21_strings/string_append: New. * testsuite/performance/22_locale/is_wchar_t.cc: New. * testsuite/performance/22_locale/narrow_widen_char.cc: New. * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New. * testsuite/performance/22_locale/wchar_t_in.cc: New. * testsuite/performance/22_locale/wchar_t_length.cc: New. * testsuite/performance/22_locale/wchar_t_out.cc: New. * testsuite/performance/23_containers/container_benchmark.cc: New. * testsuite/performance/23_containers/list_create_fill_sort.cc: New. * testsuite/performance/23_containers/map_create_fill.cc: New. * testsuite/performance/26_numerics/complex_norm.cc: New. * testsuite/performance/27_io/cout_insert_int.cc: New. * testsuite/performance/27_io/filebuf_copy.cc: New. * testsuite/performance/27_io/filebuf_sputc.cc: New. * testsuite/performance/27_io/fstream_seek_write.cc: New. * testsuite/performance/27_io/ifstream_extract_float.cc: New. * testsuite/performance/27_io/ifstream_extract_int.cc: New. * testsuite/performance/27_io/ifstream_getline.cc: New. * testsuite/performance/27_io/ofstream_insert_float.cc: New. * testsuite/performance/27_io/ofstream_insert_int.cc: New. 2004-01-30 Paolo Carlini * include/bits/basic_string.tcc (_Rep::_S_create): Never allocate a string bigger than max_size(); always keep __capacity and __size in sync to avoid memory leaks at deallocation time. 2004-01-30 Paolo Carlini * include/bits/basic_string.tcc (_S_construct(_InIterator, _InIterator, const _Alloc&, input_iterator_tag)): Simplify the double loop, streamline. * include/bits/basic_string.tcc: Very minor tweaks. 2004-01-30 Loren J. Rittle * scripts/check_performance: Only compile with $THREAD_FLAG when test is marked to require it. Allow multiple compilations/executions of marked tests. * testsuite/testsuite_performance.h (report_performance): Report dynamic thread support status. (report_header): Likewise. * testsuite/performance/allocator.cc: Stabilize iteration count. Support more allocators. Mark each allocator test to run and report independently. * testsuite/performance/allocator_map_thread.cc: Likewise. * testsuite/performance/allocator_thread.cc: Likewise. 2004-01-29 Stephen M. Webb * config/local/generic/c_locale.h: Change ::malloc() to new char[]. * config/local/gnu/c_locale.h: Change ::malloc() to new char[]. * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use std::get_temporary_buffer() instead of duplicating its code. Update to C++STYLE conventions. * include/std/std_memory.h (get_temporary_buffer): Use ::operator new() instead of std::malloc(). (return_temporary_buffer): Use ::operator delete() instead of std::free(). 2004-01-29 Benjamin Kosnik * include/bits/allocator.h: Temporary switch to new_allocator as the default to unjam bootstraps. 2004-01-28 Benjamin Kosnik * 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 . * include/ext/malloc_allocator.h: Remove 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. 2004-01-28 Benjamin Kosnik * src/globals_io.cc: Change to __gnu_internal namespace. * src/globals_locale.cc: Same. * src/locale_init.cc: Same. * src/ios_init.cc: Same. 2004-01-28 Stefan Olsson * include/ext/mt_allocator.h: Replaced all malloc() calls with operator new(). Added support for the env variable GLIBCXX_FORCE_NEW (this required the _S_init call to be the first one in allocate() as well). Fix typos. 2004-01-28 Paolo Carlini * include/bits/basic_string.h (_S_create(size_t, const _Alloc&): Change signature to take two size_type arguments. * include/bits/basic_string.tcc (_S_construct(_InIterator, _InIterator, const _Alloc&, input_iterator_tag)): Update call, tweak a bit. (_S_construct(_InIterator, _InIterator, const _Alloc&, forward_iterator_tag)): Likewise. (_S_construct(size_type, _CharT, const _Alloc&)): Likewise. (_M_mutate(size_type, size_type, size_type)): Don't implement the exponential growth policy, demand it to _S_create, update call and simplify. (_M_clone(const _Alloc&, size_type)): Likewise. (_S_create(size_type, size_type, const _Alloc&)): Implement the growth policy, simplify otherwise. * include/bits/basic_string.h (_Rep::operator[]): Tweak signature to take a size_type, consistently with the other members. 2004-01-27 Benjamin Kosnik * testsuite/27_io/ios_base/storage/11584.cc: Correct new and delete declarations, add include and test variable. 2003-01-27 Jerry Quinn * include/bits/codecvt.h, include/bits/locale_facets.h, include/bits/postypes.h, include/bits/stl_bvector.h, include/bits/stl_multiset.h, include/bits/stl_set.h, include/bits/stream_iterator.h, include/bits/streambuf_iterator.h, include/std/std_complex.h: Document. 2004-01-27 Jerry Quinn 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. 2004-01-27 Ulrich Weigand PJ Darcy * configure.host: Add support for *-tpf. * crossconfig.m4: Likewise. * configure: Regenerate. * config/os/tpf: New directory. * config/os/tpf/os_defines.h: New file. * config/os/tpf/ctype_base.h: Likewise. * config/os/tpf/ctype_inline.h: Likewise. * config/os/tpf/ctype_noninline.h: Likewise. 2004-01-27 Paolo Carlini PR libstdc++/13884 * include/bits/sstream.tcc: Guard use of extern template. 2004-01-27 Paolo Carlini * include/bits/basic_string.tcc (basic_string(const basic_string&, size_type, size_type), basic_string(const basic_string&, size_type, size_type, const _Alloc&)): Avoid unnecessarily constructing iterators. 2004-01-26 Paolo Carlini * 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. 2004-01-26 Paolo Carlini * include/bits/basic_string.h (_M_replace_aux): Use the __N marker in throw message. * include/bits/basic_string.tcc (assign(const _CharT*, size_type), insert(size_type, const _CharT*, size_type), replace(size_type, size_type, const _CharT*, size_type), reserve, _Rep::_S_create, resize, _M_replace_dispatch): Likewise. * include/bits/basic_string.h, include/bits/basic_string.tcc: Fold overlong lines, minor formatting changes. 2004-01-26 Paolo Carlini * include/bits/basic_string.h (replace(iterator, iterator, const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT. (replace(iterator, iterator, const _CharT*)): Ditto. (replace(iterator, iterator, const _CharT*, size_type)): Add missing _GLIBCXX_DEBUG_PEDASSERT. 2004-01-26 Paolo Carlini * include/bits/basic_string.tcc (replace(size_type, size_type, const _CharT*, size_type)): Implement optimized in-place algorithm for non-overlapping ranges. * testsuite/21_strings/basic_string/replace/char/6.cc: New. * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New. * include/bits/basic_string.tcc (insert(size_type, const _CharT*, size_type)): Tweak slightly. 2004-01-26 Andreas Schwab * config/locale/gnu/monetary_members.cc: Restore locale before rethrowing exception. 2004-01-25 Paolo Carlini * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe): Define inline here. * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe): Move inline. * include/bits/basic_string.tcc: Very minor tweaks. 2004-01-25 Paolo Carlini * testsuite/performance/string_append.cc: Increase number of iterations. 2004-01-25 Paolo Carlini * include/bits/basic_string.h (erase(size_type, size_type), erase(iterator), erase(iterator, iterator)): Call _M_replace_safe instead, thus avoiding redundant check for length_error. * include/bits/basic_string.h: Tweak some comments. 2004-01-24 Paolo Carlini * include/bits/basic_string.tcc (operator+(const _CharT*, const basic_string&)): No need to go through the append taking two iterators. 2004-01-24 Paolo Carlini * include/bits/basic_string.tcc (rfind(_CharT, size_type)): Revert last change to use std::min: machine language is worse. (find_last_of(const _CharT*, size_type, size_type)): Ditto. (find_last_not_of(const _CharT*, size_type, size_type)): Ditto. (find_last_not_of(_CharT, size_type)): Ditto. * include/bits/basic_string.tcc (insert(size_type, const _CharT*, size_type)): Discard the value returned by _M_check. (replace(size_type, size_type, const _CharT*, size_type)): Ditto. (append(const basic_string&, size_type, size_type)): Ditto. (copy(_CharT*, size_type, size_type)): Ditto. (compare(size_type, size_type, const basic_string&)): Ditto. (compare(size_type, size_type, const basic_string&, size_type, size_type)): Ditto. (compare(size_type, size_type, const _CharT*)): Ditto. (compare(size_type, size_type, const _CharT*, size_type)): Ditto. 2004-01-24 Paolo Carlini * include/bits/basic_string.h (insert(size_type, const basic_string&, size_type, size_type)): Define inline here. * include/bits/basic_string.tcc (insert(size_type, const basic_string&, size_type, size_type)): Move inline. 2004-01-24 Paolo Carlini * 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. 2004-01-23 Paolo Carlini PR libstdc++/13838 * include/debug/bitset (operator|=): Fix typo. * testsuite/23_containers/bitset/operations/13838.cc: New. 2004-01-23 Paolo Carlini * include/bits/basic_string.tcc (insert(size_type, const _CharT*, size_type __n)): Fix length_error check. (replace(size_type, size_type, const _CharT*, size_type): Ditto; call _M_replace_safe. (_M_replace_aux(size_type, size_type, size_type, _CharT): Fix length_error check. (_M_replace(iterator, iterator, _InputIterator, _InputIterator)): Ditto, tweak. (_M_replace_safe(size_type, size_type, const _CharT*, size_type)): Remove length_error check. * include/bits/basic_string.tcc (append(const basic_string&), append(const basic_string&, size_type, size_type)): Tweak comment. * include/bits/basic_string.tcc (copy(_CharT*, size_type, size_type)): If __n == 0 don't call traits::copy. 2004-01-23 Stefan Olsson * include/ext/mt_allocator.h: Reduce lock contention. 2004-01-23 Paolo Carlini PR libstdc++/13831 * include/bits/fstream.tcc (underflow): Remove unused variable. * include/bits/streambuf_iterator.h (equal): Ditto. * include/bits/locale_facets.h (_M_convert_from_char): Ditto. 2004-01-23 Kaveh R. Ghazi PR c/13814 * config/linker-map.gnu (nan): Delete. * libmath/mathconf.h (NAN, nan): Delete. * linkage.m4 (nan): Don't check for it. * libmath/nan.c: Delete file. * config.h.in, configure: Regenerate. 2004-01-23 Paolo Carlini * include/bits/basic_string.h (push_back(_CharT)): Call _M_replace_aux. (insert(size_type, const basic_string&)): Trivial tweak. (insert(size_type, size_type, _CharT)): Call _M_replace_aux. (insert(iterator, _CharT)): Ditto. (erase(size_type, size_type)): Ditto. (erase(iterator)): Ditto. (erase(iterator, iterator)): Ditto. (replace(size_type, size_type, size_type, _CharT)): Ditto. 2004-01-23 Loren J. Rittle libstdc++/13823 * testsuite/performance/allocator_map_thread.cc: New test. 2004-01-22 Paolo Carlini * include/bits/locale_facets.tcc (money_put::do_put(..., long double)): Use the basic_string constructor for char arrays, not that for C-strings, to pass __digits to do_put(..., const string_type&): __ws isn't null-terminated. 2004-01-22 Paolo Carlini * 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. 2004-01-21 Paolo Carlini * include/bits/basic_string.tcc (append(const basic_string&)): Revert previous change. (append(const basic_string&, size_type, size_type)): Revert previous change, use _M_check and _M_limit. 2004-01-21 Paolo Carlini * include/bits/basic_string.h (_M_check): Change to return a checked __pos and take an additional const char* argument. (_M_fold): Rename to _M_limit, change to return a size_type, corresponding to the __off limited to the actual length. (insert(size_type, size_type, _CharT)): Update call, call replace. (insert(iterator, _CharT)): Call replace(iterator, iterator, size_type, _CharT) instead. (erase(size_type, size_type)): Update calls. (replace(size_type, size_type, size_type, _CharT)): Ditto. (substr(size_type, size_type)): Use _M_check. * include/bits/basic_string.tcc (basic_string(const basic_string&, size_type, size_type)): Update calls. (basic_string(const basic_string&, size_type, size_type, const _Alloc&)): Ditto. (assign(const basic_string&, size_type, size_type)): Use the new _M_check and _M_limit. (insert(size_type, const basic_string&, size_type, size_type): Ditto. (insert(size_type, const _CharT*, size_type)): Ditto. (replace(size_type, size_type, const _CharT*, size_type): Ditto. (replace(size_type, size_type, const basic_string&, size_type, size_type)): Ditto. (append(const basic_string&)): Ditto. (append(const basic_string&, size_type, size_type)): Ditto. (copy(_CharT*, size_type, size_type)): Ditto. (compare(size_type, size_type, const basic_string&)): Ditto. (compare(size_type, size_type, const basic_string&,size_type, size_type)): Ditto. (compare(size_type, size_type, const _CharT*)): Ditto. (compare(size_type, size_type, const _CharT*, size_type)): Ditto. 2004-01-19 Stefan Olsson * include/ext/mt_allocator.h: If a thread, when it dies, still has memory on it's freelist this memory is not returned to global list. Simplification of deallocate so that memory is always returned to the calling thread id's freelist instead of to global. Fix typos. Add volatile where appropriate. 2004-01-19 Loren J. Rittle * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered. * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test. Like -2 but use __gnu_cxx::stdio_sync_filebuf instead; allow buffered stream. 2004-01-19 Paolo Carlini * src/debug.cc: Make sure all the names are prefixed with double (or single) underscore. 2004-01-19 Paolo Carlini * src/debug.cc: Trivial formatting change. 2004-01-19 Paolo Carlini * include/bits/basic_string.tcc (_S_construct(size_type, _CharT, const _Alloc&)): Remove redundant try/catch. (_M_mutate(size_type, size_type, size_type)): Ditto. (_M_clone(const _Alloc&, size_type)): Ditto. 2004-01-18 Paolo Carlini * include/bits/basic_string.h (c_str()): Simplify, due to 21.3.4 the internal representation is always kept null-terminated. * include/bits/basic_string.tcc (_M_clone): Null-terminate. * testsuite/21_strings/basic_string/element_access/char/4.cc: New. * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc: Ditto. 2004-01-18 Paolo Carlini * 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. 2004-01-16 Benjamin Kosnik * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards. * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same. 2004-01-16 Danny Smith * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling mkfifo for mingw32. 2004-01-15 Stefan Olsson * include/ext/mt_allocator.h: Reuse thread id's as soon as possible by changing the behaviour of thread_freelist to do push_front when threads die instead of push_back. 2004-01-14 Paolo Carlini * 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. 2004-01-14 Stefan Olsson * include/ext/mt_allocator.h: Fixups. * testsuite/performance/allocator.cc: Enable __mt_alloc tests. * testsuite/performance/allocator_thread.cc: Same. 2004-01-13 Benjamin Kosnik * testsuite/performance/ifstream_extract_float.cc: Add higher precision tests. * testsuite/performance/ofstream_insert_float.cc: Same. 2004-01-13 Paolo Carlini * 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. 2004-01-13 Benjamin Kosnik * testsuite/performance/ifstream_extract_float.cc: New. * testsuite/performance/ofstream_insert_float.cc: Float generation matches above. * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into... * 20_util/auto_ptr/1.cc: ...this. * 20_util/auto_ptr/2.cc: Same. * 20_util/auto_ptr/3.cc: Same. * 20_util/auto_ptr/3946.cc: Same. * 20_util/auto_ptr/4.cc: Same. * 20_util/auto_ptr/5.cc: Same. * 20_util/auto_ptr/6.cc: Same. * 20_util/auto_ptr/7.cc: Same. * 20_util/auto_ptr/assign_neg.cc * 20_util/pairs.cc: Break into... * 20_util/pair/1.cc: ...this. * 20_util/pair/2.cc: Same. * 20_util/pair/3.cc: Same. * 20_util/pair/4.cc: Same. 2004-01-13 Paolo Carlini * include/bits/locale_facets.tcc (num_get::do_get(void*&)): Set correctly just basefield, the only group that matters. 2004-01-13 Paolo Carlini * include/ext/rope (_Rope_rep_alloc_base): Eliminate. (_Rope_rep_base): Inherit directly from the rope allocator; use rebinding instead of _Alloc_traits; pick up data member from _Rope_rep_alloc_base. (_Rope_alloc_base): Eliminate. (_Rope_base): Inherit directly from the rope allocator; use rebinding instead of _Alloc_traits; pick up data member from _Rope_alloc_base. (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation, rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak. 2004-01-13 Paolo Carlini PR libstdc++/13650 * include/bits/basic_string.tcc (compare(size_type, size_type, const _CharT*, size_type)): Implement correctly the resolution of DR 5: basically, s is a char array, -not- a C string. * include/bits/basic_string.h: Tweak some comments. * testsuite/21_strings/basic_string/compare/char/13650.cc: New. * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New. 2004-01-12 Andreas Tobler * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for Solaris. 2004-01-12 Paolo Carlini * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: Use try_mkfifo. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Likewise. 2004-01-12 Paolo Carlini * include/bits/locale_facets.h (struct __numpunct_cache): Add members _M_truename_len and _M_falsename_len, caching the lengths of _M_truename and _M_falsename. (__numpunct_cache<>::_M_cache): Assign the latter. * include/bits/locale_facets.tcc (num_get::do_get(bool&), num_put::do_put(bool)): Use the new members, thus avoiding computing string lengths again and again. * config/locale/generic/numeric_members.cc (numpunct<>::_M_initialize_numpunct): Assign the new members. * config/locale/gnu/numeric_members.cc (numpunct<>::_M_initialize_numpunct): Likewise. 2004-01-12 Mark Mitchell * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it. * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define it. * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo and remove Cygwin XFAIL. * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise. * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise. * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise. * testsuite/27_io/objects/char/7.cc: Likewise. * testsuite/27_io/objects/char/9661-1.cc: Likewise. * testsuite/27_io/objects/wchar_t/7.cc: Likewise. * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise. 2004-01-11 Gabriel Dos Reis * include/std/std_complex.h (std::complex<>::real): Return a reference. Add non-const overload. (std::complex<>::real): Likewise. (std::real): Likewise. (std::imag): Likewise. (std::operator+): Tidy. (std::operator-): Likewise. (std::operator*): Likewise. (std::operator/): Likewise. (std::operator>>): Likewise. 2004-01-11 Paolo Carlini PR libstdc++/13582 * include/bits/fstream.tcc (imbue): Exploit the external buffer to imbue 'on the fly' a new locale and convert its remainder with the new codecvt facet. (underflow): Tweak slightly to deal with this special case. * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto. * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto. * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto. 2004-01-10 Paolo Carlini * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html: Import Revision 28. 2004-01-10 Paolo Carlini PR libstdc++/13630 * include/bits/locale_classes.h (class locale): Fix category typedef. * testsuite/22_locale/locale/13630.cc: Add. 2004-01-10 Giovanni Bajo * include/bits/locale_facets.h: Make a name really dependent. This will be needed when Core Issue 224 is implemented. 2004-01-09 Paolo Carlini * testsuite/performance/allocator.cc: Demangle typeid(obj).name(). * testsuite/performance/allocator_thread.cc: Likewise. 2004-01-07 Benjamin Kosnik * crossconfig.m4: Add LFS, io bits to linux cross config. * acconfig.h: Remove obsolete bits, reorder. * config.h.in: Regenerate. * aclocal.m4: Same. * configure: Same. 2004-01-07 Gawain Bolton * 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 * 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. 2004-01-07 Loren J. Rittle (re-open) PR libstdc++/12658 * src/locale_init.cc (locale::locale): Remove ill-scoped mutex. (locale::global): Likewise. 2004-01-07 Paolo Carlini * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc: Remove redundant #include. * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise, re-enable normal testing. * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant #include. * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/3.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/5.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/6.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/8.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc: More properly, #include . * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc: Remove redundant #include. * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove redundant DejaGnu directive. * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove redundant #include. 2004-01-06 Benjamin Kosnik Stefan Olsson * scripts/check_performance: Use -pthread. * testsuite/performance/allocator.cc: Tweaks, add list. * testsuite/performance/allocator_thread.cc: New. 2004-01-06 Jerry Quinn * include/bits/locale_facets.h: Document public classes and functions. * include/bits/locale_facets.tcc (time_get::_M_extract_via_format): Add comment. 2004-01-06 Paolo Carlini * testsuite/27_io/basic_istream/extractors_other/char/1.cc: Remove redundant #includes. * testsuite/27_io/basic_istream/extractors_other/char/2.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/3.cc: Likewise. * testsuite/27_io/basic_istream/get/char/1.cc: Likewise. * testsuite/27_io/basic_istream/get/char/2.cc: Likewise. * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise. * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise. * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise. * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise. * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise. * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise. * testsuite/27_io/basic_istream/read/char/1.cc: Likewise. * testsuite/27_io/basic_istream/read/char/2.cc: Likewise. * testsuite/27_io/basic_istream/read/char/3.cc: Likewise. * testsuite/27_io/basic_istream/readsome/char/6746-1.cc: Likewise. * testsuite/27_io/basic_istream/readsome/char/6746-2.cc: Likewise. * testsuite/27_io/basic_istream/readsome/char/8258.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise. 2004-01-04 Paolo Carlini * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc: Remove redundant #includes. * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc: Likewise. 2004-01-04 Mark Mitchell PR c++/12226 * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy constructor. * testsuite/27_io/basic_fstream/4.cc: Likewise. * testsuite/27_io/basic_ifstream/4.cc: Likewise. * testsuite/27_io/basic_ios/4.cc: Likewise. * testsuite/27_io/basic_iostream/4.cc: Likewise. * testsuite/27_io/basic_istream/4.cc: Likewise. * testsuite/27_io/basic_istingstream/4.cc: Likewise. * testsuite/27_io/basic_ofstream/4.cc: Likewise. * testsuite/27_io/basic_ostream/4.cc: Likewise. * testsuite/27_io/basic_ostringstream/4.cc: Likewise. * testsuite/27_io/basic_stringbuf/5.cc: Likewise. * testsuite/27_io/basic_stringstream/4.cc: Likewise. 2004-01-04 Paolo Carlini * config/locale/generic/numeric_members.cc (_M_initialize_numpunct): Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in; always use double underscored names. * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct): Likewise. * include/bits/locale_facets.h (struct __numpunct_cache): Dimension _M_atoms_out and _M_atoms_in one position smaller. (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out and _M_atoms_in.