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.