forked from OSchip/llvm-project
Check for errors on close(2) too. And lseek(2).
llvm-svn: 75793
This commit is contained in:
parent
33fb640835
commit
213e87b1fe
|
|
@ -279,7 +279,8 @@ raw_fd_ostream::~raw_fd_ostream() {
|
||||||
if (FD >= 0) {
|
if (FD >= 0) {
|
||||||
flush();
|
flush();
|
||||||
if (ShouldClose)
|
if (ShouldClose)
|
||||||
::close(FD);
|
if (::close(FD) != 0)
|
||||||
|
llvm_report_error("IO failure closing output stream.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -294,13 +295,16 @@ void raw_fd_ostream::close() {
|
||||||
assert (ShouldClose);
|
assert (ShouldClose);
|
||||||
ShouldClose = false;
|
ShouldClose = false;
|
||||||
flush();
|
flush();
|
||||||
::close(FD);
|
if (::close(FD) != 0)
|
||||||
|
llvm_report_error("IO failure closing output stream.");
|
||||||
FD = -1;
|
FD = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t raw_fd_ostream::seek(uint64_t off) {
|
uint64_t raw_fd_ostream::seek(uint64_t off) {
|
||||||
flush();
|
flush();
|
||||||
pos = ::lseek(FD, off, SEEK_SET);
|
pos = ::lseek(FD, off, SEEK_SET);
|
||||||
|
if (pos != off)
|
||||||
|
llvm_report_error("IO failure seeking on output stream.");
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue