diff --git a/libcxx/include/span b/libcxx/include/span --- a/libcxx/include/span +++ b/libcxx/include/span @@ -327,7 +327,6 @@ subspan(size_type __offset, size_type __count = dynamic_extent) const noexcept { _LIBCPP_ASSERT(__offset <= size(), "span::subspan(offset, count): offset out of range"); - _LIBCPP_ASSERT(__count <= size() || __count == dynamic_extent, "span::subspan(offset, count): count out of range"); if (__count == dynamic_extent) return {data() + __offset, size() - __offset}; _LIBCPP_ASSERT(__count <= size() - __offset, "span::subspan(offset, count): offset + count out of range"); @@ -493,7 +492,6 @@ subspan(size_type __offset, size_type __count = dynamic_extent) const noexcept { _LIBCPP_ASSERT(__offset <= size(), "span::subspan(offset, count): offset out of range"); - _LIBCPP_ASSERT(__count <= size() || __count == dynamic_extent, "span::subspan(offset, count): count out of range"); if (__count == dynamic_extent) return {data() + __offset, size() - __offset}; _LIBCPP_ASSERT(__count <= size() - __offset, "span::subspan(offset, count): offset + count out of range"); diff --git a/libcxx/test/libcxx/containers/views/views.span/span.sub/assert.subspan.pass.cpp b/libcxx/test/libcxx/containers/views/views.span/span.sub/assert.subspan.pass.cpp --- a/libcxx/test/libcxx/containers/views/views.span/span.sub/assert.subspan.pass.cpp +++ b/libcxx/test/libcxx/containers/views/views.span/span.sub/assert.subspan.pass.cpp @@ -38,7 +38,7 @@ TEST_LIBCPP_ASSERT_FAILURE(s.subspan(4), "span::subspan(offset, count): offset out of range"); TEST_LIBCPP_ASSERT_FAILURE(s.subspan<4>(), "span::subspan(): Offset out of range"); - TEST_LIBCPP_ASSERT_FAILURE(s.subspan(0, 4), "span::subspan(offset, count): count out of range"); + TEST_LIBCPP_ASSERT_FAILURE(s.subspan(0, 4), "span::subspan(offset, count): offset + count out of range"); TEST_LIBCPP_ASSERT_FAILURE((s.subspan<0, 4>()), "span::subspan(): Offset + Count out of range"); TEST_LIBCPP_ASSERT_FAILURE(s.subspan(1, 3), "span::subspan(offset, count): offset + count out of range"); @@ -50,7 +50,7 @@ TEST_LIBCPP_ASSERT_FAILURE(s.subspan(4), "span::subspan(offset, count): offset out of range"); // s.subspan<4>() caught at compile-time (tested in libcxx/test/std/containers/views/views.span/span.sub/subspan.verify.cpp) - TEST_LIBCPP_ASSERT_FAILURE(s.subspan(0, 4), "span::subspan(offset, count): count out of range"); + TEST_LIBCPP_ASSERT_FAILURE(s.subspan(0, 4), "span::subspan(offset, count): offset + count out of range"); // s.subspan<0, 4>() caught at compile-time (tested in libcxx/test/std/containers/views/views.span/span.sub/subspan.verify.cpp) TEST_LIBCPP_ASSERT_FAILURE(s.subspan(1, 3), "span::subspan(offset, count): offset + count out of range");