[libcxx] r347423 - [libcxx] Fix incorrect iterator type in vector container test

Louis Dionne ldionne at apple.com
Wed Nov 21 12:53:07 PST 2018


Author: ldionne
Date: Wed Nov 21 12:53:07 2018
New Revision: 347423

URL: http://llvm.org/viewvc/llvm-project?rev=347423&view=rev
Log:
[libcxx] Fix incorrect iterator type in vector container test

The iterator types for different specializations of containers with the
same element type but different allocators are not required to be
convertible. This patch makes the test to take the iterator type from
the same container specialization as the created container.

Reviewed as https://reviews.llvm.org/D54806.
Thanks to Andrey Maksimov for the patch.

Modified:
    libcxx/trunk/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp

Modified: libcxx/trunk/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp?rev=347423&r1=347422&r2=347423&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp Wed Nov 21 12:53:07 2018
@@ -25,11 +25,12 @@
 int main()
 {
     {
-        std::vector<int> v(100);
+        typedef std::vector<int> V;
+        V v(100);
         int a[] = {1, 2, 3, 4, 5};
         const int N = sizeof(a)/sizeof(a[0]);
-        std::vector<int>::iterator i = v.insert(v.cbegin() + 10, input_iterator<const int*>(a),
-                                        input_iterator<const int*>(a+N));
+        V::iterator i = v.insert(v.cbegin() + 10, input_iterator<const int*>(a),
+                                 input_iterator<const int*>(a+N));
         assert(v.size() == 100 + N);
         assert(is_contiguous_container_asan_correct(v));
         assert(i == v.begin() + 10);
@@ -42,11 +43,12 @@ int main()
             assert(v[j] == 0);
     }
     {
-        std::vector<int> v(100);
+        typedef std::vector<int> V;
+        V v(100);
         int a[] = {1, 2, 3, 4, 5};
         const int N = sizeof(a)/sizeof(a[0]);
-        std::vector<int>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
-                                        forward_iterator<const int*>(a+N));
+        V::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
+                                 forward_iterator<const int*>(a+N));
         assert(v.size() == 100 + N);
         assert(is_contiguous_container_asan_correct(v));
         assert(i == v.begin() + 10);
@@ -59,13 +61,14 @@ int main()
             assert(v[j] == 0);
     }
     {
-        std::vector<int> v(100);
+        typedef std::vector<int> V;
+        V v(100);
         while(v.size() < v.capacity()) v.push_back(0); // force reallocation
         size_t sz = v.size();
         int a[] = {1, 2, 3, 4, 5};
         const unsigned N = sizeof(a)/sizeof(a[0]);
-        std::vector<int>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
-                                        forward_iterator<const int*>(a+N));
+        V::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
+                                 forward_iterator<const int*>(a+N));
         assert(v.size() == sz + N);
         assert(i == v.begin() + 10);
         std::size_t j;
@@ -77,13 +80,14 @@ int main()
             assert(v[j] == 0);
     }
     {
-        std::vector<int> v(100);
+        typedef std::vector<int> V;
+        V v(100);
         v.reserve(128); // force no reallocation
         size_t sz = v.size();
         int a[] = {1, 2, 3, 4, 5};
         const unsigned N = sizeof(a)/sizeof(a[0]);
-        std::vector<int>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
-                                        forward_iterator<const int*>(a+N));
+        V::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
+                                 forward_iterator<const int*>(a+N));
         assert(v.size() == sz + N);
         assert(i == v.begin() + 10);
         std::size_t j;
@@ -95,11 +99,12 @@ int main()
             assert(v[j] == 0);
     }
     {
-        std::vector<int, limited_allocator<int, 308> > v(100);
+        typedef std::vector<int, limited_allocator<int, 308> > V;
+        V v(100);
         int a[] = {1, 2, 3, 4, 5};
         const int N = sizeof(a)/sizeof(a[0]);
-        std::vector<int>::iterator i = v.insert(v.cbegin() + 10, input_iterator<const int*>(a),
-                                        input_iterator<const int*>(a+N));
+        V::iterator i = v.insert(v.cbegin() + 10, input_iterator<const int*>(a),
+                                 input_iterator<const int*>(a+N));
         assert(v.size() == 100 + N);
         assert(is_contiguous_container_asan_correct(v));
         assert(i == v.begin() + 10);
@@ -112,11 +117,12 @@ int main()
             assert(v[j] == 0);
     }
     {
-        std::vector<int, limited_allocator<int, 300> > v(100);
+        typedef std::vector<int, limited_allocator<int, 300> > V;
+        V v(100);
         int a[] = {1, 2, 3, 4, 5};
         const int N = sizeof(a)/sizeof(a[0]);
-        std::vector<int>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
-                                        forward_iterator<const int*>(a+N));
+        V::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
+                                 forward_iterator<const int*>(a+N));
         assert(v.size() == 100 + N);
         assert(is_contiguous_container_asan_correct(v));
         assert(i == v.begin() + 10);
@@ -130,11 +136,12 @@ int main()
     }
 #if TEST_STD_VER >= 11
     {
-        std::vector<int, min_allocator<int>> v(100);
+        typedef std::vector<int, min_allocator<int> > V;
+        V v(100);
         int a[] = {1, 2, 3, 4, 5};
         const int N = sizeof(a)/sizeof(a[0]);
-        std::vector<int, min_allocator<int>>::iterator i = v.insert(v.cbegin() + 10, input_iterator<const int*>(a),
-                                        input_iterator<const int*>(a+N));
+        V::iterator i = v.insert(v.cbegin() + 10, input_iterator<const int*>(a),
+                                 input_iterator<const int*>(a+N));
         assert(v.size() == 100 + N);
         assert(is_contiguous_container_asan_correct(v));
         assert(i == v.begin() + 10);
@@ -147,11 +154,12 @@ int main()
             assert(v[j] == 0);
     }
     {
-        std::vector<int, min_allocator<int>> v(100);
+        typedef std::vector<int, min_allocator<int> > V;
+        V v(100);
         int a[] = {1, 2, 3, 4, 5};
         const int N = sizeof(a)/sizeof(a[0]);
-        std::vector<int, min_allocator<int>>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
-                                        forward_iterator<const int*>(a+N));
+        V::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
+                                 forward_iterator<const int*>(a+N));
         assert(v.size() == 100 + N);
         assert(is_contiguous_container_asan_correct(v));
         assert(i == v.begin() + 10);




More information about the libcxx-commits mailing list