diff options
Diffstat (limited to 'libstdc++-v3/include/ext/vstring.tcc')
-rw-r--r-- | libstdc++-v3/include/ext/vstring.tcc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libstdc++-v3/include/ext/vstring.tcc b/libstdc++-v3/include/ext/vstring.tcc index 7d03017f80b..7f3478aa922 100644 --- a/libstdc++-v3/include/ext/vstring.tcc +++ b/libstdc++-v3/include/ext/vstring.tcc @@ -38,6 +38,8 @@ #pragma GCC system_header +#include <cxxabi-internal.h> + _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) template<typename _CharT, typename _Traits, typename _Alloc, @@ -598,6 +600,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std) __err |= __ios_base::eofbit; __in.width(0); } + catch(__cxxabiv1::__forced_unwind&) + { + __in._M_setstate(__ios_base::badbit); + __throw_exception_again; + } catch(...) { // _GLIBCXX_RESOLVE_LIB_DEFECTS @@ -669,6 +676,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std) else __err |= __ios_base::failbit; } + catch(__cxxabiv1::__forced_unwind&) + { + __in._M_setstate(__ios_base::badbit); + __throw_exception_again; + } catch(...) { // _GLIBCXX_RESOLVE_LIB_DEFECTS |