summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/containers/sequences
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2018-11-21 20:53:07 +0000
committerLouis Dionne <ldionne@apple.com>2018-11-21 20:53:07 +0000
commit91614db033bbb16791ce1e34acd570f4aa7605d0 (patch)
treea90326f33dccbfe78c60d3e1069b1724e586f96b /libcxx/test/std/containers/sequences
parent46e3cd76e2afbb14862d552a0331e746742e3f87 (diff)
downloadbcm5719-llvm-91614db033bbb16791ce1e34acd570f4aa7605d0.tar.gz
bcm5719-llvm-91614db033bbb16791ce1e34acd570f4aa7605d0.zip
[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. llvm-svn: 347423
Diffstat (limited to 'libcxx/test/std/containers/sequences')
-rw-r--r--libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp56
1 files changed, 32 insertions, 24 deletions
diff --git a/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp b/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
index 258b9d9f751..b54a96d0bed 100644
--- a/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
@@ -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);
OpenPOWER on IntegriCloud