2004-04-21 Paolo Carlini * include/bits/deque.tcc: Trivial formatting fixes. * include/bits/stl_deque.h: Likewise. * include/bits/stl_list.h: Likewise. * include/bits/stl_tree.h: Likewise. 2004-04-21 Paolo Carlini Andrew Pinski * include/bits/basic_string.tcc (_M_mutate): Don't compute __src unnecessarily. 2004-04-19 Benjamin Kosnik * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc: Clarify assertion, set test variable to false before assert. * testsuite/27_io/basic_istringstream/str/char/1.cc: Same. * testsuite/27_io/basic_stringstream/str/char/1.cc: Same. * testsuite/27_io/ios_base/storage/2.cc: Same. * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Fix function returns. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Same. * testsuite/27_io/fpos/14320-3.cc: Same. * testsuite/27_io/basic_filebuf/2.cc: Instantiate in namespace std. * testsuite/27_io/fpos/1.cc: Same. * testsuite/27_io/basic_stringstream/2.cc: Same. * testsuite/27_io/basic_stringbuf/4.cc: Same. * testsuite/27_io/basic_stringbuf/1.cc: Same. * testsuite/27_io/basic_stringbuf/2.cc: Same. * testsuite/27_io/basic_streambuf/2.cc: Same. * testsuite/27_io/basic_ostringstream/2.cc: Same. * testsuite/27_io/basic_ostream/2.cc: Same. * testsuite/27_io/basic_ofstream/2.cc: Same. * testsuite/27_io/basic_istringstream/2.cc: Same. * testsuite/27_io/basic_istream/2.cc: Same. * testsuite/27_io/basic_iostream/2.cc: Same. * testsuite/27_io/basic_ios/2.cc: Same. * testsuite/27_io/basic_ifstream/2.cc: Same. * testsuite/27_io/basic_fstream/2.cc: Same. * testsuite/ext/stdio_filebuf/char/1.cc: Same, in namespace __gnu_cxx. * testsuite/21_strings/basic_string/capacity/1.cc: Don't compare unsigned against zero. * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Same. * testsuite/21_strings/basic_string/capacity/char/1.cc: Same. * testsuite/18_support/new_delete_placement.cc: Initialize variables before first use. * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Same. * testsuite/21_strings/char_traits/requirements/char/1.cc: Same. * testsuite/21_strings/char_traits/requirements/short/1.cc: Same. * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc: Same. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc: Same. * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc: Same. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc: Same. * testsuite/27_io/types/2.cc: Same. * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Fix temporary file name. * testsuite/27_io/fpos/14775.cc: Same. 2004-04-19 Paolo Carlini PR libstdc++/15002 (partial) * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe): Special case __n2 == 1, not calling traits_type::assign/copy. 2004-04-17 Benjamin Kosnik * include/bits/stl_bvector.h: Use _M_impl._M_start. 2004-04-16 Benjamin Kosnik * include/bits/c++config (_GLIBCXX_STD): New. * src/list.cc: Use it. * include/std/std_bitset.h: Same. * include/bits/vector.tcc: Same. * include/bits/stl_set.h: Same. * include/bits/stl_multiset.h: Same. * include/bits/stl_multimap.h: Same. * include/bits/stl_map.h: Same. * include/bits/stl_list.h: Same. * include/bits/stl_vector.h: Same. * include/bits/stl_bvector.h: Same. * include/bits/stl_deque.h: Same. * include/bits/deque.tcc: Same. * include/bits/list.tcc: Same. * include/debug/vector: Same. * include/debug/set.h: Same. * include/debug/multiset.h: Same. * include/debug/multimap.h: Same. * include/debug/map.h: Same. * include/debug/list: Same. * include/debug/deque: Same. * include/debug/bitset: Same. * include/debug/formatter.h (__gnu_debug): Remove using directive. Add using declaration for std::type_info. * include/debug/safe_iterator.h: Add using declaration for std::iterator_traits and std::pair. * src/debug_list.cc: New. * src/Makefile.am: Add debug_list.cc. * src/Makefile.in: Regenerate. * config/linker-map.gnu: Add _List_node_base exports for std and __gnu_norm. * include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl idiom that other containers use. * testsuite/23_containers/vector/bool/clear_allocator.cc: New. 2004-04-16 Paolo Carlini PR libstdc++/14975 * include/bits/fstream.tcc (basic_filebuf::imbue): Zero _M_codecvt in case of error. * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: New. * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: New. 2004-04-16 Paolo Carlini * acconfig.h: Remove _GLIBCXX_USE_LONG_DOUBLE entry, not used anymore. * config.h.in: Regenerate. 2004-04-16 Paolo Carlini * config/locale/generic/monetary_members.cc (moneypunct::_M_initialize_moneypunct): Avoid calling btowc unnecessarily, just cast to wchar_t (the concerned chars all belong to the basic character set). * config/locale/generic/numeric_members.cc (numpunct::_M_initialize_numpunct): Likewise. * config/locale/gnu/monetary_members.cc (moneypunct::_M_initialize_moneypunct): Likewise. * config/locale/gnu/numeric_members.cc (numpunct::_M_initialize_numpunct): Likewise. 2004-04-15 Paolo Carlini * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl avoid constructing unnecessarily this->name(). 2004-04-14 Zack Weinberg * testsuite/Makefile.am: Add definition of AM_CXXFLAGS. Change definition of CXX to use $(shell) instead of backticks. * testsuite/Makefile.in: Regenerate. 2004-04-12 Dhruv Matani * testsuite/performance/20_util/allocator/list_sort_search.cc: Minor formatting fixes. * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise. 2004-04-12 Paolo Carlini * config/locale/gnu/numeric_members.cc (numpunct::_M_initialize_numpunct): No need to wrap in __uselocale, since btowc is called for chars belonging to the basic character set. 2004-04-09 Paolo Carlini * testsuite/22_locale/messages/members/char/1.cc: Remove junk. * testsuite/22_locale/messages/members/char/2.cc: Ditto. * testsuite/22_locale/messages/members/char/3.cc: Ditto. * testsuite/22_locale/num_get/get/char/1.cc: Ditto. * testsuite/22_locale/num_get/get/char/2.cc: Ditto. * testsuite/22_locale/num_get/get/char/3.cc: Ditto. * testsuite/22_locale/num_get/get/wchar_t/1.cc: Ditto. * testsuite/22_locale/num_get/get/wchar_t/2.cc: Ditto. * testsuite/22_locale/num_get/get/wchar_t/3.cc: Ditto. * testsuite/22_locale/num_put/put/char/1.cc: Ditto. * testsuite/22_locale/num_put/put/char/2.cc: Ditto. * testsuite/22_locale/num_put/put/char/3.cc: Ditto. * testsuite/22_locale/num_put/put/wchar_t/1.cc: Ditto. * testsuite/22_locale/num_put/put/wchar_t/2.cc: Ditto. * testsuite/22_locale/num_put/put/wchar_t/3.cc: Ditto. * testsuite/22_locale/numpunct/members/char/1.cc: Ditto. * testsuite/22_locale/numpunct/members/wchar_t/1.cc: Ditto. 2004-04-07 Paolo Carlini * config/locale/generic/time_members.cc (__timepunct::_M_initialize_timepunct, __timepunct::_M_initialize_timepunct): the correct _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively. * config/locale/gnu/time_members.cc (__timepunct::_M_initialize_timepunct, __timepunct::_M_initialize_timepunct): Ditto. * testsuite/22_locale/time_get/get_monthname/char/4.cc: New. * testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New. * testsuite/22_locale/time_get/date_order/char/1.cc: Remove junk. * testsuite/22_locale/time_get/date_order/wchar_t/1.cc: Ditto. * testsuite/22_locale/time_get/get_date/char/1.cc: Ditto. * testsuite/22_locale/time_get/get_date/char/2.cc: Ditto. * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Ditto. * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Ditto. * testsuite/22_locale/time_get/get_monthname/char/1.cc: Ditto. * testsuite/22_locale/time_get/get_monthname/char/2.cc: Ditto. * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto. * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Ditto. * testsuite/22_locale/time_get/get_time/char/1.cc: Ditto. * testsuite/22_locale/time_get/get_time/char/2.cc: Ditto. * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto. * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Ditto. * testsuite/22_locale/time_get/get_weekday/char/1.cc: Ditto. * testsuite/22_locale/time_get/get_weekday/char/2.cc: Ditto. * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto. * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Ditto. * testsuite/22_locale/time_get/get_year/char/1.cc: Ditto. * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto. * testsuite/22_locale/time_put/put/char/1.cc: Ditto. * testsuite/22_locale/time_put/put/char/2.cc: Ditto. * testsuite/22_locale/time_put/put/char/3.cc: Ditto. * testsuite/22_locale/time_put/put/char/4.cc: Ditto. * testsuite/22_locale/time_put/put/char/5.cc: Ditto. * testsuite/22_locale/time_put/put/char/6.cc: Ditto. * testsuite/22_locale/time_put/put/char/7.cc: Ditto. * testsuite/22_locale/time_put/put/char/8.cc: Ditto. * testsuite/22_locale/time_put/put/wchar_t/1.cc: Ditto. * testsuite/22_locale/time_put/put/wchar_t/2.cc: Ditto. * testsuite/22_locale/time_put/put/wchar_t/3.cc: Ditto. * testsuite/22_locale/time_put/put/wchar_t/4.cc: Ditto. * testsuite/22_locale/time_put/put/wchar_t/5.cc: Ditto. * testsuite/22_locale/time_put/put/wchar_t/6.cc: Ditto. * testsuite/22_locale/time_put/put/wchar_t/7.cc: Ditto. * testsuite/22_locale/time_put/put/wchar_t/8.cc: Ditto. * testsuite/22_locale/time_put/put/char/9780-1.cc: Fix typos. 2004-04-07 Paolo Carlini * config/locale/gnu/monetary_members.cc (moneypunct::_M_initialize_moneypunct): Prefer _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC, and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC, _NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING. * config/locale/gnu/numeric_members.cc (numpunct::_M_initialize_numpunct): Prefer DECIMAL_POINT and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP. 2004-04-06 Benjamin Kosnik Fixups for EDG front end. * include/ext/rope: Instead of non-existent function _Data_allocate, use allocator's allocate. Use this. (namespace _Rope_constants): Move _S_max_rope_depth, and _Tag enumerations from _Rope_RopeRep here. * include/ext/ropeimpl.h: Same. * src/ext-inst.cc (_S_min_len): Fix up definition. * config/locale/gnu/ctype_members.cc: Qualify base class members with this. * config/locale/generic/ctype_members.cc: Same. * config/locale/gnu/messages_members.h: Same. * config/locale/generic/messages_members.h: Same. * src/ctype.cc: Same. * include/bits/codecvt.h: Same. * include/bits/boost_concept_check.h: Declare. (__error_type_must_be_an_unsigned_integer_type): Remove this. (__error_type_must_be_an_integer_type): Remove this. (__error_type_must_be_a_signed_integer_type): Remove this. * config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast. * libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception specification to definition. (__cxa_allocate_exception): Same. * libsupc++/eh_catch.cc (__cxa_begin_catch): Same. * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same. (__cxa_get_globals): Same. * libsupc++/del_op.cc: Add comment about freestanding. 2004-04-05 Paolo Carlini * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): The critical section is actually very small, only two assignments. 2004-04-04 Paolo Carlini Petur Runolfsson * testsuite/performance/27_io/filebuf_sputn_unbuf.cc: New, adapted from libstdc++/11378. 2004-04-03 Paolo Carlini * include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out some duplicated code. (__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used in the single threaded case. * testsuite/performance/20_util/allocator/list_sort_search.cc: Reorder and renumber the tests consistently with the other testfiles. * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto. * testsuite/performance/20_util/allocator/map_thread.cc: Ditto. * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto. 2004-04-02 Paolo Carlini * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): Rearrange arithmetic to avoid computing two divisions at each deallocation. 2004-04-01 Paolo Carlini * include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize): Streamline the second half, wrapping it in a single '#ifdef __GTHREADS if (__gthread_active_p())' and avoiding conditionals inside loops. 2004-04-01 Paolo Carlini PR libstdc++/14775 * acconfig.h: Rename _GLIBCXX_MEM_LIMITS to _GLIBCXX_RES_LIMITS. * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Call GLIBCXX_CHECK_SETRLIMIT_ancilliary for FSIZE too, adjust define to _GLIBCXX_RES_LIMITS. (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Rename HAVE_MEMLIMIT_* to HAVE_LIMIT_*. * testsuite/testsuite_hooks.h: Declare set_file_limit. * testsuite/testsuite_hooks.cc: Define it, using getrlimit and setrlimit(RLIMIT_FSIZE). * testsuite/27_io/fpos/14775.cc: New. * config.h.in: Regenerate. * configure: Likewise. 2004-03-31 Paolo Carlini * config/locale/generic/c_locale.cc (__convert_to_v(long double&)): In v3 uses of sscanf, the special floating-point numbers INF, INFINITY, etc., cannot occur in input, therefore, if the latter is too large, ERANGE is always stored in errno, no need of finitel. 2004-03-30 Benjamin Kosnik PR libstdc++/14783 * include/bits/stl_tree.h: Adjust initialization list order. 2004-03-29 Loren J. Rittle * testsuite/thread/pthread7-rope.cc: Update comment to reflect test. 2004-03-29 Paolo Carlini * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending on allocator behavior, the memory pointed by data2 may well be not trashed. 2004-03-28 Chavdar Botev PR libstdc++/14245 * include/bits/basic_string.tcc (basic_string::basic_string(const basic_string&)): Pass to _Rep::_M_grab the actual allocator of the string being constructed not the default constructed one. 2004-03-27 Benjamin Kosnik libstdc++ PR/13598 * config/locale/ieee_1003.1-2001/codecvt_specializations.h (__enc_traits::_M_destroy): New. (__enc_traits::~__enc_traits): Use it. (__enc_traits::operator=): Use _M_destroy, _M_init. (__enc_traits::__enc_traits): Same. 2004-03-27 Petur Runolfsson * testsuite/ext/enc_filebuf/char/13598.cc: New. 2004-03-27 Paolo Carlini * include/ext/mt_allocator.h: Uglify consistently names of variables, members and classes; tidy. 2004-03-27 Dhruv Matani * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): Deallocation loop rewrote. 2004-03-26 Paolo Carlini * include/ext/mt_allocator.h (__mt_alloc<>::allocate, __mt_alloc<>::deallocate): Protect two instances of block->thread_id with __GTHREADS. 2004-03-25 Gawain Bolton * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator default argument in constructors. (_Rb_tree::_M_empty_initialize): Remove. 2004-03-25 Benjamin Kosnik * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers. * testsuite/23_containers/set/operators/1_neg.cc: Same. 2004-03-25 Dhruv Matani * include/bits/cpp_type_traits.h: Changed __is_pod completely. Now, it does not use any of the previous type_traits to detect the pod types, and it also detects function pointers as POD types. * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl, which encapsulates the internal implementation of an rb_tree. Made the allocator a base class of this class instead of the rb_tree, which was not conforming. This _Rb_tree_impl class is also specialized on whether the _Compare parameter is a POD type or not. If so, then it maintains the comparison function as a data member, otherwise it makes the _Compare parameter a base class of itself. Also, _M_key_compare is now a function instead of a data member, so that the above trick can work properly. Delegated the initialization of the other data members to this newly created class. Also, now other member functions of rb_tree must refer to _M_key_compare as _M_impl._M_key_compare(). The other data members (*) can be referenced to as _M_impl.(*), where (*) includes _M_header, and _M_node_count. 2004-03-25 Paolo Carlini * include/ext/mt_allocator.h (__mt_alloc<>::tune): Add _M_min_bin, the size in bytes of the smallest bin. (__mt_alloc<>::tune()): Tweak accordingly. (__mt_alloc<>::tune(size_t, ...)): Likewise. (__mt_alloc<>::block_record): Change to a union: members next and thread_id are never used at the same time. (__mt_alloc<>::allocate): Update consistently. (__mt_alloc<>::deallocate): Likewise. (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and _S_bin_size for the configurable _M_min_size. 2004-03-25 Dhruv Matani * include/bits/stl_list.h: Created a _List_impl class and made it derive from the allocator, instead of the list deriving from the allocator class, which was not conformant. Changed all references from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same as above (changed all references to the concerned variables). 2004-03-25 Dhruv Matani * include/bits/stl_deque.h: Created a _Deque_impl class and made it derive from the allocator, instead of the deque deriving from the allocator class, which was not conformant. Changed all references to the _M_start, _M_finish, _M_map, and _M_map_size to _M_impl.*. (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this-> qualification in 2 places where it was missing. (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as above. * include/bits/deque.tcc: Same as above (changed all references to the concerned variables). 2004-03-25 Dhruv Matani * include/bits/stl_vector.h: Created a _Vector_impl class and made it derive from the allocator, instead of the _Vector_base class, deriving from the allocator which was not conformant. Changed all references to the _M_start, _M_finish, and _M_end_of_storage to _M_impl.*. * include/bits/vector.tcc: Same as above (changed all references to the concerned variables). 2004-03-25 Dhruv Matani * testsuite/23_containers/deque/cons/clear_allocator.cc: New. * testsuite/23_containers/list/cons/clear_allocator.cc: New. * testsuite/23_containers/vector/cons/clear_allocator.cc: New. 2004-03-24 Dhruv Matani * include/ext/malloc_allocator.h: Fixed the construct function to call global placement new instead of assignment. Added a check after the return from malloc to check whether returned pointer is NULL, and if so, throw std::bad_alloc(). * include/ext/debug_allocator.h: Added a check in the deallocate function to check whether the user has passed a NULL pointer or not. 2004-03-24 Benjamin Kosnik * docs/html/20_util/allocator.html: Add bitmap_allocator links. 2004-03-24 Andreas Schwab * testsuite/lib/prune.exp (prune_g++_output): Ignore errata warning from IA64 assembler. 2004-03-24 Dhruv Matani * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this function call __builtin_ctz instead of the while loop. (allocate) -> If condition has __builtin_expect. (deallocate) -> Ditto. Renamed a few left-over variables and typedefs according to the C++STYLE mentioned in the documentation. Protected calls to __gthread* by __gthread_active_p(), whose value is cached in the local variable __threads_active. 2004-03-24 Felix Yen * testsuite/performance/20_util/allocator/producer_consumer.cc: Use linear algorithm for producer. 2004-03-24 Paolo Carlini * include/ext/mt_allocator.h (__mt_alloc<>::allocate, __mt_alloc<>::deallocate): Avoid redundant conditionals. 2004-03-23 Benjamin Kosnik * include/bits/locale_facets.h: Tweaks for 80 column. (__numpunct_cache::_M_cache): Move to locale_facets.tcc. (__moneypunct_cache::_M_cache): Same. (num_get): Don't inherit from __num_base. (num_put): Same. (money_get): Don't inherit from money_base. (money_put): Same. (__timepunct::_M_am_pm_format): New. (time_get::_M_extract_num): Return iterator, use ios_base as argument. (time_get::_M_extract_name): Same. (time_get::_M_extract_via_format): Same. * include/bits/locale_facets.tcc: Tweaks for 80 column. Use _M_getloc instead of getloc. * testsuite/22_locale/money_put/put/char/9780-3.cc: New. * testsuite/22_locale/num_put/put/char/9780-2.cc: New. * testsuite/22_locale/time_put/put/char/9780-1.cc: New. 2004-03-22 Paolo Carlini * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator. * configure: Regenerate. * config/allocator/pool_allocator_base.h: New. * include/ext/pool_allocator.h: Convert to a standard-conforming allocator. * src/allocator.cc: Tweak instantiations. * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc. * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto. * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto. * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto. * testsuite/performance/20_util/allocator/map_thread.cc: Ditto. * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto. 2004-03-22 Hans-Peter Nilsson * config/cpu/cris/atomicity.h (__atomic_add): Remove "static inline" and attribute-unused. Qualify parameter __mem with "volatile". (__exchange_and_add): Ditto. Add back memory clobber to asm. 2004-03-20 Paolo Carlini * testsuite/27_io/basic_istream/extractors_arithmetic/char/2.cc: Remove junk. * testsuite/27_io/basic_istream/extractors_arithmetic/char/3.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/6.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/7.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/8.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/9.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/12.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc: Likewise. 2004-03-20 Paolo Carlini * include/std/std_valarray.h: Document DR389 [Ready]. * docs/html/ext/howto.html: Add an entry for DR389. 2004-03-19 Michael Eager * config/cpu/mips/atomicity.h: Prevent reg loads between LL and SC instructions. 2004-03-19 Paolo Carlini * testsuite/22_locale/num_get/get/char/11.cc: Remove redundant static_cast-s. * testsuite/22_locale/num_get/get/char/12.cc: Likewise. * testsuite/22_locale/num_get/get/char/13.cc: Likewise. * testsuite/22_locale/num_get/get/char/14.cc: Likewise. * testsuite/22_locale/num_get/get/char/15.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/13.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/14.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/15.cc: Likewise. 2004-03-19 Paolo Carlini Petur Runolfsson PR libstdc++/12077 * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's no way to find out the conversion used by the underlying FILE*. * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New. * testsuite/27_io/objects/char/9.cc: Tweak. 2004-03-19 Paolo Carlini PR libstdc++/14648 * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix memory allocation/deallocation calls. * testsuite/ext/14648.cc: New. 2004-03-19 Peter Schmid PR libstdc++/14647 * include/backward/bvector.h (bit_vector): Allocator is in std namespace. 2004-03-19 Phil Edwards * acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT): Set LIBICONV, not libiconv. SUBST this variable as well. * testsuite/Makefile.am (site.exp): New target, based on that created by automake. Also set libiconv. * configure, Makefile.in, include/Makefile.in, libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in, testsuite/Makefile.in: Regenerate. 2004-03-16 Benjamin Kosnik * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is new_allocator for all hosts. * configure: Regenerate. 2004-03-16 Paolo Carlini * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers. * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise. 2004-03-15 Paolo Carlini * include/bits/locale_facets.tcc (money_get<>::_M_extract): Adjust the logic underlying the parsing of symbol to deal correctly with an optional sign component (i.e., when either negative_sign or positive_sign is empty) * testsuite/22_locale/money_get/get/char/19.cc: New. * testsuite/22_locale/money_get/get/wchar_t/19.cc: New. 2004-03-15 Paolo Carlini * include/bits/locale_facets.tcc (money_get<>::_M_extract): Do not accept an incomplete currency symbol. * testsuite/22_locale/money_get/get/char/18.cc: New. * testsuite/22_locale/money_get/get/wchar_t/18.cc: New. 2004-03-13 Benjamin Kosnik * config/allocator: New. * config/allocator/bitmap_allocator_base.h: New. * config/allocator/malloc_allocator_base.h: New. * config/allocator/mt_allocator_base.h: New. * config/allocator/new_allocator_base.h: New. * include/bits/allocator.h: Include c++allocator.h. * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New. * aclocal.m4: Regenerate. * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR. * configure: Regenerate. * include/Makefile.am (host_headers_extra): Add c++allocator.h. * include/Makefile.in: Regenerate. * docs/html/configopts.html: Add enable-libstdcxx-allocator. 2004-03-12 Benjamin Kosnik * include/bits/allocator.h: Revert. 2004-03-12 Paolo Carlini * docs/html/ext/howto.html: Add entry for DR 253 [Ready]. * include/bits/gslice_array.h: Add comment about DR 253. * include/bits/indirect_array.h: Likewise. * include/bits/mask_array.h: Likewise. * include/bits/slice_array.h: Likewise. 2004-03-12 Benjamin Kosnik * testsuite/20_util/allocator/14176.cc: New. * include/ext/mt_allocator.h: Formatting fixes. 2004-03-11 Dhruv Matani * include/Makefile.am (ext_headers): Add ${ext_srcdir}/bitmap_allocator.h . * include/Makefile.in: Regenerate. * docs/html/ext/ballocator_doc.txt: New file. * include/ext/bitmap_allocator.h: New file. * testsuite/performance/20_util/allocator/list_sort_search.cc: Add test. * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise. * testsuite/performance/20_util/allocator/producer_consumer.cc: Add test for the bitmap_allocator<>. * testsuite/performance/20_util/allocator/insert.cc: Likewise. * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise. * testsuite/performance/20_util/allocator/map_thread.cc: Likewise. 2004-03-11 Paolo Carlini * include/std/std_complex.h (pow(const complex&, const _Tp&), pow(const _Tp&, const complex&), pow(const complex&, const complex&)): Fully qualify with std:: a few calls. * testsuite/26_numerics/complex/13450.cc: Minor tweak. 2004-03-11 Steven Bosscher PR libstdc++/11706 * include/c_std/cmath.tcc (__cmath_power): Define inline. 2004-03-10 Kelley Cook * configure.ac: Bump AC_PREREQ to 2.59. 2004-03-10 Paolo Carlini * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos. 2004-03-10 Paul Kienzle Paolo Carlini PR libstdc++/13450 * include/std/std_complex.h (pow(const complex&, const _Tp&), pow(const _Tp&, const complex&)): Use cmath pow only when safe. * testsuite/26_numerics/complex/13450.cc: New. * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc. * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix. 2004-03-10 Jerry Quinn PR libstdc++/3247 * include/bits/gslice_array.h (gslice_array()): Make public. (operator=(gslice_array)): Make public. Implement. * include/bits/indirect_array.h (indirect_array()): Make public. * include/bits/mask_array.h (mask_array()): Make public. (operator=(mask_array)): Make public. Implement. * include/bits/valarray_array.tcc (__valarray_copy): Comment. Add versions for gslice_array and mask_array. * testsuite/26_numerics/valarray_subset_assignment.cc: New test. 2004-03-09 Benjamin Kosnik * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for non-weak systems. * testsuite/23_containers/vector/modifiers/swap.cc: Same. * testsuite/23_containers/set/modifiers/swap.cc: Same. * testsuite/23_containers/multiset/modifiers/swap.cc: Same. * testsuite/23_containers/multimap/modifiers/swap.cc: Same. * testsuite/23_containers/map/modifiers/swap.cc: Same. * testsuite/23_containers/list/modifiers/swap.cc: Same. * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions. 2004-03-08 Benjamin Kosnik PR c++/13658 * testsuite/23_containers/deque/modifiers/swap.cc: New. * testsuite/23_containers/list/modifiers/swap.cc: New. * testsuite/23_containers/map/modifiers/swap.cc: New. * testsuite/23_containers/multimap/modifiers/swap.cc: New. * testsuite/23_containers/multiset/modifiers/swap.cc: New. * testsuite/23_containers/set/modifiers/swap.cc: New. * testsuite/23_containers/vector/modifiers/swap.cc: New. 2004-03-08 Petur Runolfsson PR libstdc++/12658 * testsuite/22_locale/locale/cons/12658_thread.cc: New. 2004-03-08 Paolo Carlini * docs/html/ext/howto.html: Add entry for DR 103 [WP]. * include/bits/stl_multiset.h: Add comment about DR 103. * include/bits/stl_set.h: Likewise. 2004-03-08 Paolo Carlini * include/bits/locale_facets.tcc (money_get<>::_M_extract): The value _space_ indicates that at least one space is required at that position. * testsuite/22_locale/money_get/get/char/17.cc: New. * testsuite/22_locale/money_get/get/wchar_t/17.cc: New. * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks. * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise. * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)): Remove redundant conditional on __str.size(). 2004-03-08 Benjamin Kosnik * include/bits/allocator.h: Switch defaults to mt_alloc. 2004-03-06 Benjamin Kosnik * include/ext/mt_allocator.h (_S_initialize): If !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex. 2004-03-06 Benjamin Kosnik PR libstdc++/12658 * src/locale_init.cc (locale::locale): Lock critical regions with external mutexes. (locale::global): Same. * include/bits/concurrence.h (__glibcxx_mutex_define_initialized): Add in once bits for cases without __GTHREAD_MUTEX_INIT. (__glibcxx_mutex_lock): Same. * config/cpu/generic/atomicity.h: Remove _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h. * src/misc-inst.cc: Move all locking bits out of this file. * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK. * src/misc-inst.cc: Same. * config/cpu/hppa/atomicity.h: Same. * config/linker-map.gnu: Remove types in the signature of atomic exports, as they may vary. 2004-03-06 Paolo Carlini * include/bits/locale_facets.tcc: Tweak the comment preceding has_facet: doesn't throw. 2004-03-06 Paolo Carlini * 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. 2004-03-06 Paolo Carlini * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, num_get<>::_M_extract_int, num_get<>::do_get(bool&), __pad<>::_S_pad): Prefer plain operator== to traits::eq(). * testsuite/testsuite_character.h (struct __gnu_test::character): Provide operator==. * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char): Likewise. 2004-03-05 Paolo Carlini * testsuite/27_io/fpos/14320-2.cc: Remove xfail. 2004-03-04 Benjamin Kosnik * testsuite/23_containers/multiset/insert/1.cc: Test result string. * testsuite/23_containers/bitset/invalidation/1.cc: Main always returns 0. * testsuite/23_containers/deque/invalidation/4.cc: Same. * testsuite/23_containers/list/invalidation/1.cc: Same. * testsuite/23_containers/list/invalidation/2.cc: Same. * testsuite/23_containers/list/invalidation/3.cc: Same. * testsuite/23_containers/list/invalidation/4.cc: Same. * testsuite/23_containers/map/invalidation/2.cc: Same. * testsuite/23_containers/multimap/invalidation/1.cc: Same. * testsuite/23_containers/multimap/invalidation/2.cc: Same. * testsuite/23_containers/multiset/invalidation/1.cc: Same. * testsuite/23_containers/multiset/invalidation/2.cc: Same. * testsuite/23_containers/set/invalidation/1.cc: Same. * testsuite/23_containers/set/invalidation/2.cc: Same. * testsuite/23_containers/vector/invalidation/1.cc: Same. * testsuite/23_containers/vector/invalidation/2.cc: Same. * testsuite/23_containers/vector/invalidation/3.cc: Same. * testsuite/23_containers/vector/invalidation/4.cc: Same. 2004-03-04 Paolo Carlini * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to CXXFLAGS_save. * testsuite/lib/libstdc++.exp: Don't add it conditionally to DEFAULT_CXXFLAGS. * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT" from the dg-options. * testsuite/23_containers/vector/invalidation/1.cc: Likewise. * testsuite/23_containers/vector/invalidation/2.cc: Likewise. * testsuite/23_containers/vector/invalidation/3.cc: Likewise. * testsuite/23_containers/vector/invalidation/4.cc: Likewise. * testsuite/23_containers/vector/resize/1.cc: Likewise. * testsuite/26_numerics/complex_value.cc: Likewise. * testsuite/27_io/ios_base/storage/1.cc: Likewise. * testsuite/27_io/ios_base/storage/2.cc: Likewise. * testsuite/27_io/ios_base/storage/3.cc: Likewise. * testsuite/27_io/manipulators/standard/char/2.cc: Likewise. * testsuite/27_io/objects/char/5.cc: Likewise. * testsuite/27_io/objects/wchar_t/5.cc: Likewise. * testsuite/backward/11460.cc: Likewise. * testsuite/thread/pthread7-rope.cc: Likewise. * testsuite/21_strings/basic_string/compare/char/1.cc: Add missing test variable. * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add missing test variable. 2004-03-04 Benjamin Kosnik * testsuite/20_util/allocator/1.cc: Provide explicit instantiations for non-weak systems. * testsuite/20_util/binders.cc: Same. * testsuite/20_util/allocator/8230.cc: Same. * testsuite/20_util/allocator/10378.cc: Same. * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same. * testsuite/22_locale/ctype/is/char/2.cc: Same. * testsuite/thread/pthread7-rope.cc: Same. * testsuite/thread/pthread6.cc: Same. * testsuite/thread/pthread5.cc: Same. * testsuite/thread/pthread4.cc: Same. * testsuite/thread/pthread1.cc: Same. * testsuite/ext/rope.cc: Same. * testsuite/ext/hash_set.cc: Same. * testsuite/ext/hash_map.cc: Same. * testsuite/ext/concept_checks.cc: Same. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same. * testsuite/25_algorithms/unique/2.cc: Same. * testsuite/25_algorithms/unique/1.cc: Same. * testsuite/25_algorithms/rotate.cc: Same. * testsuite/25_algorithms/min_max.cc: Same. * testsuite/25_algorithms/equal.cc: Same. * testsuite/24_iterators/rel_ops.cc: Same. * testsuite/24_iterators/iterator.cc: Same. * testsuite/24_iterators/insert_iterator.cc: Same. * testsuite/24_iterators/front_insert_iterator.cc: Same. * testsuite/24_iterators/back_insert_iterator.cc: Same. * testsuite/23_containers/vector/resize/1.cc: Same. * testsuite/23_containers/vector/modifiers/2.cc: Same. * testsuite/23_containers/vector/modifiers/1.cc: Same. * testsuite/23_containers/vector/invalidation/4.cc: Same. * testsuite/23_containers/vector/invalidation/3.cc: Same. * testsuite/23_containers/vector/invalidation/2.cc: Same. * testsuite/23_containers/vector/invalidation/1.cc: Same. * testsuite/23_containers/vector/element_access/1.cc: Same. * testsuite/23_containers/vector/cons/6513.cc: Same. * testsuite/23_containers/vector/cons/3.cc: Same. * testsuite/23_containers/vector/cons/2.cc: Same. * testsuite/23_containers/vector/cons/1.cc: Same. * testsuite/23_containers/vector/capacity/8230.cc: Same. * testsuite/23_containers/vector/capacity/1.cc: Same. * testsuite/23_containers/vector/bool/6886.cc: Same. * testsuite/23_containers/stack/members/7158.cc: Same. * testsuite/23_containers/set/invalidation/2.cc: Same. * testsuite/23_containers/set/invalidation/1.cc: Same. * testsuite/23_containers/queue/members/7157.cc: Same. * testsuite/23_containers/priority_queue/members/7161.cc: Same. * testsuite/23_containers/multiset/invalidation/2.cc: Same. * testsuite/23_containers/multiset/invalidation/2.cc: Same. * testsuite/23_containers/multiset/insert/1.cc: Same. * testsuite/23_containers/multimap/invalidation/2.cc: Same. * testsuite/23_containers/multimap/invalidation/2.cc: Same. * testsuite/23_containers/map/operators/1.cc: Same. * testsuite/23_containers/map/invalidation/2.cc: Same. * testsuite/23_containers/map/invalidation/1.cc: Same. * testsuite/23_containers/map/insert/1.cc: Same. * testsuite/23_containers/list/operators/4.cc: Same. * testsuite/23_containers/list/operators/3.cc: Same. * testsuite/23_containers/list/operators/2.cc: Same. * testsuite/23_containers/list/operators/1.cc: Same. * testsuite/23_containers/list/modifiers/3.cc: Same. * testsuite/23_containers/list/modifiers/2.cc: Same. * testsuite/23_containers/list/modifiers/1.cc: Same. * testsuite/23_containers/list/invalidation/4.cc: Same. * testsuite/23_containers/list/invalidation/3.cc: Same. * testsuite/23_containers/list/invalidation/2.cc: Same. * testsuite/23_containers/list/invalidation/1.cc: Same. * testsuite/23_containers/list/cons/9.cc: Same. * testsuite/23_containers/list/cons/8.cc: Same. * testsuite/23_containers/list/cons/7.cc: Same. * testsuite/23_containers/list/cons/6.cc: Same. * testsuite/23_containers/list/cons/5.cc: Same. * testsuite/23_containers/list/cons/4.cc: Same. * testsuite/23_containers/list/cons/3.cc: Same. * testsuite/23_containers/list/cons/2.cc: Same. * testsuite/23_containers/list/cons/1.cc: Same. * testsuite/23_containers/list/capacity/1.cc: Same. * testsuite/23_containers/deque/operators/1.cc: Same. * testsuite/23_containers/deque/invalidation/4.cc: Same. * testsuite/23_containers/deque/invalidation/3.cc: Same. * testsuite/23_containers/deque/invalidation/2.cc: Same. * testsuite/23_containers/deque/invalidation/1.cc: Same. * testsuite/23_containers/deque/cons/2.cc: Same. * testsuite/23_containers/deque/cons/1.cc: Same. * src/allocator.cc: Add char, wchar_t instantiations to match extern template declarations in memory.h. 2004-03-03 Paolo Carlini * include/bits/locale_facets.tcc (money_put<>::_M_insert): Fix warning regression. 2004-03-03 Paolo Carlini * include/bits/locale_facets.tcc (money_put<>::_M_insert): Deal properly with empty __digits and negative frac_digits, clean-up a bit. 2004-03-03 Jonathan Wakely * docs/html/documentation.html: Regenerate. 2004-03-02 Paolo Carlini PR libstdc++/14320 * include/bits/postypes.h (class streamoff): Remove, now streamoff is just typedef a 64 bit signed integer type. (class fpos): Tweak consistently. * testsuite/27_io/fpos/14320-1.cc: New. * testsuite/27_io/fpos/14320-2.cc: New. * testsuite/27_io/fpos/14320-3.cc: New. * testsuite/27_io/fpos/14320-4.cc: New. * testsuite/27_io/fpos/14320-5.cc: New. * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now. 2004-03-02 Paolo Carlini * include/bits/locale_facets.tcc (money_get<>::_M_extract): Reorganize a bit the main parsing loop, thus early detecting an empty value component. * testsuite/22_locale/money_get/get/char/16.cc: New. * testsuite/22_locale/money_get/get/wchar_t/16.cc: New. 2004-03-02 Benjamin Kosnik Support automake 1.8.2 * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override. * po/Makefile.am (EXTRA_DIST): New. * po/Makefile.in: Regenerate. * Makefile.in: Same. * include/Makefile.in: Same. * libmath/Makefile.in: Same. * libsupc++/Makefile.in: Same. * src/Makefile.in: Same. * testsuite/Makefile.in: Same. * include/Makefile.am (${host_builddir}/gthr-posix.h): Use __GXX_WEAK__ instead of SUPPORTS_WEAK. (${host_builddir}/gthr-default.h): Same. (${host_builddir}/gthr.h): Same. * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via -fno-weak. * aclocal.m4: Regenerate. * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK. * config.h.in: Regenerate. * configure: Same. 2004-03-01 Benjamin Kosnik Support autoconf 2.59 * acinclude.m4: Quote correctly. * aclocal.m4: Regenerate. * linkage.m4: Same. 2004-03-01 Benjamin Kosnik * docs/html/test.html: Add multilib RUNTESTFLAGS example. * docs/html/18_support/howto.html: Add bit about writing to stderr, mostly by Zack. 2004-03-01 Paolo Carlini * include/bits/locale_facets.tcc (money_get<>::_M_extract, money_get<>::do_get(string_type&)): ... and two more. 2004-03-01 Paolo Carlini * include/bits/locale_facets.tcc (money_get<>::_M_extract): Fix thinkos in the switch from string_type& to string& as last argument. 2004-03-01 Paolo Carlini * include/bits/locale_facets.tcc (num_get<>::_M_extract_float): Also when parsing exponent sign, first look for thousands_sep and decimal_point; tweak a bit. * testsuite/22_locale/num_get/get/char/15.cc: New. * testsuite/22_locale/num_get/get/wchar_t/15.cc: New. * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, num_get<>::_M_extract_int): Reorder some conditionals. 2004-03-01 Paolo Carlini * include/bits/locale_facets.tcc (money_get<>::_M_extract): Consistently with numpunct, enforce the requirements in 22.2.6.3, p3 for the thousands separators; tweak a bit. * testsuite/22_locale/money_get/get/char/15.cc: New. * testsuite/22_locale/money_get/get/wchar_t/15.cc: New. 2004-03-01 David Billinghurst * testsuite/lib/libstdc++.exp (v3-list-tests): Use testsuite_files from correct multilib blddir when running testsuite. 2004-02-29 Phil Edwards * testsuite/Makefile.am (check-abi, check-abi-verbose): Copy the summary file to the logfile. * testsuite/Makefile.in: Regenerate. 2004-02-28 John David Anglin * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument volatile. * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK. 2004-02-28 Paolo Carlini * include/bits/locale_facets.tcc (num_get<>::_M_extract_float): According to 22.2.3.1, p2, 'units' may be followed by 'e' with no 'decimal-point' in the middle: in this case too we must fix up __found_grouping; slightly tweak. * testsuite/22_locale/num_get/get/char/14.cc: New. * testsuite/22_locale/num_get/get/wchar_t/14.cc: New. 2004-02-27 Eric Christopher Phil Edwards * testsuite/22_locale/collate/compare/wchar_t/2.cc, testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc, testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc, testsuite/22_locale/collate/hash/wchar_t/2.cc, testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc, testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc, testsuite/22_locale/collate/transform/wchar_t/2.cc, testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc, testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: Use dg-require-iconv. * testsuite/lib/libstdc++.exp: Load target-supports.exp. 2004-02-27 Phil Edwards Eric Christopher * testsuite/config/default.exp: Update with comments. (${tool}_target_compile): New wrapper routine. * testsuite/lib/dg-options.exp: New file, with dg-require-iconv. * testsuite/lib/libstdc++.exp: Update with comments and cosmetic fixes. (load_gcc_lib, v3track): New routines. (v3-init): Rename to libstdc++_init. * testsuite/libstdc++-dg/normal.exp: No longer call v3-init. Move DEFAULT_CXXFLAGS handling into libstdc++_init. 2004-02-27 Benjamin Kosnik * config/cpu/hppa/atomicity.h: Include c++config.h to get defines. * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx. * config/os/irix/irix5.2/atomicity.h: Merge.. * config/os/irix/irix6.5/atomicity.h: Merge.. * config/os/irix/atomicity.h: ...into this. * config/os/irix/atomic_word.h: New. * configure.host: Set atomic_word_dir for irix. * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock. * i386/atomicity.h: Same. * m68k/atomicity.h: Same. * sparc/atomicity.h: Same. 2004-02-27 David Edelsohn * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove static, and inline keywords. 2004-02-27 Paolo Carlini * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate, call reserve on the __tmp_gruping string. (num_get<>::_M_extract_float): Don't append unnecessarily a char() to the returned string. * include/bits/locale_facets.tcc: Trivial reformattings. 2004-02-27 Paolo Carlini * include/bits/locale_facets.h (money_get<>::_M_extract): Change signature: now takes a plain string&. * include/bits/locale_facets.tcc (money_get<>::_M_extract): Update consistently the definition; use the moneypunct cache to parse the value; use swap to change __units. (money_get<>::do_get(long double&)): Update call of _M_extract, avoid ctype::narrow, not correct wrt the standard. (money_get<>::do_get(string_type&)): Likewise, update call of _M_extract, use ctype::widen. * src/locale-inst.cc: Tweak instantiations of _M_extract. 2004-02-26 Ian Lance Taylor * testsuite/demangle/abi_examples/01.cc: Expect error -2. * testsuite/demangle/abi_examples/02.cc: Likewise. * testsuite/demangle/regression/cw-11.cc: Likewise. * testsuite/demangle/regression/cw-16.cc: Change two expected results to match libiberty demangler output. 2004-02-26 Benjamin Kosnik PR libstdc++/10246 * libsupc++/Makefile.am: Use libiberty demangler. (c_sources): Add cp-demangle.c. * libsupc++/Makefile.in: Regenerate. * src/Makefile.am (sources): Remove demangle.cc. * src/Makefile.in: Regenerate. * include/Makefile.am (bits_headers): Move demangle.h. (ext_headers): ...here. * include/Makefile.in: Regenerate. * include/bits/demangle.h: Move... * include/ext/demangle.h: ...here. * src/demangle.cc: Remove. 2004-02-26 Benjamin Kosnik * include/bits/demangle.h: Add type template parameter to all templates with just an Allocator template parameter. 2004-02-25 Benjamin Kosnik * include/bits/atomicity.h: New, forward declarations for __atomic_add and __exchange_and_add. * config/cpu/generic/atomic_word.h: New, typdef for atomic word. * config/cpu/cris/atomic_word.h: Same. * config/cpu/sparc/atomic_word.h: Same. * include/bits/ios_base.h (_Callback_list::_M_remove_reference): Qualifiy with __gnu_cxx. (_Callback_list::_M_add_reference): Same. * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add. (locale::facet::_M_remove_reference): Same. (locale::_Impl::_M_add_reference): Add. (locale::_Impl::_M_remove_reference): Same. * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same. (basic_string::_Rep::_M_dispose): Same. * src/ios.cc (ios_base::xalloc): Same. * src/ios_init.cc (ios_base::Init::Init): Same. (ios_base::Init::~Init): Same. * src/locale.cc (locale::id::_M_id): Same. * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove static, and inline keywords. * config/cpu/alpha/atomicity.h: Same. * config/cpu/cris/atomicity.h: Same. * config/cpu/generic/atomicity.h: Same. * config/cpu/hppa/atomicity.h: Same. * config/cpu/i386/atomicity.h: Same. * config/cpu/ia64/atomicity.h: Same. * config/cpu/m68k/atomicity.h: Same. * config/cpu/mips/atomicity.h: Same. * config/cpu/powerpc/atomicity.h: Same. * config/cpu/s390/atomicity.h: Same. * config/cpu/sparc/atomicity.h: Same. * src/Makefile.am (host_sources): Add atomicity.cc. (atomicity.cc): New rule. * src/Makefile.in: Regenerate. * include/Makefile.am (host_headers): Remove host atomicity.h. (host_headers): Add atomic_word.h. (bits_headers): Add bits atomicity.h. Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR. * include/Makefile.in: Regenerate. * configure.host (atomic_word_dir): Add. * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR. * configure: Regenerate. * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add. * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers. * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. 2004-02-25 Jonathan Wakely * docs/html/20_util/howto.html, docs/html/20_util/allocator.html, docs/html/ext/howto.html, docs/html/ext/mt_allocator.html: Fix markup, more tags. 2004-02-25 Carlo Wood * bits/demangle.h namespace __gnu_cxx::demangler (session::qualifier_list_Allocator): Add (session::M_qualifier_list_alloc): Add (session::decode_type_with_postfix): Use M_qualifier_list_alloc instead of calling operator new/delete. 2004-02-24 Paolo Carlini PR libstdc++/14252 * include/bits/postypes.h (class streamoff): Add operator++(), operator++(int), operator--() and operator--(int). * testsuite/27_io/fpos/14252.cc: New. 2004-02-24 Richard Sandiford * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds error in handling of hex constants. 2004-02-24 Paolo Carlini * include/bits/locale_facets.tcc (money_put<>::_M_insert): Prefer basic_string::append to operator+= and a temporary. 2004-02-23 Benjamin Kosnik * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler): Only use fputs, not write. 2004-02-23 Benjamin Kosnik * include/ext/malloc_allocator.h: Add operators ==, !=. * include/ext/new_allocator.h: Add operators ==, !=. * include/ext/mt_allocator.h (__mt_alloc::tune): New. (__mt_alloc::_S_get_options): New. (__mt_alloc::_S_set_options): New. (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key. (__mt_alloc::_S_no_of_bins): To _S_bin_size. Move functions out of line, simplify, format. * src/allocator.cc: Simplify explicit instantiations. * include/bits/allocator.h: Tweak. 2004-02-22 Paolo Carlini * include/bits/locale_facets.tcc (money_put<>::_M_insert): Restructure formatting of value component, first dealing with the non-decimal digits; use reserve. 2004-02-22 Paolo Carlini * include/bits/locale_facets.h (class money_get): Inherit from money_base too; tweak declaration of _M_extract, now parameterized on _Intl too. * include/bits/locale_facets.tcc (money_get<>::_M_extract): Update definition to use the cache; call reserve on __res to avoid multiple reallocations; fix parsing of sign component according to 22.2.6.1.2, p3. (money_get<>::do_get(long double&), money_get<>::do_get(string_type&)): Update calls of _M_extract. * src/locale-inst.cc: Add instantiations of money_get::_M_extract and money_get::_M_extract. * testsuite/22_locale/money_get/get/char/14.cc: New. * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto. 2004-02-21 Mark Mitchell * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler): Guard against recursive calls to terminate. * src/demangle.cc (__cxa_demangle): Wrap in try-catch block. * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do not set RLIMIT_AS on HP-UX. 2004-02-21 Mark Mitchell * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do not set RLIMIT_AS on HP-UX. 2004-02-21 Paolo Carlini * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct::_M_initialize_moneypunct, moneypunct::_M_initialize_moneypunct, moneypunct::_M_initialize_moneypunct, moneypunct::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct::~moneypunct(), moneypunct::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert and money_put::_M_insert and __moneypunct_cache, __moneypunct_cache. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache, __moneypunct_cache, __moneypunct_cache, __moneypunct_cache. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. 2004-02-20 Mark Mitchell * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open FIFO for writing with ios_base::in|ios_base::out. * 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: Open FIFO for writing with "r+". 2004-02-19 David Edelsohn * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset from iso-8859-1 to ISO8859-1. * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same. * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same. * 22_locale/collate/hash/wchar_t/2.cc: Same. * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same. * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same. * 22_locale/collate/transform/wchar_t/2.cc: Same. * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same. * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same. 2004-02-18 Paolo Carlini * include/bits/locale_facets.h (money_get<>::_M_extract): New, helper for do_get. (money_put<>::_M_insert): Likewise, for do_put. * include/bits/locale_facets.tcc (money_get<>::_M_extract, money_put<>::_M_insert): Define. (money_get<>::do_get(long double&), money_get<>::do_get( string_type&), money_put::do_put(long double), money_put::do_put(const string_type&)): Use the helpers. 2004-02-18 Paolo Carlini * config/io/basic_file_stdio.cc (__gnu_internal::xwritev): Rewrite, avoiding recursion. (__gnu_internal::xwrite): Minor tweaks. 2004-02-17 Stefan Olsson * include/ext/mt_allocator.h: Removed the last pointer. Deallocated blocks are now added to the front of freelists as proposed by Felix Yen. This gives roughly 10% performance boost and saves some memory. * docs/html/ext/mt_allocator.html: Change due to that deallocated blocks now are added to the front of freelists. The reason to this approach is also explained. 2004-02-17 Paolo Carlini * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, num_get<>::_M_extract_int, money_get<>::do_get): Simplify grouping fidelity conditional. 2004-02-16 Paolo Carlini * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: Qualify exception with std::. * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto. * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto. * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto. 2004-02-16 Paolo Carlini * testsuite/ext/enc_filebuf/char/13189.cc: Don't check for now that the catch block is not reached. * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise. 2004-02-16 Paolo Carlini * include/bits/locale_facets.tcc (money_get::do_get(string_type&)): Fix parsing of the remaining sign characters. * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly, the input is scanned 'til eof. * 22_locale/money_get/get/char/4.cc: Likewise. * 22_locale/money_get/get/wchar_t/2.cc: Likewise. * 22_locale/money_get/get/wchar_t/4.cc: Likewise. * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format, not do_pos_format: the former is the only one that matters during input. * 22_locale/money_get/get/wchar_t/8.cc: Likewise. * 22_locale/money_get/get/char/6.cc: Minor tweak. * 22_locale/money_get/get/wchar_t/6.cc: Likewise. 2004-02-15 David Asher PR libstdc++/11352 * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't access __olds beyond __oldlen. 2004-02-14 Paolo Carlini * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make sure the exception is actually thrown. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto. * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto. 2004-02-14 Paolo Carlini PR libstdc++/13858 * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external): In case of conversion errors, throw ios_failure; simplify. * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New. * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto. * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak, previously we didn't throw in case of conversion errors, instead just returned eof(). * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto. * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto. * include/bits/fstream.tcc (basic_filebuf<>::overflow): Trivial simplification of a conditional. 2004-02-12 Paolo Carlini PR libstdc++/13731 (final part: writev) * config/io/basic_file_stdio.cc (__gnu_internal::xwritev): New, a wrapper around writev() handling partial writes. (__basic_file::xwrite): Move to __gnu_internal and make static. (__basic_file::xsputn): Update call. (__basic_file::xsputn_2): Likewise. * config/io/basic_file_stdio.h (__basic_file::xwrite): Don't declare, now static. 2004-02-11 Stefan Olsson * docs/html/ext/mt_allocator.html: New. 2004-02-11 Benjamin Kosnik * docs/html/20_util/allocator.html: New file, consolidate allocator information here. Revamp. * docs/html/documentation.html: Change links. * docs/html/20_util/howto.html: Same. * docs/html/ext/howto.html: Same. 2004-02-11 Paolo Carlini PR libstdc++/13731 (first part: write) * config/io/basic_file_stdio.h (__basic_file::xwrite): New, declare. * config/io/basic_file_stdio.cc (__basic_file::xwrite): Define it: a wrapper around write() handling partial write. (__basic_file::xsputn): Use it. (__basic_file::xsputn_2): Likewise. 2004-02-11 Paolo Carlini Petur Runolfsson PR libstdc++/14078 * include/std/std_istream.h (operator>>(__istream_type& (*) (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)), operator>>(ios_base& (*)(ios_base&))): Declare inline. * include/std/std_ostream.h (operator<<(__ostream_type& (*) (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)), operator<<(ios_base& (*) (ios_base&))): Likewise. * testsuite/performance/27_io/fmtflags_manipulators.cc: New. 2004-02-10 Loren J. Rittle PR libstdc++/14098 * config/linker-map.gnu: Add typeinfo and typeinfo name for __gnu_cxx::stdio_sync_filebuf >. PR libstdc++/14097 * config/linker-map.gnu: Add typeinfo and typeinfo name for __gnu_cxx::stdio_filebuf >. 2004-02-09 Loren J. Rittle * include/ext/pool_allocator.h: Include c++config.h. 2004-02-09 Stefan Olsson * include/ext/mt_allocator.h: thread_id is unused in non threaded applications and now has a ifdef to remove it completely on compilers without thread support. Include stdlib.h due to a compiler warning on getenv(). 2004-02-09 Paul Brook * libstdc++-v3/configure.host: Explicitly check for atomicity.h file. 2004-02-09 Paolo Carlini PR libstdc++/14071 * src/locale_init.cc (locale::global(const locale&)): Use locale::name() in order to decide whether calling setlocale. * testsuite/22_locale/locale/global_locale_objects/14071.cc: New. * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()): Avoid computing &= unnecessarily. 2004-02-09 James E Wilson PR libstdc++/5625 * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use __builtin_extend_pointer. 2004-02-09 Paolo Carlini PR libstdc++/14072 * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale): Don't leave dangling pointers. * testsuite/27_io/basic_ios/imbue/14072.cc: New. * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put facet is needed in the final test. 2004-02-09 Bernardo Innocenti * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*. * configure: Regenerate. 2004-02-08 Richard Henderson PR libstdc++/14026 * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust uncaughtExceptions during nested catch rethrow. * testsuite/18_support/14026.cc: New. 2004-02-08 Paolo Carlini * include/bits/basic_string.tcc (assign(const _CharT*, size_type)): When working in place remember to set the state to sharable (otherwise, _M_mutate does it). 2004-02-08 Bernardo Innocenti * include/bits/allocator.h, include/bits/basic_ios.h, include/bits/basic_ios.tcc, include/bits/basic_string.h, include/bits/basic_string.tcc, include/bits/boost_concept_check.h, include/bits/char_traits.h, include/bits/codecvt.h, include/bits/concurrence.h, include/bits/cpp_type_traits.h, include/bits/demangle.h, include/bits/deque.tcc, include/bits/fstream.tcc, include/bits/functexcept.h, include/bits/gslice.h, include/bits/gslice_array.h, include/bits/indirect_array.h, include/bits/ios_base.h, include/bits/istream.tcc, include/bits/list.tcc, include/bits/locale_classes.h, include/bits/locale_facets.h, include/bits/locale_facets.tcc, include/bits/localefwd.h, include/bits/mask_array.h, include/bits/ostream.tcc, include/bits/postypes.h, include/bits/slice_array.h, include/bits/sstream.tcc, include/bits/stl_algo.h, include/bits/stl_algobase.h, include/bits/stl_bvector.h, include/bits/stl_construct.h, include/bits/stl_deque.h, include/bits/stl_function.h, include/bits/stl_heap.h, include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h, include/bits/stl_list.h, include/bits/stl_map.h, include/bits/stl_multimap.h, include/bits/stl_multiset.h, include/bits/stl_numeric.h, include/bits/stl_pair.h, include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h, include/bits/stl_relops.h, include/bits/stl_set.h, include/bits/stl_stack.h, include/bits/stl_tempbuf.h, include/bits/stl_threads.h, include/bits/stl_tree.h, include/bits/stl_uninitialized.h, include/bits/stl_vector.h, include/bits/stream_iterator.h, include/bits/streambuf.tcc, include/bits/streambuf_iterator.h,include/bits/stringfwd.h, include/bits/type_traits.h, include/bits/valarray_after.h, include/bits/valarray_array.h, include/bits/valarray_array.tcc, include/bits/valarray_before.h, include/bits/vector.tcc: Remove trailing whitespace. 2004-02-06 Paolo Carlini * include/bits/basic_string.h: Fix comment. 2004-02-06 Paolo Carlini * include/bits/stl_construct.h: Wrap overlong lines, reformat according to the coding standards. * include/bits/stl_pair.h: Likewise. * include/bits/stl_raw_storage_iter.h: Likewise. * include/bits/stl_stack.h: Likewise. * include/bits/stl_uninitialized.h: Likewise. * include/bits/stream_iterator.h: Likewise. * include/bits/streambuf_iterator.h: Likewise. * include/bits/type_traits.h: Likewise. 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. * scripts/check_performance (CXX): Add -DNOTHREAD. * testsuite/performance/20_util/allocator/insert.cc: Integrate threaded tests from insert_insert.cc. Tweak iterations, remove special cases. * testsuite/performance/20_util/allocator/insert_insert.cc: Make all tests single-threaded. Tweak iterations. * testsuite/performance/20_util/allocator/map_thread.cc: Tweak iterations. * testsuite/performance/20_util/allocator/producer_consumer.cc: Likewise. 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.