diff options
Diffstat (limited to 'libcxx/test/std/strings/basic.string/string.cons')
-rw-r--r-- | libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp index edc0f124f69..144a1ab1f58 100644 --- a/libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp @@ -31,7 +31,7 @@ test(SV sv, unsigned pos, unsigned n) { typedef typename S::traits_type T; typedef typename S::allocator_type A; - try + if (pos <= sv.size()) { S s2(sv, pos, n); LIBCPP_ASSERT(s2.__invariants()); @@ -42,10 +42,20 @@ test(SV sv, unsigned pos, unsigned n) assert(s2.get_allocator() == A()); assert(s2.capacity() >= s2.size()); } - catch (std::out_of_range&) +#ifndef TEST_HAS_NO_EXCEPTIONS + else { - assert(pos > sv.size()); + try + { + S s2(sv, pos, n); + assert(false); + } + catch (std::out_of_range&) + { + assert(pos > sv.size()); + } } +#endif } template <class S, class SV> @@ -162,5 +172,5 @@ int main() S s7(s.data(), 2); // calls ctor(const char *, len) assert(s7 == "AB"); - } + } } |