diff options
15 files changed, 80 insertions, 15 deletions
diff --git a/libcxx/include/__tree b/libcxx/include/__tree index 9ffc38d2287..d8f6cb7de23 100644 --- a/libcxx/include/__tree +++ b/libcxx/include/__tree @@ -641,7 +641,11 @@ public: #endif pointer; - _LIBCPP_INLINE_VISIBILITY __tree_iterator() _NOEXCEPT {} + _LIBCPP_INLINE_VISIBILITY __tree_iterator() _NOEXCEPT +#if _LIBCPP_STD_VER > 11 + : __ptr_(nullptr) +#endif + {} _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __ptr_->__value_;} _LIBCPP_INLINE_VISIBILITY pointer operator->() const @@ -712,7 +716,12 @@ public: #endif pointer; - _LIBCPP_INLINE_VISIBILITY __tree_const_iterator() {} + _LIBCPP_INLINE_VISIBILITY __tree_const_iterator() _NOEXCEPT +#if _LIBCPP_STD_VER > 11 + : __ptr_(nullptr) +#endif + {} + private: typedef typename remove_const<__node>::type __non_const_node; typedef typename pointer_traits<__node_pointer>::template diff --git a/libcxx/test/containers/associative/map/map.access/iterator.pass.cpp b/libcxx/test/containers/associative/map/map.access/iterator.pass.cpp index 048c074c296..64a6284eabe 100644 --- a/libcxx/test/containers/associative/map/map.access/iterator.pass.cpp +++ b/libcxx/test/containers/associative/map/map.access/iterator.pass.cpp @@ -207,4 +207,18 @@ int main() } } #endif +#if _LIBCPP_STD_VER > 11 + { // N3644 testing + typedef std::map<int, double> C; + C::iterator ii1{}, ii2{}; + C::iterator ii4 = ii1; + C::const_iterator cii{}; + assert ( ii1 == ii2 ); + assert ( ii1 == ii4 ); + assert ( ii1 == cii ); + + assert ( !(ii1 != ii2 )); + assert ( !(ii1 != cii )); + } +#endif } diff --git a/libcxx/test/containers/associative/multimap/iterator.pass.cpp b/libcxx/test/containers/associative/multimap/iterator.pass.cpp index 283b32dc912..a58b5830837 100644 --- a/libcxx/test/containers/associative/multimap/iterator.pass.cpp +++ b/libcxx/test/containers/associative/multimap/iterator.pass.cpp @@ -211,4 +211,18 @@ int main() } } #endif +#if _LIBCPP_STD_VER > 11 + { // N3644 testing + typedef std::multimap<int, double> C; + C::iterator ii1{}, ii2{}; + C::iterator ii4 = ii1; + C::const_iterator cii{}; + assert ( ii1 == ii2 ); + assert ( ii1 == ii4 ); + assert ( ii1 == cii ); + + assert ( !(ii1 != ii2 )); + assert ( !(ii1 != cii )); + } +#endif } diff --git a/libcxx/test/containers/associative/multiset/iterator.pass.cpp b/libcxx/test/containers/associative/multiset/iterator.pass.cpp index 2a7b209e9c0..f801de7269e 100644 --- a/libcxx/test/containers/associative/multiset/iterator.pass.cpp +++ b/libcxx/test/containers/associative/multiset/iterator.pass.cpp @@ -195,4 +195,18 @@ int main() assert(*i == j); } #endif +#if _LIBCPP_STD_VER > 11 + { // N3644 testing + typedef std::multiset<int> C; + C::iterator ii1{}, ii2{}; + C::iterator ii4 = ii1; + C::const_iterator cii{}; + assert ( ii1 == ii2 ); + assert ( ii1 == ii4 ); + assert ( ii1 == cii ); + + assert ( !(ii1 != ii2 )); + assert ( !(ii1 != cii )); + } +#endif } diff --git a/libcxx/test/containers/associative/set/iterator.pass.cpp b/libcxx/test/containers/associative/set/iterator.pass.cpp index b509aea0cb7..f52e8451c5f 100644 --- a/libcxx/test/containers/associative/set/iterator.pass.cpp +++ b/libcxx/test/containers/associative/set/iterator.pass.cpp @@ -191,4 +191,18 @@ int main() assert(*i == j); } #endif +#if _LIBCPP_STD_VER > 11 + { // N3644 testing + typedef std::set<int> C; + C::iterator ii1{}, ii2{}; + C::iterator ii4 = ii1; + C::const_iterator cii{}; + assert ( ii1 == ii2 ); + assert ( ii1 == ii4 ); + assert ( ii1 == cii ); + + assert ( !(ii1 != ii2 )); + assert ( !(ii1 != cii )); + } +#endif } diff --git a/libcxx/test/containers/sequences/array/iterators.pass.cpp b/libcxx/test/containers/sequences/array/iterators.pass.cpp index af5e064d12c..8da3803d3db 100644 --- a/libcxx/test/containers/sequences/array/iterators.pass.cpp +++ b/libcxx/test/containers/sequences/array/iterators.pass.cpp @@ -37,7 +37,7 @@ int main() } #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing { typedef std::array<int, 5> C; C::iterator ii1{}, ii2{}; diff --git a/libcxx/test/containers/sequences/deque/iterators.pass.cpp b/libcxx/test/containers/sequences/deque/iterators.pass.cpp index 5645b5d9499..a83a16b3a2f 100644 --- a/libcxx/test/containers/sequences/deque/iterators.pass.cpp +++ b/libcxx/test/containers/sequences/deque/iterators.pass.cpp @@ -45,7 +45,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing std::deque<int>::iterator ii1{}, ii2{}; std::deque<int>::iterator ii4 = ii1; std::deque<int>::const_iterator cii{}; diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp index aa39339c5b3..2e9951456b9 100644 --- a/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp +++ b/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp @@ -121,7 +121,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing std::forward_list<int>::iterator ii1{}, ii2{}; std::forward_list<int>::iterator ii4 = ii1; std::forward_list<int>::const_iterator cii{}; diff --git a/libcxx/test/containers/sequences/vector.bool/iterators.pass.cpp b/libcxx/test/containers/sequences/vector.bool/iterators.pass.cpp index f45bf986990..98f725e25ce 100644 --- a/libcxx/test/containers/sequences/vector.bool/iterators.pass.cpp +++ b/libcxx/test/containers/sequences/vector.bool/iterators.pass.cpp @@ -95,7 +95,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing std::vector<bool>::iterator ii1{}, ii2{}; std::vector<bool>::iterator ii4 = ii1; std::vector<bool>::const_iterator cii{}; diff --git a/libcxx/test/containers/sequences/vector/iterators.pass.cpp b/libcxx/test/containers/sequences/vector/iterators.pass.cpp index 8e0d482f020..4ee16e9fd24 100644 --- a/libcxx/test/containers/sequences/vector/iterators.pass.cpp +++ b/libcxx/test/containers/sequences/vector/iterators.pass.cpp @@ -136,7 +136,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::vector<int> C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/libcxx/test/containers/unord/unord.map/iterators.pass.cpp b/libcxx/test/containers/unord/unord.map/iterators.pass.cpp index 4fc85a2a303..c780a6631ce 100644 --- a/libcxx/test/containers/unord/unord.map/iterators.pass.cpp +++ b/libcxx/test/containers/unord/unord.map/iterators.pass.cpp @@ -109,7 +109,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::unordered_map<int,double> C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/libcxx/test/containers/unord/unord.multimap/iterators.pass.cpp b/libcxx/test/containers/unord/unord.multimap/iterators.pass.cpp index cdf70c1a9fe..9abb196b368 100644 --- a/libcxx/test/containers/unord/unord.multimap/iterators.pass.cpp +++ b/libcxx/test/containers/unord/unord.multimap/iterators.pass.cpp @@ -115,7 +115,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::unordered_multimap<int,double> C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/libcxx/test/containers/unord/unord.multiset/iterators.pass.cpp b/libcxx/test/containers/unord/unord.multiset/iterators.pass.cpp index bc6f8804921..e51b3e1c85f 100644 --- a/libcxx/test/containers/unord/unord.multiset/iterators.pass.cpp +++ b/libcxx/test/containers/unord/unord.multiset/iterators.pass.cpp @@ -108,7 +108,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::unordered_multiset<int> C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/libcxx/test/containers/unord/unord.set/iterators.pass.cpp b/libcxx/test/containers/unord/unord.set/iterators.pass.cpp index 6127d669b42..7bb9770d8e0 100644 --- a/libcxx/test/containers/unord/unord.set/iterators.pass.cpp +++ b/libcxx/test/containers/unord/unord.set/iterators.pass.cpp @@ -108,7 +108,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::unordered_set<int> C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/libcxx/test/strings/basic.string/string.iterators/iterators.pass.cpp b/libcxx/test/strings/basic.string/string.iterators/iterators.pass.cpp index ff896094dbd..386cededa53 100644 --- a/libcxx/test/strings/basic.string/string.iterators/iterators.pass.cpp +++ b/libcxx/test/strings/basic.string/string.iterators/iterators.pass.cpp @@ -22,7 +22,7 @@ int main() { #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::string C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; @@ -34,7 +34,7 @@ int main() assert ( !(ii1 != cii )); } - { // N3664 testing + { // N3644 testing typedef std::wstring C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; @@ -46,7 +46,7 @@ int main() assert ( !(ii1 != cii )); } - { // N3664 testing + { // N3644 testing typedef std::u16string C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; @@ -58,7 +58,7 @@ int main() assert ( !(ii1 != cii )); } - { // N3664 testing + { // N3644 testing typedef std::u32string C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; |