return more useful error messages by using strerror to format errno
instead of returning an ambiguous reason.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90275 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/MemoryBuffer.cpp b/lib/Support/MemoryBuffer.cpp
index b04864a..df1aa6a 100644
--- a/lib/Support/MemoryBuffer.cpp
+++ b/lib/Support/MemoryBuffer.cpp
@@ -176,7 +176,7 @@
#endif
int FD = ::open(Filename.str().c_str(), O_RDONLY|OpenFlags);
if (FD == -1) {
- if (ErrStr) *ErrStr = "could not open file";
+ if (ErrStr) *ErrStr = strerror(errno);
return 0;
}
@@ -186,7 +186,7 @@
struct stat FileInfo;
// TODO: This should use fstat64 when available.
if (fstat(FD, &FileInfo) == -1) {
- if (ErrStr) *ErrStr = "could not get file length";
+ if (ErrStr) *ErrStr = strerror(errno);
::close(FD);
return 0;
}
@@ -230,8 +230,8 @@
// try again
} else {
// error reading.
+ if (ErrStr) *ErrStr = strerror(errno);
close(FD);
- if (ErrStr) *ErrStr = "error reading file data";
return 0;
}
}