summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/profile
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2011-06-01 14:16:19 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2011-06-01 14:16:19 +0000
commitc95bf15b90e97f9fa468bb1e312c2ef9321c0daf (patch)
tree5f19e059c0bf5df233b925249cc902742f90c284 /libstdc++-v3/include/profile
parent572635a55e84f3cf8169ec295764a64e44036fc2 (diff)
downloadppe42-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/deque2
-rw-r--r--libstdc++-v3/include/profile/forward_list4
-rw-r--r--libstdc++-v3/include/profile/list20
-rw-r--r--libstdc++-v3/include/profile/map.h3
-rw-r--r--libstdc++-v3/include/profile/multimap.h3
-rw-r--r--libstdc++-v3/include/profile/multiset.h3
-rw-r--r--libstdc++-v3/include/profile/set.h3
-rw-r--r--libstdc++-v3/include/profile/unordered_map8
-rw-r--r--libstdc++-v3/include/profile/unordered_set8
-rw-r--r--libstdc++-v3/include/profile/vector26
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);
OpenPOWER on IntegriCloud