https://bugs.llvm.org/show_bug.cgi?id=38052
Bug ID: 38052
Summary: std::fstream still good after closing and updating
content
Product: libc++
Version: unspecified
Hardware: Macintosh
OS: All
Status: NEW
Severity: normal
Priority: P
Component: All Bugs
Assignee: unassignedclangb...@nondot.org
Reporter: gr...@web.de
CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com
I have a simple program that should show the problem. - with libc++ the stream
is still good after closing and further operation. Since also the file content
was not updated - at least the stream operation fails on the closed stream and
should set either failbit or badbit to reflect the situation.
#include <iostream>
#include <fstream>
int main(int argc, const char * argv[])
{
std::fstream ofs("test.txt", std::ios::out | std::ios::trunc);
ofs << "Hello, World!\n";
ofs.close();
ofs << "Hello, World!\n";
std::cout << "good(): " << ofs.good()
<< " fail(): " << ofs.fail()
<< " bad(): " << ofs.bad()
<< " eof(): " << ofs.eof() << std::endl;
return 0;
}
// http://coliru.stacked-crooked.com/a/cfaeb32849c9cfad
With libc++ I get
good(): 1 fail(): 0 bad(): 0 eof(): 0
Expected (or with libstdc++):
good(): 0 fail(): 1 bad(): 1 eof(): 0
I have tested on OSX with Xcode 9.4.1
Apple LLVM version 9.1.0 (clang-902.0.39.2)
or on Linux:
clang version 3.8.0
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs