Richard Sandiford
405feeb871
Update copyright in libstdc++-v3.
...
From-SVN: r195701
2013-02-03 17:54:05 +00:00
Jason Merrill
a2e70335e2
re PR c++/50500 ([C++0x] [DR 1082] move constructor should cause copy constructor to be deleted, but still declared)
...
PR c++/50500
DR 1082
* class.c (type_has_user_declared_move_constructor): New.
(type_has_user_declared_move_assign): New.
(add_implicitly_declared_members): Add lazy copy ops
even if there's a move.
* method.c (lazily_declare_fn): Delete implicit copies
if there's a move.
(maybe_explain_implicit_delete): Explain this. Use inform rather
than error.
* cp-tree.h: Declare new fns.
From-SVN: r180159
2011-10-18 13:39:15 -04:00
Paolo Carlini
848ca96f30
re PR libstdc++/49559 ([C++0x] stable_sort calls self-move-assignment operator)
...
2011-07-11 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/49559
* include/bits/stl_algo.h (__move_merge_backward): Remove.
(__move_merge_adaptive, __move_merge_adaptive_backward): New.
(__merge_adaptive): Use the latter two.
(__rotate_adaptive): Avoid self move-assignment.
* include/bits/stl_algobase.h (move_backward): Fix comment.
* testsuite/25_algorithms/stable_sort/49559.cc: New.
* testsuite/25_algorithms/inplace_merge/49559.cc: Likewise.
* testsuite/25_algorithms/inplace_merge/moveable.cc: Extend.
* testsuite/25_algorithms/inplace_merge/moveable2.cc: Likewise.
* testsuite/util/testsuite_rvalref.h (rvalstruct::operator=
(rvalstruct&&)): Check for self move-assignment.
From-SVN: r176174
2011-07-11 18:38:54 +00:00
Paolo Carlini
74a2a1b4f6
move.h (struct __move_if_noexcept_cond): Add.
...
2011-06-07 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (struct __move_if_noexcept_cond): Add.
(move_if_noexcept): Use the latter.
* include/bits/stl_iterator.h (__make_move_if_noexcept_iterator,
_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR): Add.
* include/bits/stl_uninitialized.h
(__uninitialized_move_if_noexcept_a): Add.
* include/bits/vector.tcc (vector<>::reserve): Use
_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR.
(vector<>::_M_insert_aux, _M_fill_insert, _M_default_append,
_M_range_insert): Use __uninitialized_move_if_noexcept_a.
* testsuite/23_containers/vector/modifiers/moveable2.cc: New.
* testsuite/23_containers/vector/capacity/resize/moveable2.cc:
Likewise.
* testsuite/23_containers/vector/capacity/reserve/moveable2.cc:
Likewise.
From-SVN: r174756
2011-06-07 16:11:36 +00:00
Paolo Carlini
60c5236ed1
[multiple changes]
...
2011-03-09 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/util/testsuite_rvalref.h: Minor tweaks.
2011-03-09 Jonathan Wakely <redi@gcc.gnu.org>
Chris Jefferson <chris@bubblescope.net>
Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/util/testsuite_rvalref.h (rvalstruct_compare_by_value):
New.
* testsuite/25_algorithms/sort_heap/check_compare_by_value.cc:
Likewise.
* testsuite/25_algorithms/partial_sort/check_compare_by_value:
Likewise.
* testsuite/25_algorithms/stable_sort/check_compare_by_value.cc:
Likewise.
* testsuite/25_algorithms/sort/check_compare_by_value: Likewise.
2011-03-09 Chris Jefferson <chris@bubblescope.net>
PR libstdc++/48038
* include/bits/stl_algo.h (__merge_backward): Rename to
__move_merge_backward and change to always move rather than copy.
(__move_merge): New function similar to std::merge except values
are moved instead of copied.
(__merge_adaptive, __merge_sort_loop): Change from using std::merge
and __merge_backward to __move_merge and __move_merge_backward.
From-SVN: r170827
2011-03-09 18:30:11 +00:00
Benjamin Kosnik
9b690d8cc3
PR libstdc++/36104 part three
...
2011-01-20 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/36104 part three
* src/hashtable_c++0x.cc: Adjust namespace macros.
* testsuite/util/testsuite_rvalref.h: Don't forward declare hash.
* config/abi/pre/gnu-versioned-namespace.ver: Update.
From-SVN: r169063
2011-01-20 20:04:25 +00:00
Paolo Carlini
fb7342fd6f
PR libstdc++/44436 (partial)
...
2010-10-28 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/44436 (partial)
* include/bits/hashtable.h (_Hashtable<>::insert(value_type&&),
insert(_Pair&&), insert(const_iterator, value_type&&),
insert(const_iterator, _Pair&&)): Add.
(_M_allocate_node, _M_insert, _M_insert_bucket): Templatize.
* include/bits/hashtable_policy.h (__detail::_Select1st): Add; use
it throughout.
(_Map_base<>::operator[](_Key&&)): Add.
* include/bits/unordered_map.h: Use __detail::_Select1st throughout.
* include/debug/unordered_map: Update.
* include/debug/unordered_set: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
* testsuite/util/testsuite_rvalref.h (struct hash<rvalstruct>): Add;
minor tweaks throughout, use deleted special members.
* testsuite/23_containers/unordered_map/insert/map_single_move-1.cc:
New.
* testsuite/23_containers/unordered_map/insert/map_single_move-2.cc:
Likewise.
* testsuite/23_containers/unordered_map/insert/array_syntax_move.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/insert/
multimap_single_move-1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/
multimap_single_move-2.cc: Likewise.
* testsuite/23_containers/unordered_set/insert/set_single_move.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/insert/
multiset_single_move.cc: Likewise.
* testsuite/23_containers/unordered_map/insert/array_syntax.cc:
Minor cosmetic changes.
From-SVN: r166030
2010-10-28 16:01:05 +00:00
Chris Jefferson
01bbe15104
testsuite_rvalref.h: Remove obsolete macro using _GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING.
...
2009-09-01 Chris Jefferson <chris@bubblescope.net>
Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/util/testsuite_rvalref.h: Remove obsolete macro using
_GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING.
* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
move_iterators/1.cc: Adjust, do not define
_GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING.
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
move_iterators/1.cc: Likewise.
* testsuite/25_algorithms/copy_n/move_iterators/1.cc: Likewise.
* testsuite/25_algorithms/move/1.cc: Likewise.
* testsuite/25_algorithms/move_backward/1.cc: Likewise.
* testsuite/25_algorithms/copy_backward/move_iterators/1.cc: Likewise.
* testsuite/25_algorithms/copy/move_iterators/1.cc: Likewise.
* testsuite/25_algorithms/heap/moveable.cc: Likewise.
* testsuite/25_algorithms/partial_sort/moveable.cc: Likewise; add
test for predicated test.
* testsuite/25_algorithms/sort/moveable.cc: Likewise.
* testsuite/25_algorithms/nth_element/moveable.cc: Add test
for predicated version.
* testsuite/25_algorithms/unique/moveable.cc: Likewise.
* testsuite/25_algorithms/inplace_merge/1.cc (S::operator<): Fix,
enable test2 and test3.
* testsuite/util/testsuite_iterators.h (operator=): Fix invalid
moving bug in C++0x mode.
* testsuite/25_algorithms/random_shuffle/moveable.cc: New.
* testsuite/25_algorithms/prev_permutation/moveable.cc: Likewise.
* testsuite/25_algorithms/next_permutation/moveable.cc: Likewise.
* testsuite/25_algorithms/heap/moveable2.cc: Likewise.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r151264
2009-09-01 10:19:11 +00:00
Jakub Jelinek
748086b7b2
Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
...
From-SVN: r145841
2009-04-09 17:00:19 +02:00
Paolo Carlini
7919bb2fba
[multiple changes]
...
2007-12-10 Paolo Carlini <pcarlini@suse.de>
* testsuite/25_algorithms/nth_element/2.cc: Avoid -Wall warnings.
* testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_streambuf/sgetc/char/1.cc: Likewise.
* testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_stringbuf/sgetn/char/1.cc: Likewise.
* testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc: Likewise.
* testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_stringbuf/snextc/char/1.cc: Likewise.
* testsuite/27_io/basic_istream/peek/wchar_t/12296.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/wchar_t/
28277-2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/wchar_t/
28277-3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/wchar_t/
28277-4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/char/
28277-3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/char/
28277-4.cc: Likewise.
* testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise.
* testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Likewise.
* testsuite/18_support/headers/cstddef/macros.cc: Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/
wchar_t/28277.cc: Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/
char/28277.cc: Likewise.
* testsuite/26_numerics/headers/cmath/25913.cc: Likewise.
* testsuite/ext/pb_ds/example/priority_queue_xref.cc: Likewise.
* testsuite/ext/vstring/inserters_extractors/wchar_t/28277.cc: Likewise.
* testsuite/ext/vstring/inserters_extractors/char/28277.cc: Likewise.
* testsuite/ext/enc_filebuf/char/13598.cc: Likewise.
* testsuite/22_locale/collate/compare/char/2.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/5.cc: Likewise.
* testsuite/22_locale/time_put/put/char/5.cc: Likewise.
* testsuite/22_locale/time_put/put/char/6.cc: Likewise.
* testsuite/22_locale/time_put/put/char/7.cc: Likewise.
* testsuite/22_locale/time_put/put/char/8.cc: Likewise.
* testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
* testsuite/22_locale/codecvt/length/char/1.cc: Likewise.
* testsuite/22_locale/codecvt/length/char/2.cc: Likewise.
* testsuite/22_locale/codecvt/in/wchar_t/9.cc: Likewise.
* testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
* testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
* testsuite/22_locale/num_get/get/wchar_t/1.cc: Likewise.
* testsuite/22_locale/num_get/get/char/1.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/random/uniform_int/
33128.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/
mutex_weaktoshared.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/
default_weaktoshared.cc: Likewise.
* testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/
range.cc: Likewise.
* testsuite/tr1/7_regular_expressions/basic_regex/assign/char/
range.cc: Likewise.
* testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/
range.cc: Likewise.
* testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/
range.cc: Likewise.
* testsuite/23_containers/multimap/operations/1.cc: Likewise.
* testsuite/23_containers/set/operations/1.cc: Likewise.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Likewise.
* testsuite/23_containers/deque/modifiers/erase/1.cc: Likewise.
* testsuite/23_containers/deque/modifiers/erase/2.cc: Likewise.
* testsuite/23_containers/multiset/operations/1.cc: Likewise.
* testsuite/23_containers/map/operations/1.cc: Likewise.
* testsuite/util/testsuite_hooks.cc: Likewise.
* testsuite/util/testsuite_rvalref.h: Likewise.
2007-12-10 Jakub Jelinek <jakub@redhat.com>
* include/ext/throw_allocator.h (print_to_string): Change sprintf
format to %lu and cast ref.second.{first,second} to long.
* include/debug/safe_iterator.tcc (_M_can_advance): Add parens to
avoid warnings.
From-SVN: r130743
2007-12-10 13:53:10 +00:00
Jonathan Wakely
799a6e3602
testsuite_allocator.h, [...]: Remove semi-colons after namespace declarations.
...
2007-12-09 Jonathan Wakely <jwakely.gcc@gmail.com>
* testsuite/util/testsuite_allocator.h,
testsuite/util/testsuite_hooks.cc,
testsuite/util/testsuite_character.h,
testsuite/util/testsuite_performance.h,
testsuite/util/testsuite_rvalref.h, testsuite/util/testsuite_io.h,
testsuite/util/testsuite_allocator.cc: Remove semi-colons after
namespace declarations.
From-SVN: r130726
2007-12-09 19:43:49 +00:00
Chris Jefferson
f5783e34f9
moveable.cc: New.
...
2007-10-03 Chris Jefferson <chris@bubblescope.net>
Benjamin Kosnik <bkoz@redhat.com>
* testsuite/20_util/pair/moveable.cc: New. Merge from
libstdcxx_so_7-branch.
* testsuite/23_containers/deque/capacity/moveable.cc: Same.
* testsuite/23_containers/deque/cons/moveable.cc: Same.
* testsuite/23_containers/deque/modifiers/moveable.cc: Same.
* testsuite/23_containers/deque/moveable.cc: Same.
* testsuite/23_containers/list/moveable.cc: Same.
* testsuite/23_containers/map/moveable.cc: Same.
* testsuite/23_containers/multimap/moveable.cc: Same.
* testsuite/23_containers/multiset/moveable.cc: Same.
* testsuite/23_containers/set/moveable.cc: Same.
* testsuite/23_containers/vector/cons/moveable.cc: Same.
* testsuite/23_containers/vector/modifiers/moveable.cc: Same.
* testsuite/23_containers/vector/moveable.cc: Same.
* testsuite/23_containers/vector/resize/moveable.cc: Same.
* testsuite/25_algorithms/heap/moveable.cc: Same.
* testsuite/25_algorithms/nth_element/moveable.cc: Same.
* testsuite/25_algorithms/partial_sort/moveable.cc: Same.
* testsuite/25_algorithms/partition/moveable.cc: Same.
* testsuite/25_algorithms/remove_if/moveable.cc: Same.
* testsuite/25_algorithms/remove/moveable.cc: Same.
* testsuite/25_algorithms/reverse/moveable.cc: Same.
* testsuite/25_algorithms/rotate/moveable.cc: Same.
* testsuite/25_algorithms/sort/moveable.cc: Same.
* testsuite/25_algorithms/swap_ranges/moveable.cc: Same.
* testsuite/25_algorithms/unique/moveable.cc: Same.
* testsuite/util/testsuite_rvalref.h: New.
* testsuite/25_algorithms/equal/equal.cc: Move to...
* testsuite/25_algorithms/equal/no_operator_ne.cc: ...this.
* testsuite/25_algorithms/heap/heap.cc: Move to...
* testsuite/25_algorithms/heap/1.cc: ...this.
* testsuite/25_algorithms/lower_bound/lower_bound.cc: Move to...
* testsuite/25_algorithms/lower_bound/no_operator_ne.cc: ...this.
* testsuite/25_algorithms/partition/partition.cc: Move to...
* testsuite/25_algorithms/partition/1.cc: ...this.
* testsuite/25_algorithms/stable_partition/1.cc: ... and this.
* testsuite/25_algorithms/search/1.cc: Update from merge.
* testsuite/25_algorithms/search/check_type.cc: Same.
* testsuite/lib/dg-options.exp (dg-require-rvalref): New.
* testsuite/lib/libstdc++.exp (check_v3_target_rvalref): New.
Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
From-SVN: r128990
2007-10-03 17:27:18 +00:00