]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libstdc++-v3/src/istream.cc
re PR other/28145 (C++ (throw() and catch(...) {/* fall through */ } ) and pthread...
[thirdparty/gcc.git] / libstdc++-v3 / src / istream.cc
index 0f24340e031b6e3c225f231dff2cbfd194eb9caf..319202ee4c3af177e8ec9ac0bd4672c5b0166e89 100644 (file)
@@ -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