mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-24 06:10:12 +00:00
Set the buffer of an fstream to empty when the underlying file is closed. This 'fixes' PR#38052 - std::fstream still good after closing and updating content.
llvm-svn: 350603
This commit is contained in:
parent
43cba99775
commit
8f9346922c
@ -702,6 +702,7 @@ basic_filebuf<_CharT, _Traits>::close()
|
||||
__file_ = 0;
|
||||
else
|
||||
__rt = 0;
|
||||
setbuf(0, 0);
|
||||
}
|
||||
return __rt;
|
||||
}
|
||||
|
@ -0,0 +1,35 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// <fstream>
|
||||
|
||||
// template <class charT, class traits = char_traits<charT> >
|
||||
// class basic_fstream
|
||||
|
||||
// close();
|
||||
|
||||
// Inspired by PR#38052 - std::fstream still good after closing and updating content
|
||||
|
||||
#include <fstream>
|
||||
#include <cassert>
|
||||
#include "platform_support.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
std::string temp = get_temp_file_name();
|
||||
|
||||
std::fstream ofs(temp, std::ios::out | std::ios::trunc);
|
||||
ofs << "Hello, World!\n";
|
||||
assert( ofs.good());
|
||||
ofs.close();
|
||||
assert( ofs.good());
|
||||
ofs << "Hello, World!\n";
|
||||
assert(!ofs.good());
|
||||
|
||||
std::remove(temp.c_str());
|
||||
}
|
Loading…
Reference in New Issue
Block a user