[Bug libstdc++/24217] filebuf.open call sets the error bits incorrectly

hemasai at yahoo dot com gcc-bugzilla@gcc.gnu.org
Thu Oct 6 18:12:00 GMT 2005



------- Comment #2 from hemasai at yahoo dot com  2005-10-06 18:12 -------
sample code:
fn(const char* fname)
{
   ifstream fstr;

   if (!fname)
      return;

   fstr.clear();
      fstr.open(fname, ios::in | ios::nocreate);
   if (!(fstr.is_open())) {
            cout << "rdstate():" << fstr.rdstate();
            cout << "bad():" << fstr.bad();
            cout << "fail():" << fstr.fail();
            return;
   }
//Read the file contents
}

As you can see, the fstr is a stack variable that is used to access the file. 
The flags were cleared before the open call. When it failed rdstate was set to
4.
This function call successfully opened the file multiple times before the
failure.


-- 

hemasai at yahoo dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |UNCONFIRMED


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



More information about the Gcc-bugs mailing list