gcc/libstdc++-v3/testsuite/27_io
Jonathan Wakely 4e39f563c0 libstdc++: Do not set eofbit eagerly in operator>>(istream&, char(&)[N])
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-06 19:23:14 +01:00
..
basic_filebuf
basic_fstream
basic_ifstream
basic_ios libstdc++: Require c++98_only effective target for a test 2020-07-02 21:27:22 +01:00
basic_iostream
basic_istream libstdc++: Do not set eofbit eagerly in operator>>(istream&, char(&)[N]) 2020-08-06 19:23:14 +01:00
basic_istringstream
basic_ofstream
basic_ostream libstdc++: Ensure c++NN effective target present in all C++17 tests 2020-07-31 19:58:02 +01:00
basic_ostringstream
basic_streambuf
basic_stringbuf
basic_stringstream
filesystem libstdc++: Simplify filesystem::path SFINAE constraints 2020-05-23 09:40:16 +01:00
fpos
headers libstdc++: Require c++98_only effective target for some tests 2020-07-02 21:27:12 +01:00
ios_base
manipulators
objects
types
rvalue_streams-2.cc
rvalue_streams.cc