diff options
author | Ville Voutilainen <ville.voutilainen@gmail.com> | 2015-12-18 15:17:09 +0000 |
---|---|---|
committer | Ville Voutilainen <ville.voutilainen@gmail.com> | 2015-12-18 15:17:09 +0000 |
commit | 2f4e75490acbc2eea3632f7cc5608b30f3e0e498 (patch) | |
tree | 3a8a381d19ed873a3737382ce8497fdea199988f /libstdc++-v3/src | |
parent | 8780060c776dee675bed3fcdb3cbbb675e6a8e66 (diff) |
2015-12-18 Ville Voutilainen <ville.voutilainen@gmail.com>
PR libstdc++/68276
* src/c++11/ios.cc (_M_grow_words): Use nothrow new.
* testsuite/27_io/ios_base/storage/11584.cc: Adjust.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@231819 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/src')
-rw-r--r-- | libstdc++-v3/src/c++11/ios.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/libstdc++-v3/src/c++11/ios.cc b/libstdc++-v3/src/c++11/ios.cc index 4adc7019293..f701e61f0d0 100644 --- a/libstdc++-v3/src/c++11/ios.cc +++ b/libstdc++-v3/src/c++11/ios.cc @@ -121,9 +121,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION if (__ix < numeric_limits<int>::max()) { __newsize = __ix + 1; - __try - { __words = new _Words[__newsize]; } - __catch(const std::bad_alloc&) + __words = new (std::nothrow) _Words[__newsize]; + if (!__words) { _M_streambuf_state |= badbit; if (_M_streambuf_state & _M_exception) |