Add a catch for std::length_error for the case where the string can't handle 2GB. (like say 32-bit big-endian)

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@325147 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Marshall Clow
2018-02-14 18:05:25 +00:00
parent 26a02748eb
commit 078dd9752d

View File

@@ -32,12 +32,13 @@ int main()
#ifndef TEST_HAS_NO_EXCEPTIONS
try {
#endif
std::string str(2147483648, 'a');
SB sb;
sb.str(str);
assert(sb.pubpbase() <= sb.pubpptr());
std::string str(2147483648, 'a');
SB sb;
sb.str(str);
assert(sb.pubpbase() <= sb.pubpptr());
#ifndef TEST_HAS_NO_EXCEPTIONS
}
catch (const std::bad_alloc &) {}
}
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
}