From: Marshall Clow Date: Tue, 8 Jul 2014 15:19:40 +0000 (+0000) Subject: Fix some failing tests for the standard containers. The tests were failing in 32... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=56cca89fc3aefa73e0da3e5bd10b9c85209a726a;p=platform%2Fupstream%2Fllvm.git Fix some failing tests for the standard containers. The tests were failing in 32-bit mode because they assumed that std::size_type and make_unsigned::type were always the same type. No change to libc++, just the tests. llvm-svn: 212538 --- diff --git a/libcxx/test/containers/associative/map/types.pass.cpp b/libcxx/test/containers/associative/map/types.pass.cpp index 487b69f..d117def 100644 --- a/libcxx/test/containers/associative/map/types.pass.cpp +++ b/libcxx/test/containers/associative/map/types.pass.cpp @@ -37,31 +37,34 @@ int main() { { - static_assert((std::is_same::key_type, int>::value), ""); - static_assert((std::is_same::mapped_type, double>::value), ""); - static_assert((std::is_same::value_type, std::pair >::value), ""); - static_assert((std::is_same::key_compare, std::less >::value), ""); - static_assert((std::is_same::allocator_type, std::allocator > >::value), ""); - static_assert((std::is_same::reference, std::pair&>::value), ""); - static_assert((std::is_same::const_reference, const std::pair&>::value), ""); - static_assert((std::is_same::pointer, std::pair*>::value), ""); - static_assert((std::is_same::const_pointer, const std::pair*>::value), ""); - static_assert((std::is_same::size_type, std::size_t>::value), ""); - static_assert((std::is_same::difference_type, std::ptrdiff_t>::value), ""); + typedef std::map C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same > >::value), ""); + static_assert((std::is_same&>::value), ""); + static_assert((std::is_same&>::value), ""); + static_assert((std::is_same*>::value), ""); + static_assert((std::is_same*>::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); } #if __cplusplus >= 201103L { - static_assert((std::is_same, min_allocator>>::key_type, int>::value), ""); - static_assert((std::is_same, min_allocator>>::mapped_type, double>::value), ""); - static_assert((std::is_same, min_allocator>>::value_type, std::pair >::value), ""); - static_assert((std::is_same, min_allocator>>::key_compare, std::less >::value), ""); - static_assert((std::is_same, min_allocator>>::allocator_type, min_allocator > >::value), ""); - static_assert((std::is_same, min_allocator>>::reference, std::pair&>::value), ""); - static_assert((std::is_same, min_allocator>>::const_reference, const std::pair&>::value), ""); - static_assert((std::is_same, min_allocator>>::pointer, min_pointer>>::value), ""); - static_assert((std::is_same, min_allocator>>::const_pointer, min_pointer>>::value), ""); - static_assert((std::is_same, min_allocator>>::size_type, std::size_t>::value), ""); - static_assert((std::is_same, min_allocator>>::difference_type, std::ptrdiff_t>::value), ""); + typedef std::map, min_allocator>> C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same > >::value), ""); + static_assert((std::is_same&>::value), ""); + static_assert((std::is_same&>::value), ""); + static_assert((std::is_same>>::value), ""); + static_assert((std::is_same>>::value), ""); +// min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); + static_assert((std::is_same::value), ""); } #endif } diff --git a/libcxx/test/containers/associative/multimap/types.pass.cpp b/libcxx/test/containers/associative/multimap/types.pass.cpp index 82132f1..a0f4db0 100644 --- a/libcxx/test/containers/associative/multimap/types.pass.cpp +++ b/libcxx/test/containers/associative/multimap/types.pass.cpp @@ -37,31 +37,34 @@ int main() { { - static_assert((std::is_same::key_type, int>::value), ""); - static_assert((std::is_same::mapped_type, double>::value), ""); - static_assert((std::is_same::value_type, std::pair >::value), ""); - static_assert((std::is_same::key_compare, std::less >::value), ""); - static_assert((std::is_same::allocator_type, std::allocator > >::value), ""); - static_assert((std::is_same::reference, std::pair&>::value), ""); - static_assert((std::is_same::const_reference, const std::pair&>::value), ""); - static_assert((std::is_same::pointer, std::pair*>::value), ""); - static_assert((std::is_same::const_pointer, const std::pair*>::value), ""); - static_assert((std::is_same::size_type, std::size_t>::value), ""); - static_assert((std::is_same::difference_type, std::ptrdiff_t>::value), ""); + typedef std::multimap C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same > >::value), ""); + static_assert((std::is_same&>::value), ""); + static_assert((std::is_same&>::value), ""); + static_assert((std::is_same*>::value), ""); + static_assert((std::is_same*>::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); } #if __cplusplus >= 201103L { - static_assert((std::is_same, min_allocator>>::key_type, int>::value), ""); - static_assert((std::is_same, min_allocator>>::mapped_type, double>::value), ""); - static_assert((std::is_same, min_allocator>>::value_type, std::pair >::value), ""); - static_assert((std::is_same, min_allocator>>::key_compare, std::less >::value), ""); - static_assert((std::is_same, min_allocator>>::allocator_type, min_allocator > >::value), ""); - static_assert((std::is_same, min_allocator>>::reference, std::pair&>::value), ""); - static_assert((std::is_same, min_allocator>>::const_reference, const std::pair&>::value), ""); - static_assert((std::is_same, min_allocator>>::pointer, min_pointer>>::value), ""); - static_assert((std::is_same, min_allocator>>::const_pointer, min_pointer>>::value), ""); - static_assert((std::is_same, min_allocator>>::size_type, std::size_t>::value), ""); - static_assert((std::is_same, min_allocator>>::difference_type, std::ptrdiff_t>::value), ""); + typedef std::multimap, min_allocator>> C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same > >::value), ""); + static_assert((std::is_same&>::value), ""); + static_assert((std::is_same&>::value), ""); + static_assert((std::is_same>>::value), ""); + static_assert((std::is_same>>::value), ""); +// min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); + static_assert((std::is_same::value), ""); } #endif } diff --git a/libcxx/test/containers/associative/multiset/types.pass.cpp b/libcxx/test/containers/associative/multiset/types.pass.cpp index da9c8d6..e1e3ad9 100644 --- a/libcxx/test/containers/associative/multiset/types.pass.cpp +++ b/libcxx/test/containers/associative/multiset/types.pass.cpp @@ -37,31 +37,34 @@ int main() { { - static_assert((std::is_same::key_type, int>::value), ""); - static_assert((std::is_same::value_type, int>::value), ""); - static_assert((std::is_same::key_compare, std::less >::value), ""); - static_assert((std::is_same::value_compare, std::less >::value), ""); - static_assert((std::is_same::allocator_type, std::allocator >::value), ""); - static_assert((std::is_same::reference, int&>::value), ""); - static_assert((std::is_same::const_reference, const int&>::value), ""); - static_assert((std::is_same::pointer, int*>::value), ""); - static_assert((std::is_same::const_pointer, const int*>::value), ""); - static_assert((std::is_same::size_type, std::size_t>::value), ""); - static_assert((std::is_same::difference_type, std::ptrdiff_t>::value), ""); + typedef std::multiset C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); } #if __cplusplus >= 201103L { - static_assert((std::is_same, min_allocator>::key_type, int>::value), ""); - static_assert((std::is_same, min_allocator>::value_type, int>::value), ""); - static_assert((std::is_same, min_allocator>::key_compare, std::less >::value), ""); - static_assert((std::is_same, min_allocator>::value_compare, std::less >::value), ""); - static_assert((std::is_same, min_allocator>::allocator_type, min_allocator>::value), ""); - static_assert((std::is_same, min_allocator>::reference, int&>::value), ""); - static_assert((std::is_same, min_allocator>::const_reference, const int&>::value), ""); - static_assert((std::is_same, min_allocator>::pointer, min_pointer>::value), ""); - static_assert((std::is_same, min_allocator>::const_pointer, min_pointer>::value), ""); - static_assert((std::is_same, min_allocator>::size_type, std::size_t>::value), ""); - static_assert((std::is_same, min_allocator>::difference_type, std::ptrdiff_t>::value), ""); + typedef std::multiset, min_allocator> C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same>::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same>::value), ""); + static_assert((std::is_same>::value), ""); +// min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); + static_assert((std::is_same::value), ""); } #endif } diff --git a/libcxx/test/containers/associative/set/types.pass.cpp b/libcxx/test/containers/associative/set/types.pass.cpp index 8d7bb68..3362c42 100644 --- a/libcxx/test/containers/associative/set/types.pass.cpp +++ b/libcxx/test/containers/associative/set/types.pass.cpp @@ -37,31 +37,34 @@ int main() { { - static_assert((std::is_same::key_type, int>::value), ""); - static_assert((std::is_same::value_type, int>::value), ""); - static_assert((std::is_same::key_compare, std::less >::value), ""); - static_assert((std::is_same::value_compare, std::less >::value), ""); - static_assert((std::is_same::allocator_type, std::allocator >::value), ""); - static_assert((std::is_same::reference, int&>::value), ""); - static_assert((std::is_same::const_reference, const int&>::value), ""); - static_assert((std::is_same::pointer, int*>::value), ""); - static_assert((std::is_same::const_pointer, const int*>::value), ""); - static_assert((std::is_same::size_type, std::size_t>::value), ""); - static_assert((std::is_same::difference_type, std::ptrdiff_t>::value), ""); + typedef std::set C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); } #if __cplusplus >= 201103L { - static_assert((std::is_same, min_allocator>::key_type, int>::value), ""); - static_assert((std::is_same, min_allocator>::value_type, int>::value), ""); - static_assert((std::is_same, min_allocator>::key_compare, std::less >::value), ""); - static_assert((std::is_same, min_allocator>::value_compare, std::less >::value), ""); - static_assert((std::is_same, min_allocator>::allocator_type, min_allocator >::value), ""); - static_assert((std::is_same, min_allocator>::reference, int&>::value), ""); - static_assert((std::is_same, min_allocator>::const_reference, const int&>::value), ""); - static_assert((std::is_same, min_allocator>::pointer, min_pointer>::value), ""); - static_assert((std::is_same, min_allocator>::const_pointer, min_pointer>::value), ""); - static_assert((std::is_same, min_allocator>::size_type, std::size_t>::value), ""); - static_assert((std::is_same, min_allocator>::difference_type, std::ptrdiff_t>::value), ""); + typedef std::set, min_allocator> C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same>::value), ""); + static_assert((std::is_same>::value), ""); +// min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); + static_assert((std::is_same::value), ""); } #endif } diff --git a/libcxx/test/containers/sequences/deque/deque.capacity/resize_size.pass.cpp b/libcxx/test/containers/sequences/deque/deque.capacity/resize_size.pass.cpp index 15f49df..8f732a0 100644 --- a/libcxx/test/containers/sequences/deque/deque.capacity/resize_size.pass.cpp +++ b/libcxx/test/containers/sequences/deque/deque.capacity/resize_size.pass.cpp @@ -43,7 +43,7 @@ void test(C& c1, int size) { typedef typename C::const_iterator CI; - std::size_t c1_osize = c1.size(); + typename C::size_type c1_osize = c1.size(); c1.resize(size); assert(c1.size() == size); assert(distance(c1.begin(), c1.end()) == c1.size()); diff --git a/libcxx/test/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp b/libcxx/test/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp index 727b5d5..1d1522cb 100644 --- a/libcxx/test/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp +++ b/libcxx/test/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp @@ -43,7 +43,7 @@ void test(C& c1, int size, int x) { typedef typename C::const_iterator CI; - std::size_t c1_osize = c1.size(); + typename C::size_type c1_osize = c1.size(); c1.resize(size, x); assert(c1.size() == size); assert(distance(c1.begin(), c1.end()) == c1.size()); diff --git a/libcxx/test/containers/sequences/deque/types.pass.cpp b/libcxx/test/containers/sequences/deque/types.pass.cpp index d32b65c..da9470d 100644 --- a/libcxx/test/containers/sequences/deque/types.pass.cpp +++ b/libcxx/test/containers/sequences/deque/types.pass.cpp @@ -82,7 +82,8 @@ int main() static_assert((std::is_same::value), ""); static_assert((std::is_same>::value), ""); static_assert((std::is_same>::value), ""); - static_assert((std::is_same::value), ""); +// min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); static_assert((std::is_same::value), ""); } #endif diff --git a/libcxx/test/containers/sequences/forwardlist/types.pass.cpp b/libcxx/test/containers/sequences/forwardlist/types.pass.cpp index 68cebf9..c955487 100644 --- a/libcxx/test/containers/sequences/forwardlist/types.pass.cpp +++ b/libcxx/test/containers/sequences/forwardlist/types.pass.cpp @@ -32,22 +32,29 @@ int main() { - static_assert((std::is_same::value_type, char>::value), ""); - static_assert((std::is_same::allocator_type, std::allocator >::value), ""); - static_assert((std::is_same::reference, char&>::value), ""); - static_assert((std::is_same::const_reference, const char&>::value), ""); - static_assert((std::is_same::pointer, char*>::value), ""); - static_assert((std::is_same::const_pointer, const char*>::value), ""); - static_assert((std::is_same::size_type, std::size_t>::value), ""); - static_assert((std::is_same::difference_type, std::ptrdiff_t>::value), ""); + { + typedef std::forward_list C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + } #if __cplusplus >= 201103L - static_assert((std::is_same>::value_type, char>::value), ""); - static_assert((std::is_same>::allocator_type, min_allocator >::value), ""); - static_assert((std::is_same>::reference, char&>::value), ""); - static_assert((std::is_same>::const_reference, const char&>::value), ""); - static_assert((std::is_same>::pointer, min_pointer>::value), ""); - static_assert((std::is_same>::const_pointer, min_pointer>::value), ""); - static_assert((std::is_same>::size_type, std::size_t>::value), ""); - static_assert((std::is_same>::difference_type, std::ptrdiff_t>::value), ""); + { + typedef std::forward_list> C; + static_assert((std::is_same::value), ""); + static_assert((std::is_same >::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same::value), ""); + static_assert((std::is_same>::value), ""); + static_assert((std::is_same>::value), ""); +// min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); + static_assert((std::is_same::value), ""); + } #endif } diff --git a/libcxx/test/containers/unord/unord.map/types.pass.cpp b/libcxx/test/containers/unord/unord.map/types.pass.cpp index 2f3eab1..b53ff8e 100644 --- a/libcxx/test/containers/unord/unord.map/types.pass.cpp +++ b/libcxx/test/containers/unord/unord.map/types.pass.cpp @@ -64,7 +64,8 @@ int main() static_assert((std::is_same::value), ""); static_assert((std::is_same>::value), ""); static_assert((std::is_same>::value), ""); - static_assert((std::is_same::value), ""); + // min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); static_assert((std::is_same::value), ""); } #endif diff --git a/libcxx/test/containers/unord/unord.multimap/types.pass.cpp b/libcxx/test/containers/unord/unord.multimap/types.pass.cpp index 5235415..55ae749 100644 --- a/libcxx/test/containers/unord/unord.multimap/types.pass.cpp +++ b/libcxx/test/containers/unord/unord.multimap/types.pass.cpp @@ -64,7 +64,8 @@ int main() static_assert((std::is_same::value), ""); static_assert((std::is_same>::value), ""); static_assert((std::is_same>::value), ""); - static_assert((std::is_same::value), ""); + // min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); static_assert((std::is_same::value), ""); } #endif diff --git a/libcxx/test/containers/unord/unord.multiset/types.pass.cpp b/libcxx/test/containers/unord/unord.multiset/types.pass.cpp index 82b403d..5222222 100644 --- a/libcxx/test/containers/unord/unord.multiset/types.pass.cpp +++ b/libcxx/test/containers/unord/unord.multiset/types.pass.cpp @@ -61,7 +61,8 @@ int main() static_assert((std::is_same::value), ""); static_assert((std::is_same>::value), ""); static_assert((std::is_same>::value), ""); - static_assert((std::is_same::value), ""); + // min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); static_assert((std::is_same::value), ""); } #endif diff --git a/libcxx/test/containers/unord/unord.set/types.pass.cpp b/libcxx/test/containers/unord/unord.set/types.pass.cpp index be0b359..7e752a4 100644 --- a/libcxx/test/containers/unord/unord.set/types.pass.cpp +++ b/libcxx/test/containers/unord/unord.set/types.pass.cpp @@ -61,7 +61,8 @@ int main() static_assert((std::is_same::value), ""); static_assert((std::is_same>::value), ""); static_assert((std::is_same>::value), ""); - static_assert((std::is_same::value), ""); + // min_allocator doesn't have a size_type, so one gets synthesized + static_assert((std::is_same::type>::value), ""); static_assert((std::is_same::value), ""); } #endif