]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libstdc++-v3/ChangeLog
re PR libstdc++/9371 (Bad exception handling in i/ostream::operator>>/<<(streambuf*))
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
index 243dcbdfd6b2e8f21fb4f0835b769788f9d6b19f..fd4aaaf3d1ebf173e89139ded9c32717375b5364 100644 (file)
@@ -1,3 +1,56 @@
+2003-11-26  Benjamin Kosnik  <bkoz@redhat.com>
+
+       PR libstdc++/9371
+       PR libstdc++/9546
+       PR libstdc++/10093
+       PR libstdc++/10095
+       * include/bits/basic_ios.h (basic_ios::setstate): Elide if goodbit.
+       (basic_ios::_M_setstate): Consolidate common error handling code.
+       * include/bits/basic_ios.tcc: Tweak.
+       * include/bits/fstream.tcc: Tweak.
+       * include/bits/istream.tcc: Use _M_setstate for common exception
+       handling. Move setstate calls after catch. 
+       (basic_istream::tellg): Check for exceptions thrown by streambuf
+       virtual functions.
+       (basic_istream::seekg): Same.
+       * include/bits/ostream.tcc: Same, but for ostream.
+       (basic_ostream::flush): Check for exceptions thrown by streambuf
+       virtual functions.
+       (basic_istream::tellp): Same.   
+       (basic_istream::seekp): Same.
+       * include/bits/locale_facets.tcc: Tweak.
+       * include/bits/streambuf.tcc: Tweak.
+       (__copy_streambufs): Propagate exceptions.
+       * testsuite/testsuite_io.h (fail_streambuf): New.
+       (fail_num_get): New.
+       (fail_num_put): New.
+       (facet_error): New.
+       (underflow_error): New.
+       (overflow_error): New.  
+       (positioning_error): New.       
+       * testsuite/27_io/basic_istream/exceptions/char/9561.cc: Tweak.
+       * testsuite/27_io/basic_istream/extractors_arithmetic/char/
+        exceptions_badbit_throw.cc, exceptions_failbit.cc,
+        exceptions_failbit_throw.cc: New.
+       * testsuite/27_io/basic_istream/extractors_other/char/
+       error_failbit.cc, exceptions_badbit_throw.cc,
+        exceptions_failbit_throw.cc, exceptions_null.cc: New.
+       * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc: 
+       New.
+       * testsuite/27_io/basic_istream/tellg/char/exceptions_badbit_throw.cc:
+       New.
+       * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
+       New.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/char/
+       exceptions_badbit_throw.cc, exceptions_failbit_throw.cc: New.
+       * testsuite/27_io/basic_ostream/inserters_other/char/
+       error_failbit.cc, exceptions_badbit_throw.cc,
+        exceptions_failbit_throw.cc, exceptions_null.cc: New.
+       * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc: 
+       New.
+       * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc: 
+       New.
+
 2003-11-26  Benjamin Kosnik  <bkoz@redhat.com>
 
        PR libstdc++/12297