+2004-01-07 Loren J. Rittle <ljrittle@acm.org>
+
+ (re-open) PR libstdc++/12658
+ * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
+ (locale::global): Likewise.
+
+2004-01-07 Paolo Carlini <pcarlini@suse.de>
+
+ * 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 <locale>.
+ * 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 <bkoz@redhat.com>
+ Stefan Olsson <stefan@snon.net>
+
+ * scripts/check_performance: Use -pthread.
+ * testsuite/performance/allocator.cc: Tweaks, add list.
+ * testsuite/performance/allocator_thread.cc: New.
+
+2003-01-06 Jerry Quinn <jlquinn@optonline.net>
+
+ * 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 <pcarlini@suse.de>
+
+ * 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 <pcarlini@suse.de>
+
+ * 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 <mark@codesourcery.com>
+
+ 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 <pcarlini@suse.de>
+
+ * 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.
+
+2003-12-31 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (num_get::_M_extract_int,
+ num_get::_M_extract_float): According to 22.2.2.1.2, p8-9,
+ _first_ look for thousands_sep, then for decimal_point and
+ finally for digits.
+ (num_get::_M_extract_float): After the decimal_point or
+ 'e'/'E', decimal_point and thousands_sep just break out the
+ parsing loop.
+ * testsuite/22_locale/num_get/get/char/11.cc: Add tests.
+ * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
+
+2003-12-30 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/13369
+ * include/bits/locale_facets.tcc (__verify_grouping):
+ Fix to deal properly with __grouping_tmp.size() >
+ __grouping.size().
+ * testsuite/22_locale/num_get/get/char/13.cc: New.
+ * testsuite/22_locale/num_get/get/wchar_t/13.cc: Ditto.
+
+2003-12-29 Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/locale_facets.h (ctype.narrow,widen): Add cast.
+
+2003-12-29 Paolo Carlini <pcarlini@suse.de>
+
+ * acinclude.m4 (GLIBCXX_CHECK_LFS): Add -fno-exceptions
+ to CXXFLAGS.
+ * aclocal.m4: Regenerate.
+ * configure: Likewise.
+
+2003-12-29 Mark Mitchell <mark@codesourcery.com>
+
+ * acconfig.h: Add _GLIBCXX_USE_C99_MATH.
+ * acinclude.m4 (GLIBCXX_ENABLE_C99): Define GLIBCXX_USE_C99_MATH.
+ * configure.ac: Define HAVE_S_ISREG and HAVE_S_IFREG when
+ targeting newlib.
+ * aclocal.m4: Regenerated.
+ * config.h.in: Likewise.
+ * configure: Likewise.
+ * Makefile.in: Likewise.
+ * include/Makefile.in: Likewise.
+ * libmath/Makefile.in: Likewise.
+ * libsupc++/Makefile.in: Likewise.
+ * testsuite/Makefile.in: Likewise.
+ * src/Makefile.in: Likewise.
+ * po/Makefile.in: Likewise.
+ * include/c_std/std_cmath.h (_GLIBCXX_USE_C99): Replace with ...
+ (_GLIBCXX_USE_C99_MATH): ... this.
+
+ * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: XFAIL for
+ arm-none-elf.
+ * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Likewise.
+ * testsuite/27_io/basic_istream/readsome/char/6476-2.cc: Likewise.
+ * testsuite/27_io/objects/char/9.cc: Likewise.
+ * testsuite/ext/stdio_filebuf/char/10063-2.cc: Likewise.
+
+2003-12-28 Paolo Carlini <pcarlini@suse.de>
+
+ * include/ext/pool_allocator.h (class __pool_alloc): Use
+ operator new and operator delete.
+
+2003-12-24 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/cpu/i386/atomicity.h (__exchange_and_add): Fix output
+ constraint.
+
+ PR libstdc++/13480
+ * config/cpu/i386/atomicity.h: Split up read-write memory operand.
+
+2003-12-23 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/ext/new_allocator.h (new_allocator): Proper allocator class.
+ (__new_alloc): Delete.
+ * include/ext/malloc_allocator.h (malloc_allocator): Same.
+ (__malloc_alloc): Delete.
+ * include/ext/mt_allocator.h: Same, but weakly.
+ * include/ext/debug_allocator.h: Convert to the new style.
+ * include/ext/pool_allocator.h: Use global new and delete directly.
+ * include/backward/alloc.h: Don't inject malloc_allocator, or
+ debug_allocator.
+ * testsuite/ext/allocators.cc: Minimal fixups for usage of new
+ classes. Comment out tests with __pool_alloc for now.
+ * testsuite/performance/allocator.cc: Same.
+
+2003-12-22 Matt Austern <austern@apple.com>
+
+ * include/bits/stl_bvector.h (_Bvector_alloc_base): Eliminate.
+ (_Bvector_base): Inherit directly from word allocator.
+ * include/bits/stl_tree.h (_Rb_tree_alloc_base): Eliminate.
+ (_Rb_tree_base): Eliminate.
+ (_Rb_tree): Inherit directly from node allocator.
+ * include/ext/slist (_Alist_alloc_base): Eliminate.
+ (_Slist_base): Inherit direcly from node allocator.
+
+2003-12-22 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/18_support/numeric_limits.cc: Add _GLIBCXX_ASSERT to
+ dg-options in testcases that use VERIFY.
+ * 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.
+ * testsuite/23_containers/vector/resize/1.cc: Same.
+ * testsuite/26_numerics/complex_value.cc: Same.
+ * testsuite/27_io/ios_base/storage/1.cc: Same.
+ * testsuite/27_io/ios_base/storage/2.cc: Same.
+ * testsuite/27_io/ios_base/storage/3.cc: Same.
+ * testsuite/27_io/manipulators/standard/char/2.cc: Same.
+ * testsuite/backward/11460.cc: Same.
+ * testsuite/backward/strstream_members.cc: Same.
+
+ * include/ext/hash_set (class hash_multiset): Fix typo.
+
+2003-12-22 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/27_io/objects/char/5.cc: Don't use stdc++.h.gch.
+ * testsuite/27_io/objects/wchar_t/5.cc: Same.
+ * docs/html/test.html: Add docs for constructing test files that
+ don't use stdc++.h.gch.
+ * scripts/testsuite_flags.in (PCHFLAGS): Move to --cxxpchflags.
+ * testsuite/libstdc++-dg/normal.exp: Compute DEFAULT_CXXFLAGS
+ differently.
+
+ * include/bits/ios_base.h (ios_base::Init::_S_initialized): Remove.
+ * src/ios_init.cc: Same.
+ * config/linker-map.gnu: Same.
+ * testsuite/27_io/ios_base/cons/copy_neg.cc: Adjust line numbers.
+ * testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
+
+2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR libstdc++/13462
+ * include/bits/stl_multiset.h (__gnu_norm::multiset): Define pointer
+ as allocator's pointer, likewise for reference, const_pointer, and
+ const_reference.
+ * include/bits/stl_set.h (__gnu_norm::set): Likewise.
+ * include/ext/hash_set (__gnu_ext::hash_set): Likewise.
+ (__gnu_ext::hash_multiset): Likewise.
+
+2003-12-22 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (num_get::_M_extract_int,
+ num_get::_M_extract_float): According to 22.2.2.1.2, p8-9,
+ first look for decimal_point and thousands_sep, when parsing
+ sign, leading zeros (and 0, Ox, 0X for integer types) too.
+ * testsuite/22_locale/num_get/get/char/12.cc: New.
+ * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
+
+ * testsuite/22_locale/num_get/get/char/11.cc: Add a comment.
+ * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
+
+2003-12-20 Jason Merrill <jason@redhat.com>
+
+ * config/cpu/powerpc/atomicity.h: Fix oversight in previous
+ change.
+
+2003-12-20 Jerry Quinn <jlquinn@optonline.net>
+
+ * docs/doxygen/TODO: Update.
+ * include/bits/locale_classes.h (locale, facet, id): Document.
+ * include/bits/locale_facets.tcc (has_facet, use_facet): Document.
+
+2003-12-19 Jason Merrill <jason@redhat.com>
+
+ * config/cpu/cris/atomicity.h: Remove memory clobbers.
+ * config/cpu/mips/atomicity.h: Likewise.
+ * config/cpu/i486/atomicity.h: Remove memory clobbers.
+ Split up read-write memory operand.
+ * config/cpu/m68k/atomicity.h: Likewise.
+ * config/cpu/powerpc/atomicity.h: Make memory I/O explicit.
+ * config/cpu/s390/atomicity.h: Likewise.
+ * config/cpu/sparc/atomicity.h: Likewise.
+
+2003-12-20 Carlo Wood <carlo@alinoe.com>
+
+ * bits/demangle.h
+ namespace __gnu_cxx::demangler
+ (session<Allocator>::decode_encoding): Put the postfix
+ of the return type of (member) functions after the function
+ instead of after the return type.
+
+2003-12-19 Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/locale_facet.h
+ (__ctype_abstract_base,ctype<charT>,ctype<char>,ctype<wchar_t>):
+ Document.
+
+2003-12-19 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (num_get::_M_extract_int,
+ num_get::_M_extract_float): According to 22.2.2.1.2, p8-9,
+ first look for decimal_point and thousands_sep.
+ * testsuite/22_locale/num_get/get/char/11.cc: New.
+ * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
+
+2003-12-19 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (num_get::_M_extract_float):
+ When __found_sci becomes true stop eating thousands separators
+ and the decimal radix separator.
+ * testsuite/22_locale/num_get/get/char/9.cc: New.
+ * testsuite/22_locale/num_get/get/wchar_t/9.cc: Likewise.
+
+ * config/locale/generic/c_locale.cc (__convert_to_v): Don't
+ check that *__sanity == '\0': parsing may stop earlier, still
+ be successful.
+ * config/locale/gnu/c_locale.cc: Likewise.
+ * testsuite/22_locale/num_get/get/char/10.cc: New.
+ * testsuite/22_locale/num_get/get/wchar_t/10.cc: Likewise.
+ * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
+ Tweak in one place accordingly.
+
+ * testsuite/22_locale/money_get/get/char/1.cc: Fix typo.
+ * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
+
+2003-12-18 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/stl_list.h: Formatting tweaks.
+ * include/bits/list.tcc: Same.
+
+2003-12-18 Matt Austern <austern@apple.com>
+
+ * include/bits/demangle.h: Fix allocator type correctness,
+ i.e. make sure that when we instantiate a container with a value
+ type and an allocator, the allocator's value type matches the
+ container's.
+ * include/bits/stl_deque.h (_Deque_alloc_base): Eliminate.
+ (_Deque_base): inherit directly from the deque's allocator. Use
+ rebinding instead of _Alloc_traits. Pick up data members from
+ _Deque_alloc_base.
+ * include/bits/stl_list.h (_List_alloc_base): Eliminate.
+ (_List_base): Inherit directly from the list's allocator. Use
+ rebinding instead of _Alloc_traits. Pick up data members from
+ _List_alloc_base.
+ * include/bits/stl_vector.h (_Vector_alloc_base): Eliminate
+ (_Vector_base): Inherit directly from the vector's allocator. Use
+ rebinding instead of _Alloc_traits. Pick up data members from
+ _Vector_alloc_base.
+ * include/ext/hashtable.h: Fix allocator type correctness (the
+ vector of buckets must be passed an allocator for objects of
+ type _Node*). Use rebinding instead of _Alloc_traits.
+
+2003-12-17 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
+ Use narrow to get from __format[__i] a char __c representing a
+ formatting code, don't use it to compare *__beg to __format[__i].
+ * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: New.
+
+2003-12-17 Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/performance/container_benchmark.cc: Tweak outputs.
+
+ * testsuite/performance/list_create_fill_sort.cc: Shrink a
+ bit some outputs.
+
+ * testsuite/testsuite_performance.h: Widen a few output fields.
+
+ * testsuite/performance/ifstream_extract_int.cc: New.
+
+2003-12-16 Phil Edwards <phil@codesourcery.com>
+
+ * configure.ac (AM_INIT_AUTOMAKE): Don't warn about GNU Make.
+ * configure: Regenerated.
+ * Makefile.am (check-%): New catch-all forwarding target.
+ * Makefile.in: Regenerated.
+
+2003-12-16 Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/performance/container_benchmark.cc: New, a
+ benchmark developed by Bjarne Stroustrup and Alexander
+ Stepanov and made available with no restrictions.
+
+ * testsuite/testsuite_performance.h (report_header): New,
+ useful to produce header lines in the reports.
+
+2003-12-16 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * docs/html/21_strings/howto.html: Document shrink-to-fit reserve().
+ * docs/html/faq/index.html: Reducing vector's capacity() to size().
+ * docs/html/documentation.html, docs/html/faq/index.txt: Regenerate.
+
+2003-12-16 Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/performance/narrow_widen_char.cc: Tweak the
+ number of iterations for each test.
+ * testsuite/performance/narrow_widen_wchar_t.cc: Add a
+ missing clear_counters.
+
+2003-12-16 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/11723
+ * include/bits/locale_facets.h: Add _M_bit and _M_wmask,
+ used to speed up the computation of ctype::do_is.
+ * config/locale/generic/ctype_members.cc
+ (_M_initialize_ctype): Fill _M_bit and _M_wmask.
+ (ctype::do_is): Use _M_bit and _M_wmask.
+ * config/locale/gnu/ctype_members.cc: Likewise.
+ * testsuite/performance/is_wchar_t.cc: New.
+
+ * testsuite/performance/narrow_widen_wchar_t.cc: Tweak
+ string literal (incorrect citation ;)
+
+ * include/bits/locale_facets.h: Minor tweaks, const
+ correctness, unsigned -> size_t.
+
+2003-12-16 Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/locale_facets.h (widen, narrow): Uncomment the
+ intended code.
+
+2003-12-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * config/os/aix/ctype_noninline.h,
+ config/os/bsd/freebsd/ctype_noninline.h,
+ config/os/bsd/netbsd/ctype_noninline.h,
+ config/os/djgpp/ctype_noninline.h,
+ config/os/generic/ctype_noninline.h,
+ config/os/gnu-linux/ctype_noninline.h,
+ config/os/hpux/ctype_noninline.h,
+ config/os/irix/irix5.2/ctype_noninline.h,
+ config/os/irix/irix6.5/ctype_noninline.h,
+ config/os/mingw32/ctype_noninline.h,
+ config/os/newlib/ctype_noninline.h,
+ config/os/qnx/qnx6.1/ctype_noninline.h,
+ config/os/solaris/solaris2.5/ctype_noninline.h,
+ config/os/solaris/solaris2.6/ctype_noninline.h,
+ config/os/solaris/solaris2.7/ctype_noninline.h,
+ config/os/vxworks/ctype_noninline.h,
+ config/os/windiss/ctype_noninline.h (ctype): Initialize
+ _M_narrow, _M_widen.
+ * include/bits/locale_facets.h (_M_widen, _M_widen_ok,
+ _M_narrow, _M_narrow_ok): New.
+ (widen, narrow): Use tables to bypass virtual functions.
+ (_M_widen_init, _M_narrow_init): New.
+
+2003-12-15 Carlo Wood <carlo@alinoe.com>
+
+ * include/bits/ios_base.h (Init::_S_initialized): Change into
+ declaration.
+ * src/ios_init.cc (Init::_S_initialized): Add definition.
+
+2003-12-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/12658
+ * include/Makefile.am (bits_headers): Add concurrence.h.
+ * include/Makefile.in: Regenerated.
+ * include/bits/concurrence.h: New.
+ * src/locale_init.cc: Use it.
+ (locale::locale): Lock critical regions.
+ (locale::global): Same.
+
+2003-12-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/basic_string.h: Change _*_references to _*_refcount.
+ * include/bits/locale_classes.h: Same.
+ * src/locale.cc: Same.
+ * src/locale_name.cc: Same.
+ * src/locale_init.cc: Same.
+
+2003-12-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/12855
+ * include/bits/ios_base.h (Init::_S_ios_base_init): Change to
+ _S_refcount, make atomic.
+ * src/ios.cc: Adjust definition.
+ * src/ios_init.cc (ios_base::Init::Init): Use __exchange_and_add,
+ and __atomic_add.
+ (ios_base::Init::~Init): Same.
+ * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
+ * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
+
+2003-12-15 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (num_get::do_get(bool&)):
+ Fail as soon as the begins of both truename and falsename
+ stop to match; always leave __beg one position beyond the
+ last char successfully matched.
+ * testsuite/22_locale/num_get/get/char/8.cc: New.
+ * testsuite/22_locale/num_get/get/wchar_t/8.cc: Likewise.
+
+2003-12-15 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.h (_M_widen): Reserve space
+ for all the possible widened chars.
+ * config/locale/generic/ctype_members.cc (_M_initialize_ctype):
+ Compute at construction time all the possible widened chars.
+ (do_widen): Tweak, simplify.
+ * config/locale/gnu/ctype_members.cc: Likewise.
+ * testsuite/performance/narrow_widen_wchar_t.cc: Add tests
+ for the array versions.
+
+2003-12-12 Paolo Carlini <pcarlini@suse.de>
+ Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/13341
+ * include/bits/locale_facets.h (ctype<wchar_t>): Declare
+ _M_initialize_ctype() and _M_narrow_ok, _M_narrow and _M_widen.
+ * src/ctype.cc (ctype<wchar_t>::ctype(size_t),
+ ctype<wchar_t>::ctype(__c_locale, size_t)): Use
+ _M_initialize_ctype to fill _M_narrow and _M_widen.
+ (ctype_byname<wchar_t>::ctype_byname(const char*, size_t)):
+ Likewise.
+ * config/locale/generic/ctype_members.cc (do_narrow, do_widen)
+ Use _M_narrow and _M_widen when possible, instead of calling
+ wctob and btowc, respectively.
+ (_M_initialize_ctype): Define, it fills at construction time
+ _M_narrow and _M_widen.
+ * config/locale/gnu/ctype_members.cc: Likewise.
+ * testsuite/performance/narrow_widen_wchar_t.cc: New.
+
+2003-12-12 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * docs/html/faq/index.txt: Regenerate after adding <link> tags.
+
+2003-12-11 Neil Ferguson <nferguso@eso.org>
+ Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/basic_string.tcc (reserve): Allow shrink-to-fit.
+ * testsuite/21_strings/basic_string/capacity/1.cc: Tweak.
+ * testsuite/21_strings/basic_string/capacity/char/1.cc: Ditto.
+ * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Ditto.
+
+2003-12-10 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/6243
+ * testsuite/lib/libstdc++.exp (v3-init): Add
+ original_ld_library_path, calculate ld_library path, set
+ LD_LIBRARY_PATH to both. Based on libjava.exp.
+
+2003-12-10 Benjamin Kosnik <bkoz@redhat.com>
+ Alexandre Oliva <aoliva@redhat.com>
+
+ PR libstdc++/11612
+ * testsuite/Makefile.am (GLIBCXX_DIR): New.
+ (GLIBGCC_DIR): New.
+ (CXXLINK): Use both with -R so libtool links the correct libs.
+
+2003-12-10 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/13217
+ * include/bits/fstream.tcc (underflow): Deal gracefully with
+ read errors: throw ios_base::failure.
+
+2003-12-10 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/10063
+ * config/io/basic_file_stdio.cc (__basic_file::sys_open): Sync.
+ * testsuite/ext/stdio_filebuf/char/10063-1.cc: New.
+ * testsuite/ext/stdio_filebuf/char/10063-2.cc: New.
+
+2003-12-10 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (num_put::do_put(void*)):
+ Remove the try/catch, not necessary.
+
+2003-12-10 Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/22_locale/locale/cons/12438.cc: Tweak memory
+ limit and iterations to avoid spurious failures on some
+ 64 bit machines.
+
+2003-12-09 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/linker-map.gnu: Remove private ios_base members from
+ export list.
+
+ * config/cpu/alpha/atomicity.h: Consistently format.
+ * 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/i486/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.
+
+2003-12-09 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/13296
+ * acinclude.m4 (GLIBCXX_ENABLE_LIBUNWIND_EXCEPTIONS): Remove.
+ * aclocal.m4: Regenerate.
+ * configure.ac: Remove call to GLIBCXX_ENABLE_LIBUNWIND_EXCEPTIONS.
+ * conigure: Regenerate.
+ * src/Makefile.am (libstdc___la_LDFLAGS): Remove LIBUNWIND_FLAGS.
+ * src/Makefile.in: Regenerate.
+ * docs/html/17_intro/configury.html: Modify.
+
+2003-12-09 Paolo Carlini <pcaelini@suse.de>
+
+ * include/bits/demangle.h (struct implementation_details):
+ Keep in comments the names of the unused parameters.
+
+2003-12-09 Paolo Carlini <pcaelini@suse.de>
+
+ * include/bits/demangle.h (struct implementation_details):
+ Fix unused parameters warning.
+
+2003-12-09 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (num_get::_M_extract_int):
+ Slightly streamline the code dealing with overflows and the
+ parsing of the sign.
+
+2003-12-09 Bernardo Innocenti <bernie@develer.com>
+
+ * include/ext/algorithm, include/ext/debug_allocator.h,
+ include/ext/enc_filebuf.h, include/ext/functional,
+ include/ext/hash_fun.h, include/ext/hash_map, include/ext/hash_set,
+ include/ext/hashtable.h, include/ext/iterator,
+ include/ext/malloc_allocator.h, include/ext/memory,
+ include/ext/mt_allocator.h, include/ext/numeric,
+ include/ext/pod_char_traits.h, include/ext/pool_allocator.h,
+ include/ext/rb_tree, include/ext/rope, include/ext/ropeimpl.h,
+ include/ext/slist, include/ext/stdio_filebuf.h,
+ include/ext/stdio_sync_filebuf.h: Remove trailing whitespace.
+
+2003-12-09 Bernardo Innocenti <bernie@develer.com>
+
+ * include/debug/bitset, include/debug/debug.h, include/debug/deque,
+ include/debug/formatter.h, include/debug/hash_map.h,
+ include/debug/hash_multimap.h, include/debug/hash_multiset.h,
+ include/debug/hash_set, include/debug/hash_set.h, include/debug/list,
+ include/debug/map.h, include/debug/multimap.h,
+ include/debug/multiset.h, include/debug/safe_base.h,
+ include/debug/safe_iterator.h, include/debug/safe_iterator.tcc,
+ include/debug/safe_sequence.h, include/debug/set.h,
+ include/debug/string, include/debug/vector: Remove trailing whitespace.
+
+2003-12-09 Bernardo Innocenti <bernie@develer.com>
+
+ * include/c_compatibility/iso646.h, include/c_compatibility/limits.h,
+ include/c_compatibility/locale.h, include/c_compatibility/stdio.h,
+ include/c_compatibility/string.h, include/c_compatibility/time.h,
+ include/c_compatibility/wchar.h, include/c_compatibility/wctype.h:
+ Remove trailing whitespace.
+
+2003-12-09 Bernardo Innocenti <bernie@develer.com>
+
+ * include/c_std/cmath.tcc, include/c_std/std_cassert.h,
+ include/c_std/std_cctype.h, include/c_std/std_cmath.h,
+ include/c_std/std_cstddef.h, include/c_std/std_cstdio.h,
+ include/c_std/std_cstdlib.h, include/c_std/std_cstring.h,
+ include/c_std/std_cwchar.h, include/c_std/std_cwctype.h:
+ Remove trailing whitespace.
+
+2003-12-09 Bernardo Innocenti <bernie@develer.com>
+
+ * include/c/std_cctype.h, include/c/std_cmath.h,
+ include/c/std_cstdlib.h include/c/std_cwchar.h,
+ include/c/std_cwctype.h: Remove trailing whitespace.
+
+2003-12-09 Bernardo Innocenti <bernie@develer.com>
+
+ * include/backward/algo.h, include/backward/algobase.h,
+ include/backward/alloc.h, include/backward/complex.h,
+ include/backward/defalloc.h, include/backward/function.h,
+ include/backward/iterator.h, include/backward/new.h,
+ include/backward/ostream.h, include/backward/queue.h,
+ include/backward/rope.h, include/backward/stream.h,
+ include/backward/streambuf.h, include/backward/strstream,
+ include/backward/tempbuf.h, include/backward/tree.h,
+ include/backward/vector.h: Remove trailing whitespace.
+
+2003-12-08 Paolo Carlini <pcarlini@suse.de>
+
+ * config/locale/generic/c_locale.cc (__convert_to_v(long&),
+ __convert_to_v(unsigned long&), __convert_to_v(long long&),
+ __convert_to_v(unsigned long long&): Remove.
+ (__convert_to_v(float&), __convert_to_v(double&),
+ __convert_to_v(long double&)): Remove last unused parameter.
+ * config/locale/gnu/c_locale.cc: Likewise.
+ * include/bits/locale_facets.h: Likewise.
+ (num_get::_M_extract_int): Update declaration.
+ (class __num_base): Tweak _S_ie and _S_iE according to the
+ _S_atoms_in changes.
+ * include/bits/locale_facets.tcc (num_get::_M_extract_int):
+ Provide directly the final _ValueT, not a string: accumulate
+ the result checking for overflow at each digit.
+ (num_get::do_get(bool&), num_get::do_get(long&),
+ num_get::do_get(unsigned short&), num_get::do_get(unsigned int&),
+ num_get::do_get(unsigned long&), num_get::do_get(long long&),
+ num_get::do_get(unsigned long long&), num_get::do_get(void*&)):
+ Use the new _M_extract_int, simplify.
+ * src/locale-inst.cc (num_get::_M_extract_int(long&),
+ num_get::_M_extract_int(unsigned short&),
+ num_get::_M_extract_int(unsigned int&),
+ num_get::_M_extract_int(unsigned long&),
+ num_get::_M_extract_int(long long&),
+ num_get::_M_extract_int(unsigned long long&): Instantiate.
+ * src/locale_facets.cc (__num_base::_S_atoms_in): Reorder
+ the chars in the natural order: abcdefABCDEF.
+
+2003-12-08 David S. Miller <davem@redhat.com>
+
+ PR libstdc++/12496
+ * config/cpu/sparc/atomicity.h (__exchange_and_add, __atomic_add):
+ Extend increment to _Atomic_word before giving to assembler.
+
+2003-12-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/ext/enc_filebuf/char/13189.cc: Guard for __enc_traits.
+ * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
+
+2003-12-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/11691
+ * include/ext/stdio_filebuf.h (stdio_filebuf::stdio_filebuf):
+ Remove __del argument to file descriptor constructor.
+ * config/io/basic_file_stdio.h (__basic_file::sys_open): Remove
+ bool argument.
+ * config/io/basic_file_stdio.cc: Same.
+
+2003-12-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/13189
+ * include/ext/enc_filebuf.h: Fix.
+ * include/bits/fstream.tcc: Tweak formatting.
+ * include/bits/postypes.h: Same.
+ * include/bits/sstream.tcc: Same.
+ * include/bits/streambuf.tcc: Same.
+ * testsuite/ext/stdio_filebuf.cc: Split.
+ * testsuite/ext/stdio_filebuf_2.cc: Split.
+ * testsuite/ext/stdio_sync_filebuf_char.cc: Split.
+ * testsuite/ext/stdio_sync_filebuf_wchar_t.cc: Split.
+ * testsuite/ext/enc_filebuf/char/13189.cc: New.
+ * testsuite/ext/enc_filebuf/wchar_t/13189.cc: New.
+ * testsuite/ext/stdio_filebuf/char/1.cc: New.
+ * testsuite/ext/stdio_filebuf/char/2.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/char/1.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/char/12048-1.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/char/12048-2.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/char/12048-3.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/char/12048-4.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc: New.
+ * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc: New.
+
+2003-12-05 Carlo Wood <carlo@alinoe.com>
+
+ PR libstdc++/13045
+ * bits/demangle.h
+ namespace __gnu_cxx::demangler
+ (enum substitution_nt): Removed trailing comma.
+ (implementation_details): Added.
+ (session<Allocator>::M_implementation_details): Added.
+ (session<Allocator>::session): Pass implementation_details.
+ (session<Allocator>::decode_encoding): Same.
+ (session<Allocator>::decode_real): Added.
+ (_GLIBCXX_DEMANGLER_STYLE_VOID _GLIBCXX_DEMANGLER_STYLE_LITERAL
+ _GLIBCXX_DEMANGLER_STYLE_LITERAL_INT
+ _GLIBCXX_DEMANGLER_STYLE_COMPACT_EXPR_OPS
+ _GLIBCXX_DEMANGLER_STYLE_SIZEOF_TYPENAME): Replaced with
+ implementation_details equivalent.
+ (session<Allocator>::decode_expression):
+ Use M_implementation_details instead of macros. Add extra parentheses
+ around 'larger than' operator in expressions in template arguments.
+ (session<Allocator>::decode_bare_function_type): Idem.
+ (session<Allocator>::decode_literal):
+ Idem, and call decode_real for floating literals.
+ (session<Allocator>::decode_type_with_postfix): Put the postfix
+ of the return type of (member) functions after the function
+ instead of after the return type. Also, put a space after the
+ prefix of qualified function pointers: "int (* const<space>".
+ * src/demangle.cc: include most dependent header file first.
+ * testsuite/demangle/regression/cw-16.cc: Updated two
+ and added three tests.
+
+2003-12-04 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/13284
+ * include/bits/stl_algo.h (__random_number): Remove.
+ (random_shuffle): Use rand, as permitted by DR 395.
+ * include/ext/algorithm: Same.
+ * linkage.m4 (GLIBCXX_CHECK_STDLIB_SUPPORT): Remove lrand48.
+ * acconfig.h: Same.
+ * crossconfig.m4: Remove HAVE_DRAND48, HAVE_LRAND48.
+ * config.h.in: Regenerated.
+ * configure: Same.
+ * aclocal.m4: Same.
+
+2003-12-04 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/12653
+ * include/std/std_bitset.h (operator>>): Implement resolution
+ of DR 303 [WP]: use widen('0') and widen('1').
+ * docs/html/ext/howto.html: Add an entry for DR 303.
+
+ * include/std/std_bitset.h (operator>>): Implement the common
+ requirements of formatted input functions (27.6.1.2.1).
+
+ * include/std/std_bitset.h (operator>>): Set the failbit when
+ nothing was extracted and _Nb != 0.
+ * testsuite/23_containers/bitset/input/1.cc: New.
+
+2003-12-03 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/12791
+ * include/bits/locale_facets.tcc (time_get::_M_extract_num):
+ Rewrite, stop the parsing as soon as a digit cannot possibly
+ lead to a final number within the bounds; otherwise, simplify,
+ avoiding __ctype.is() and atoi().
+ * testsuite/22_locale/time_get/get_date/char/12791.cc: New.
+ * testsuite/22_locale/time_get/get_date/wchar_t/12791.cc: New.
+
+ * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
+ Minor tweak: a 4-digit integer cannot be bigger than 9999.
+
+ * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Use
+ type-correct wchar_t string literals.
+ * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto.
+ * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto.
+ * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto.
+ * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto.
+
+2003-12-02 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (time_get::do_get_year):
+ Avoid using a basic_string and calling a full blown strtol
+ (via __convert_to_v) for simple 2 or 4 digits, base 10,
+ positive integers; simplify.
+
+2003-12-02 Paolo Carlini <pcarlini@suse.de>
+
+ * config/locale/gnu/monetary_members.cc
+ (money_base::_S_construct_pattern): For case 3: and 4:
+ exchanging 'if (__precedes)' and 'if (__space)' allows
+ to factor out a few more assignments.
+
2003-12-01 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/basic_ios.h (basic_ios::setstate): Revert.
PR libstdc++/11544
PR libstdc++/11603
- * include/bits/fstream.tcc (underflow): Throw ios_base:failure
+ * include/bits/fstream.tcc (underflow): Throw ios_base::failure
upon incomplete or invalid byte sequences in the file.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-1.cc: New.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc: New.
2003-04-09 Benjamin Kosnik <bkoz@redhat.com>
- Reshuffle 27_io testsuite. * testsuite/27_io/filebuf.cc,
+ Reshuffle 27_io testsuite.
+ * testsuite/27_io/filebuf.cc,
filebuf_members-1.tst, filebuf_members-1.txt, filebuf_members.cc,
filebuf_virtuals-1.tst, filebuf_virtuals-1.txt,
filebuf_virtuals-2.tst, filebuf_virtuals-3.tst,