[libcxx] r193772 - Fixes PR17148
Marshall Clow
mclow.lists at gmail.com
Thu Oct 31 10:23:08 PDT 2013
Author: marshall
Date: Thu Oct 31 12:23:08 2013
New Revision: 193772
URL: http://llvm.org/viewvc/llvm-project?rev=193772&view=rev
Log:
Fixes PR17148
Modified:
libcxx/trunk/include/string
libcxx/trunk/test/strings/basic.string/string.capacity/max_size.pass.cpp
Modified: libcxx/trunk/include/string
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string?rev=193772&r1=193771&r2=193772&view=diff
==============================================================================
--- libcxx/trunk/include/string (original)
+++ libcxx/trunk/include/string Thu Oct 31 12:23:08 2013
@@ -3047,9 +3047,9 @@ basic_string<_CharT, _Traits, _Allocator
{
size_type __m = __alloc_traits::max_size(__alloc());
#if _LIBCPP_BIG_ENDIAN
- return (__m <= ~__long_mask ? __m : __m/2) - 1;
+ return (__m <= ~__long_mask ? __m : __m/2) - __alignment;
#else
- return __m - 1;
+ return __m - __alignment;
#endif
}
Modified: libcxx/trunk/test/strings/basic.string/string.capacity/max_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/strings/basic.string/string.capacity/max_size.pass.cpp?rev=193772&r1=193771&r2=193772&view=diff
==============================================================================
--- libcxx/trunk/test/strings/basic.string/string.capacity/max_size.pass.cpp (original)
+++ libcxx/trunk/test/strings/basic.string/string.capacity/max_size.pass.cpp Thu Oct 31 12:23:08 2013
@@ -21,6 +21,12 @@ void
test(const S& s)
{
assert(s.max_size() >= s.size());
+ {
+ S s2;
+ try { s2.resize(s2.max_size() - 1, 'x'); }
+ catch ( const std::bad_alloc & ) { return ; }
+ assert ( false );
+ }
}
int main()
More information about the cfe-commits
mailing list