diff options
Diffstat (limited to 'libstdc++-v3/src/istream.cc')
-rw-r--r-- | libstdc++-v3/src/istream.cc | 40 |
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 |