Author: stl_msft Date: Mon Dec 5 19:14:51 2016 New Revision: 288753 URL: http://llvm.org/viewvc/llvm-project?rev=288753&view=rev Log: [libcxx] [test] D27269: Fix MSVC x64 warning C4267 "conversion from 'size_t' to 'int' [or 'unsigned int'], possible loss of data", part 3/4.
test/std/containers/sequences/vector.bool/copy.pass.cpp test/std/containers/sequences/vector.bool/copy_alloc.pass.cpp test/std/containers/sequences/vector/vector.cons/copy.pass.cpp test/std/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp Change "unsigned s = x.size();" to "typename C::size_type s = x.size();" because that's what it returns. test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp Include <cstddef>, then change "unsigned n = T::length(s);" to "std::size_t n = T::length(s);" because that's what char_traits returns. test/std/strings/basic.string/string.cons/substr.pass.cpp Change unsigned to typename S::size_type because that's what str.size() returns. test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp This was needlessly truncating std::size_t to unsigned. It's being used to compare and initialize std::size_t. Modified: libcxx/trunk/test/std/containers/sequences/vector.bool/copy.pass.cpp libcxx/trunk/test/std/containers/sequences/vector.bool/copy_alloc.pass.cpp libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy.pass.cpp libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp libcxx/trunk/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp libcxx/trunk/test/std/strings/basic.string/string.cons/substr.pass.cpp libcxx/trunk/test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp Modified: libcxx/trunk/test/std/containers/sequences/vector.bool/copy.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/vector.bool/copy.pass.cpp?rev=288753&r1=288752&r2=288753&view=diff ============================================================================== --- libcxx/trunk/test/std/containers/sequences/vector.bool/copy.pass.cpp (original) +++ libcxx/trunk/test/std/containers/sequences/vector.bool/copy.pass.cpp Mon Dec 5 19:14:51 2016 @@ -23,7 +23,7 @@ template <class C> void test(const C& x) { - unsigned s = x.size(); + typename C::size_type s = x.size(); C c(x); LIBCPP_ASSERT(c.__invariants()); assert(c.size() == s); Modified: libcxx/trunk/test/std/containers/sequences/vector.bool/copy_alloc.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/vector.bool/copy_alloc.pass.cpp?rev=288753&r1=288752&r2=288753&view=diff ============================================================================== --- libcxx/trunk/test/std/containers/sequences/vector.bool/copy_alloc.pass.cpp (original) +++ libcxx/trunk/test/std/containers/sequences/vector.bool/copy_alloc.pass.cpp Mon Dec 5 19:14:51 2016 @@ -22,7 +22,7 @@ template <class C> void test(const C& x, const typename C::allocator_type& a) { - unsigned s = x.size(); + typename C::size_type s = x.size(); C c(x, a); LIBCPP_ASSERT(c.__invariants()); assert(c.size() == s); Modified: libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy.pass.cpp?rev=288753&r1=288752&r2=288753&view=diff ============================================================================== --- libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy.pass.cpp (original) +++ libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy.pass.cpp Mon Dec 5 19:14:51 2016 @@ -23,7 +23,7 @@ template <class C> void test(const C& x) { - unsigned s = x.size(); + typename C::size_type s = x.size(); C c(x); LIBCPP_ASSERT(c.__invariants()); assert(c.size() == s); Modified: libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp?rev=288753&r1=288752&r2=288753&view=diff ============================================================================== --- libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp (original) +++ libcxx/trunk/test/std/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp Mon Dec 5 19:14:51 2016 @@ -23,7 +23,7 @@ template <class C> void test(const C& x, const typename C::allocator_type& a) { - unsigned s = x.size(); + typename C::size_type s = x.size(); C c(x, a); LIBCPP_ASSERT(c.__invariants()); assert(c.size() == s); Modified: libcxx/trunk/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp?rev=288753&r1=288752&r2=288753&view=diff ============================================================================== --- libcxx/trunk/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp (original) +++ libcxx/trunk/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp Mon Dec 5 19:14:51 2016 @@ -15,6 +15,7 @@ #include <stdexcept> #include <algorithm> #include <cassert> +#include <cstddef> #include "test_macros.h" #include "test_allocator.h" @@ -27,7 +28,7 @@ test(const charT* s) typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S; typedef typename S::traits_type T; typedef typename S::allocator_type A; - unsigned n = T::length(s); + std::size_t n = T::length(s); S s2(s); LIBCPP_ASSERT(s2.__invariants()); assert(s2.size() == n); @@ -42,7 +43,7 @@ test(const charT* s, const A& a) { typedef std::basic_string<charT, std::char_traits<charT>, A> S; typedef typename S::traits_type T; - unsigned n = T::length(s); + std::size_t n = T::length(s); S s2(s, a); LIBCPP_ASSERT(s2.__invariants()); assert(s2.size() == n); Modified: libcxx/trunk/test/std/strings/basic.string/string.cons/substr.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/basic.string/string.cons/substr.pass.cpp?rev=288753&r1=288752&r2=288753&view=diff ============================================================================== --- libcxx/trunk/test/std/strings/basic.string/string.cons/substr.pass.cpp (original) +++ libcxx/trunk/test/std/strings/basic.string/string.cons/substr.pass.cpp Mon Dec 5 19:14:51 2016 @@ -39,7 +39,7 @@ test(S str, unsigned pos) { S s2(str, pos); LIBCPP_ASSERT(s2.__invariants()); - unsigned rlen = str.size() - pos; + typename S::size_type rlen = str.size() - pos; assert(s2.size() == rlen); assert(T::compare(s2.data(), str.data() + pos, rlen) == 0); assert(s2.get_allocator() == A()); @@ -71,7 +71,7 @@ test(S str, unsigned pos, unsigned n) { S s2(str, pos, n); LIBCPP_ASSERT(s2.__invariants()); - unsigned rlen = std::min<unsigned>(str.size() - pos, n); + typename S::size_type rlen = std::min<typename S::size_type>(str.size() - pos, n); assert(s2.size() == rlen); assert(T::compare(s2.data(), str.data() + pos, rlen) == 0); assert(s2.get_allocator() == A()); @@ -104,7 +104,7 @@ test(S str, unsigned pos, unsigned n, co { S s2(str, pos, n, a); LIBCPP_ASSERT(s2.__invariants()); - unsigned rlen = std::min<unsigned>(str.size() - pos, n); + typename S::size_type rlen = std::min<typename S::size_type>(str.size() - pos, n); assert(s2.size() == rlen); assert(T::compare(s2.data(), str.data() + pos, rlen) == 0); assert(s2.get_allocator() == a); Modified: libcxx/trunk/test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp?rev=288753&r1=288752&r2=288753&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp Mon Dec 5 19:14:51 2016 @@ -22,7 +22,7 @@ void test_val_ctor() { TEST_CONSTEXPR std::bitset<N> v(0xAAAAAAAAAAAAAAAAULL); assert(v.size() == N); - unsigned M = std::min<std::size_t>(N, 64); + std::size_t M = std::min<std::size_t>(N, 64); for (std::size_t i = 0; i < M; ++i) assert(v[i] == ((i & 1) != 0)); for (std::size_t i = M; i < N; ++i) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits