aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/27_io/basic_istream
AgeCommit message (Collapse)AuthorFilesLines
2024-07-24libstdc++: Add file-io-diff to replace @diff@ markup in I/O testsJonathan Wakely12-37/+73
This adds a new dg-final action to compare two files after a test has run, so that we can verify that fstream operations produce the expected results. With this change, all uses of @diff@ that seem potentially useful have been converted to actually compare the files and FAIL if they differ. The file-io-diff action can take two arguments naming the files to be compared, or for convenience it can take a single string and will compare STR.tst and STR.txt, as that's how it's commonly used. Additionally, all remaining uses of @require@ are converted to dg-additional-files directives, so that the TODO in libstdc++.exp can be resolved. libstdc++-v3/ChangeLog: * testsuite/27_io/basic_filebuf/close/char/1.cc: Remove @require@ and @diff@. Use dg-final file-io-diff action. * testsuite/27_io/basic_istream/extractors_other/char/2.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/get/char/2.cc: Likewise. * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/3.cc: Likewise. * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise. * testsuite/27_io/basic_istream/peek/wchar_t/6414.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/fstream.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/fstream.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc: Likewise. * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc: Likewise. * testsuite/27_io/ios_base/sync_with_stdio/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise. Check file positions. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc: Likewise. * testsuite/lib/libstdc++.exp (file-io-diff): New proc.
2024-07-24libstdc++: Replace @require@ markup in some I/O testsJonathan Wakely8-24/+16
We can replace the @require@ markup with { dg-additional-files ... } directives, so that the required files are explicitly named and are explicitly copied into place for tests that require it. This will allow a later change to remove the "Copy all required data files" step in the proc libstdc++_init in testsuite/lib/libstdc++.exp that is marked TODO. This commit uses dg-additional-files for a subset of the files that contain @require@. Also remove the @diff@ markup where appears to be copy & pasted from other test files, and so serves no purpose. For example, there is no output file created by 27_io/basic_ifstream/cons/char/1.cc so there is nothing for @diff@ to compare. Maybe the purpose was to check that reading the .tst file with an ifstream doesn't change it, but we've survived without doing those comparisons for many years so I think we can remove those cases of @diff@ markup. libstdc++-v3/ChangeLog: * testsuite/27_io/basic_filebuf/close/char/2.cc: Remove @require@ and @diff@ markup. Use dg-additional-files. Remove unused variable. * testsuite/27_io/basic_filebuf/close/char/3.cc: Remove @require@ and @diff@ markup. Use dg-additional-files. * testsuite/27_io/basic_filebuf/close/char/4.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/5.cc: Likewise. * testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/is_open/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/open/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/open/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Likewise. Remove unused variable. * testsuite/27_io/basic_filebuf/sputn/char/2-in.cc: Remove @require@ and @diff@ markup. Use dg-additional-files. * testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc: Likewise. * testsuite/27_io/basic_ifstream/cons/char/1.cc: Likewise. * testsuite/27_io/basic_ifstream/open/char/1.cc: Likewise. * testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc: Likewise. * testsuite/27_io/basic_istream/readsome/char/6746-2.cc: Likewise. * testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/sstream.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/1.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/sstream.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise. * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise. * testsuite/lib/dg-options.exp (dg-additional-files): Append to v3_additional_files instead of replacing. * testsuite/lib/libstdc++.exp (v3_target_compile): Reset v3_additional_files after copying files.
2024-04-15libstdc++: Fix infinite loop in std::istream::ignore(n, delim) [PR93672]Jonathan Wakely2-0/+135
A negative delim value passed to std::istream::ignore can never match any character in the stream, because the comparison is done using traits_type::eq_int_type(sb->sgetc(), delim) and sgetc() never returns negative values (except at EOF). The optimized version of ignore for the std::istream specialization uses traits_type::find to locate the delim character in the streambuf, which _can_ match a negative delim on platforms where char is signed, but then we do another comparison using eq_int_type which fails. The code then keeps looping forever, with traits_type::find locating the character and traits_type::eq_int_type saying it's not a match, so traits_type::find is used again and finds the same character again. A possible fix would be to check with eq_int_type after a successful find, to see whether we really have a match. However, that would be suboptimal since we know that a negative delimiter will never match using eq_int_type. So a better fix is to adjust the check at the top of the function that handles delim==eof(), so that we treat all negative delim values as equivalent to EOF. That way we don't bother using find to search for something that will never match with eq_int_type. The version of ignore in the primary template doesn't need a change, because it doesn't use traits_type::find, instead characters are extracted one-by-one and always matched using eq_int_type. That avoids the inconsistency between find and eq_int_type. The specialization for std::wistream does use traits_type::find, but traits_type::to_int_type is equivalent to an implicit conversion from wchar_t to wint_t, so passing a wchar_t directly to ignore without using to_int_type works. libstdc++-v3/ChangeLog: PR libstdc++/93672 * src/c++98/istream.cc (istream::ignore(streamsize, int_type)): Treat all negative delimiter values as eof(). * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test. * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New test.
2024-01-03Update copyright years.Jakub Jelinek180-180/+180
2023-09-16libstdc++: Remove dg-options "-std=gnu++20" from 27_io testsJonathan Wakely4-8/+4
The testsuite will automatically select C++20 for these tests now, and removing the hardcoded -std option allows them to be tested for C++23 and C++26 as well. libstdc++-v3/ChangeLog: * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc: Remove dg-options -std=gnu++2a. * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc: Likewise. * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise. * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise. * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise. * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/emit/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc: Likewise. * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise. * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise. * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise. * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise. * testsuite/27_io/basic_stringstream/cons/char/97719.cc: Likewise. * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise. * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc: Likewise. * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise. * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_syncbuf/1.cc: Likewise. * testsuite/27_io/basic_syncbuf/2.cc: Likewise. * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise. * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise. * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise. * testsuite/27_io/basic_syncstream/1.cc: Likewise. * testsuite/27_io/basic_syncstream/2.cc: Likewise. * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise. * testsuite/27_io/basic_syncstream/requirements/types.cc: Likewise. * testsuite/27_io/filesystem/iterators/106201.cc: Likewise. * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise. * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Likewise. * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc: Likewise.
2023-06-10testsuite: Cut down 27_io/basic_istream/.../94749.cc for simulatorsHans-Peter Nilsson2-2/+2
The test wchar_t/94749.cc can take about 10 minutes on some simulator/host combinations with char/94749.cc at a third of that time. The cause is test05 which is quite heavy and includes wrapping a 32-bit counter. Run it only for native setups. * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main) [! SIMULATOR_TEST]: Also exclude running test05. * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
2023-06-07libstdc++: Fix some tests that fail with -fexcess-precision=standardJonathan Wakely6-6/+6
libstdc++-v3/ChangeLog: * testsuite/20_util/duration/cons/2.cc: Use values that aren't affected by rounding. * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to double before comparing for equality. * testsuite/20_util/from_chars/6.cc: Likewise. * testsuite/20_util/variant/86874.cc: Use values that aren't affected by rounding. * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to original value instead of to floating-point-literal. * testsuite/26_numerics/random/discrete_distribution/cons/range.cc: Cast arithmetic result to double before comparing for equality. * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc: Likewise. * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc: Likewise. * testsuite/26_numerics/valarray/transcend.cc (eq): Check that the absolute difference is less than 0.01 instead of comparing to two decimal places. * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc: Cast arithmetic result to double before comparing for equality. * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc: Likewise. * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
2023-01-16Update copyright years.Jakub Jelinek180-180/+180
2022-07-12libstdc++: Check for EOF if extraction avoids buffer overflow [PR106248]Jonathan Wakely2-0/+80
In r11-2581-g17abcc77341584 (for LWG 2499) I added overflow checks to the pre-C++20 operator>>(istream&, char*) overload. Those checks can cause extraction to stop after filling the buffer, where previously it would have tried to extract another character and stopped at EOF. When that happens we no longer set eofbit in the stream state, which is consistent with the behaviour of the new C++20 overload, but is an observable and unexpected change in the C++17 behaviour. What makes it worse is that the behaviour change is dependent on optimization, because __builtin_object_size is used to detect the buffer size and that only works when optimizing. To avoid the unexpected and optimization-dependent change in behaviour, set eofbit manually if we stopped extracting because of the buffer size check, but had reached EOF anyway. If the stream's rdstate() != goodbit or width() is non-zero and smaller than the buffer, there's nothing to do. Otherwise, we filled the buffer and need to check for EOF, and maybe set eofbit. The new check is guarded by #ifdef __OPTIMIZE__ because otherwise __builtin_object_size is useless. There's no point compiling and emitting dead code that can't be eliminated because we're not optimizing. We could add extra checks that the next character in the buffer is not whitespace, to detect the case where we stopped early and prevented a buffer overflow that would have happened otherwise. That would allow us to assert or set badbit in the stream state when undefined behaviour was prevented. However, those extra checks would increase the size of the function, potentially reducing the likelihood of it being inlined, and so making the buffer size detection less reliable. It seems preferable to prevent UB and silently truncate, rather than miss the UB and allow the overflow to happen. libstdc++-v3/ChangeLog: PR libstdc++/106248 * include/std/istream [C++17] (operator>>(istream&, char*)): Set eofbit if we stopped extracting at EOF. * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc: New test. * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc: New test.
2022-01-30libstdc++ testsuite: Don't run lwg3464.cc tests on simulatorsHans-Peter Nilsson2-2/+2
These tests have always been failing for my autotester running a cris-elf simulator; when unrestrained they take about 20 minutes each, compared to the (doubled) timeout of 720 seconds, of a total 2h40min for the whole of the libstdc++-v3 testsuite. The tests cover counter overflow and are already disabled for LP64 targets. * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on simulator targets. * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
2022-01-03Update copyright years.Jakub Jelinek180-180/+180
2021-11-26libstdc++: Fix dg-do directive for tests supposed to be runJonathan Wakely1-1/+1
libstdc++-v3/ChangeLog: * testsuite/23_containers/unordered_map/modifiers/move_assign.cc: Change dg-do compile to run. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc: Likewise.
2021-06-28libstdc++: Implement LWG 415 for std::wsJonathan Wakely2-0/+154
For C++11 std::ws changed to be an unformatted input function, meaning it constructs a sentry and sets badbit on exceptions. libstdc++-v3/ChangeLog: * doc/xml/manual/intro.xml: Document LWG 415 change. * doc/html/manual/bugs.html: Regenerate. * include/bits/istream.tcc (ws): Create sentry and catch exceptions. * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test. * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
2021-05-07libstdc++: Fix constraints for rvalue stream insertion/extractionJonathan Wakely2-2/+2
The __rval_streamable() function was an attempt to test for convertibility cheaply and without confusing diagnostics. It doesn't work with Clang though, and is probably ill-formed. Replace that helper function with a check for derivation from ios_base, and use that in the alias templates __rvalue_stream_insertion_t and __rvalue_stream_extraction_t. Use concepts for the constraints when available. libstdc++-v3/ChangeLog: * include/std/istream (__rvalue_stream_extraction_t): Replace use of __rval_streamable. * include/std/ostream (__rvalue_stream_insertion_t): Likewise. (__rval_streamable): Remove. (_Require_derived_from_ios_base, __derived_from_ios_base): New helper for checking constraints. * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix reference to the wrong subclause of the standard. * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc: New test. * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned errors.
2021-04-30libstdc++: Implement LWG 1203 for rvalue iostreamsJonathan Wakely4-108/+62
This implements the resolution of LWG 1203 so that the constraints for rvalue stream insertion/extraction are simpler, and the return type is the original rvalue stream type not its base class. Signed-off-by: Jonathan Wakely <jwakely@redhat.com> libstdc++-v3/ChangeLog: * include/std/istream (operator>>(Istream&&, x&)): Simplify, as per LWG 1203. * include/std/ostream (operator<<(Ostream&&, const x&)): Likewise. * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc: Adjust dg-error pattern. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define is_extractable trait to replace std::__is_extractable. Make it work with rvalue streams as well as lvalues, to replace f() and g() helper functions. * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: Define is_insertable trait to replace std::__is_insertable. Make it work with rvalue streams as well as lvalues, to replace f() and g() helper functions. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: Likewise. * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional errors from new constraints. * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks, which are no longer expected to compile. * testsuite/27_io/rvalue_streams.cc: Adjust existing test. Verify LWG 1203 changes.
2021-01-04Update copyright years.Jakub Jelinek180-180/+180
2020-12-02libstdc++: Use longer timeout for istream::gcount() overflow testsJonathan Wakely2-0/+2
On targets with 32-bit poitners these tests do extra work, so give them longer to run. libstdc++-v3/ChangeLog: * testsuite/27_io/basic_istream/ignore/char/94749.cc: Add dg-timeout-factor for ilp32 targets. * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: Likewise.
2020-12-01libstdc++: Use longer timeout for slow running testsJonathan Wakely2-0/+2
libstdc++-v3/ChangeLog: * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Add dg-timeout-factor directive. * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
2020-08-06libstdc++: Do not set eofbit eagerly in operator>>(istream&, char(&)[N])Jonathan Wakely2-0/+108
Similar to the bugs I fixed recently in istream::ignore, we incorrectly set eofbit too often in operator>>(istream&, string&) and operator>>(istream&. char(&)[N]). We should only set eofbit if we reach EOF but would have kept going otherwise. If we've already extracted the maximum number of characters (whether that's because of the buffer size or the istream's width()) then we should not set eofbit. libstdc++-v3/ChangeLog: * include/bits/basic_string.tcc (operator>>(basic_istream&, basic_string&)): Do not set eofbit if extraction stopped after in.width() characters. * src/c++98/istream-string.cc (operator>>(istream&, string&)): Likewise. * include/bits/istream.tcc (__istream_extract): Do not set eofbit if extraction stopped after n-1 characters. * src/c++98/istream.cc (__istream_extract): Likewise. * testsuite/21_strings/basic_string/inserters_extractors/char/13.cc: New test. * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc: New test. * testsuite/27_io/basic_istream/extractors_character/char/5.cc: New test. * testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc: New test.
2020-08-06libstdc++: Adjust overflow prevention to operator>>Jonathan Wakely2-3/+75
This adjusts the overflow prevention added to operator>> so that we can distinguish "unknown size" from "zero size", and avoid writing anything at all in to zero sized buffers. This also removes the incorrect comment saying extraction stops at a null byte. libstdc++-v3/ChangeLog: * include/std/istream (operator>>(istream&, char*)): Add attributes to get warnings for pointers that are null or known to point to the end of a buffer. Request upper bound from __builtin_object_size check and handle zero-sized buffer case. (operator>>(istream&, signed char)) (operator>>(istream&, unsigned char*)): Add attributes. * testsuite/27_io/basic_istream/extractors_character/char/overflow.cc: Check extracting into the middle of a buffer. * testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc: New test.
2020-08-05libstdc++: Replace operator>>(istream&, char*) [LWG 2499]Jonathan Wakely12-3/+308
P0487R1 resolved LWG 2499 for C++20 by removing the operator>> overloads that have high risk of buffer overflows. They were replaced by equivalents that only accept a reference to an array, and so can guarantee not to write past the end of the array. In order to support both the old and new functionality, this patch introduces a new overloaded __istream_extract function which takes a maximum length. The new operator>> overloads use the array size as the maximum length. The old overloads now use __builtin_object_size to determine the available buffer size if available (which requires -O2) or use numeric_limits<streamsize>::max()/sizeof(char_type) otherwise. This is a change in behaviour, as the old overloads previously always used numeric_limits<streamsize>::max(), without considering sizeof(char_type) and without attempting to prevent overflows. Because they now do little more than call __istream_extract, the old operator>> overloads are very small inline functions. This means there is no advantage to explicitly instantiating them in the library (in fact that would prevent the __builtin_object_size checks from ever working). As a result, the explicit instantiation declarations can be removed from the header. The explicit instantiation definitions are still needed, for backwards compatibility with existing code that expects to link to the definitions in the library. While working on this change I noticed that src/c++11/istream-inst.cc has the following explicit instantiation definition: template istream& operator>>(istream&, char*); This had no effect (and so should not have been present in that file), because there was an explicit specialization declared in <istream> and defined in src/++98/istream.cc. However, this change removes the explicit specialization, and now the explicit instantiation definition is necessary to ensure the symbol gets defined in the library. libstdc++-v3/ChangeLog: * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Export new symbols. * include/bits/istream.tcc (__istream_extract): New function template implementing both of operator>>(istream&, char*) and operator>>(istream&, char(&)[N]). Add explicit instantiation declaration for it. Remove explicit instantiation declarations for old function templates. * include/std/istream (__istream_extract): Declare. (operator>>(basic_istream<C,T>&, C*)): Define inline and simply call __istream_extract. (operator>>(basic_istream<char,T>&, signed char*)): Likewise. (operator>>(basic_istream<char,T>&, unsigned char*)): Likewise. (operator>>(basic_istream<C,T>&, C(7)[N])): Define for LWG 2499. (operator>>(basic_istream<char,T>&, signed char(&)[N])): Likewise. (operator>>(basic_istream<char,T>&, unsigned char(&)[N])): Likewise. * include/std/streambuf (basic_streambuf): Declare char overload of __istream_extract as a friend. * src/c++11/istream-inst.cc: Add explicit instantiation definition for wchar_t overload of __istream_extract. Remove explicit instantiation definitions of old operator>> overloads for versioned-namespace build. * src/c++98/istream.cc (operator>>(istream&, char*)): Replace with __istream_extract(istream&, char*, streamsize). * testsuite/27_io/basic_istream/extractors_character/char/3.cc: Do not use variable-length array. * testsuite/27_io/basic_istream/extractors_character/char/4.cc: Do not run test for C++20. * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc: Do not test writing to pointers for C++20. * testsuite/27_io/basic_istream/extractors_character/char/9826.cc: Use array instead of pointer. * testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc: Do not use variable-length array. * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc: Do not run test for C++20. * testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc: Do not test writing to pointers for C++20. * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc: New test. * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc: New test. * testsuite/27_io/basic_istream/extractors_character/char/overflow.cc: New test. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc: New test. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc: New test.
2020-07-31libstdc++: Fix tests that fail for C++98Jonathan Wakely2-4/+4
libstdc++-v3/ChangeLog: * testsuite/27_io/basic_istream/ignore/char/94749.cc: Use 0 instead of nullptr. * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: Likewise.
2020-07-20libstdc++: Avoid overflow in istream::get(streambuf&) [LWG 3464]Jonathan Wakely2-0/+182
Similar to the recent changes to basic_istream::ignore, this change ensures that _M_gcount doesn't overflow when extracting characters and inserting them into another streambuf. The solution used here is to use unsigned long long for the count. We assume that the number of characters extracted won't exceed the maximum value for that type, but even if it does we avoid any undefined behaviour. libstdc++-v3/ChangeLog: * include/bits/istream.tcc (basic_istream::get(__streambuf_type&, char_type): Use unsigned long long for counter and check if it would overflow _M_gcount. * testsuite/27_io/basic_istream/get/char/lwg3464.cc: New test. * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: New test.
2020-07-13libstdc++: Fix istream::ignore exit conditions (PR 94749, PR 96161)Jonathan Wakely4-2/+462
My previous fix for PR 94749 did fix the reported case, so that the next character is not discarded if it happens to equal the delimiter when __n characters have already been read. But it introduced a new bug, which is that the delimiter character would *not* be discarded if the number of characters discarded is numeric_limits<streamsize>::max() or more before reaching the delimiter. The new bug happens because I changed the code to check _M_gcount < __n. But when __n == numeric_limits<streamsize>::max() that is false, and so we don't discard the delimiter. It's not sufficient to check for the delimiter when the __large_ignore condition is true, because there's an edge case where the delimiter is reached when _M_gcount == __n and so we break out of the loop without setting __large_ignore. PR 96161 is a similar bug to the original PR 94749 report, where eofbit is set after discarding __n characters if there happen to be no more characters in the stream. This patch fixes both cases (and the regression) by checking different conditions for the __n == max case and the __n < max case. For the former case, we know that we must have either reached the delimiter or EOF, and the value of _M_gcount doesn't matter (except to avoid integer overflow). For the latter case we need to check _M_gcount first and only set eofbit or discard the delimiter if it didn't reach __n. For the latter case overflow can't happen because _M_gcount <= __n < max. libstdc++-v3/ChangeLog: PR libstdc++/94749 PR libstdc++/96161 * include/bits/istream.tcc (basic_istream::ignore(streamsize)) [n == max]: Check overflow conditions on _M_gcount. Rely on the fact that either EOF or the delimiter was reached. [n < max]: Check _M_gcount < n before checking for EOF or delimiter. (basic_istream::ignore(streamsize, char_type): Likewise. * src/c++98/compatibility.cc (istream::ignore(streamsize)) (wistream::ignore(streamsize)): Likewise. * src/c++98/istream.cc (istream::ignore(streamsize, char_type)) (wistream::ignore(streamsize, char_type)): Likewise. * testsuite/27_io/basic_istream/ignore/char/94749.cc: Check that delimiter is discarded if the number of characters ignored doesn't fit in streamsize. * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/96161.cc: New test. * testsuite/27_io/basic_istream/ignore/wchar_t/96161.cc: New test.
2020-06-11libstdc++: Fix istream::ignore discarding too many chars (PR 94749)Jonathan Wakely2-0/+152
The current code assumes that if the next character in the stream is equal to the delimiter then we stopped because we saw that delimiter, and so discards it. But in the testcase for the PR we stop because we reached the maximum number of characters, and it's coincidence that the next character equals the delimiter. We should not discard the next character in that case. The fix is to check that we haven't discarded __n characters already, instead of checking whether the next character equals __delim. Because we've already checked for EOF, if we haven't discarded __n yet then we know we stopped because we saw the delimiter. On the other hand, if the next character is the delimiter we don't know if that's why we stopped. PR libstdc++/94749 * include/bits/istream.tcc (basic_istream::ignore(streamsize, CharT)): Only discard an extra character if we didn't already reach the maximum number. * src/c++98/istream.cc (istream::ignore(streamsiz, char)) (wistream::ignore(streamsize, wchar_t)): Likewise. * testsuite/27_io/basic_istream/ignore/char/94749.cc: New test. * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: New test.
2020-01-01Update copyright years.Jakub Jelinek166-166/+166
From-SVN: r279813
2019-01-01Update copyright years.Jakub Jelinek166-166/+166
From-SVN: r267494
2018-08-3110.cc: Add dg-require-fileio.Sandra Loosemore8-0/+13
2018-08-31 Sandra Loosemore <sandra@codesourcery.com> libstdc++-v3/ * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc: Add dg-require-fileio. * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc: Likewise. * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc: Likewise. * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc: Likewise. * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc: Likewise. * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise. * testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise. * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc: Likewise. * testsuite/27_io/objects/wchar_t/10.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise. * testsuite/experimental/string_view/inserters/wchar_t/2.cc: Likewise. * testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise. From-SVN: r264022
2018-04-10PR libstdc++/85222 allow catching iostream errors as gcc4-compatible ↵Jonathan Wakely6-48/+6
ios::failure Define a new exception type derived from std::ios::failure[abi:cxx11] which also aggregates an object of the gcc4-compatible ios::failure type. Make __throw_ios_failure throw this new type for iostream errors that raise exceptions. Provide custom type info for the new type so that it can be caught by handlers for the gcc4-compatible ios::failure type as well as handlers for ios::failure[abi:cxx11] and its bases. PR libstdc++/85222 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for cxx11-ios_failure.cc to rewrite type info for __ios_failure. * src/c++11/Makefile.in: Regenerate. * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info): New types. [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. * src/c++11/ios.cc (__throw_ios_failure): Remove definition. * src/c++98/ios_failure.cc (__construct_ios_failure) (__destroy_ios_failure, is_ios_failure_handler): New functions. [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. * testsuite/27_io/ios_base/failure/dual_abi.cc: New. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to handler types, to always catch std::ios_base::failure. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/ios_base/storage/2.cc: Likewise. From-SVN: r259281
2018-01-03Update copyright years.Jakub Jelinek166-166/+166
From-SVN: r256169
2017-07-25PR libstdc++/53984 handle exceptions in basic_istream::sentryJonathan Wakely1-0/+41
PR libstdc++/53984 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment. * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions during construction. * include/std/istream: Adjust comments for formatted input functions and unformatted input functions. * testsuite/27_io/basic_fstream/53984.cc: New. * testsuite/27_io/basic_istream/sentry/char/53984.cc: New. From-SVN: r250545
2017-06-16Fix missing returns in libstdc++ header and testsJonathan Wakely1-1/+1
* include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing return statement. * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: Return void. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc: Likewise. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add missing return statements. * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc: Return void. * testsuite/special_functions/14_expint/pr68397.cc: Likewise. From-SVN: r249238
2017-06-14Fix libstdc++ testsuite failures with -D_GLIBCXX_USE_CXX11_ABI=0Jonathan Wakely6-35/+58
* doc/xml/manual/test.xml: Correct instructions on running tests. * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/ios_base/storage/2.cc: Likewise. From-SVN: r249206
2017-02-03PR libstdc++/66145 ensure new ABI for ios::failure testsJonathan Wakely6-0/+18
PR libstdc++/66145 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override so new ios::failure can be caught even when old ABI is the default. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/ios_base/storage/2.cc: Likewise. From-SVN: r245167
2017-01-16PR66145 use new ABI for std::ios::failure exceptionsJonathan Wakely6-18/+0
PR libstdc++/66145 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure exceptions. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI for test, so new ios::failure can be caught. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/ios_base/storage/2.cc: Likewise. From-SVN: r244498
2017-01-01Update copyright years.Jakub Jelinek165-165/+165
From-SVN: r243994
2016-11-30Implement LWG 2534, Constrain rvalue stream operators.Ville Voutilainen2-0/+192
* include/std/istream (__is_convertible_to_basic_istream): New. (__is_extractable): Likewise. (operator>>(basic_istream<_CharT, _Traits>&&, _Tp&&)): Turn the stream parameter into a template parameter and constrain. * include/std/ostream (__is_convertible_to_basic_ostream): New. (__is_insertable): Likewise. (operator<<(basic_ostream<_CharT, _Traits>&&, const _Tp&)): Turn the stream parameter into a template parameter and constrain. * testsuite/27_io/basic_istream/extractors_other/char/4.cc: New. * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: Likewise. From-SVN: r243006
2016-10-1712790-1.cc: Remove 'test' variables.Paolo Carlini157-318/+87
2016-10-17 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/27_io/basic_filebuf/close/12790-1.cc: Remove 'test' variables. * testsuite/27_io/basic_filebuf/close/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/3.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/4.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/5.cc: Likewise. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/cons/2020.cc: Likewise. * testsuite/27_io/basic_filebuf/cons/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/cons/wchar_t/10132-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/12206.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/12868.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc: Likewise. * testsuite/27_io/basic_filebuf/is_open/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/open/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/open/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/open/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/open/char/3.cc: Likewise. * testsuite/27_io/basic_filebuf/open/char/4.cc: Likewise. * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/char/2-unbuf.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/char/3599.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/char/9169.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/char/9988.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-1.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-2.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-3.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-4.cc: Likewise. * testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sbumpc/char/9825.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/10132-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/45628-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/11543.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/12232.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/3-out.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/45628-1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/10132-3.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/char/3-out.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-3.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc: Likewise. * testsuite/27_io/basic_filebuf/setbuf/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/setbuf/char/12875-1.cc: Likewise. * testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc * testsuite/27_io/basic_filebuf/setbuf/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/setbuf/char/3.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sgetn/char/3.cc: Likewise. * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Likewise. * testsuite/27_io/basic_filebuf/showmanyc/char/9533-2.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/snextc/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sputbackc/char/9425.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/59427.cc: Likewise. * testsuite/27_io/basic_filebuf/sputc/char/9701-2.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/59427.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/9339.cc: Likewise. * testsuite/27_io/basic_filebuf/sputn/char/9701-1.cc: Likewise. * testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc: Likewise. * testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc: Likewise. * testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc: Likewise. * testsuite/27_io/basic_filebuf/sync/char/1057.cc: Likewise. * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/char/1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/char/3.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/char/45841.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/char/9027.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-3.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-4.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/45841.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc: Likewise. * testsuite/27_io/basic_fstream/cons/1.cc: Likewise. * testsuite/27_io/basic_fstream/rdbuf/char/2832.cc: Likewise. * testsuite/27_io/basic_ifstream/cons/2020.cc: Likewise. * testsuite/27_io/basic_ifstream/cons/char/1.cc: Likewise. * testsuite/27_io/basic_ifstream/open/char/1.cc: Likewise. * testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc: Likewise. * testsuite/27_io/basic_ios/clear/char/1.cc: Likewise. * testsuite/27_io/basic_ios/cons/2020.cc: Likewise. * testsuite/27_io/basic_ios/cons/char/1.cc: Likewise. * testsuite/27_io/basic_ios/cons/char/2.cc: Likewise. * testsuite/27_io/basic_ios/cons/char/3.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/2.cc: Likewise. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. * testsuite/27_io/basic_ios/imbue/14072.cc: Likewise. * testsuite/27_io/basic_ios/locales/char/1.cc: Likewise. * testsuite/27_io/basic_iostream/cons/2020.cc: Likewise. * testsuite/27_io/basic_istream/cons/3.cc: Likewise. * testsuite/27_io/basic_istream/exceptions/char/9561.cc: Likewise. * testsuite/27_io/basic_istream/exceptions/wchar_t/9561.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/9555-ia.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_failbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/pod/3983-1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/02.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/03.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/06.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/07.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/08.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/11.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/ wchar_t/9555-ia.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ dr696.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_failbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/char/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/char/11095-i.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/char/2.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/char/3.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/char/4.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/pod/3983-2.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/wchar_t/ 11095-i.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_istream/extractors_character/wchar_t/ 9555-ic.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/2.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/26181.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/3.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/9424-in.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/9555-io.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ error_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_failbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/pod/3983-3.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/26181.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/9318-in.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/9424-in.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/9555-io.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ error_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_failbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/get/char/1.cc: Likewise. * testsuite/27_io/basic_istream/get/char/2.cc: Likewise. * testsuite/27_io/basic_istream/get/char/3.cc: Likewise. * testsuite/27_io/basic_istream/get/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/get/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise. * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise. * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise. * testsuite/27_io/basic_istream/getline/char/4.cc: Likewise. * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise. * testsuite/27_io/basic_istream/getline/char/6.cc: Likewise. * testsuite/27_io/basic_istream/getline/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/getline/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/getline/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_istream/getline/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise. * testsuite/27_io/basic_istream/getline/wchar_t/6.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/2.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/3.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise. * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise. * testsuite/27_io/basic_istream/ignore/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_istream/ignore/wchar_t/6360.cc: Likewise. * testsuite/27_io/basic_istream/ignore/wchar_t/7220.cc: Likewise. * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise. * testsuite/27_io/basic_istream/peek/char/12296.cc: Likewise. * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise. * testsuite/27_io/basic_istream/peek/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/peek/wchar_t/12296.cc: Likewise. * testsuite/27_io/basic_istream/peek/wchar_t/6414.cc: Likewise. * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise. * testsuite/27_io/basic_istream/putback/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/read/char/1.cc: Likewise. * testsuite/27_io/basic_istream/read/char/2.cc: Likewise. * testsuite/27_io/basic_istream/read/char/3.cc: Likewise. * testsuite/27_io/basic_istream/read/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/read/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/read/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_istream/readsome/char/6746-1.cc: Likewise. * testsuite/27_io/basic_istream/readsome/char/6746-2.cc: Likewise. * testsuite/27_io/basic_istream/readsome/char/8258.cc: Likewise. * testsuite/27_io/basic_istream/readsome/wchar_t/6746-1.cc: Likewise. * testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc: Likewise. * testsuite/27_io/basic_istream/readsome/wchar_t/8258.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/2.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/26211.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/fstream.cc: Likewise. * testsuite/27_io/basic_istream/seekg/char/sstream.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/26211.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/8348-1.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/8348-2.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc: Likewise. * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/1.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/2.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/3.cc: Likewise. * testsuite/27_io/basic_istream/sentry/pod/1.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/1.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/2.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/26211.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/fstream.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/sstream.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/26211.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/8348.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise. * testsuite/27_io/basic_istream/ws/char/1.cc: Likewise. * testsuite/27_io/basic_istream/ws/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istringstream/cons/2020.cc: Likewise. * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Likewise. * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc: Likewise. * testsuite/27_io/basic_istringstream/str/char/1.cc: Likewise. * testsuite/27_io/basic_istringstream/str/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ofstream/cons/2020.cc: Likewise. * testsuite/27_io/basic_ofstream/cons/char/1.cc: Likewise. * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise. * testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc: Likewise. * testsuite/27_io/basic_ostream/cons/2020.cc: Likewise. * testsuite/27_io/basic_ostream/cons/char/9827.cc: Likewise. * testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc: Likewise. * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/endl/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/ends/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/ends/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/ends/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_ostream/exceptions/char/9561.cc: Likewise. * testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc: Likewise. * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/flush/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/flush/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_ostream/flush/wchar_t/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/7.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/9555-oa.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/ exceptions_failbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/pod/23875.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/7.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/ 9555-oa.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/ exceptions_failbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/11095-oa.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/11095-ob.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/11095-oc.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/28277-3.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/28277-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/3.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/5.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/6.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/8.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/9555-oc.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/ 11095-od.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/ 11095-oe.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/ 11095-of.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/ 28277-1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/ 28277-2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/ 28277-3.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/ 28277-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/ 9555-oc.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/5.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/9318-out.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/9424-out.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/9555-oo.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ error_failbit.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_failbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 9318-out.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 9424-out.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 9555-oo.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_failbit.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_failbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_ostream/put/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/put/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/seekp/char/2346-fstream.cc: Likewise. * testsuite/27_io/basic_ostream/seekp/char/2346-sstream.cc: Likewise. * testsuite/27_io/basic_ostream/seekp/char/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc: Likewise. * testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc: Likewise. * testsuite/27_io/basic_ostream/seekp/wchar_t/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/sentry/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/sentry/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/sentry/pod/1.cc: Likewise. * testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_ostream/tellp/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/tellp/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/tellp/char/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_ostream/tellp/wchar_t/ exceptions_badbit_throw.cc: Likewise. * testsuite/27_io/basic_ostream/write/char/1.cc: Likewise. * testsuite/27_io/basic_ostream/write/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostringstream/cons/2020.cc: Likewise. * testsuite/27_io/basic_ostringstream/cons/char/3.cc: Likewise. * testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc: Likewise. * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc: Likewise. * testsuite/27_io/basic_ostringstream/str/char/1.cc: Likewise. * testsuite/27_io/basic_ostringstream/str/char/2.cc: Likewise. * testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_streambuf/cons/2020.cc: Likewise. * testsuite/27_io/basic_streambuf/cons/57394.cc: Likewise. * testsuite/27_io/basic_streambuf/cons/char/1.cc: Likewise. * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_streambuf/in_avail/char/1.cc: Likewise. * testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_streambuf/overflow/char/1.cc: Likewise. * testsuite/27_io/basic_streambuf/overflow/char/2.cc: Likewise. * testsuite/27_io/basic_streambuf/overflow/char/3599.cc: Likewise. * testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_streambuf/overflow/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_streambuf/overflow/wchar_t/3599.cc: Likewise. * testsuite/27_io/basic_streambuf/sgetc/char/1.cc: Likewise. * testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_streambuf/sgetn/char/1.cc: Likewise. * testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_streambuf/sputbackc/char/9538.cc: Likewise. * testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc: Likewise. * testsuite/27_io/basic_streambuf/sputn/char/1.cc: Likewise. * testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_streambuf/sync/char/1057.cc: Likewise. * testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc: Likewise. * testsuite/27_io/basic_stringbuf/cons/2020.cc: Likewise. * testsuite/27_io/basic_stringbuf/cons/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/in_avail/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/char/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/char/26250.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/char/3599.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/char/9988.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/wchar_t/26250.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/wchar_t/3599.cc: Likewise. * testsuite/27_io/basic_stringbuf/overflow/wchar_t/9988.cc: Likewise. * testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sbumpc/char/9825.cc: Likewise. * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/9825.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekoff/char/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekpos/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekpos/char/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekpos/char/29354.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekpos/char/3.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/29354.cc: Likewise. * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_stringbuf/setbuf/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/setbuf/char/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/setbuf/char/3.cc: Likewise. * testsuite/27_io/basic_stringbuf/setbuf/char/4.cc: Likewise. * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_stringbuf/sgetc/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sgetn/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/snextc/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputbackc/char/9425.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputc/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputc/char/9404-1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputc/wchar_t/9404-1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputn/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputn/char/9404-2.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sputn/wchar_t/9404-2.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/char/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/char/3.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/char/3955.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_stringbuf/str/wchar_t/3955.cc: Likewise. * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringbuf/sync/char/1057.cc: Likewise. * testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc: Likewise. * testsuite/27_io/basic_stringstream/cons/2020.cc: Likewise. * testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc: Likewise. * testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc: Likewise. * testsuite/27_io/basic_stringstream/str/char/1.cc: Likewise. * testsuite/27_io/basic_stringstream/str/char/2.cc: Likewise. * testsuite/27_io/basic_stringstream/str/char/3.cc: Likewise. * testsuite/27_io/basic_stringstream/str/char/4.cc: Likewise. * testsuite/27_io/basic_stringstream/str/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_stringstream/str/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_stringstream/str/wchar_t/4.cc: Likewise. * testsuite/27_io/fpos/11450.cc: Likewise. * testsuite/27_io/fpos/14252.cc: Likewise. * testsuite/27_io/fpos/14320-1.cc: Likewise. * testsuite/27_io/fpos/14320-2.cc: Likewise. * testsuite/27_io/fpos/14320-3.cc: Likewise. * testsuite/27_io/fpos/14320-4.cc: Likewise. * testsuite/27_io/fpos/14320-5.cc: Likewise. * testsuite/27_io/fpos/14775.cc: Likewise. * testsuite/27_io/fpos/mbstate_t/1.cc: Likewise. * testsuite/27_io/fpos/mbstate_t/12065.cc: Likewise. * testsuite/27_io/fpos/mbstate_t/2.cc: Likewise. * testsuite/27_io/fpos/mbstate_t/3.cc: Likewise. * testsuite/27_io/ios_base/callbacks/1.cc: Likewise. * testsuite/27_io/ios_base/failure/what-1.cc: Likewise. * testsuite/27_io/ios_base/failure/what-2.cc: Likewise. * testsuite/27_io/ios_base/failure/what-3.cc: Likewise. * testsuite/27_io/ios_base/failure/what-big.cc: Likewise. * testsuite/27_io/ios_base/state/1.cc: Likewise. * testsuite/27_io/ios_base/storage/1.cc: Likewise. * testsuite/27_io/ios_base/storage/11584.cc: Likewise. * testsuite/27_io/ios_base/storage/2.cc: Likewise. * testsuite/27_io/ios_base/sync_with_stdio/2.cc: Likewise. * testsuite/27_io/manipulators/adjustfield/char/1.cc: Likewise. * testsuite/27_io/manipulators/adjustfield/char/2.cc * testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc: Likewise. * testsuite/27_io/manipulators/basefield/char/1.cc: Likewise. * testsuite/27_io/manipulators/basefield/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/extended/get_money/char/1.cc: Likewise. * testsuite/27_io/manipulators/extended/get_money/char/51288.cc: Likewise. * testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/extended/get_money/wchar_t/51288.cc: Likewise. * testsuite/27_io/manipulators/extended/get_time/char/1.cc * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Likewise. * testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Likewise. * testsuite/27_io/manipulators/extended/put_money/char/1.cc: Likewise. * testsuite/27_io/manipulators/extended/put_money/char/51288.cc: Likewise. * testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/extended/put_money/wchar_t/51288.cc: Likewise. * testsuite/27_io/manipulators/extended/put_time/char/1.cc: Likewise. * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Likewise. * testsuite/27_io/manipulators/extended/put_time/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Likewise. * testsuite/27_io/manipulators/standard/char/1.cc: Likewise. * testsuite/27_io/manipulators/standard/char/2.cc: Likewise. * testsuite/27_io/manipulators/standard/char/dr2344.cc: Likewise. * testsuite/27_io/manipulators/standard/char/quoted.cc: Likewise. * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise. * testsuite/27_io/manipulators/standard/wchar_t/dr2344.cc: Likewise. * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Likewise. * testsuite/27_io/objects/char/1.cc: Likewise. * testsuite/27_io/objects/char/10.cc: Likewise. * testsuite/27_io/objects/char/3045.cc: Likewise. * testsuite/27_io/objects/char/41037.cc: Likewise. * testsuite/27_io/objects/char/5.cc: Likewise. * testsuite/27_io/objects/char/6.cc: Likewise. * testsuite/27_io/objects/char/6548_xin.cc: Likewise. * testsuite/27_io/objects/char/6648-1_xin.cc: Likewise. * testsuite/27_io/objects/char/6648-2_xin.cc: Likewise. * testsuite/27_io/objects/char/7744_xin.cc: Likewise. * testsuite/27_io/objects/char/8.cc: Likewise. * testsuite/27_io/objects/char/9.cc: Likewise. * testsuite/27_io/objects/char/9661-2_xin.cc: Likewise. * testsuite/27_io/objects/char/dr455.cc: Likewise. * testsuite/27_io/objects/wchar_t/1.cc: Likewise. * testsuite/27_io/objects/wchar_t/10.cc: Likewise. * testsuite/27_io/objects/wchar_t/11.cc: Likewise. * testsuite/27_io/objects/wchar_t/12.cc: Likewise. * testsuite/27_io/objects/wchar_t/13.cc: Likewise. * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Likewise. * testsuite/27_io/objects/wchar_t/3045.cc: Likewise. * testsuite/27_io/objects/wchar_t/41037.cc: Likewise. * testsuite/27_io/objects/wchar_t/5.cc: Likewise. * testsuite/27_io/objects/wchar_t/6548_xin.cc: Likewise. * testsuite/27_io/objects/wchar_t/6648-1_xin.cc: Likewise. * testsuite/27_io/objects/wchar_t/6648-2_xin.cc: Likewise. * testsuite/27_io/objects/wchar_t/7744_xin.cc: Likewise. * testsuite/27_io/objects/wchar_t/8.cc: Likewise. * testsuite/27_io/objects/wchar_t/9520.cc: Likewise. * testsuite/27_io/objects/wchar_t/9661-2_xin.cc: Likewise. * testsuite/27_io/objects/wchar_t/9662.cc: Likewise. * testsuite/27_io/objects/wchar_t/dr455.cc: Likewise. * testsuite/27_io/types/3.cc: Likewise. From-SVN: r241283
2016-01-04Update copyright years.Jakub Jelinek163-163/+163
From-SVN: r232055
2015-01-05Update copyright years.Jakub Jelinek163-163/+163
From-SVN: r219188
2014-12-19New std::string implementation.Jonathan Wakely6-0/+13
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Remove. (GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI, GLIBCXX_DEFAULT_ABI): Add. * configure.ac: Use new macros. * configure: Regenerate. * Makefile.in: Regenerate. * doc/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * include/Makefile.am: Set _GLIBCXX_USE_DUAL_ABI. * include/Makefile.in: Regenerate. * config/abi/pre/gnu.ver: Export symbols related to new std::string. Tighten old patterns to not match new symbols. * config/locale/generic/monetary_members.cc: Guard some definitions to not compile with new ABI. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/numeric_members.cc: Prevent double-free. * config/os/gnu-linux/ldbl-extra.ver: Add new __gnu_cxx_ldbl128 exports. Tighten old patterns. * doc/xml/manual/configure.xml: Document new configure options. * doc/html/*: Regenerate. * include/bits/basic_string.h (__cxx11::basic_string): Define new non-reference-counted implementation in inline namespace __cxx11. (stoi, stol, stoll, stof, stod, stold, to_string): Conditionally use inline namespace. (literals::string_literals::operator"): Conditionally use abi-tag. * include/bits/basic_string.tcc (__cxx11::basic_string): Define. * include/bits/c++config: Define _GLIBCXX_USE_DUAL_ABI and LDBL_CXX11_ABI namespace macros. * include/bits/locale_classes.h (locale::name()): Use abi_tag when new ABI is in use. (locale::_S_twinned_facets): New static member. (locale::facet::__shim): Declare new type. (locale::_facet::_M_sso_shim, locale::_facet::_M_cow_shim): New functions for creating shims. (locale::_Impl::_M_facet_unchecked): New member function for use during construction. (locale::_Impl::_M_init_extra): New member functions to create second version of some facets. (collate, collate_byname): Use abi_tag when new ABI is in use. * include/bits/locale_facets.h: Add _GLIBCXX_NUM_CXX11_FACETS macro. (numpunct, numpunct_byname): Use __cxx11 namespace. (num_get::_M_extract_float, num_get::_M_extract_int): Use abi_tag when new ABI is in use. (num_get::__do_get, num_put::__do_put): Do not declare long double compat functions for new ABI. * include/bits/locale_facets.tcc (num_get, num_put): Use abi_tag on definitions. (numpunct, numpunct_byname): Qualify explicit instantiations. * include/bits/locale_facets_nonio.h (time_get, time_get_byname, moneypunct, moneypunct_byname, money_get, money_put, messages, messages_byname): Use new inline namespace macros. (money_get::__do_get, money_put::__do_put): Do not declare long double compat functions for new ABI. * include/bits/locale_facets_nonio.tcc (money_get, money_put): Use new namespace macros. (money_get::__do_get, money_put::__do_put): Do not define for new ABI. * include/bits/localefwd.h (numpunct, numpunct_byname, collate, collate_byname, time_get, time_get_byname, moneypunct, moneypunct_byname, money_get, money_put, messages, messages_byname): Use new namespace macros. * include/bits/regex.h: Use inline namespace macros. * include/bits/stl_list.h (_List_base, list): Use inline namespace instead of abi-tag. * include/bits/stringfwd.h (basic_string): Use namespace macros. * include/std/iosfwd (basic_stringbuf, basic_istringstream, basic_ostringstream, basic_stringstream): Likewise. * include/std/sstream: Likewise. (basic_stringbuf::__xfer_bufptrs): Update streambuf pointers on move. * include/std/stdexcept (__cow_string, __sso_string): New types for indirectly using std::string with either ABI. (logic_error, runtime_error): Replace std::string member with __cow_string when new ABI is in use. Declare non-inline copy constructor and assignment operator. Declare const char* constructors. (domain_error, invalid_argument, length_error, out_of_range, range_error, overflow_error, underflow_error): Declare const char* constructors. * include/std/system_error (error_category): Replace with new definition in inline namespace _V2. (error_code::message, error_condition::message): Use abi_tag on functions returning std::string. * python/libstdcxx/v6/printers.py (StdStringPrinter): Handle new ABI. * src/c++11/Makefile.am: Add new files. * src/c++11/Makefile.in: Regenerate. * src/c++11/compatibility-c++0x.cc: Compile with old std::string ABI. Define old error_category symbols. * src/c++11/cow-fstream-inst.cc: New. Instantiate fstream members using old std::string ABI. * src/c++11/cow-locale_init.cc (locale::_Impl::_M_init_extra): Define. * src/c++11/cow-shim_facets.cc: Define shim facets using old ABI. * src/c++11/cow-sstream-inst.cc: Instantiate stringstreams using old std::string ABI. * src/c++11/cow-stdexcept.cc: Define new constructors and assignment operators. (__cow_string, error_category::_M_message): Define. * src/c++11/cow-string-inst.cc: Explicit instantiations using old std::string. Include src/c++98/istream-string.cc. * src/c++11/cow-wstring-inst.cc: Explicit instantiations using old std::wstring. * src/c++11/cxx11-hash_tr1.cc: Explicit instantiations using new string. * src/c++11/cxx11-ios_failure.cc: Add sanity check. * src/c++11/cxx11-locale-inst.cc: Instantiate facets using new std::string. * src/c++11/cxx11-shim_facets.cc: Define shim facets using new ABI. * src/c++11/cxx11-stdexcept.cc: Define constructors taking new std::string. * src/c++11/cxx11-wlocale-inst.cc: Instantiate facets using new std::wstring. * src/c++11/fstream-inst.cc: Compile with new ABI. * src/c++11/functexcept.cc: Compile with old ABI. * src/c++11/random.cc: Compile with new ABI. * src/c++11/sstream-inst.cc: Compile with new ABI. * src/c++11/string-inst.cc: Explicit instantiations for new string. * src/c++11/system_error.cc (__sso_string, error_category::_M_message): Define. * src/c++11/wstring-inst.cc: Compile with new ABI. * src/c++98/Makefile.am: Compile some host files twice for old and new std::string. Add new files. * src/c++98/Makefile.in: Regenerate. * src/c++98/compatibility-ldbl.cc: Compile with old ABI. * src/c++98/compatibility.cc: Likewise. * src/c++98/concept-inst.cc: Likewise. * src/c++98/hash_tr1.cc: Likewise. * src/c++98/istream-string.cc: New file defining functions that work with istream and std::string moved from ... * src/c++98/istream.cc: ... here. * src/c++98/cow-istream-string.cc: Recompile istream-string.cc with old ABI. * src/c++98/locale-inst.cc: Adjust facet instantiations to work for either ABI. * src/c++98/locale.cc (locale::_M_install_facet, locale::_M_install_cache): Handle twinned facets. * src/c++98/locale-facets.cc: Compile with old std::string ABI. (__verify_grouping): Define new overload and old std::string version. * src/c++98/locale_init.cc: Initialize twinned facets. * src/c++98/localename.cc: Likewise. * src/c++98/misc-inst.cc: Instantiate C++98-only std::string members. (__verify_grouping): Define new std::string version. * src/c++98/stdexcept.cc: Compile with old std::string ABI. * src/c++98/wlocale-inst.cc: Likewise. * testsuite/18_support/50594.cc: Adjust to work with SSO strings. * testsuite/21_strings/basic_string/capacity/1.cc: Likewise. * testsuite/21_strings/basic_string/capacity/char/1.cc: Likewise. * testsuite/21_strings/basic_string/capacity/char/18654.cc: Likewise. * testsuite/21_strings/basic_string/capacity/char/2.cc: Likewise. * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc: Likewise. * testsuite/21_strings/headers/string/synopsis.cc: Use inline namespace macros. * testsuite/23_containers/headers/list/synopsis.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Set dg-options so correct exception type can be caught. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/ios_base/storage/2.cc: Likewise. * testsuite/27_io/ios_base/failure/cxx11.cc: Disable for old ABI. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error. * testsuite/libstdc++-prettyprinters/libfundts.cc: Use old ABI. * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. * testsuite/util/exception/safety.h: Adjust member function types for new std::string. * testsuite/util/testsuite_abi.cc: Add new version and ignore __float128 symbols in __cxx11 namespace. From-SVN: r218964
2014-04-22Remove obsolete Solaris 9 supportRainer Orth2-8/+2
libstdc++-v3: * configure.host: Remove solaris2.9 handling. Change os_include_dir to os/solaris/solaris2.10. * acinclude.m4 (ac_has_gthreads): Remove solaris2.9* handling. * crossconfig.m4: Remove *-solaris2.9 handling, simplify. * configure: Regenerate. * config/abi/post/solaris2.9: Remove. * config/os/solaris/solaris2.9: Rename to ... * config/os/solaris/solaris2.10: ... this. * config/os/solaris/solaris2.10/os_defines.h (CLOCK_MONOTONIC): Remove. * doc/xml/manual/configure.xml (--enable-libstdcxx-threads): Remove Solaris 9 reference. * doc/html/manual/configure.html: Regenerate. * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc: Remove *-*-solaris2.9 xfail. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc: Likewise. * testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.9 xfail. libjava: * configure.ac (THREADLIBS, THREADSPEC): Remove *-*-solaris2.9 handling. * configure: Regenerate. libgfortran: * config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution check. libgcc: * config/i386/crtfastmath.c (set_fast_math): Remove SSE execution check. * config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove Solaris 9 single-threaded support. * config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove Solaris 9 single-threaded support. Add call_user_handler code sequences. (sparc_is_sighandler): Likewise. libcpp: * lex.c: Remove Solaris 9 reference. gcc/testsuite: * gcc.c-torture/compile/pr28865.c: Remove dg-xfail-if. * gcc.dg/c99-stdint-6.c: Remove dg-options for *-*-solaris2.9. * gcc.dg/lto/20090210_0.c: Remove dg-extra-ld-options for *-*-solaris2.9. * gcc.dg/torture/pr47917.c: Remove dg-options for *-*-solaris2.9. * gcc.target/i386/pr22076.c: Remove i?86-*-solaris2.9 handling from dg-options. * gcc.target/i386/pr22152.c: Remove i?86-*-solaris2.9 handling from dg-additional-options. * gcc.target/i386/vect8-ret.c: Remove i?86-*-solaris2.9 handling from dg-options. * gcc.dg/vect/tree-vect.h (check_vect): Remove Solaris 9 SSE2 execution check. * gcc.target/i386/sse-os-support.h [__sun__ && __svr4__] (sigill_hdlr): Remove. (sse_os_support) [__sun__ && __svr4__]: Remove SSE execution check. * gfortran.dg/erf_3.F90: Remove sparc*-*-solaris2.9* handling. * gfortran.dg/fmt_en.f90: Remove i?86-*-solaris2.9* handling. * gfortran.dg/round_4.f90: Remove *-*-solaris2.9* handling. * lib/target-supports.exp (add_options_for_tls): Remove *-*-solaris2.9* handling. gcc: * config.gcc (enable_obsolete): Remove *-*-solaris2.9*. (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported. (*-*-solaris2*): Simplify. (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise. (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove *-*-solaris2.9* handling. * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86 as bug. (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling. (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9 handling, simplify. (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug. * configure: Regenerate. * config/i386/sol2-9.h: Remove. * doc/install.texi (Specific, i?86-*-solaris2.9): Remove. (Specific, *-*-solaris2*): Mention Solaris 9 support removal. Remove Solaris 9 references. fixincludes: * inclhack.def (math_exception): Bypass on *-*-solaris2.1[0-9]*. (solaris_int_types): Remove. (solaris_longjmp_noreturn): Remove. (solaris_mutex_init_2): Remove. (solaris_once_init_2): Remove. (solaris_sys_va_list): Remove. * fixincl.x: Regenerate. * tests/base/iso/setjmp_iso.h: Remove. * tests/base/pthread.h [SOLARIS_MUTEX_INIT_2_CHECK]: Remove. [SOLARIS_ONCE_INIT_1_CHECK]: Remove wrapping done by solaris_once_init_2. [SOLARIS_ONCE_INIT_2_CHECK]: Remove. * tests/base/sys/int_types.h: Remove. * tests/base/sys/va_list.h: Remove. contrib: * config-list.mk (LIST): Remove sparc-sun-solaris2.9, i686-solaris2.9. From-SVN: r209621
2014-01-02Update copyright years in libstdc++-v3/Richard Sandiford163-163/+163
From-SVN: r206301
2013-02-03Update copyright in libstdc++-v3.Richard Sandiford163-193/+163
From-SVN: r195701
2013-01-14vector.cc: Shrink memory usage under simulator.Steve Ellcey3-6/+24
2013-01-14 Steve Ellcey <sellcey@mips.com> * testsuite/libstdc++-v3/testsuite/23_containers/vector/profile/vector.cc: Shrink memory usage under simulator. * testsuite/libstdc++-v3/testsuite/26_numerics/valarray/28277.cc: Ditto. * testsuite/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc: Ditto. * testsuite/libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Ditto. * testsuite/libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Ditto. * testsuite/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-1.cc: Ditto. * testsuite/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-2.cc: Ditto. * testsuite/libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc: Ditto. * testsuite/libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc: Ditto. From-SVN: r195177
2013-01-04Update Copyright years for files modified in 2011 and/or 2012.Jakub Jelinek4-4/+4
From-SVN: r194903
2012-03-14Remove obsolete Solaris 8 supportRainer Orth2-6/+6
libstdc++-v3: * config/os/solaris/solaris2.8: Rename to ... * config/os/solaris/solaris2.9: ... this. * config/abi/post/solaris2.8: Rename to ... * config/abi/post/solaris2.9: ... this. * configure.host (os_include_dir): Remove solaris2.8. Reflect renaming. (abi_baseline_pair): Remove *-*-solaris2.8. Reflect renaming. * configure.ac (GLIBCXX_CHECK_MATH_PROTO): Remove (GLIBCXX_CHECK_STDLIB_PROTO): Remove. * acinclude.m4 (GLIBCXX_CHECK_MATH_PROTO): Remove (GLIBCXX_CHECK_STDLIB_PROTO): Remove. (GLIBCXX_CHECK_GTHREADS): Remove Solaris 8 handling. * crossconfig.m4 (GLIBCXX_CROSSCONFIG): Remove *-solaris2.8 handling. * configure: Regenerate. * config.h.in: Regenerate. * config/os/solaris/solaris2.9/os_defines.h (__CORRECT_ISO_CPP_MATH_H_PROTO): Define. (__CORRECT_ISO_CPP_STDLIB_H_PROTO): Define. * include/c_global/cmath: Rename __CORRECT_ISO_CPP_MATH_H_PROTO1 to __CORRECT_ISO_CPP_MATH_H_PROTO. [!__CORRECT_ISO_CPP_MATH_H_PROTO2]: Remove. * include/tr1/cmath: Rename __CORRECT_ISO_CPP_MATH_H_PROTO1 to __CORRECT_ISO_CPP_MATH_H_PROTO. * doc/xml/manual/configure.xml (Configure, --enable-libstdcxx-threads): Remove Solaris 8 reference. * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc: Don't xfail on *-*-solaris2.8. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc: Likewise. * testsuite/ext/enc_filebuf/char/13598.cc: Don't xfail on *-*-solaris2.8. libjava: * configure.ac (THREADLIBS): Remove *-*-solaris2.8 handling. * configure: Regenerate. libgcc: * config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove Solaris 8 handling. * config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove Solaris 8 handling. (sparc_is_sighandler): Likewise. libcpp: * lex.c: Remove Solaris 8 reference. gcc/testsuite: * g++.dg/warn/miss-format-1.C: Remove *-*-solaris2.8 handling. * gcc.dg/c99-stdint-6.c: Likewise. * gcc.dg/lto/20090210_0.c: Likewise. * gcc.dg/pr28796-2.c: Don't skip on sparc*-sun-solaris2.8. * gcc.dg/pragma-init-fini.c: Don't skip on i?86-*-solaris2.8. * gcc.dg/pragma-init-fini-2.c: Likewise. * gcc.dg/torture/pr47917.c: Remove *-*-solaris2.8 handling. * gcc.target/i386/pr22076.c: Remove i?86-*-solaris2.8 handling. * gcc.target/i386/pr22152.c: Likewise. * gcc.target/i386/vect8-ret.c: Likewise. * lib/target-supports.exp (add_options_for_tls): Remove Solaris 8 handling. gcc: * config.gcc (enable_obsolete): Remove *-*-solaris2.8*. (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported. (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove Solaris 8 support. * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*. (ld_tls_support): Remove Solaris 8 references. (lwp_dir, lwp_spec): Remove support for alternate thread library. * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests. * configure: Regenerate. * config.in: Regenerate. * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC. * config/i386/sol2.h: Remove Solaris 8 references. * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ... (i?86-*-solaris2.9): ... this. Remove Solaris 8 references. (Specific, *-*-solaris2*): Document Solaris 8 removal. Remove Solaris 8 references. fixincludes: * inclhack.def (math_exception): Remove duplicate. (solaris_cond_init): Remove. (solaris_sys_va_list): Remove Solaris 8 support. * fixincl.x: Regenerate. * tests/base/pthread.h [SOLARIS_COND_INIT_CHECK]: Remove. From-SVN: r185392
2012-01-251.cc: Add dg-require-time.Richard Sandiford4-0/+7
libstdc++-v3/ * testsuite/20_util/system_clock/1.cc: Add dg-require-time. * testsuite/22_locale/time_put/put/wchar_t/12439_1.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/12439_2.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/12439_3.cc: Likewise. * testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc: Add dg-require-fileio. * testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc: Likewise. * testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc: Likewise. * testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc: Likewise. From-SVN: r183531
2010-11-18PR libstdc++/26211 + N3168Paolo Carlini6-0/+226
2010-11-18 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/26211 + N3168 * include/bits/istream.tcc (basic_istream<>::tellg, seekg(pos_type), seekg(off_type, ios_base::seekdir)): Construct a sentry. (basic_istream<>::tellg, seekg(pos_type), seekg(off_type, ios_base::seekdir, putback, unget)): Clear eofbit first, per N3168. * testsuite/27_io/basic_istream/seekg/char/26211.cc: New. * testsuite/27_io/basic_istream/seekg/wchar_t/26211.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/26211.cc: Likewise. * testsuite/27_io/basic_istream/tellg/wchar_t/26211.cc: Likewise. * testsuite/27_io/basic_istream/tellg/char/8348.cc: Tweak. * testsuite/27_io/basic_istream/tellg/wchar_t/8348.cc: Likewise. From-SVN: r166911
2010-07-2614220.cc: XFAIL on Solaris 9/x86, 32-bit Solaris 10/x86 and 64-bit Solaris ↵Rainer Orth2-6/+8
10/SPARC. * testsuite/22_locale/num_put/put/char/14220.cc: XFAIL on Solaris 9/x86, 32-bit Solaris 10/x86 and 64-bit Solaris 10/SPARC. * testsuite/22_locale/num_put/put/wchar_t/14220.cc: XFAIL on Solaris 9/x86 and 32-bit Solaris 10/x86. * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc: Only XFAIL on Solaris 8 and 9. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc: Likewise. * testsuite/ext/enc_filebuf/char/13598.cc: XFAIL before Solaris 11. From-SVN: r162545