This is the mail archive of the gcc-bugs@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]

[Bug libstdc++/26181] New: istream::operator>>(streambuf*) fails to set eofbit


The program below is expected to run successfully to completion.

The extractor must set eofbit even though doing so is not explicitly specified
in 27.6.1.2.3, p12, since it is specified by the blanket statement in 27.6.1.1,
p3.

$ cat t.cpp && g++ -dumpversion && g++ t.cpp -static && ./a.out
#include <cassert>
#include <fstream>
#include <sstream>

int main ()
{
    std::ifstream ifs (__FILE__);
    std::stringstream ss;

    assert (0 == ifs.tellg ());

    ifs >> ss.rdbuf ();

    assert (ifs.eofbit == ifs.rdstate ());
    assert (-1 == ifs.tellg ());

    ifs.clear ();

    assert (0 < ifs.tellg ());

    ifs.get ();

    assert (-1 == ifs.tellg ());
}
4.0.2
Assertion failed: ifs.eofbit == ifs.rdstate (), file t.cpp, line 14
Abort (core dumped)

This first came up here:
http://forum.sun.com/thread.jspa?threadID=28814


-- 
           Summary: istream::operator>>(streambuf*) fails to set eofbit
           Product: gcc
           Version: 4.0.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sebor at roguewave dot com
 GCC build triplet: all
  GCC host triplet: all
GCC target triplet: all


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26181


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