summaryrefslogtreecommitdiff
path: root/libstdc++-v3/src/istream.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/src/istream.cc')
-rw-r--r--libstdc++-v3/src/istream.cc40
1 files changed, 40 insertions, 0 deletions
diff --git a/libstdc++-v3/src/istream.cc b/libstdc++-v3/src/istream.cc
index 0f24340e031..319202ee4c3 100644
--- a/libstdc++-v3/src/istream.cc
+++ b/libstdc++-v3/src/istream.cc
@@ -91,6 +91,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
else
__err |= ios_base::failbit;
}
+ catch(__cxxabiv1::__forced_unwind&)
+ {
+ this->_M_setstate(ios_base::badbit);
+ __throw_exception_again;
+ }
catch(...)
{ this->_M_setstate(ios_base::badbit); }
}
@@ -177,6 +182,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
__sb->sbumpc();
}
}
+ catch(__cxxabiv1::__forced_unwind&)
+ {
+ this->_M_setstate(ios_base::badbit);
+ __throw_exception_again;
+ }
catch(...)
{ this->_M_setstate(ios_base::badbit); }
if (__err)
@@ -251,6 +261,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
*__s = __char_type();
__in.width(0);
}
+ catch(__cxxabiv1::__forced_unwind&)
+ {
+ __in._M_setstate(ios_base::badbit);
+ __throw_exception_again;
+ }
catch(...)
{ __in._M_setstate(ios_base::badbit); }
}
@@ -321,6 +336,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
@@ -401,6 +421,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
@@ -473,6 +498,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
else
__err |= ios_base::failbit;
}
+ catch(__cxxabiv1::__forced_unwind&)
+ {
+ this->_M_setstate(ios_base::badbit);
+ __throw_exception_again;
+ }
catch(...)
{ this->_M_setstate(ios_base::badbit); }
}
@@ -559,6 +589,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
__sb->sbumpc();
}
}
+ catch(__cxxabiv1::__forced_unwind&)
+ {
+ this->_M_setstate(ios_base::badbit);
+ __throw_exception_again;
+ }
catch(...)
{ this->_M_setstate(ios_base::badbit); }
if (__err)
@@ -632,6 +667,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