]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libstdc++-v3/include/ext/vstring.tcc
re PR other/28145 (C++ (throw() and catch(...) {/* fall through */ } ) and pthread...
[thirdparty/gcc.git] / libstdc++-v3 / include / ext / vstring.tcc
index 7d03017f80b01ff1ee230949da06b98a1349bcc6..7f3478aa9227b37c981139c8ac5a0b71380ca9d3 100644 (file)
@@ -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