diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-04 22:42:32 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-04 22:42:32 +0000 |
commit | 6216acec8a96dce5c4deb2102cce07b67a0828bf (patch) | |
tree | 65c44c2de016efc62e22b368ac2174dff478f580 /libstdc++-v3/testsuite | |
parent | 762fbc725360a8259765f6905ffd8cafaba63218 (diff) | |
download | gcc-6216acec8a96dce5c4deb2102cce07b67a0828bf.tar.gz |
2003-02-04 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9439, PR libstdc++/9425
* config/io/basic_file_stdio.cc
(__basic_file<char>::seekoff, seekpos): Return -1L if
fseek fails.
* include/bits/fstream.tcc (basic_filebuf::seekoff):
Check _M_file.seekoff return value; always return
pos_type(off_type(-1)) in case of failure.
(basic_filebuf::pbackfail): Check this->seekoff return
value and return traits_type::eof() in case of failure.
* testsuite/27_io/filebuf_virtuals.cc (test09): Add.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62408 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r-- | libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc b/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc index 75c2e1cac77..58a56509583 100644 --- a/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc +++ b/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc @@ -570,6 +570,20 @@ void test08() mb.sputbackc(0); } +// libstdc++/9439, libstdc++/9425 +void test09() +{ + using namespace std; + bool test = true; + + filebuf fbuf; + fbuf.open(name_01, ios_base::in); + filebuf::int_type r = fbuf.sputbackc('a'); + fbuf.close(); + + VERIFY( r == filebuf::traits_type::eof() ); +} + main() { test01(); @@ -582,5 +596,6 @@ main() test07(); test08(); + test09(); return 0; } |