diff --git a/libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp b/libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp --- a/libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp +++ b/libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp @@ -15,6 +15,10 @@ // // REQUIRES: long_tests +// Unsupported for no-exceptions builds because they have no way to report an +// allocation failure when attempting to allocate the 2GiB string. +// UNSUPPORTED: no-exceptions + #include #include #include "test_macros.h" @@ -28,18 +32,14 @@ int main(int, char**) { -#ifndef TEST_HAS_NO_EXCEPTIONS try { -#endif std::string str(2147483648, 'a'); SB sb; sb.str(str); assert(sb.pubpbase() <= sb.pubpptr()); -#ifndef TEST_HAS_NO_EXCEPTIONS } catch (const std::length_error &) {} // maybe the string can't take 2GB catch (const std::bad_alloc &) {} // maybe we don't have enough RAM -#endif return 0; }