diff options
| author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-01 14:16:19 +0000 |
|---|---|---|
| committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-01 14:16:19 +0000 |
| commit | c95bf15b90e97f9fa468bb1e312c2ef9321c0daf (patch) | |
| tree | 5f19e059c0bf5df233b925249cc902742f90c284 /libstdc++-v3/include/profile | |
| parent | 572635a55e84f3cf8169ec295764a64e44036fc2 (diff) | |
| download | ppe42-gcc-c95bf15b90e97f9fa468bb1e312c2ef9321c0daf.tar.gz ppe42-gcc-c95bf15b90e97f9fa468bb1e312c2ef9321c0daf.zip | |
2011-06-01 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)):
Use std::move on the allocator, use noexcept.
(_Hashtable<>::~_Hashtable): Use noexcept.
* include/bits/stl_list.h: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_map.h (map<>::map(map&&)): Use noexcept.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree(_Rb_tree&&)): Use
std::move on the allocator.
(_Rb_tree<>::~_Rb_tree): Use noexcept.
* include/bits/stl_deque.h: Likewise.
* include/bits/basic_string.h (basic_string<>::~basic_string): Use
noexcept.
* include/ext/vstring.h (__versa_string<>::~__versa_string): Likewise.
* include/debug/set.h: Adjust.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/forward_list: Likewise.
* include/debug/vector: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/string: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/profile/set.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/forward_list: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/vector: Likewise.
* include/profile/deque: Likewise.
* include/profile/map.h: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/
noexcept_move_construct.cc: New.
* testsuite/21_strings/basic_string/cons/char/
noexcept_move_construct.cc: Likewise.
* testsuite/ext/vstring/cons/noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_map/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/multimap/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/set/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/forward_list/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_set/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/vector/bool/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/vector/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/multiset/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/list/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/map/cons/noexcept_move_construct.cc
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Adjust dg-error line numbers.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* include/bits/move.h (swap): Use __and_ in the noexcept.
* include/bits/algorithmfwd.h: Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174525 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/profile')
| -rw-r--r-- | libstdc++-v3/include/profile/deque | 2 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/forward_list | 4 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/list | 20 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/map.h | 3 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/multimap.h | 3 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/multiset.h | 3 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/set.h | 3 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/unordered_map | 8 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/unordered_set | 8 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/vector | 26 |
10 files changed, 46 insertions, 34 deletions
diff --git a/libstdc++-v3/include/profile/deque b/libstdc++-v3/include/profile/deque index 564c2dd0fce..48a18c984d9 100644 --- a/libstdc++-v3/include/profile/deque +++ b/libstdc++-v3/include/profile/deque @@ -101,7 +101,7 @@ namespace __profile : _Base(__l, __a) { } #endif - ~deque() { } + ~deque() _GLIBCXX_NOEXCEPT { } deque& operator=(const deque& __x) diff --git a/libstdc++-v3/include/profile/forward_list b/libstdc++-v3/include/profile/forward_list index 75b59f354a2..618b2480caa 100644 --- a/libstdc++-v3/include/profile/forward_list +++ b/libstdc++-v3/include/profile/forward_list @@ -83,7 +83,7 @@ namespace __profile : _Base(__list) { } - forward_list(forward_list&& __list) + forward_list(forward_list&& __list) noexcept : _Base(std::move(__list)) { } forward_list(std::initializer_list<_Tp> __il, @@ -91,7 +91,7 @@ namespace __profile : _Base(__il, __al) { } - ~forward_list() + ~forward_list() noexcept { } forward_list& diff --git a/libstdc++-v3/include/profile/list b/libstdc++-v3/include/profile/list index 589f8f5362b..33b1ae64d87 100644 --- a/libstdc++-v3/include/profile/list +++ b/libstdc++-v3/include/profile/list @@ -67,7 +67,7 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > explicit list(const _Allocator& __a = _Allocator()) : _Base(__a) - { + { __profcxx_list_construct(this); // list2slist __profcxx_list_construct2(this); // list2vector } @@ -76,7 +76,7 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > explicit list(size_type __n) : _Base(__n) - { + { __profcxx_list_construct(this); __profcxx_list_construct2(this); } @@ -84,7 +84,7 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > list(size_type __n, const _Tp& __value, const _Allocator& __a = _Allocator()) : _Base(__n, __value, __a) - { + { __profcxx_list_construct(this); __profcxx_list_construct2(this); } @@ -93,7 +93,7 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > list(size_type __n, const _Tp& __value = _Tp(), const _Allocator& __a = _Allocator()) : _Base(__n, __value, __a) - { + { __profcxx_list_construct(this); __profcxx_list_construct2(this); } @@ -103,29 +103,29 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > list(_InputIterator __first, _InputIterator __last, const _Allocator& __a = _Allocator()) : _Base(__first, __last, __a) - { + { __profcxx_list_construct(this); __profcxx_list_construct2(this); } list(const list& __x) : _Base(__x) - { + { __profcxx_list_construct(this); __profcxx_list_construct2(this); } list(const _Base& __x) : _Base(__x) - { + { __profcxx_list_construct(this); __profcxx_list_construct2(this); } #ifdef __GXX_EXPERIMENTAL_CXX0X__ - list(list&& __x) + list(list&& __x) noexcept : _Base(std::move(__x)) - { + { __profcxx_list_construct(this); __profcxx_list_construct2(this); } @@ -135,7 +135,7 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > : _Base(__l, __a) { } #endif - ~list() + ~list() _GLIBCXX_NOEXCEPT { __profcxx_list_destruct(this); __profcxx_list_destruct2(this); diff --git a/libstdc++-v3/include/profile/map.h b/libstdc++-v3/include/profile/map.h index 30f5f3aa679..622bc575ad2 100644 --- a/libstdc++-v3/include/profile/map.h +++ b/libstdc++-v3/include/profile/map.h @@ -92,6 +92,7 @@ namespace __profile #ifdef __GXX_EXPERIMENTAL_CXX0X__ map(map&& __x) + noexcept(is_nothrow_copy_constructible<_Compare>::value) : _Base(std::move(__x)) { } @@ -101,7 +102,7 @@ namespace __profile : _Base(__l, __c, __a) { } #endif - ~map() + ~map() _GLIBCXX_NOEXCEPT { __profcxx_map_to_unordered_map_destruct(this); } map& diff --git a/libstdc++-v3/include/profile/multimap.h b/libstdc++-v3/include/profile/multimap.h index 5f1aba82e34..547a221b330 100644 --- a/libstdc++-v3/include/profile/multimap.h +++ b/libstdc++-v3/include/profile/multimap.h @@ -82,6 +82,7 @@ namespace __profile #ifdef __GXX_EXPERIMENTAL_CXX0X__ multimap(multimap&& __x) + noexcept(is_nothrow_copy_constructible<_Compare>::value) : _Base(std::move(__x)) { } @@ -91,7 +92,7 @@ namespace __profile : _Base(__l, __c, __a) { } #endif - ~multimap() { } + ~multimap() _GLIBCXX_NOEXCEPT { } multimap& operator=(const multimap& __x) diff --git a/libstdc++-v3/include/profile/multiset.h b/libstdc++-v3/include/profile/multiset.h index d1406235845..a5779383a56 100644 --- a/libstdc++-v3/include/profile/multiset.h +++ b/libstdc++-v3/include/profile/multiset.h @@ -82,6 +82,7 @@ namespace __profile #ifdef __GXX_EXPERIMENTAL_CXX0X__ multiset(multiset&& __x) + noexcept(is_nothrow_copy_constructible<_Compare>::value) : _Base(std::move(__x)) { } @@ -91,7 +92,7 @@ namespace __profile : _Base(__l, __comp, __a) { } #endif - ~multiset() { } + ~multiset() _GLIBCXX_NOEXCEPT { } multiset& operator=(const multiset& __x) diff --git a/libstdc++-v3/include/profile/set.h b/libstdc++-v3/include/profile/set.h index 8533a48c90d..47261e9160f 100644 --- a/libstdc++-v3/include/profile/set.h +++ b/libstdc++-v3/include/profile/set.h @@ -82,6 +82,7 @@ namespace __profile #ifdef __GXX_EXPERIMENTAL_CXX0X__ set(set&& __x) + noexcept(is_nothrow_copy_constructible<_Compare>::value) : _Base(std::move(__x)) { } @@ -91,7 +92,7 @@ namespace __profile : _Base(__l, __comp, __a) { } #endif - ~set() { } + ~set() _GLIBCXX_NOEXCEPT { } set& operator=(const set& __x) diff --git a/libstdc++-v3/include/profile/unordered_map b/libstdc++-v3/include/profile/unordered_map index 058bbd35132..5bbb7aea6d8 100644 --- a/libstdc++-v3/include/profile/unordered_map +++ b/libstdc++-v3/include/profile/unordered_map @@ -104,6 +104,8 @@ namespace __profile } unordered_map(unordered_map&& __x) + noexcept(__and_<is_nothrow_copy_constructible<_Hash>, + is_nothrow_copy_constructible<_Pred>>::value) : _Base(std::move(__x)) { __profcxx_hashtable_construct(this, _Base::bucket_count()); @@ -142,7 +144,7 @@ namespace __profile return *this; } - ~unordered_map() + ~unordered_map() noexcept { __profcxx_hashtable_destruct(this, _Base::bucket_count(), _Base::size()); @@ -372,6 +374,8 @@ namespace __profile } unordered_multimap(unordered_multimap&& __x) + noexcept(__and_<is_nothrow_copy_constructible<_Hash>, + is_nothrow_copy_constructible<_Pred>>::value) : _Base(std::move(__x)) { __profcxx_hashtable_construct(this, _Base::bucket_count()); @@ -409,7 +413,7 @@ namespace __profile return *this; } - ~unordered_multimap() + ~unordered_multimap() noexcept { __profcxx_hashtable_destruct(this, _Base::bucket_count(), _Base::size()); diff --git a/libstdc++-v3/include/profile/unordered_set b/libstdc++-v3/include/profile/unordered_set index 92c54c10f2a..51b42db9633 100644 --- a/libstdc++-v3/include/profile/unordered_set +++ b/libstdc++-v3/include/profile/unordered_set @@ -103,6 +103,8 @@ namespace __profile } unordered_set(unordered_set&& __x) + noexcept(__and_<is_nothrow_copy_constructible<_Hash>, + is_nothrow_copy_constructible<_Pred>>::value) : _Base(std::move(__x)) { __profcxx_hashtable_construct(this, _Base::bucket_count()); @@ -141,7 +143,7 @@ namespace __profile return *this; } - ~unordered_set() + ~unordered_set() noexcept { __profcxx_hashtable_destruct(this, _Base::bucket_count(), _Base::size()); @@ -346,6 +348,8 @@ namespace __profile } unordered_multiset(unordered_multiset&& __x) + noexcept(__and_<is_nothrow_copy_constructible<_Hash>, + is_nothrow_copy_constructible<_Pred>>::value) : _Base(std::move(__x)) { __profcxx_hashtable_construct(this, _Base::bucket_count()); @@ -383,7 +387,7 @@ namespace __profile return *this; } - ~unordered_multiset() + ~unordered_multiset() noexcept { __profcxx_hashtable_destruct(this, _Base::bucket_count(), _Base::size()); diff --git a/libstdc++-v3/include/profile/vector b/libstdc++-v3/include/profile/vector index 83a4a3b4c4a..7a33e88be01 100644 --- a/libstdc++-v3/include/profile/vector +++ b/libstdc++-v3/include/profile/vector @@ -79,7 +79,7 @@ namespace __profile explicit vector(const _Allocator& __a = _Allocator()) : _Base(__a) - { + { __profcxx_vector_construct(this, this->capacity()); __profcxx_vector_construct2(this); } @@ -87,8 +87,8 @@ namespace __profile #ifdef __GXX_EXPERIMENTAL_CXX0X__ explicit vector(size_type __n) - : _Base(__n) - { + : _Base(__n) + { __profcxx_vector_construct(this, this->capacity()); __profcxx_vector_construct2(this); } @@ -96,7 +96,7 @@ namespace __profile vector(size_type __n, const _Tp& __value, const _Allocator& __a = _Allocator()) : _Base(__n, __value, __a) - { + { __profcxx_vector_construct(this, this->capacity()); __profcxx_vector_construct2(this); } @@ -104,8 +104,8 @@ namespace __profile explicit vector(size_type __n, const _Tp& __value = _Tp(), const _Allocator& __a = _Allocator()) - : _Base(__n, __value, __a) - { + : _Base(__n, __value, __a) + { __profcxx_vector_construct(this, this->capacity()); __profcxx_vector_construct2(this); } @@ -115,14 +115,14 @@ namespace __profile vector(_InputIterator __first, _InputIterator __last, const _Allocator& __a = _Allocator()) : _Base(__first, __last, __a) - { - __profcxx_vector_construct(this, this->capacity()); - __profcxx_vector_construct2(this); - } + { + __profcxx_vector_construct(this, this->capacity()); + __profcxx_vector_construct2(this); + } vector(const vector& __x) : _Base(__x) - { + { __profcxx_vector_construct(this, this->capacity()); __profcxx_vector_construct2(this); } @@ -136,7 +136,7 @@ namespace __profile } #ifdef __GXX_EXPERIMENTAL_CXX0X__ - vector(vector&& __x) + vector(vector&& __x) noexcept : _Base(std::move(__x)) { __profcxx_vector_construct(this, this->capacity()); @@ -148,7 +148,7 @@ namespace __profile : _Base(__l, __a) { } #endif - ~vector() + ~vector() _GLIBCXX_NOEXCEPT { __profcxx_vector_destruct(this, this->capacity(), this->size()); __profcxx_vector_destruct2(this); |

