N3644 tests for map/multimap/set/multiset. Drive-by NOEXCEPT for __tree_const_iterator constructor. Fix comment typos in other tests

llvm-svn: 188019
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 2472b928d221fb4d48c8e0f771f0467c51af73c7
diff --git a/include/__tree b/include/__tree
index 9ffc38d..d8f6cb7 100644
--- a/include/__tree
+++ b/include/__tree
@@ -641,7 +641,11 @@
 #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 @@
 #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/test/containers/associative/map/map.access/iterator.pass.cpp b/test/containers/associative/map/map.access/iterator.pass.cpp
index 048c074..64a6284 100644
--- a/test/containers/associative/map/map.access/iterator.pass.cpp
+++ b/test/containers/associative/map/map.access/iterator.pass.cpp
@@ -207,4 +207,18 @@
         }
     }
 #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/test/containers/associative/multimap/iterator.pass.cpp b/test/containers/associative/multimap/iterator.pass.cpp
index 283b32d..a58b583 100644
--- a/test/containers/associative/multimap/iterator.pass.cpp
+++ b/test/containers/associative/multimap/iterator.pass.cpp
@@ -211,4 +211,18 @@
             }
     }
 #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/test/containers/associative/multiset/iterator.pass.cpp b/test/containers/associative/multiset/iterator.pass.cpp
index 2a7b209..f801de7 100644
--- a/test/containers/associative/multiset/iterator.pass.cpp
+++ b/test/containers/associative/multiset/iterator.pass.cpp
@@ -195,4 +195,18 @@
                 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/test/containers/associative/set/iterator.pass.cpp b/test/containers/associative/set/iterator.pass.cpp
index b509aea..f52e845 100644
--- a/test/containers/associative/set/iterator.pass.cpp
+++ b/test/containers/associative/set/iterator.pass.cpp
@@ -191,4 +191,18 @@
             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/test/containers/sequences/array/iterators.pass.cpp b/test/containers/sequences/array/iterators.pass.cpp
index af5e064..8da3803 100644
--- a/test/containers/sequences/array/iterators.pass.cpp
+++ b/test/containers/sequences/array/iterators.pass.cpp
@@ -37,7 +37,7 @@
     }
 
 #if _LIBCPP_STD_VER > 11
-    { // N3664 testing
+    { // N3644 testing
         {
         typedef std::array<int, 5> C;
         C::iterator ii1{}, ii2{};
diff --git a/test/containers/sequences/deque/iterators.pass.cpp b/test/containers/sequences/deque/iterators.pass.cpp
index 5645b5d..a83a16b 100644
--- a/test/containers/sequences/deque/iterators.pass.cpp
+++ b/test/containers/sequences/deque/iterators.pass.cpp
@@ -45,7 +45,7 @@
     }
 #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/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp b/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp
index aa39339..2e99514 100644
--- a/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp
+++ b/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp
@@ -121,7 +121,7 @@
     }
 #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/test/containers/sequences/vector.bool/iterators.pass.cpp b/test/containers/sequences/vector.bool/iterators.pass.cpp
index f45bf98..98f725e 100644
--- a/test/containers/sequences/vector.bool/iterators.pass.cpp
+++ b/test/containers/sequences/vector.bool/iterators.pass.cpp
@@ -95,7 +95,7 @@
     }
 #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/test/containers/sequences/vector/iterators.pass.cpp b/test/containers/sequences/vector/iterators.pass.cpp
index 8e0d482..4ee16e9 100644
--- a/test/containers/sequences/vector/iterators.pass.cpp
+++ b/test/containers/sequences/vector/iterators.pass.cpp
@@ -136,7 +136,7 @@
     }
 #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/test/containers/unord/unord.map/iterators.pass.cpp b/test/containers/unord/unord.map/iterators.pass.cpp
index 4fc85a2..c780a66 100644
--- a/test/containers/unord/unord.map/iterators.pass.cpp
+++ b/test/containers/unord/unord.map/iterators.pass.cpp
@@ -109,7 +109,7 @@
     }
 #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/test/containers/unord/unord.multimap/iterators.pass.cpp b/test/containers/unord/unord.multimap/iterators.pass.cpp
index cdf70c1..9abb196 100644
--- a/test/containers/unord/unord.multimap/iterators.pass.cpp
+++ b/test/containers/unord/unord.multimap/iterators.pass.cpp
@@ -115,7 +115,7 @@
     }
 #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/test/containers/unord/unord.multiset/iterators.pass.cpp b/test/containers/unord/unord.multiset/iterators.pass.cpp
index bc6f880..e51b3e1 100644
--- a/test/containers/unord/unord.multiset/iterators.pass.cpp
+++ b/test/containers/unord/unord.multiset/iterators.pass.cpp
@@ -108,7 +108,7 @@
     }
 #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/test/containers/unord/unord.set/iterators.pass.cpp b/test/containers/unord/unord.set/iterators.pass.cpp
index 6127d66..7bb9770 100644
--- a/test/containers/unord/unord.set/iterators.pass.cpp
+++ b/test/containers/unord/unord.set/iterators.pass.cpp
@@ -108,7 +108,7 @@
     }
 #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/test/strings/basic.string/string.iterators/iterators.pass.cpp b/test/strings/basic.string/string.iterators/iterators.pass.cpp
index ff89609..386cede 100644
--- a/test/strings/basic.string/string.iterators/iterators.pass.cpp
+++ b/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 @@
         assert ( !(ii1 != cii ));
     }
 
-    { // N3664 testing
+    { // N3644 testing
         typedef std::wstring C;
         C::iterator ii1{}, ii2{};
         C::iterator ii4 = ii1;
@@ -46,7 +46,7 @@
         assert ( !(ii1 != cii ));
     }
 
-    { // N3664 testing
+    { // N3644 testing
         typedef std::u16string C;
         C::iterator ii1{}, ii2{};
         C::iterator ii4 = ii1;
@@ -58,7 +58,7 @@
         assert ( !(ii1 != cii ));
     }
 
-    { // N3664 testing
+    { // N3644 testing
         typedef std::u32string C;
         C::iterator ii1{}, ii2{};
         C::iterator ii4 = ii1;