aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/ext/vstring.tcc
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/include/ext/vstring.tcc')
-rw-r--r--libstdc++-v3/include/ext/vstring.tcc12
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