2005-01-24 Michael Matz <matz@suse.de> Revert 2004-12-05. * include/bits/stl_tree.h (_Rb_tree_rebalance, _Rb_tree_rebalance_for_erase): Put back 'inline'. 2005-01-12 Paolo Carlini <pcarlini@suse.de> * include/bits/stl_algobase.h (lexicographical_compare): Fix concept check. 2005-01-02 Chris Jefferson <chris@bubblescope.net> * include/bits/stl_algobase.h (mismatch): Correct concept check. 2004-12-05 Paolo Carlini <pcarlini@suse.de> * include/bits/stl_tree.h (_Rb_tree_rebalance, _Rb_tree_rebalance_for_erase): Remove unreasonable 'inline'. 2004-11-01 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (_M_mutate, _Rep::_M_clone): Use consistently the exponential policy, simplify. (_S_create): Simplify, don't use the subpagesize remnant. 2004-10-29 Chris Jefferson <chris@bubblescope.net> * include/bit/stl_algo.h (find_first_of(,,,,pred)): Remove invalid EqualOpConcept. 2004-10-14 Paolo Carlini <pcarlini@suse.de> * include/std/std_memory.h (__get_temporary_buffer): Don't use INT_MAX, prefer numeric_limits<ptrdiff_t>::max(), ok on 64-bit platforms too. 2004-10-14 Paolo Carlini <pcarlini@suse.de> Magnus Fromreide <magfr@lysator.liu.se> * include/bits/boost_concept_check.h (struct _SequenceConcept): Remove wrong requirement, i.e., not present in Table 67. 2004-09-17 Jonathan Wakely <redi@gcc.gnu.org> * include/bits/stl_algo.h (remove): Remove too restrictive concept-check. 2004-08-29 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format, case 'S'): Allow for at least one leap-second (as per C99, 7.23.1 and 7.23.3.5), two if !_GLIBCXX_USE_C99. 2004-08-27 Paolo Carlini <pcarlini@suse.de> PR libstdc++/17038 (partial) * include/bits/locale_facets.tcc (time_put<>::do_put): Increase __maxlen to 128. * config/locale/generic/time_members.cc (_M_put): Always null terminate __s. * config/locale/gnu/time_members.cc (_M_put): Likewise. 2004-08-22 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (num_put<>::do_put(bool)): Cast to a signed type, long according to the resolution of DR 359. 2004-08-16 Paolo Carlini <pcarlini@suse.de> PR libstdc++/12750 * include/bits/locale_facets.tcc (time_get::_M_extract_via_format): Deal with code 'e'. 2004-08-16 Richard Henderson <rth@redhat.com> PR libstdc++/14026 * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust uncaughtExceptions during nested catch rethrow. 2004-08-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. 2004-08-10 Michael Matz <matz@suse.de> Merged to 3.3 branch at tag hammer-3_3-merge-20040809 . 2004-08-08 Paul Kienzle <pkienzle@nist.gov> Paolo Carlini <pcarlini@suse.de> PR libstdc++/13450 * include/std/std_complex.h (pow(const complex&, const _Tp&), pow(const _Tp&, const complex&)): Use cmath pow only when safe. 2004-08-06 Jerry Quinn <jlquinn@optonline.net> 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): Add versions for gslice_array and mask_array. 2004-08-06 Paolo Carlini <pcarlini@suse.de> PR libstdc++/12232 * include/bits/fstream.tcc (seekoff): Essentially ignore the openmode argument (_M_file.seekoff already ignores it). (seekpos): Likewise. 2004-08-06 Petur Runolfsson <peturr02@ru.is> Paolo Carlini <pcarlini@suse.de> PR libstdc++/11460 * src/strstream.cc (pbackfail): Fix to use to_int_type. 2004-08-05 Paolo Carlini <pcarlini@suse.de> Backport from mainline/3.4: 2003-12-04 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/13284 * include/bits/stl_algo.h (random_shuffle): Use rand, as permitted by DR 395. * include/ext/algorithm: Same. 2004-08-05 Paolo Carlini <pcarlini@suse.de> PR libstdc++/10378 * include/bits/stl_alloc.h (allocator::construct, __allocator::construct): Implement resolution of DR 402 [Ready]. * include/bits/stl_construct.h (_Construct): Likewise. 2004-08-01 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(). * include/bits/locale_facets.tcc (time_get::_M_extract_via_format): Minor tweak: a 4-digit integer cannot be bigger than 9999. 2004-08-01 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (time_put::put): Absolutely avoid dereferencing end iterators; clean up. 2004-08-01 Paolo Carlini <pcarlini@suse.de> PR libstdc++/12439 * include/bits/locale_facets.tcc (time_put::put): Deal with the three issues pointed out by the PR. 2004-07-30 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. 2004-07-30 Paolo Carlini <pcarlini@suse.de> Petur Runolfsson <peturr02@ru.is> 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. 2004-07-30 Paolo Carlini <pcarlini@suse.de> PR libstdc++/15565 * include/bits/locale_facets.tcc (__int_to_char(unsigned long), __int_to_char(unsigned long long)): Showpos is not relevant for unsigned types. 2004-07-30 Paolo Carlini <pcarlini@suse.de> Backport from mainline/3.4: 2003-04-22 Loren J. Rittle <ljrittle@acm.org> * testsuite/27_io/filebuf_members.cc (test_06): Adjust timings to avoid spurious failures. 2004-07-15 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (assign(const _CharT*, size_type)): When working in place remember to set the state to sharable. 2004-07-15 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (_Rep::_S_create): Never allocate a string bigger than max_size(). 2004-07-14 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'). * 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. 2004-07-14 Paolo Carlini <pcarlini@suse.de> Andrew Pinski <pinskia@physics.uc.edu> * include/bits/basic_string.tcc (_M_mutate): Don't compute __src unnecessarily. 2004-07-14 Paolo Carlini <pcarlini@suse.de> * 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-07-13 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, num_get<>::_M_extract_int): If appropriate, call reserve on the __tmp_gruping string. (num_get<>::_M_extract_float): Don't append unnecessarily a char() to the returned string. 2004-07-13 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()): Avoid computing &= unnecessarily. 2004-07-13 Paolo Carlini <pcarlini@suse.de> * src/localename.cc (locale::_Impl::_Impl): Slightly improve the algorithm used to name the categories. 2004-07-13 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (time_get<>::do_get_time, time_get<>::do_get_date): Use only once _M_extract_via_format, instead of going through "%X"/"%x" and calling it two times (+ using widen). 2004-07-12 Paolo Carlini <pcarlini@suse.de> * config/locale/generic/time_members.cc (__timepunct<char>::_M_initialize_timepunct, __timepunct<wchar_t>::_M_initialize_timepunct): the correct _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively. * config/locale/gnu/time_members.cc (__timepunct<char>::_M_initialize_timepunct, __timepunct<wchar_t>::_M_initialize_timepunct): Ditto. 2004-07-12 Paolo Carlini <pcarlini@suse.de> PR libstdc++/16154 * include/bits/boost_concept_check.h (struct _TrivialIteratorConcept): Don't require the _DefaultConstructibleConcept. (struct _ForwardIteratorConcept): Require it here. 2004-06-22 Paolo Carlini <pcarlini@suse.de> * include/bits/istream.tcc (operator>>(basic_istream<>&, basic_string<>&)): Use a temporary buffer, thus avoiding reallocation for common case. 2004-06-08 Chavdar Botev <cbotev@yahoo.com> 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-05-26 Michael Matz <matz@suse.de> Backport from 3.3 branch: 2004-05-13 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/14720 * config/linker-map.gnu: Export basic_ios::_M_setstate. * testsuite/abi_check.cc (check_version): Add GLIBCXX_3.2.4 to known versions. * configure.in (libtool_VERSION): To 5:6:0. * configure: Regenerated. 2004-05-25 David Asher <david.asher@cavium.com> PR libstdc++/11352 * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't access __olds beyond __oldlen. 2004-05-25 Michael Matz <matz@suse.de> Paolo Carlini <pcarlini@suse.de> * src/misc-inst.cc: Instantiate istreambuf_iterator<>::_M_get. 2004-05-02 Paolo Carlini <pcarlini@suse.de> * src/locale.cc (locale::operator==): Always avoid constructing locale::name(), directly compare pairs of _M_names. 2004-05-02 Paolo Carlini <pcarlini@suse.de> * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl avoid constructing unnecessarily this->name(). 2004-05-02 Paolo Carlini <pcarlini@suse.de> * src/locale.cc (locale::global(const locale&)): Save the name in a temporary. 2004-05-02 Paolo Carlini <pcarlini@suse.de> PR libstdc++/14071 * src/locale.cc (locale::global(const locale&)): Use locale::name() in order to decide whether calling setlocale. 2004-05-02 Paolo Carlini <pcarlini@suse.de> PR libstdc++/15002 (continued) * include/bits/istream.tcc (getline(basic_istream<>&, basic_string<>&, _CharT)): Use a temporary buffer, thus avoiding reallocation for common case. * include/bits/istream.tcc (getline(basic_istream<>&, basic_string<>&, _CharT)): Change to use sgetc()/snextc() instead of sbumpc(), consistently with the other functions, thus also dealing correctly with the case of exceeded string::max_size(). 2004-04-25 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (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*&)): Reserve space in __xtrc, thus speeding up the parsing. 2004-04-23 Paolo Carlini <pcarlini@suse.de> PR libstdc++/15002 (partial) * include/bits/basic_string.tcc (_M_replace_safe, replace(iterator, iterator, size_type, _CharT)): Special case __dnew/__n2 == 1, not calling _S_copy_chars/traits_type::assign. 2004-02-24 Paolo Carlini <pcarlini@suse.de> * testsuite/22_locale/time_put_members_char.cc (test01): Allow either "Son" or "So" as abbreviated name for Sunday in de_DE locale. * testsuite/22_locale/time_put_members_wchar_t.cc (test01): Likewise. 2004-02-23 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (num_get::do_get(void*&)): Set correctly just basefield, the only group that matters. * 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]. * include/bits/basic_string.h (c_str()): Simplify, due to 21.3.4 the internal representation is always kept null-terminated. 2004-02-22 Neil Ferguson <nferguso@eso.org> Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (reserve): Allow shrink-to-fit. 2004-02-22 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (money_get<>::do_get(string_type&), money_put<>::do_put(const string_type&)): Streamline, use reserve to avoid multiple reallocations. * include/bits/locale_facets.tcc (num_put<>::_M_convert_float): Further tweak: in case of non-fixed outputs, __max_digits only provides an estimates of the probable size of the buffer. 2004-02-22 Paolo Carlini <pcarlini@suse.de> PR libstdc++/14220 * include/bits/locale_facets.tcc (num_put<>::_M_convert_float): Fix previous commit: in case of non-fixed outputs __max_digits is still needed in order to upper bound the size of the buffer. 2004-02-22 Paolo Carlini <pcarlini@suse.de> PR libstdc++/14220 * include/bits/locale_facets.tcc (num_put<>::_M_convert_float): Don't clip the precision passed down to __convert_from_v: 22.2.2.2.2 nowhere says so. 2004-02-22 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (_M_extract_float, _M_extract_int): Remove a wrong comment and simplify the corresponding code using char_traits::find(). 2004-01-29 Alan Modra <amodra@bigpond.net.au> Backport from mainline. 2003-08-28 Alan Modra <amodra@bigpond.net.au> * configure.in: Test $with_cross_host against $build_alias, not $build. * configure: Regenerate. 2004-01-27 Paolo Carlini <pcarlini@suse.de> PR libstdc++/12967 * include/bits/list.tcc (merge): Implement resolution of DR 300 [WP]. 2004-01-27 Paolo Carlini <pcarlini@suse.de> PR libstdc++/13884 * include/bits/sstream.tcc: Guard use of extern template. 2004-01-27 Paolo Carlini <pcarlini@suse.de> * 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-27 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (__pad<>::_S_pad): Improve performance-wise: avoid one traits::copy, avoid the __builtin_alloca, streamline. 2004-01-26 Paolo Carlini <pcarlini@suse.de> PR libstdc++/12971 * include/bits/locale_facets.tcc (money_put::do_put(..., long double)): Fix conversion specification as per DR 328 [WP]. 2004-01-26 Paolo Carlini <pcarlini@suse.de> * config/locale/gnu/monetary_members.cc: Don't leak memory on exception. 2004-01-26 Andreas Schwab <schwab@suse.de> * config/locale/gnu/monetary_members.cc: Restore locale before rethrowing exception. 2004-01-25 Paolo Carlini <pcarlini@suse.de> 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.tcc (_M_clone): Null-terminate. 2004-01-19 Paolo Carlini <pcarlini@suse.de> PR libstdc++/12352 PR libstdc++/12438 * include/bits/locale_classes.h (locale::locale(const locale&, _Facet*)): Don't leak memory on exception. * include/bits/locale_facets.tcc (locale::combine(const locale&)): Likewise. * src/locale.cc (locale::locale(const char*)): Likewise. * src/localename.cc (locale::_Impl::~_Impl(), locale::_Impl::_Impl(const _Impl&, size_t), locale::_Impl::_Impl(const char*, size_t)): Likewise. (locale::_Impl::_M_replace_categories(const _Impl*, category): Tweak. 2004-01-12 Marc Espie <espie@openbsd.org> * src/Makefile.am (version.dep): backport from HEAD. * src/Makefile.in: regen. 2004-01-12 Gernot Hillier <gernot.hillier@siemens.com> * configure.in: GLIBCXX->GLIBCPP. * configure: Regenerated. * aclocal.m4: Regenerated. 2004-01-07 Benjamin Kosnik <bkoz@redhat.com> * configure.in: Add io bits to linux cross config. * configure: Regenerate. 2004-01-07 Paolo Carlini <pcarlini@suse.de> Petur Runolfsson <peturr02@ru.is> PR libstdc++/13007 * include/bits/fstream.tcc (imbue): Don't touch the stored locale. * include/std/std_streambuf.h (imbue): According to the standard, base class version does nothing. (pubimbue): Store the locale. 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-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-04 Christopher Saunders <ctsa@u.washington.edu> PR libstdc++/13290 * include/bits/stl_algo.h (generate_n): Fix typo. 2003-12-03 Benjamin Kosnik <bkoz@redhat.com> * include/bits/basic_ios.h (basic_ios::setstate): Revert. * include/bits/istream.tcc: Only call setstate if __err != goodbit. * include/bits/ostream.tcc: Same. * testsuite/27_io/basic_ios/exceptions/char/2.cc: New. 2003-12-03 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/9371 PR libstdc++/9546 PR libstdc++/10093 PR libstdc++/10095 * include/bits/basic_ios.h (basic_ios::setstate): Elide if goodbit. (basic_ios::_M_setstate): Consolidate common error handling code. * include/bits/basic_ios.tcc: Tweak. * include/bits/fstream.tcc: Tweak. * include/bits/istream.tcc: Use _M_setstate for common exception handling. Move setstate calls after catch. (basic_istream::tellg): Check for exceptions thrown by streambuf virtual functions. (basic_istream::seekg): Same. * include/bits/ostream.tcc: Same, but for ostream. (basic_ostream::flush): Check for exceptions thrown by streambuf virtual functions. (basic_istream::tellp): Same. (basic_istream::seekp): Same. * include/bits/locale_facets.tcc: Tweak. * include/bits/streambuf.tcc: Tweak. (__copy_streambufs): Propagate exceptions. 2003-11-26 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/12297 * include/bits/istream.tcc (basic_istream::sentry::sentry): Set failbit and eofbit when eof. 2003-11-26 Petur Runolfsson <peturr02@ru.is> PR libstdc++/12594 * include/bits/ostream.tcc (basic_ostream::operator<<(basic_ostream& (*)(basic_ostream&)), basic_ostream::operator<<(basic_ios& (*)(basic_ios&)), basic_ostream::operator<<(ios_base& (*)(ios_base&))): Implement the resolution of DR 60 (TC): These are not formatted output functions so don't construct sentry objects and don't catch exceptions. (basic_ostream::put, basic_ostream::write): Implement the resolution of DR 63 (TC) by catching exceptions and setting badbit. (basic_ostream::flush): Implement the resolution of DR 60 (TC): This is not an unformatted output function so don't construct a sentry object. 2003-10-25 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (money_get::do_get(..., long double&): Properly size the temporary buffer. 2003-10-20 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/10081 * include/bits/basic_ios.h (basic_ios::basic_ios): Initialize _M_fctype, _M_fnumput, _M_fnumget. 2004-01-24 Alan Modra <amodra@bigpond.net.au> * configure.in: Set native_cross when ppc32->ppc64 and host can execute ppc64 insns. Do native tests when native_cross. * configure: Rebuild. Backport from mainline. 2003-03-12 Andreas Schwab <schwab@suse.de> * acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Avoid trailing /. in glibcpp_toolexeclibdir. * aclocal.m4, configure: Rebuilt.