summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/lib/Support/Errno.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/lib/Support/Errno.cpp')
-rw-r--r--contrib/llvm/lib/Support/Errno.cpp33
1 files changed, 14 insertions, 19 deletions
diff --git a/contrib/llvm/lib/Support/Errno.cpp b/contrib/llvm/lib/Support/Errno.cpp
index 730220f..1eefa3e 100644
--- a/contrib/llvm/lib/Support/Errno.cpp
+++ b/contrib/llvm/lib/Support/Errno.cpp
@@ -14,8 +14,6 @@
#include "llvm/Support/Errno.h"
#include "llvm/Config/config.h" // Get autoconf configuration settings
#include "llvm/Support/raw_ostream.h"
-
-#if HAVE_STRING_H
#include <string.h>
#if HAVE_ERRNO_H
@@ -41,28 +39,27 @@ std::string StrError(int errnum) {
char buffer[MaxErrStrLen];
buffer[0] = '\0';
std::string str;
+ if (errnum == 0)
+ return str;
+
#ifdef HAVE_STRERROR_R
// strerror_r is thread-safe.
- if (errnum)
-# if defined(__GLIBC__) && defined(_GNU_SOURCE)
- // glibc defines its own incompatible version of strerror_r
- // which may not use the buffer supplied.
- str = strerror_r(errnum,buffer,MaxErrStrLen-1);
-# else
- strerror_r(errnum,buffer,MaxErrStrLen-1);
- str = buffer;
-# endif
+#if defined(__GLIBC__) && defined(_GNU_SOURCE)
+ // glibc defines its own incompatible version of strerror_r
+ // which may not use the buffer supplied.
+ str = strerror_r(errnum, buffer, MaxErrStrLen - 1);
+#else
+ strerror_r(errnum, buffer, MaxErrStrLen - 1);
+ str = buffer;
+#endif
#elif HAVE_DECL_STRERROR_S // "Windows Secure API"
- if (errnum) {
- strerror_s(buffer, MaxErrStrLen - 1, errnum);
- str = buffer;
- }
+ strerror_s(buffer, MaxErrStrLen - 1, errnum);
+ str = buffer;
#elif defined(HAVE_STRERROR)
// Copy the thread un-safe result of strerror into
// the buffer as fast as possible to minimize impact
// of collision of strerror in multiple threads.
- if (errnum)
- str = strerror(errnum);
+ str = strerror(errnum);
#else
// Strange that this system doesn't even have strerror
// but, oh well, just use a generic message
@@ -75,5 +72,3 @@ std::string StrError(int errnum) {
} // namespace sys
} // namespace llvm
-
-#endif // HAVE_STRING_H
OpenPOWER on IntegriCloud