aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/bits/basic_string.h
AgeCommit message (Collapse)AuthorFilesLines
2006-10-06re PR libstdc++/29368 (wrong STL docs for rfind())Paolo Carlini1-3/+3
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
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-08-17All files: Update FSF address.Kelley Cook1-1/+1
2005-08-17 Kelley Cook <kcook@gcc.gnu.org> * All files: Update FSF address. From-SVN: r103192
2005-07-25re PR libstdc++/22515 (operator>>(istream, string/CharT*) can be faster)Paolo Carlini1-0/+4
2005-07-24 Paolo Carlini <pcarlini@suse.de> PR libstdc++/22515 * include/bits/basic_string.h: Declare the specialization operator>>(basic_istream<char>&, basic_string<char>&). * include/std/std_istream.h: Declate the specialization operator>>(basic_istream<char>&, char*). * include/std/std_streambuf.h (basic_streambuf): Add friend declarations for the above. * src/istream.cc: Define the above. * testsuite/27_io/basic_istream/extractors_character/char/4.cc: New. * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc: Likewise. * testsuite/performance/27_io/ifstream_extract_chars.cc: Likewise. From-SVN: r102353
2005-06-29basic_string.h, [...]: Fix Doxygen comments that use wrong parameter and ↵Jonathan Wakely1-13/+13
function names. * include/bits/basic_string.h, include/bits/locale_facets.h: Fix Doxygen comments that use wrong parameter and function names. From-SVN: r101419
2005-06-03re PR libstdc++/21770 (rebinding allocator::value type vs. ↵Paolo Carlini1-6/+8
container::value_type) 2005-06-03 Paolo Carlini <pcarlini@suse.de> PR libstdc++/21770 * include/bits/stl_deque.h: Add concept-check. In class _Deque_base rebind _Alloc to _Tp_alloc_type, change _Deque_impl to inherit from the latter and add _M_get_Tp_allocator() which returns it. Use everywhere _M_get_Tp_allocator() instead of get_allocator(). * include/bits/deque.tcc: Likewise, use _M_get_Tp_allocator(). * include/bits/stl_list.h: Add concept-check. In class _List_base rebind _Alloc to _Tp_alloc_type and add _M_get_Tp_allocator(), which returns the allocator (of type _Node_alloc_type) converted to _Tp_alloc_type. Use everywhere _M_get_Tp_allocator() instead of get_allocator(). * include/bits/list.tcc: Likewise, use _M_get_Tp_allocator(). * include/bits/stl_vector.h: Add concept-check. In class _Vector_base rebind _Alloc to _Tp_alloc_type, change _Vector_impl to inherit from the latter and add _M_get_Tp_allocator() which returns it. Use everywhere _M_get_Tp_allocator() instead of get_allocator(). * include/bits/vector.tcc: Likewise, use _M_get_Tp_allocator(). * include/bits/stl_map.h: Add concept-check. Rebind _Alloc to _Pair_alloc_type and use it for _Rb_tree. * include/bits/stl_multimap.h: Likewise. * include/bits/stl_multiset.h: Add concept-check. Rebind _Alloc to _Key_alloc_type and use it for _Rb_tree. * include/bits/stl_set.h: Likewise. * include/bits/basic_string.h: Rebind _Alloc to _CharT_alloc_type and use it for the allocator typedefs. * testsuite/21_strings/basic_string/1.cc: New. * testsuite/23_containers/deque/explicit_instantiation.cc: Move to... * testsuite/23_containers/deque/explicit_instantiation/1.cc: ... here. * testsuite/23_containers/deque/explicit_instantiation/3.cc: New. * testsuite/23_containers/list/explicit_instantiation.cc: Move to... * testsuite/23_containers/list/explicit_instantiation/1.cc: ... here. * testsuite/23_containers/list/explicit_instantiation/3.cc: New. * testsuite/23_containers/map/explicit_instantiation.cc: Move to... * testsuite/23_containers/map/explicit_instantiation/1.cc: ... here. * testsuite/23_containers/map/explicit_instantiation/3.cc: New. * testsuite/23_containers/multimap/explicit_instantiation.cc: Move to... * testsuite/23_containers/multimap/explicit_instantiation/1.cc: .. here. * testsuite/23_containers/multimap/explicit_instantiation/3.cc: New. * testsuite/23_containers/multiset/explicit_instantiation.cc: Move to... * testsuite/23_containers/multiset/explicit_instantiation/1.cc: .. here. * testsuite/23_containers/multiset/explicit_instantiation/3.cc: New. * testsuite/23_containers/set/explicit_instantiation.cc: Move to... * testsuite/23_containers/set/explicit_instantiation/1.cc: .. here. * testsuite/23_containers/set/explicit_instantiation/3.cc: New. * testsuite/23_containers/vector/explicit_instantiation.cc: Move to... * testsuite/23_containers/vector/explicit_instantiation/1.cc: ... here. * testsuite/23_containers/vector/explicit_instantiation/3.cc: New. From-SVN: r100546
2005-05-28revert: re PR libstdc++/19495 (basic_string::_M_rep() can produce an ↵Paolo Carlini1-1/+1
unnaturally aligned pointer to _Rep) 2005-05-28 Paolo Carlini <pcarlini@suse.de> Revert: 2005-05-18 Paolo Carlini <pcarlini@suse.de> Nathan Myers <ncm@cantrip.org> PR libstdc++/19495 * include/bits/basic_string.h (_Raw_bytes_alloc): Rebind to size_type instead of char and rename to _Raw_alloc. * include/bits/basic_string.tcc (_Rep::_M_destroy, _Rep::_S_create): Use the above. * src/bitmap_allocator.cc: Add instantiation for size_type. * src/mt_allocator.cc: Likewise. * src/pool_allocator.cc: Likewise. * include/ext/array_allocator.h: Tweak slightly, avoid assuming the existence of an _Array::begin() and size() members. * testsuite/ext/array_allocator/2.cc: Tweak to use an allocator of size_type, instead of char, thus avoiding problems with rebinds, not treated correctly by array_allocator. From-SVN: r100304
2005-05-25basic_string.h (_Rep::_M_set_length_and_sharable): Use, consistently, ↵Paolo Carlini1-1/+2
traits_type::assign. 2005-05-25 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h (_Rep::_M_set_length_and_sharable): Use, consistently, traits_type::assign. From-SVN: r100142
2005-05-19basic_string.h (operator[]): Allow s[s.size()] in debug mode, but not ↵Jonathan Wakely1-1/+4
pedantic mode. * include/bits/basic_string.h (operator[]): Allow s[s.size()] in debug mode, but not pedantic mode. From-SVN: r99967
2005-05-18re PR libstdc++/19495 (basic_string::_M_rep() can produce an unnaturally ↵Paolo Carlini1-1/+1
aligned pointer to _Rep) 2005-05-18 Paolo Carlini <pcarlini@suse.de> Nathan Myers <ncm@cantrip.org> PR libstdc++/19495 * include/bits/basic_string.h (_Raw_bytes_alloc): Rebind to size_type instead of char and rename to _Raw_alloc. * include/bits/basic_string.tcc (_Rep::_M_destroy, _Rep::_S_create): Use the above. * src/bitmap_allocator.cc: Add instantiation for size_type. * src/mt_allocator.cc: Likewise. * src/pool_allocator.cc: Likewise. * include/ext/array_allocator.h: Tweak slightly, avoid assuming the existence of an _Array::begin() and size() members. * testsuite/ext/array_allocator/2.cc: Tweak to use an allocator of size_type, instead of char, thus avoiding problems with rebinds, not treated correctly by array_allocator. Co-Authored-By: Nathan Myers <ncm@cantrip.org> From-SVN: r99933
2005-04-25re PR libstdc++/21035 (Documentation for std::basic_string::compare() incorrect)Paolo Carlini1-22/+36
2005-04-25 Paolo Carlini <pcarlini@suse.de> PR libstdc++/21035 * include/bits/basic_string.h (compare): Adjust the documentation to match the implementation and the standard. From-SVN: r98708
2005-01-31cpp_type_traits.h: Add types to the structs thus making type_traits.h ↵Paolo Carlini1-3/+3
redundant... 2005-01-31 Paolo Carlini <pcarlini@suse.de> Gabriel Dos Reis <gdr@integrable-solutions.net> * include/bits/cpp_type_traits.h: Add types to the structs thus making type_traits.h redundant; exploit new __truth_type and __traitor helpers. * include/bits/type_traits.h: Remove. * include/Makefile.am: Update. * include/Makefile.in: Regenerate. * include/backward/tempbuf.h: Include cpp_type_traits.h instead. * include/bits/basic_string.h (replace(iterator, iterator, _InputIterator, _InputIterator), _S_construct(_InIterator, _InIterator, const _Alloc&)): Use __is_integer instead. * include/bits/stl_bvector.h (vector(_InputIterator, _InputIterator, const allocator_type&), assign(_InputIterator, _InputIterator), insert(iterator, _InputIterator, _InputIterator)): Likewise. * include/bits/stl_construct.h (_Destroy(_ForwardIterator, _ForwardIterator)): Use __is_scalar. * include/bits/stl_deque.h (deque(_InputIterator, _InputIterator, const allocator_type&), assign(_InputIterator, _InputIterator), insert(iterator, _InputIterator, _InputIterator)): Use __is_integer. * include/bits/stl_list.h (assign(_InputIterator, _InputIterator), insert(iterator, _InputIterator, _InputIterator)): Likewise. * include/bits/stl_tempbuf.h (_Temporary_buffer(_ForwardIterator, _ForwardIterator)): Use __is_scalar. * include/bits/stl_uninitialized.h (uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator), uninitialized_fill(_ForwardIterator, _ForwardIterator, const _Tp&), uninitialized_fill_n(_ForwardIterator, _Size, const _Tp&)): Likewise. * include/bits/stl_vector.h (vector(_InputIterator, _InputIterator, const allocator_type&), assign(_InputIterator, _InputIterator), insert(iterator, _InputIterator, _InputIterator)): Use __is_integer. * include/debug/debug.h (__valid_range(const _InputIterator&, const _InputIterator&)): Use __is_integer. * include/ext/slist (assign(_InputIterator, _InputIterator)): Likewise. * include/std/std_string.h: Include cpp_type_traits.h instead. Co-Authored-By: Gabriel Dos Reis <gdr@integrable-solutions.net> From-SVN: r94484
2004-11-21basic_string.h, [...]: Doxygen fixes.Jonathan Wakely1-2/+1
2004-11-19 Jonathan Wakely <redi@gcc.gnu.org> * include/bits/basic_string.h, include/bits/locale_classes.h, include/bits/valarray_after.h, include/bits/valarray_before.h, include/ext/stdio_sync_filebuf.h, include/std/std_algorithm.h, include/std/std_functional.h, include/std/std_memory.h, include/std/std_numeric.h: Doxygen fixes. From-SVN: r90979
2004-11-17istream.tcc (getline(basic_istream<>&, basic_string<>&, _CharT)): Remove ↵Paolo Carlini1-3/+15
temporary kludge for libstdc++/15002. 2004-11-17 Paolo Carlini <pcarlini@suse.de> * include/bits/istream.tcc (getline(basic_istream<>&, basic_string<>&, _CharT)): Remove temporary kludge for libstdc++/15002. * include/std/std_streambuf.h (class basic_streambuf): Declare getline(basic_istream<>&, basic_string<>&, _CharT) as friend. * include/bits/basic_string.h (getline(basic_istream<>&, basic_string<>&, _CharT)): Declare optimized specializations for char and wchar_t, using protected members of basic_streambuf. * src/istream.cc: Define the latter. From-SVN: r90801
2004-10-28basic_string.h (assign(const basic_string&)): Move out of line...Paolo Carlini1-12/+1
2004-10-27 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h (assign(const basic_string&)): Move out of line... * include/bits/basic_string.tcc: ... here. From-SVN: r89726
2004-10-27basic_string.h (_M_replace_aux, [...]): Move out of line...Paolo Carlini1-15/+2
2004-10-27 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe): Move out of line... * include/bits/basic_string.tcc: ... here. From-SVN: r89637
2004-10-27basic_string.h (append(const basic_string&), [...]): Move out of line...Paolo Carlini1-26/+2
2004-10-26 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h (append(const basic_string&), append(size_type, _CharT)): Move out of line... * include/bits/basic_string.tcc: ... here. From-SVN: r89622
2004-10-26basic_string.h (erase(size_type, size_type), [...]): Call _M_mutate instead ↵Paolo Carlini1-4/+7
of _M_replace_safe... 2004-10-26 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h (erase(size_type, size_type), erase(iterator), erase(iterator, iterator)): Call _M_mutate instead of _M_replace_safe, equivalent when the fourth argument is zero and simpler. From-SVN: r89608
2004-10-25basic_string.h (_Rep::_M_is_safe): Move to basic_string as _M_disjunct, ↵Paolo Carlini1-8/+8
adjust to take only __s. 2004-10-25 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h (_Rep::_M_is_safe): Move to basic_string as _M_disjunct, adjust to take only __s. * include/bits/basic_string.tcc: Adjust consistently callers. From-SVN: r89534
2004-10-25basic_string.h (_Rep::_M_is_safe, [...]): New, use througout.Paolo Carlini1-18/+101
2004-10-25 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h (_Rep::_M_is_safe, _M_check_length, _M_move, _M_copy, _M_assign): New, use througout. (operator+=(_CharT)): Define in terms of push_back. (append(const basic_string&)): Define here, inline, and simplify, don't use the full _M_replace_safe. (append(size_type, _CharT)): Likewise, don't use _M_replace_aux. (push_back): Likewise. (assign(const basic_string&)): Define here, inline. * include/bits/basic_string.tcc (append(const _CharT* s, size_type): Fix: when s points inside the _Rep, upon reallocation (reserve) we were copying from deallocated memory. (append(const basic_string&, size_type, size_type)): Simplify, don't use _M_replace_safe. (replace(size_type, size_type, const _CharT*, size_type)): Slightly tweak. (reserve): Likewise. * testsuite/21_strings/basic_string/append/char/2.cc: New. * testsuite/21_strings/basic_string/append/char/3.cc: Likewise. * testsuite/21_strings/basic_string/append/wchar_t/2.cc: Likewise. * testsuite/21_strings/basic_string/append/wchar_t/3.cc: Likewise. * testsuite/21_strings/basic_string/assign/char/3.cc: Remove junk. * testsuite/21_strings/basic_string/assign/wchar_t/3.cc: Likewise. From-SVN: r89526
2004-10-21basic_string.h (_M_set_length_and_sharable): New.Paolo Carlini1-0/+9
2004-10-21 Paolo Carlini <pcarlini@suse.de> Benjamin Kosnik <bkoz@redhat.com> * include/bits/basic_string.h (_M_set_length_and_sharable): New. * include/bits/basic_string.tcc (_S_construct, assign(const _CharT*, size_type), _M_mutate, _M_clone): Use it. (_Rep::_S_create): Don't set/call _M_length/_M_set_sharable here. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r89415
2004-10-18basic_string.tcc (_M_mutate): Do not reallocate unnecessarily when _M_rep() ↵Paolo Carlini1-15/+30
== &_S_empty_rep() and __new_size... 2004-10-18 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (_M_mutate): Do not reallocate unnecessarily when _M_rep() == &_S_empty_rep() and __new_size == capacity() (== 0): is ok to just leave everything unchanged. * include/bits/basic_string.h: Minor formatting fixes. * include/bits/basic_string.tcc: Likewise. From-SVN: r89199
2004-09-28[multiple changes]Paolo Carlini1-1/+8
2004-09-28 Paolo Carlini <pcarlini@suse.de> PR libstdc++/16612 * include/bits/basic_string.h (_M_dispose, _M_refcopy, basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined, don't deal with _S_empty_rep. * include/bits/basic_string.tcc (_S_construct, _M_destroy, _M_leak_hard, _M_mutate): Likewise. * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New. * acconfig.h: Add corresponding undef. * configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING. * docs/html/configopts.html: Document --enable-fully-dynamic-string. * configure: Regenerate. * config.h.in: Likewise. 2004-09-28 Benjamin Kosnik <bkoz@redhat.com> Paolo Carlini <pcarlini@suse.de> * testsuite/21_strings/basic_string/operations/char/1.cc: New. * testsuite/21_strings/basic_string/operations/wchar_t/1.cc: New. * testsuite/21_strings/basic_string/element_access/char/empty.cc: New. * testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc: New. 2004-09-28 Paolo Carlini <pcarlini@suse.de> * README: Remove obsolete entry about include/c_shadow. From-SVN: r88225
2004-07-08re PR c++/16169 (-Weffc++ item 15 improvements)Benjamin Kosnik1-8/+2
2004-07-08 Benjamin Kosnik <bkoz@redhat.com> PR c++/16169 * include/bits/basic_string.h (basic_string::operator=): Revert. From-SVN: r84296
2004-07-04basic_string.h: Trivial formatting fixes and/or const-ification of some ↵Paolo Carlini1-35/+35
variables. 2004-07-04 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h: Trivial formatting fixes and/or const-ification of some variables. * include/bits/deque.tcc: Likewise. * include/bits/stl_algobase.h: Likewise. * include/bits/stl_bvector.h: Likewise. * include/bits/stl_construct.h: Likewise. * include/bits/stl_deque.h: Likewise. * include/bits/stl_pair.h: Likewise. * include/bits/stl_vector.h: Likewise. * include/bits/vector.tcc: Likewise. From-SVN: r84090
2004-05-22re PR libstdc++/12854 (libstdc++ vs. -Weffc++)Benjamin Kosnik1-3/+15
2004-05-22 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/12854 Fixups for -Weffc++. * include/bits/basic_string.h (basic_string::operator=): Return pointer to this instead of result of assign. Although redundant, this doesn't impact resultant codegen. * include/bits/locale_facets.h (__numpunct_cache): Declare assignment opxserator and copy constructor private. (__timepunct_cache): Same. (__moneypunct_cache): Same. (collate): Use member initialization list for _M_c_locale_collate. * config/locale/gnu/messages_members.h: Same. * config/locale/gnu/time_members.h (__timepunct): Same. * src/codecvt.cc: Use member initialization list to initialize _M_c_locale_codecvt. * src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok. * config/os/gnu-linux/ctype_noninline.h: Same. * src/locale.cc (_Impl): Same. * src/locale_init.cc: Same. * src/localename.cc: Same. * include/bits/basic_ios.h (basic_ios): Complete member initialization list. * include/bits/istream.tcc (basic_istream::sentry): Same. * include/bits/ostream.tcc (basic_ostream::sentry): Same. * include/bits/fstream.tcc (basic_filebuf): Add _M_lock and _M_pback to member initialization list. * include/std/std_streambuf.h: Same. * include/std/std_sstream.h: Same, for _M_mode. * src/ios.cc (ios_base): Same. * include/ext/rope: Make derived classes match exception specifications. Add copy constructors and assignment operators. * include/debug/safe_base.h (_Safe_sequence_base): Declare copy constructor and assignment operator protected. (_Safe_iterator_base): Same. * include/debug/formatter.h (_Error_formatter): Define copy constructor and assignment operator. * include/backward/strstream: Declare assignment operator and copy constructor private. From-SVN: r82153
2004-04-19PR libstdc++/15002 (partial)Paolo Carlini1-3/+7
2004-04-19 Paolo Carlini <pcarlini@suse.de> 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. From-SVN: r80847
2004-02-27atomicity.h: New, forward declarations for __atomic_add and __exchange_and_add.Benjamin Kosnik1-2/+2
2004-02-25 Benjamin Kosnik <bkoz@redhat.com> * 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 keyworks. * 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. From-SVN: r78544
2004-02-08Remove trailing whitespace (see ChangeLog for longwinded description).Bernardo Innocenti1-92/+92
From-SVN: r77479
2004-02-06basic_string.h: Fix comment.Paolo Carlini1-1/+1
2004-02-06 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h: Fix comment. From-SVN: r77428
2004-02-03basic_string.h (insert(iterator)): Remove, non-standard and already ↵Paolo Carlini1-18/+0
scheduled for removal. 2004-02-03 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h (insert(iterator)): Remove, non-standard and already scheduled for removal. From-SVN: r77198
2004-01-31basic_string.h (_Rep::operator[]): Remove, unused.Paolo Carlini1-7/+3
2004-01-31 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.h (_Rep::operator[]): Remove, unused. * include/bits/basic_string.h: Fix two comments. From-SVN: r77044
2004-01-28basic_string.h (_S_create(size_t, const _Alloc&): Change signature to take ↵Paolo Carlini1-2/+2
two size_type arguments. 2004-01-28 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76786
2004-01-26basic_string.h (_M_replace_aux): Use the __N marker in throw message.Paolo Carlini1-15/+14
2004-01-26 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76664
2004-01-26basic_string.h (replace(iterator, iterator, const basic_string&)): Remove ↵Paolo Carlini1-10/+7
_GLIBCXX_DEBUG_PEDASSERT. 2004-01-26 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76630
2004-01-25basic_string.h (_M_replace_aux, [...]): Define inline here.Paolo Carlini1-2/+17
2004-01-25 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76592
2004-01-25basic_string.h (erase(size_type, size_type), [...]): Call _M_replace_safe ↵Paolo Carlini1-14/+6
instead, thus avoiding redundant check for length_error. 2004-01-25 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76550
2004-01-24basic_string.h (insert(size_type, const basic_string&, size_type, ↵Paolo Carlini1-1/+4
size_type)): Define inline here. 2004-01-24 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76509
2004-01-24basic_string.h (assign(const basic_string&, size_type, size_type)): Define ↵Paolo Carlini1-9/+9
inline here. 2004-01-24 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76508
2004-01-23basic_string.h (push_back(_CharT)): Call _M_replace_aux.Paolo Carlini1-22/+15
2004-01-23 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76420
2004-01-22basic_string.h (_M_replace_safe): Change signatures to take size_types and ↵Paolo Carlini1-9/+8
const _CharT*. 2004-01-22 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76353
2004-01-21basic_string.h (_M_check): Change to return a checked __pos and take an ↵Paolo Carlini1-20/+19
additional const char* argument. 2004-01-21 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76274
2004-01-18basic_string.h (c_str()): Simplify, due to 21.3.4 the internal ↵Paolo Carlini1-9/+3
representation is always kept null-terminated. 2004-01-18 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76092
2004-01-18basic_string.h (append(size_type, _CharT)): Moved inline...Paolo Carlini1-9/+6
2004-01-18 Paolo Carlini <pcarlini@suse.de> * 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. From-SVN: r76091
2004-01-13re PR libstdc++/13650 (string::compare should not (always) use ↵Paolo Carlini1-12/+17
traits_type::length()) 2004-01-13 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.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. From-SVN: r75798
2003-12-15basic_string.h: Change _*_references to _*_refcount.Benjamin Kosnik1-8/+8
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. From-SVN: r74645
2003-11-11[multiple changes]Benjamin Kosnik1-28/+105
2003-11-11 Doug Gregor <gregod@cs.rpi.edu> * docs/html/debug.html: Document libstdc++ debug mode. * docs/html/debug_mode.html: Document libstdc++ debug mode design. * docs/html/test.html: Document how to test under debug mode. * docs/html/17_intro/howto.html: Document debug-mode macros. * include/Makefile.am: Install debug-mode headers. * src/Makefile.am: Include debug.cc. * include/bits/basic_string.tcc: (basic_string::_S_construct): Fix NULL pointer check. (__is_null_pointer): New. Add precondition annotations. * include/bits/stream_iterator.h (istream_iterator, ostream_iterator): Added precondition annotations. * include/bits/streambuf_iterator.h (istreambuf_iterator): Ditto. * include/bits/stl_queue.h (queue, priority_queue): Ditto. * include/bits/stl_stack.h (stack): Ditto. * include/bits/basic_string.h (basic_string): Ditto. * include/bits/basic_string.tcc (basic_string): Ditto. * include/std/std_memory.h (auto_ptr): Ditto. * include/std/std_valarray.h (valarray): Ditto. * include/bits/stl_algo.h: Added algorithm precondition annotations. * include/bits/stl_algobase.h: Added algorithm precondition annotations. * include/bits/stl_numeric.h: Ditto. * include/ext/algorithm: Added algorithm precondition annotations. (__is_heap): Moved away from here. * include/bits/stl_heap.h: Added algorithm precondition annotations. (__is_heap): Moved to the top of this file. (__is_heap): Added iterator range overloads. * testsuite/20_util/auto_ptr_neg.cc: Fix line numbers to match up with changes in std_memory.h. * testsuite/23_containers/list/operators/4.cc: Don't verify performance guarantees when in debug mode. * testsuite/23_containers/bitset/invalidation/1.cc: New. * testsuite/23_containers/deque/invalidation/1.cc: New. * testsuite/23_containers/deque/invalidation/2.cc: New. * testsuite/23_containers/deque/invalidation/3.cc: New. * testsuite/23_containers/deque/invalidation/4.cc: New. * testsuite/23_containers/list/invalidation/1.cc: New. * testsuite/23_containers/list/invalidation/2.cc: New. * testsuite/23_containers/list/invalidation/3.cc: New. * testsuite/23_containers/list/invalidation/4.cc: New. * testsuite/23_containers/map/invalidation/1.cc: New. * testsuite/23_containers/map/invalidation/2.cc: New. * testsuite/23_containers/multimap/invalidation/1.cc: New. * testsuite/23_containers/multimap/invalidation/2.cc: New. * testsuite/23_containers/multiset/invalidation/1.cc: New. * testsuite/23_containers/multiset/invalidation/2.cc: New. * testsuite/23_containers/set/invalidation/1.cc: New. * testsuite/23_containers/set/invalidation/2.cc: New. * testsuite/23_containers/vector/invalidation/1.cc: New. * testsuite/23_containers/vector/invalidation/2.cc: New. * testsuite/23_containers/vector/invalidation/3.cc: New. * testsuite/23_containers/vector/invalidation/4.cc: New. * testsuite/25_algorithms/heap.cc: Don't verify performance guarantees when in debug mode. * include/debug/bitset: New. * include/debug/debug.h: New. * include/debug/deque: New. * include/debug/formatter.h: New. * include/debug/hash_map: New. * include/debug/hash_map.h: New. * include/debug/hash_multimap.h: New. * include/debug/hash_set: New. * include/debug/hash_set.h: New. * include/debug/hash_multiset.h: New. * include/debug/list: New. * include/debug/map: New. * include/debug/map.h: New. * include/debug/multimap.h: New. * include/debug/multiset.h: New. * include/debug/safe_base.h: New. * include/debug/safe_iterator.h: New. * include/debug/safe_iterator.tcc: New. * include/debug/safe_sequence.h: New. * include/debug/set: New. * include/debug/set.h: New. * include/debug/string: New. * include/debug/vector: New. * src/debug.cc: New. * config/linker-map.gnu: Add debug mode symbols. 2003-11-11 Benjamin Kosnik <bkoz@redhat.com> * src/string-inst.cc: Tweak namespaces. * src/misc-inst.cc: Same. * docs/html/debug.html: Edits. * config/link-map.gnu: Remove cruft. * include/bits/c++config: Add in namespace associations. * include/std/std_bitset.h: Adjust namespace to __gnu_norm, comment tweaks. * include/bits/deque.tcc: Same. * include/bits/list.tcc: Same. * include/bits/stl_bvector.h: Same. * include/bits/stl_deque.h: Same. * include/bits/stl_list.h: Same. * include/bits/stl_map.h: Same. * include/bits/stl_multimap.h: Same. * include/bits/stl_multiset.h: Same. * include/bits/stl_set.h: Same. * include/bits/stl_vector.h: Same. * include/bits/vector.tcc: Same. * include/std/std_algorithm.h: Remove markup comments. * include/std/std_functional.h: Same. * include/std/std_iterator.h: Same. * include/std/std_numeric.h: Same. * include/std/std_utility.h: Same. * include/bits/stl_queue.h: Formatting tweaks. * include/bits/stl_stack.h: Same. * include/std/std_deque.h: Include debugging version in debug mode. * include/std/std_list.h: Same. * include/std/std_map.h: Same. * include/std/std_set.h: Same. * include/std/std_vector.h: Same. * include/std/std_queue.h: Use deque, vector. * include/std/std_stack.h: Same. From-SVN: r73459
2003-07-22basic_string.h (basic_string::insert): Deprecate GNU extension.Doug Gregor1-1/+20
* include/bits/basic_string.h (basic_string::insert): Deprecate GNU extension. From-SVN: r69677
2003-07-15basic_string.h: Document public functions.Jerry Quinn1-1/+1185
2003-07-15 Jerry Quinn <jlquinn@optonline.net> * include/bits/basic_string.h: Document public functions. * docs/doxygen/TODO: Update c21 todo. From-SVN: r69386
2003-07-05Move from CPP to CXX.Benjamin Kosnik1-4/+4
2003-07-04 Benjamin Kosnik <bkoz@redhat.com> Move from CPP to CXX. * include/bits/c++config: Move to GLIBCXX from GLIBCPP. * testsuite/Makefile.am: Same. * testsuite/Makefile.in: Regenerate. * po/Makefile.am: Same. * po/Makefile.in: Regenerate. * libsupc++/Makefile.am: Same. * libsupc++/Makefile.in: Regenerate. * libmath/Makefile.am: Same. * libmath/Makefile.in: Regenerate. * include/Makefile.am: Same. * include/Makefile.in: Regenerate. * src/Makefile.am: Same. * src/Makefile.in: Regenerate. * acconfig.h: Same. * configure.host: Same. * configure.in: Same. * configure: Regenerate. * acinclude.m4: Same. * aclocal.m4: Same. * src: Change all files in this directory. * testsuite: Same. * include: Same, standardize include guards. * config: Same. * libsupc++: Same. From-SVN: r68958