This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix libstdc++/12048


Hi,

This should fix libstdc++/12048. There are still some corner cases
where strange behaviour may be observed, but these all involve calling
unget when the last I/O operation wasn't a read operation on cin. The
new XFAIL tests check for two of these.

Tested on i686-pc-linux-gnu.

Regards,
Petur

2003-08-29  Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/12048
	* include/ext/stdio_sync_filebuf.h
	(stdio_sync_filebuf::_M_unget_buf): Declare it.
	(stdio_sync_filebuf::stdio_sync_filebuf): Initialize _M_unget_buf.
	(stdio_sync_filebuf::uflow): Store the returned character in
	_M_unget_buf.
	(stdio_sync_filebuf::pbackfail): If argument is eof(), pass
	_M_unget_buf to syncungetc(). Set _M_unget_buf to eof().
	(stdio_sync_filebuf<char>::xsgetn): Store last read character in
	_M_unget_buf, if any, else eof().
	(stdio_sync_filebuf<wchar_t>::xsgetn: Store last read character in
	_M_unget_buf, if any, else eof().
	* testsuite/27_io/objects/char/12048.cc: Rename to...
	* testsuite/27_io/objects/char/12048-1.cc: ...this.
	* testsuite/27_io/objects/char/12048-2.cc: New test.
	* testsuite/27_io/objects/char/12048-3.cc: New test.
	* testsuite/27_io/objects/char/12048-4.cc: New test.
	* testsuite/27_io/objects/char/12048-5.cc: New test. XFAIL.
	* testsuite/27_io/objects/wchar_t/12048-1.cc: New test.
	* testsuite/27_io/objects/wchar_t/12048-2.cc: New test.
	* testsuite/27_io/objects/wchar_t/12048-3.cc: New test.
	* testsuite/27_io/objects/wchar_t/12048-4.cc: New test.
	* testsuite/27_io/objects/wchar_t/12048-5.cc: New test. XFAIL.
	* testsuite/ext/stdio_sync_filebuf_char.cc
	(test02, test03, test04, test05): New tests.
	* testsuite/ext/stdio_sync_filebuf_wchar_t.cc
	(test02, test03, test04, test05): New tests.

Attachment: 12048.diff
Description: 12048.diff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]