BillyONeal updated this revision to Diff 98214. BillyONeal marked 4 inline comments as done. BillyONeal edited the summary of this revision. BillyONeal added a comment.
Instead, change the tests to pass around std::size_t instances, and explicitly narrow when constructing the string type under test. This also allows removal of explicit template arguments to std::min. https://reviews.llvm.org/D32574 Files: test/std/strings/basic.string/string.cons/T_size_size.pass.cpp Index: test/std/strings/basic.string/string.cons/T_size_size.pass.cpp =================================================================== --- test/std/strings/basic.string/string.cons/T_size_size.pass.cpp +++ test/std/strings/basic.string/string.cons/T_size_size.pass.cpp @@ -27,16 +27,17 @@ template <class S, class SV> void -test(SV sv, unsigned pos, unsigned n) +test(SV sv, std::size_t pos, std::size_t n) { typedef typename S::traits_type T; typedef typename S::allocator_type A; + typedef typename S::size_type Size; if (pos <= sv.size()) { - S s2(sv, pos, n); + S s2(sv, static_cast<Size>(pos), static_cast<Size>(n)); LIBCPP_ASSERT(s2.__invariants()); assert(pos <= sv.size()); - unsigned rlen = std::min<unsigned>(sv.size() - pos, n); + std::size_t rlen = std::min(sv.size() - pos, n); assert(s2.size() == rlen); assert(T::compare(s2.data(), sv.data() + pos, rlen) == 0); assert(s2.get_allocator() == A()); @@ -47,7 +48,7 @@ { try { - S s2(sv, pos, n); + S s2(sv, static_cast<Size>(pos), static_cast<Size>(n)); assert(false); } catch (std::out_of_range&) @@ -60,15 +61,16 @@ template <class S, class SV> void -test(SV sv, unsigned pos, unsigned n, const typename S::allocator_type& a) +test(SV sv, std::size_t pos, std::size_t n, const typename S::allocator_type& a) { typedef typename S::traits_type T; + typedef typename S::size_type Size; if (pos <= sv.size()) { - S s2(sv, pos, n, a); + S s2(sv, static_cast<Size>(pos), static_cast<Size>(n), a); LIBCPP_ASSERT(s2.__invariants()); assert(pos <= sv.size()); - unsigned rlen = std::min<unsigned>(sv.size() - pos, n); + std::size_t rlen = std::min(sv.size() - pos, n); assert(s2.size() == rlen); assert(T::compare(s2.data(), sv.data() + pos, rlen) == 0); assert(s2.get_allocator() == a); @@ -79,7 +81,7 @@ { try { - S s2(sv, pos, n, a); + S s2(sv, static_cast<Size>(pos), static_cast<Size>(n), a); assert(false); } catch (std::out_of_range&)
Index: test/std/strings/basic.string/string.cons/T_size_size.pass.cpp =================================================================== --- test/std/strings/basic.string/string.cons/T_size_size.pass.cpp +++ test/std/strings/basic.string/string.cons/T_size_size.pass.cpp @@ -27,16 +27,17 @@ template <class S, class SV> void -test(SV sv, unsigned pos, unsigned n) +test(SV sv, std::size_t pos, std::size_t n) { typedef typename S::traits_type T; typedef typename S::allocator_type A; + typedef typename S::size_type Size; if (pos <= sv.size()) { - S s2(sv, pos, n); + S s2(sv, static_cast<Size>(pos), static_cast<Size>(n)); LIBCPP_ASSERT(s2.__invariants()); assert(pos <= sv.size()); - unsigned rlen = std::min<unsigned>(sv.size() - pos, n); + std::size_t rlen = std::min(sv.size() - pos, n); assert(s2.size() == rlen); assert(T::compare(s2.data(), sv.data() + pos, rlen) == 0); assert(s2.get_allocator() == A()); @@ -47,7 +48,7 @@ { try { - S s2(sv, pos, n); + S s2(sv, static_cast<Size>(pos), static_cast<Size>(n)); assert(false); } catch (std::out_of_range&) @@ -60,15 +61,16 @@ template <class S, class SV> void -test(SV sv, unsigned pos, unsigned n, const typename S::allocator_type& a) +test(SV sv, std::size_t pos, std::size_t n, const typename S::allocator_type& a) { typedef typename S::traits_type T; + typedef typename S::size_type Size; if (pos <= sv.size()) { - S s2(sv, pos, n, a); + S s2(sv, static_cast<Size>(pos), static_cast<Size>(n), a); LIBCPP_ASSERT(s2.__invariants()); assert(pos <= sv.size()); - unsigned rlen = std::min<unsigned>(sv.size() - pos, n); + std::size_t rlen = std::min(sv.size() - pos, n); assert(s2.size() == rlen); assert(T::compare(s2.data(), sv.data() + pos, rlen) == 0); assert(s2.get_allocator() == a); @@ -79,7 +81,7 @@ { try { - S s2(sv, pos, n, a); + S s2(sv, static_cast<Size>(pos), static_cast<Size>(n), a); assert(false); } catch (std::out_of_range&)
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits