aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include
AgeCommit message (Collapse)AuthorFilesLines
2006-10-28array (array<>::_M_at): New.Paolo Carlini2-26/+51
2006-10-28 Paolo Carlini <pcarlini@suse.de> * include/tr1/array (array<>::_M_at): New. (array<>::at): Fix off-by-one bug, use the above. * testsuite/tr1/6_containers/array/element_access/ at_out_of_range.cc: Adjust. * include/tr1/array (class array<>): Remove non-conforming default for the second parameter. * include/ext/array_allocator.h: Adjust. * include/tr1/array (array<>::front, array<>::back): Do not return a reference to memory not belonging to the array when _Nm == 0. From-SVN: r118115
2006-10-16basic_string.tcc (_Rep::_S_create): Call _M_set_sharable() for backwards ↵Jakub Jelinek1-0/+8
compatibility. * include/bits/basic_string.tcc (_Rep::_S_create): Call _M_set_sharable() for backwards compatibility. From-SVN: r117778
2006-10-06re PR libstdc++/29368 (wrong STL docs for rfind())Paolo Carlini2-6/+6
2006-10-06 Paolo Carlini <pcarlini@suse.de> PR libstdc++/29368 * include/bits/basic_string.h: Adjust rfind documentation. * include/ext/vstring.h: Likewise. From-SVN: r117497
2006-10-06re PR libstdc++/29354 (Error when seeking on an ostringstream)Paolo Carlini1-1/+1
2006-10-06 Paolo Carlini <pcarlini@suse.de> PR libstdc++/29354 * include/bits/sstream.tcc (basic_stringbuf<>::seekpos(pos_type, ios_base::openmode)): Allow for seek to pos_type(off_type(0)) when the stream is empty. * testsuite/27_io/basic_stringbuf/seekpos/char/29354.cc: New. * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/29354.cc: New. From-SVN: r117495
2006-09-26re PR libstdc++/29224 (-Wshadow causing warning in <tr1/functional>)Howard Hinnant1-5/+5
2006-09-26 Howard Hinnant <hhinnant@apple.com> PR libstdc++/29224 * include/tr1/functional_iterate.h: Avoid -Wshadow warnings. From-SVN: r117223
2006-09-25re PR libstdc++/29179 (bugs in mt_allocator)Paolo Carlini1-6/+10
2006-09-25 Paolo Carlini <pcarlini@suse.de> PR libstdc++/29179 * include/ext/mt_allocator.h (__pool_base): Adjust/extend documentation in comments. From-SVN: r117194
2006-08-18re PR libstdc++/28765 (__gnu_cxx::__vstring::clear() is slow)Paolo Carlini3-1/+9
2006-08-18 Paolo Carlini <pcarlini@suse.de> PR libstdc++/28765 * include/ext/rc_string_base.h (_M_clear): New. * include/ext/sso_string_base.h (_M_clear): Likewise. * include/ext/vstring.h (clear): Use it. From-SVN: r116241
2006-07-03rc_string_base.h (__rc_string_base::_S_max_size): Adjust, take into account ↵Paolo Carlini1-5/+11
rounding in _M_create. 2006-07-03 Paolo Carlini <pcarlini@suse.de> * include/ext/rc_string_base.h (__rc_string_base::_S_max_size): Adjust, take into account rounding in _M_create. (__rc_string_base::_M_create): Add early _S_max_size check. From-SVN: r115159
2006-07-03[multiple changes]Paolo Carlini2-5/+10
2006-07-03 Ian Lance Taylor <ian@airs.com> Paolo Carlini <pcarlini@suse.de> * include/ext/rc_string_base.h (__rc_string_base::_S_max_size): Increase by a factor of two. * include/ext/sso_string_base.h (__sso_string_base::_S_max_size): Likewise. 2006-07-03 Paolo Carlini <pcarlini@suse.de> * include/ext/sso_string_base.h (__sso_string_base::_M_create): Never allocate a string bigger than _S_max_size. From-SVN: r115156
2006-05-26hashtable: Minor cosmetic changes.Paolo Carlini1-105/+134
2006-05-26 Paolo Carlini <pcarlini@suse.de> * include/tr1/hashtable: Minor cosmetic changes. 2006-05-26 Paolo Carlini <pcarlini@suse.de> * include/tr1/hashtable (hashtable<>::m_find): Remove; update callers. * include/tr1/hashtable (map_base<>::operator[]): Move out of line. * include/tr1/hashtable (hashtable<>::m_insert(const value_type&, std::tr1::false_type)): Avoid memory leak risk for new_node. 2006-05-26 Paolo Carlini <pcarlini@suse.de> * include/tr1/hashtable (hashtable<>::m_find, m_insert_bucket): Add. (hashtable<>::find, m_insert(const value_type&, std::tr1::true_type), map_base<>::operator[]): Use the above. * testsuite/performance/23_containers/insert/unordered_map_array.cc: New. * include/tr1/hashtable (hashtable<>::find_node, insert(const value_type&, ...), erase_node): Rename to m_*, adjust callers. * include/tr1/hashtable: Minor cosmetic changes. From-SVN: r114129
2006-05-14hashtable (identity<>::operator(), [...]): Return by const ref.Peter Doerfler1-2/+2
2006-05-14 Peter Doerfler <gcc@pdoerfler.com> * include/tr1/hashtable (identity<>::operator(), extract1st<>::operator()): Return by const ref. From-SVN: r113759
2006-05-11hashtable (hashtable_iterator<>::hashtable_iterator(), [...]): Add.Paolo Carlini1-6/+17
2006-05-11 Paolo Carlini <pcarlini@suse.de> Peter Doerfler <gcc@pdoerfler.com> * include/tr1/hashtable (hashtable_iterator<>::hashtable_iterator(), hashtable_const_iterator<>::hashtable_const_iterator(), node_iterator<>::node_iterator(), node_const_iterator<>::node_const_iterator()): Add. (node_iterator<>::node_iterator(hash_node<>*), node_const_iterator<>::node_const_iterator(hash_node<>*)): Tweak, remove default. * testsuite/tr1/6_containers/unordered/hashtable/ iterators_default_constructor.c: New. Co-Authored-By: Peter Doerfler <gcc@pdoerfler.com> From-SVN: r113694
2006-05-09type_traits (integral_constant<>::value): Define.Paolo Carlini1-1/+4
2006-05-09 Paolo Carlini <pcarlini@suse.de> * include/tr1/type_traits (integral_constant<>::value): Define. * testsuite/tr1/4_metaprogramming/helper_classes/static_definition.cc: New. From-SVN: r113649
2006-04-21re PR libstdc++/26424 (tr1/unordered vs 64-bit machines)Paolo Carlini1-14/+45
2006-04-21 Paolo Carlini <pcarlini@suse.de> PR libstdc++/26424 * include/tr1/hashtable (X<>::primes): Extend for 64-bit machines. (X<>::n_primes): Adjust. (prime_rehash_policy::next_bkt, bkt_for_elements, need_rehash): Adjust. From-SVN: r113143
2006-04-14re PR libstdc++/27162 (search_n uses == when it should use binary_pred)Douglas Gregor1-2/+3
2006-04-14 Douglas Gregor <dgregor@cs.indiana.edu> PR libstdc++/27162 * include/bits/stl_algo.h (__search_n(,,,, _BinaryPredicate, std::forward_iterator_tag)): Use __binary_pred, not ==. From-SVN: r112958
2006-03-29re PR libstdc++/26777 (sync_with_stdio(false) triggers bug with sgetc and ↵Paolo Carlini1-7/+10
pubseekoff) 2006-03-28 Paolo Carlini <pcarlini@suse.de> PR libstdc++/26777 * include/bits/fstream.tcc (basic_filebuf<>::_M_seek): Check the return value of _M_file.seekoff. * testsuite/27_io/basic_filebuf/seekoff/char/26777.cc: New. From-SVN: r112477
2006-03-28vstring.h (operator[]): Allow s[s.size()] in debug mode, but not pedantic mode.Paolo Carlini1-1/+4
2006-03-28 Paolo Carlini <pcarlini@suse.de> * include/ext/vstring.h (operator[]): Allow s[s.size()] in debug mode, but not pedantic mode. From-SVN: r112448
2006-03-12re PR target/26532 (libmudflap failures on ia64)Paolo Carlini2-35/+35
2006-03-12 Paolo Carlini <pcarlini@suse.de> PR target/26532 * config/io/c_io_stdio.h (struct __ios_flags): Remove. * include/bits/ios_base.h: Adjust consistently. (ios_base::_S_local_word_size): Change to an anonymous enum. * src/ios.cc: Do not define static const data of __ios_flags, likewise for ios_base::_S_local_word_size. * include/bits/locale_classes.h (locale::_S_categories_size): Change to an anonymous enum. * src/locale.cc: Don't define. From-SVN: r111979
2006-03-06std_sstream.h (basic_stringbuf<>::setbuf): Simply clear the internal ↵Paolo Carlini2-32/+37
_M_string, adjust _M_sync call. 2006-03-06 Paolo Carlini <pcarlini@suse.de> * include/std/std_sstream.h (basic_stringbuf<>::setbuf): Simply clear the internal _M_string, adjust _M_sync call. * include/bits/sstream.tcc (basic_stringbuf<>::_M_sync): Adjust consistently for calls from setbuf. 2006-03-06 Paolo Carlini <pcarlini@suse.de> * include/std/std_sstream.h (basic_stringbuf<>::_M_sync): Move out of line... * include/bits/sstream.tcc: ... here. From-SVN: r111787
2006-03-04re PR libstdc++/26132 (tr1/hashtable: rehash not implemented)Paolo Carlini1-2/+15
2006-03-04 Paolo Carlini <pcarlini@suse.de> PR libstdc++/26132 * include/tr1/hashtable (hashtable<>::rehash): Define. * testsuite/tr1/6_containers/unordered/hashtable/26132.cc: New. From-SVN: r111709
2006-03-02array (array<>::swap, assign): Implement.Paolo Carlini1-21/+23
2006-03-01 Paolo Carlini <pcarlini@suse.de> * include/tr1/array (array<>::swap, assign): Implement. * include/tr1/array (operator==, operator!=, operator<, operator>, operator>=, operator<=, swap, get): Inline. * testsuite/tr1/6_containers/array/requirements/member_swap.cc: New. * testsuite/tr1/6_containers/array/requirements/assign.cc: Likewise. * testsuite/tr1/6_containers/array/specialized_algorithms/swap.cc: Likewise. From-SVN: r111631
2006-02-07[multiple changes]Paolo Carlini1-20/+29
2006-02-07 Paolo Carlini <pcarlini@suse.de> * include/tr1/hashtable: Trivial formatting fixes. 2006-02-07 Paolo Carlini <pcarlini@suse.de> Zak Kipling <zak@transversal.com> PR libstdc++/26127 * include/tr1/hashtable (hashtable<>::key_equal): Define. (hashtable<>::bucket, rehash_base<>::max_load_factor): Fix. * testsuite/tr1/6_containers/unordered/hashtable/26127.cc: New. Co-Authored-By: Zak Kipling <zak@transversal.com> From-SVN: r110698
2006-02-01std_bitset.h: Revert unadvertent commit.Paolo Carlini1-3/+2
2006-02-01 Paolo Carlini <pcarlini@suse.de> * include/std/std_bitset.h: Revert unadvertent commit. From-SVN: r110483
2006-02-01re PR libstdc++/21554 (ext/array_allocator/2.cc execution fails)Paolo Carlini2-4/+5
2006-02-01 Paolo Carlini <pcarlini@suse.de> PR libstdc++/21554 * include/tr1/array (array<>::_M_instance): Maximally align. * testsuite/ext/array_allocator/2.cc: Do not xfail for powerpc. From-SVN: r110482
2006-01-25std_valarray.h: Revert last unintended commit.Paolo Carlini2-23/+7
2006-01-25 Paolo Carlini <pcarlini@suse.de> * include/std/std_valarray.h: Revert last unintended commit. * include/bits/valarray_array.h: Likewise. From-SVN: r110212
2006-01-25index.html ([5.2]): Mention TR1 and point to paragraph [5.5], describing it.Ed Smith-Rowland2-7/+23
2006-01-25 Ed Smith-Rowland <3dw4rd@verizon.net> * docs/html/faq/index.html ([5.2]): Mention TR1 and point to paragraph [5.5], describing it. ([5.5]): New. * docs/html/ext/tr1.html: New. From-SVN: r110211
2006-01-19sso_string_base.h (__sso_string_base<>::_M_dataplus): Use _CharT_alloc_type ↵Paolo Carlini3-37/+35
as base class. 2006-01-19 Paolo Carlini <pcarlini@suse.de> * include/ext/sso_string_base.h (__sso_string_base<>::_M_dataplus): Use _CharT_alloc_type as base class. (_M_get_allocator, _M_swap, _M_create, _M_destroy): Adjust. * include/ext/vstring.h (get_allocator): Tidy. * include/ext/vstring_util.h (struct __alloc_swap<>): Add, swaps allocators, optimized to nothing in case they are empty. (__vstring_utility<>::_Alloc_hider): Clean-up. * include/ext/rc_string_base.h (__rc_string_base<>::_M_swap): Call __alloc_swap<>::_S_do_it. * include/ext/sso_string_base.h (__sso_string_base<>::_M_swap): Same. From-SVN: r109955
2006-01-18value_type_adapter.hpp: Include <tr1/type_traits>.Paolo Carlini2-22/+17
2006-01-18 Paolo Carlini <pcarlini@suse.de> * include/ext/pb_assoc/detail/value_type_adapter/ value_type_adapter.hpp: Include <tr1/type_traits>. * include/ext/pb_assoc/detail/value_type_adapter/ it_value_type_traits.hpp (it_value_type_traits_<>::value_type_holder): Use tr1::aligned_storage and tr1::alignment_of. (it_value_type_traits_<>::buf_t): Remove. (it_value_type_traits_<>::make_valid, recast): Adjust. From-SVN: r109884
2006-01-10valarray_after.h (_Expr<>::operator[](slice)): Don't assume the closure ↵Paolo Carlini1-9/+33
implements general indexing... 2006-01-10 Gabriel Dos Reis <gdr@integrable-solutions.net> * include/bits/valarray_after.h (_Expr<>::operator[](slice)): Don't assume the closure implements general indexing, as a matter of fact, most of them don't. (_Expr<>::operator[](const gslice&)): Likewise. (_Expr<>::operator[](const valarray<bool>&)): Likewise. (_Expr<>::operator[](const valarray<size_t>&)): Likewise. (_Expr<>::shift): Fix thinko. (_Expr<>::cshift): Likewise. (_Expr<>::apply): Likewise. From-SVN: r109546
2006-01-10re PR libstdc++/23591 (exceptions in plugins in threads cause segmentation ↵Benjamin Kosnik1-2/+3
violation by leaving bad exit handler for the pthread) 2006-01-10 Benjamin Kosnik <bkoz@redhat.com> Ulrich Drepper <drepper@redhat.com> PR libstdc++/23591 * scripts/create_testsuite_files: Support for "C" test files. * testsuite/lib/libstdc++.exp: Same. * testsuite/libstdc++-dg/normal.exp: Same. * testsuite/ext/mt_allocator/22309_thread.cc: Update names. * testsuite/19_diagnostics/23591_thread-1.c: New. * testsuite/testsuite_shared.cc: Add tests, rename existing functions. * libsupc++/eh_globals.cc: Make global thread local if possible. * configure.ac: Use GCC_CHECK_TLS. * acinclude.m4: Include tls.m4. * configure: Regenerate. * config.h.in: Same. Co-Authored-By: Ulrich Drepper <drepper@redhat.com> From-SVN: r109545
2006-01-10re PR libstdc++/25472 (--disable-hosted-libstdcxx does not work)Benjamin Kosnik1-29/+34
2006-01-09 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/25472 * include/c_std/std_cstdlib.h: Fix for freestanding. 2006-01-09 Benjamin Kosnik <bkoz@redhat.com> * src/io-inst.cc: Separate instantiations into... * src/ios-inst.cc: .. this. * src/iostream-inst.cc: ... and this. * src/Makefile.am (sources): Update. * src/Makefile.in: Regenerate. From-SVN: r109531
2005-12-26mt_allocator.h (__mt_alloc::__mt_alloc): Remove name of unused parameter.Chris Jefferson6-10/+12
2005-12-26 Chris Jefferson <chris@bubblescope.net> * include/ext/mt_allocator.h (__mt_alloc::__mt_alloc): Remove name of unused parameter. * include/bits/stream_iterator.h (istream_iterator::istream_iterator): Construct _M_value. * include/debug/functions.h (__check_valid_range): Add __attribute__((unused)). * include/tr1/hashtable (hashtable::end): Remove name of unused parameter. * include/tr1/tuple_iterate.h (tuple::tuple): Likewise. (tuple::operator=): Add __attribute__((unused)). * include/tr1/functional (Fnv_hash<4>::hash): Add static_cast. (Fnv_hash<8>::hash): Likewise. * testsuite/25_algorithms/iter_swap/20577.cc (swap): Remove name of unused parameter. * testsuite/25_algorithms/unique_copy/check_type.cc (S2::S2,X2::X2): Likewise. * testsuite/22_locale/ctype/narrow/char/19955.cc (do_narrow): Likewise. * testsuite/22_locale/ctype/is/char/9858.cc (Derived::do_is, Derived::do_scan_is, Derived::do_scan_not, Derived2::do_is, Derived2::do_scan_is, Derived2::do_scan_not): Likewise. * testsuite/22_locale/time_put/put/wchar_t/12439_1.cc (TP::do_put): Likewise. * testsuite/22_locale/time_put/put/wchar_t/12439_3.cc (TP::do_put): Likewise. * testsuite/22_locale/time_put/put/char/12439_1.cc (TP::do_put): Likewise. * testsuite/22_locale/time_put/put/char/12439_3.cc (TP::do_put): Likewise. * testsuite/testsuite_io.h (fail_num_get::do_get, fail_num_put::do_put): Likewise. * testsuite/25_algorithms/find/17441.cc (find): Likewise. * testsuite/23_containers/vector/cons/clear_allocator.cc (clear_alloc::clear_alloc): Likewise. * testsuite/23_containers/vector/bool/clear_allocator.cc (clear_alloc::clear_alloc): Likewise. * testsuite/23_containers/list/cons/clear_allocator.cc (clear_alloc::clear_alloc): Likewise. * testsuite/23_containers/set/modifiers/16728.cc (test_container): Likewise. * testsuite/27_io/basic_ios/cons/char/3.cc (char_traits::to_char_type, to_int_type): Likewise. * testsuite/27_io/basic_filebuf/imbue/12206.cc (codecvt::do_out, do_in, do_unshift, do_length): Likewise. * testsuite/21_strings/basic_string/capacity/1.cc (operator==(A<T>,A<T>), operator<(A<T>,A<T>), char_traits::to_char_type, char_traits::to_int_type): Likewise * testsuite/testsuite_character.h (ctype::do_is, ctype::do_scan_is, ctype::do_scan_not, do_toupper, do_tolower): Likewise. * testsuite/25_algorithms/replace_copy/check_type.cc (Z::operator=): Add missing return statement. * testsuite/25_algorithms/replace_copy_if/check_type.cc (Z::operator=): Likewise. * testsuite/testsuite_iterators.h (output_iterator_wrapper::operator=, random_access_iterator_wrapper::operator==): Likewise. * testsuite/20_util/functional/binders/1.cc (s::f_int_int_const, s::f_int_int, s::f_int_void_const, s::f_int_void): Likewise. * testsuite/27_io/types/1.cc (test01): Likewise. * testsuite/27_io/basic_ostream/write/wchar_t/1.cc (test01): Likewise. * testsuite/27_io/basic_ostream/write/char/1.cc (test01): Likewise. * testsuite/21_strings/c_strings/wchar_t/24559.cc (main): Likewise. * testsuite/27_io/basic_istream/ignore/wchar_t/2.cc (check): Add static cast. * testsuite/27_io/basic_istream/ignore/char/2.cc (check): Likewise. * testsuite/27_io/basic_istream/getline/wchar_t/5.cc (check): Likewise. * testsuite/27_io/basic_istream/getline/char/5.cc (check): Likewise. * testsuite/testsuite_allocator.h (check_new): Likewise. (check_deallocate_null): Add missing return value. * testsuite/ext/pool_allocator/allocate_chunk.cc (test01): Make variable unsigned. * testsuite/26_numerics/valarray/valarray_subset_assignment.cc (check_array): Likewise. (main): Removed unused variable. * testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc (test05): Removed unused variable. * testsuite/27_io/basic_ostream/flush/wchar_t/1.cc (test01): Likewise. * testsuite/27_io/basic_ostream/flush/char/1.cc (test01): Likewise. * testsuite/27_io/basic_ostream/endl/wchar_t/1.cc (test01): Likewise. * testsuite/27_io/basic_ostream/endl/char/1.cc (test01): Likewise. * testsuite/27_io/basic_ostream/ends/wchar_t/1.cc (test01): Likewise. * testsuite/27_io/basic_ostream/ends/char/1.cc (test01): Likewise. * testsuite/tr1/2_general_utilities/memory/shared_ptr/ assign/shared_ptr.cc (test01): Correct return type. * testsuite/27_io/basic_filebuf/close/char/2.cc (test_02): Add default value to close_num. From-SVN: r109063
2005-12-15stl_vector.h (vector<>::_M_get_Tp_allocator): Change to return by ref and ↵Paolo Carlini2-2/+10
add non const version. 2005-12-15 Paolo Carlini <pcarlini@suse.de> * include/bits/stl_vector.h (vector<>::_M_get_Tp_allocator): Change to return by ref and add non const version. * include/bits/stl_deque.h (deque<>::_M_get_Tp_allocator): Likewise. From-SVN: r108571
2005-12-11sso_string_base.h (__sso_string_base<>::_M_compare): Add...Paolo Carlini3-3/+58
2005-12-10 Paolo Carlini <pcarlini@suse.de> * include/ext/sso_string_base.h (__sso_string_base<>::_M_compare): Add, specialized for char and wchar_t to immediately return true when a string is compared to itself. * include/ext/rc_string_base.h (__rc_string_base<>::_M_compare): Likewise, for the same _Rep. * include/ext/vstring.h (compare(const string&)): Use it. * include/ext/sso_string_base.h (__sso_string_base<>::_M_destroy): Deallocate passed size + 1. (_M_dispose, _M_reserve): Adjust. From-SVN: r108373
2005-12-08backport: [multiple changes]Richard Guenther1-1/+4
2005-12-08 Richard Guenther <rguenther@suse.de> Backport from mainline 2005-11-28 Richard Guenther <rguenther@suse.de> * c-common.c (strict_aliasing_warning): Handle all component-ref like accesses. * gcc.dg/alias-9.c: New testcase. * g++.dg/warn/Wstrict-aliasing-7.C: Likewise. 2005-11-24 Richard Guenther <rguenther@suse.de> Dirk Mueller <dmueller@suse.de> PR c++/14024 * c-common.h (strict_aliasing_warning): Declare. * c-common.c (strict_aliasing_warning): New function, split out from ... * c-typeck.c (build_c_cast): ... here. * typeck.c (build_reinterpret_cast_1): Use strict_aliasing_warning. * g++.dg/warn/Wstrict-aliasing-1.C: New testcase. * g++.dg/warn/Wstrict-aliasing-2.C: Likewise. * g++.dg/warn/Wstrict-aliasing-3.C: Likewise. * g++.dg/warn/Wstrict-aliasing-4.C: Likewise. * g++.dg/warn/Wstrict-aliasing-5.C: Likewise. * g++.dg/warn/Wstrict-aliasing-6.C: Likewise. 2005-11-23 Paolo Carlini <pcarlini@suse.de> PR libstdc++/24975 (basic_string) * include/bits/basic_string.h (_Rep::_S_empty_rep): Avoid strict-aliasing warnings. From-SVN: r108226
2005-12-05sso_string_base.h (__sso_string_base<>::_M_assign): Simplify, avoid ↵Paolo Carlini1-13/+13
pointless reallocations. 2005-12-05 Paolo Carlini <pcarlini@suse.de> * include/ext/sso_string_base.h (__sso_string_base<>::_M_assign): Simplify, avoid pointless reallocations. From-SVN: r108064
2005-12-05sso_string_base.h (__sso_string_base<>::_M_reserve): Simplify.Paolo Carlini1-2/+1
2005-12-04 Paolo Carlini <pcarlini@suse.de> * include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve): Simplify. From-SVN: r108037
2005-12-05vstring.h (__versa_string<>::operator+, [...]): Move out of line...Paolo Carlini4-301/+289
2005-12-04 Paolo Carlini <pcarlini@suse.de> * include/ext/vstring.h (__versa_string<>::operator+, all versions): Move out of line... * include/ext/vstring.tcc (__versa_string<>::operator+): ... here; consistently use reserve for the benefit of sso_string_base; prefer push_back to single-char append when appropriate. * include/ext/vstring.h (__versa_string<>::push_back): Don't call _M_reserve, _M_mutate instead. (reserve): Just forward to _M_reserve. * include/ext/vstring.tcc (__versa_string<>::_M_reserve): Remove. * include/ext/rc_string_base.h (__rc_string_base<>::_M_reserve): Also do the initial checks (first on length, in case __res == capacity). * include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve: Likewise; don't call _M_set_length unnecessarily. 2005-12-04 Paolo Carlini <pcarlini@suse.de> * include/ext/vstring.h (__versa_string<>::_M_append): New. (append(const __versa_string&), append(const __versa_string&, size_type, size_type), append(const _CharT*, size_type), append(const _CharT*)): Use it. (append(size_type, _CharT)): Delegate to _M_replace_aux. (assign(const __versa_string&, size_type, size_type), assign(const _CharT*), replace(size_type, size_type, const _CharT*, size_type)): Forward to _M_replace. * include/ext/vstring.tcc (__versa_string<>::_M_append): Define, core append functionality. (_M_replace): Simplify, move __s == 0 case to _M_replace_aux. (_M_replace_aux): Reorganize, don't call _M_replace. 2005-12-04 Paolo Carlini <pcarlini@suse.de> * include/ext/vstring.tcc (__versa_string<>::_M_replace): Perform _M_check_length at the beginning and remove it from ... (replace, _M_replace_dispatch, _M_replace_aux, assign): ... here. (assign): Now move inline. (resize): Don't call _M_check_length redundantly, append does. 2005-12-04 Paolo Carlini <pcarlini@suse.de> * include/ext/sso_string_base.h (__sso_string_base<>::_M_get_allocator): Add non const version. * include/ext/rc_string_base.h (__rc_string_base<>::_M_get_allocator): Likewise. * include/ext/sso_string_base.h (__sso_string_base<>::_M_erase): Add. * include/ext/rc_string_base.h (__rc_string_base<>::_M_erase): Likewise. (_M_leak_hard): Use it. * include/ext/vstring.h (__versa_string<>::clear, erase, all versions): Use it. * include/ext/vstring.tcc (__versa_string<>::resize): Likewise. * include/ext/vstring.h (__versa_string<>::_M_replace_safe): Remove. * include/ext/vstring.h (__versa_string<>::_M_replace): New, does the in-place work or delegates to _M_mutate in case of reallocation. * include/ext/vstring.tcc (__versa_string<>::_M_replace_safe): Remove. * include/ext/vstring.tcc (__versa_string<>::_M_replace): Define. (assign, replace, _M_replace_dispatch, _M_replace_aux): Use it. * include/ext/sso_string_base.h (__sso_string_base<>::_M_mutate): Change to manage only reallocations. * include/ext/rc_string_base.h (__rc_string_base<>::_M_mutate): Likewise. * include/ext/vstring.h (__versa_string<>::insert(size_type, const __versa_string&), insert(size_type, const __versa_string&, size_type, size_type), insert(size_type, const _CharT*, size_type), insert(size_type, const _CharT*)): Delegate to replace. * include/ext/vstring.h (__versa_string<>::reserve): Move out of line. * include/ext/vstring.tcc (__versa_string<>::reserve): Do the checks and call _M_reserve. * include/ext/vstring.h (__versa_string<>::append): Call _M_reserve instead of reserve. * include/ext/vstring.tcc (__versa_string<>::append, all versions): Likewise. * include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve): Adjust. * include/ext/rc_string_base.h (__rc_string_base<>::_M_reserve): Likewise. From-SVN: r108035
2005-11-22re PR libstdc++/24975 (Aliasing problems inside libstdc++)Paolo Carlini3-35/+191
2005-11-22 Paolo Carlini <pcarlini@suse.de> PR libstdc++/24975 * include/bits/stl_set.h (insert(iterator, const value_type&), erase(iterator), erase(iterator, iterator)): Don't break aliasing rules casting to _Rep_iterator&, forward to _Rb_tree facilities. * include/bits/stl_multiset.h (insert(iterator, const value_type&), erase(iterator), erase(iterator, iterator)): Likewise. * include/bits/stl_tree.h (_Rb_tree<>::_M_insert(_Const_Base_ptr, _Const_Base_ptr, const value_type&), insert_unique(const_iterator, const value_type&), insert_equal(const_iterator, const value_type&), erase(const_iterator), erase(const_iterator, const_iterator)): New, _Rb_tree<>::const_iterator counterparts of existing facilities. From-SVN: r107363
2005-11-21sso_string_base.h: Minor formatting and stylistic fixes.Paolo Carlini3-38/+33
2005-11-21 Paolo Carlini <pcarlini@suse.de> * include/ext/sso_string_base.h: Minor formatting and stylistic fixes. (__sso_string_base<>::_M_get_allocator): Return by const ref. * include/ext/rc_string_base.h: Likewise. (__rc_string_base<>::_M_get_allocator): Return by const ref. (__rc_string_base<>::_M_dispose): Take void, use _M_get_allocator. (__rc_string_base<>::_M_grab): Take one alloc, use _M_get_allocator. (__rc_string_base<>::~__rc_string_base, __rc_string_base(const __rc_string_base&), _M_assign, _M_reserve, _M_mutate): Adjust. * include/ext/vstring_util.h: Minor stylistic fixes. From-SVN: r107318
2005-11-18rc_string_base.h (__rc_string_base<>::_Rep): Avoid the anonymous struct ↵Paolo Carlini6-154/+178
extension, adjust everywhere. 2005-11-18 Paolo Carlini <pcarlini@suse.de> * include/ext/rc_string_base.h (__rc_string_base<>::_Rep): Avoid the anonymous struct extension, adjust everywhere. * include/ext/rc_string_base.h (__rc_string_base<>::_S_empty_rep()): Just use a static member. (__rc_string_base<>::__rc_string_base(), _S_construct): Adjust. * include/ext/rc_string_base.h (__rc_string_base<>::_Rep): Use anonymous union together with _CharT to fix alignment issues, rebind to _Rep and rename _Raw_alloc to _Rep_alloc_type. (__rc_string_base<>::_Rep::_S_create, _M_destroy): Adjust consistently. * include/ext/vstring_util.h (__is_null_p): Move inside struct __vstring_utility as static _S_is_null_pointer. * include/ext/sso_string.h (__sso_string_base<>::_M_construct(std::forward_iterator_tag): Adjust. * include/ext/rc_string_base.h (__rc_string_base<>::_S_construct(std::forward_iterator_tag): Likewise. Implement Option 3 of DR 431 for ext/vstring - both available bases. * include/bits/cpp_type_traits.h (struct __is_empty): Add. * include/ext/vstring.h (__versa_string<>::swap): Delegate to this->_M_swap. * include/ext/vstring.tcc (__versa_string<>::swap): Remove. * include/ext/vstring_util.h (struct __vstring_utility<>): Add struct _Alloc_hider<>, augmented of allocator swapping facility, specialized to nop for empty allocators. * include/ext/rc_string_base.h (__rc_string_base<>::_M_swap): Use it. (__rc_string_base<>::_M_is_leaked, _M_set_sharable): Change to private. * include/ext/sso_string_base.h (__sso_string_base<>::_M_swap): Likewise. (__sso_string_base<>::_M_is_leaked, _M_set_sharable): Remove, unused. * include/ext/rc_string_base.h (__rc_string_base<>::_M_data(_CharT*): Return void. * include/ext/sso_string_base.h (__sso_string_base<>::_M_data(_CharT*): Likewise. From-SVN: r107176
2005-11-13[multiple changes]Paolo Carlini1-2/+12
2005-11-13 Jonathan Wakely <redi@gcc.gnu.org> * include/tr1/boost_shared_ptr.h (get_deleter): Declare before shared_ptr. (shared_ptr<>): Declare get_deleter as friend. (shared_ptr<>:_M_get_deleter): Private. 2005-11-13 Douglas Gregor <doug.gregor@gmail.com> PR libstdc++/24818 * include/tr1/ref_wrap_iterate.h (reference_wrapper::operator()()): Don't dereferene the result of get() before calling it; it's already a reference. * testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc: Test nullary calls to reference_wrappers. From-SVN: r106863
2005-11-13[multiple changes]Paolo Carlini1-1/+1
2005-11-13 Jonathan Wakely <redi@gcc.gnu.org> * include/tr1/boost_shared_ptr.h (get_deleter): Declare before shared_ptr. (shared_ptr<>): Declare get_deleter as friend. (shared_ptr<>:_M_get_deleter): Private. 2005-11-13 Douglas Gregor <doug.gregor@gmail.com> PR libstdc++/24818 * include/tr1/ref_wrap_iterate.h (reference_wrapper::operator()()): Don't dereferene the result of get() before calling it; it's already a reference. * testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc: Test nullary calls to reference_wrappers. From-SVN: r106862
2005-11-12re PR libstdc++/24808 (is_object fails to compile with incomplete types)Paolo Carlini1-41/+28
2005-11-11 Paolo Carlini <pcarlini@suse.de> PR libstdc++/24808 * include/tr1/type_traits (__is_abstract_helper): Rename to __in_array (with complemented logic). (is_function): Use it, don't use __conv_helper. (is_abstract): Adjust. (__conv_helper): Rename to __is_convertible_simple. (is_convertible): Adjust. * testsuite/testsuite_tr1.h (class IncompleteClass): Add. * testsuite/tr1/4_metaprogramming/composite_type_traits/is_object/ 24808.cc: New. * testsuite/tr1/4_metaprogramming/primary_type_categories/is_enum/ 24808.cc: Likewise. * testsuite/tr1/4_metaprogramming/primary_type_categories/is_function/ 24808.cc: Likewise. From-SVN: r106818
2005-11-11re PR libstdc++/24799 (std::tr1::hash missing inheritance)Paolo Carlini3-26/+21
2005-11-11 Paolo Carlini <pcarlini@suse.de> PR libstdc++/24799 * include/tr1/functional (hash): Inherit from std::unary_function. * testsuite/tr1/6_containers/unordered/hash/24799.cc: New. PR libstdc++/24805 * include/tr1/boost_shared_ptr.h (swap(shared_ptr<>&, shared_ptr<>&), swap(weak_ptr<>&, weak_ptr<>&)): Move inside namespace tr1. * testsuite/tr1/2_general_utilities/memory/shared_ptr/modifiers/ 24805.cc: New. PR libstdc++/24809 * include/tr1/type_traits (__is_polymorhpic_helper): Adjust destructor. * testsuite/tr1/4_metaprogramming/type_properties/is_polymorphic/ 24809.cc: New. From-SVN: r106796
2005-11-10boost_shared_ptr.h (_Sp_counted_base::release, [...]): Protect barriers with ↵Paolo Carlini1-4/+5
__GTHREADS. 2005-11-10 Paolo Carlini <pcarlini@suse.de> * include/tr1/boost_shared_ptr.h (_Sp_counted_base::release, weak_release): Protect barriers with __GTHREADS. From-SVN: r106733
2005-11-10boost_shared_ptr.h (_Sp_counted_base::release): Optimize by manually ↵Paolo Carlini1-8/+11
inlining weak_release. 2005-11-10 Paolo Carlini <pcarlini@suse.de> Peter Dimov <pdimov@mmltd.net> * include/tr1/boost_shared_ptr.h (_Sp_counted_base::release): Optimize by manually inlining weak_release. * include/tr1/boost_shared_ptr.h (_Sp_counted_base::release, weak_release): Use explicit memory barriers. Co-Authored-By: Peter Dimov <pdimov@mmltd.net> From-SVN: r106729
2005-11-09boost_shared_ptr.h: Trivial formatting fixes.Paolo Carlini1-189/+183
2005-11-09 Paolo Carlini <pcarlini@suse.de> * include/tr1/boost_shared_ptr.h: Trivial formatting fixes. From-SVN: r106689
2005-11-08libstdc++.exp (check_v3_target_debug_mode): Use exe as the executable extension.Benjamin Kosnik1-10/+10
2005-11-08 Benjamin Kosnik <bkoz@redhat.com> * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode): Use exe as the executable extension. * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Change gnu defaults to new. (GLIBCXX_ENABLE_PCH): Adjust message order. * configure: Regenerate. * scripts/testsuite_flags.in (query): Correct print_usagex typo. * include/bits/functexcept.h: Remove argument names. * src/mt_allocator.cc: Adjust comment. From-SVN: r106665
2005-11-06re PR libstdc++/18174 (documentation example for std::priority_queue usage)Paolo Carlini1-6/+4
2005-11-06 Paolo Carlini <pcarlini@suse.de> PR libstdc++/18174 * include/bits/stl_queue.h (priority_queue): Tweak a bit the comment describing the container. From-SVN: r106560