Commit 74c263af by Jason Merrill Committed by Jason Merrill

re PR libstdc++/6414 (g++ 3.1 tellg() regression within last week)

        PR libstdc++/6414
        * include/bits/fstream.tcc (basic_filebuf::seekoff): Adjust return
        value properly in the trivial case.
        * testsuite/27_io/istream_seeks.cc (test04): Make sure that
        tellg() returns the right value after a read.

From-SVN: r52679
parent 29cece2e
2002-04-23 Jason Merrill <jason@redhat.com>
PR libstdc++/6414
* include/bits/fstream.tcc (basic_filebuf::seekoff): Adjust return
value properly in the trivial case.
* testsuite/27_io/istream_seeks.cc (test04): Make sure that
tellg() returns the right value after a read.
2002-04-23 Hans-Peter Nilsson <hp@bitrange.com> 2002-04-23 Hans-Peter Nilsson <hp@bitrange.com>
* config/cpu/mmix/bits/cpu_limits.h: New file. * config/cpu/mmix/bits/cpu_limits.h: New file.
......
...@@ -567,7 +567,7 @@ namespace std ...@@ -567,7 +567,7 @@ namespace std
else else
{ {
__ret = _M_file.seekoff(__off, ios_base::cur, __mode); __ret = _M_file.seekoff(__off, ios_base::cur, __mode);
__ret += max(_M_out_cur, _M_in_cur) - _M_buf; __ret += _M_in_cur - _M_filepos;
} }
} }
_M_last_overflowed = false; _M_last_overflowed = false;
......
...@@ -229,7 +229,14 @@ void test04(void) ...@@ -229,7 +229,14 @@ void test04(void)
VERIFY( pos05 == pos06 + off_type(10) ); VERIFY( pos05 == pos06 + off_type(10) );
VERIFY( state01 == state02 ); VERIFY( state01 == state02 );
pos06 = is03.tellg(); pos06 = is03.tellg();
VERIFY( pos05 == pos06 ); VERIFY( pos05 == pos06 );
// libstdc++/6414
if01.seekg(0, std::ios_base::beg);
pos01 = if01.tellg();
if01.peek();
pos02 = if01.tellg();
VERIFY( pos02 == pos01 );
#ifdef DEBUG_ASSERT #ifdef DEBUG_ASSERT
assert(test); assert(test);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment