[llvm-commits] [llvm] r164822 - /llvm/trunk/lib/Support/Errno.cpp
Dmitri Gribenko
gribozavr at gmail.com
Fri Sep 28 07:15:28 PDT 2012
Author: gribozavr
Date: Fri Sep 28 09:15:28 2012
New Revision: 164822
URL: http://llvm.org/viewvc/llvm-project?rev=164822&view=rev
Log:
Replace the use of strncpy() and sprintf() with std::string and LLVM streams.
Patch by Martinez, Javier E.
Modified:
llvm/trunk/lib/Support/Errno.cpp
Modified: llvm/trunk/lib/Support/Errno.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Errno.cpp?rev=164822&r1=164821&r2=164822&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Errno.cpp (original)
+++ llvm/trunk/lib/Support/Errno.cpp Fri Sep 28 09:15:28 2012
@@ -13,6 +13,7 @@
#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>
@@ -39,7 +40,7 @@
const int MaxErrStrLen = 2000;
char buffer[MaxErrStrLen];
buffer[0] = '\0';
- char* str = buffer;
+ std::string str;
#ifdef HAVE_STRERROR_R
// strerror_r is thread-safe.
if (errnum)
@@ -49,6 +50,7 @@
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)
@@ -58,12 +60,13 @@
// the buffer as fast as possible to minimize impact
// of collision of strerror in multiple threads.
if (errnum)
- strncpy(buffer,strerror(errnum),MaxErrStrLen-1);
- buffer[MaxErrStrLen-1] = '\0';
+ str = strerror(errnum);
#else
// Strange that this system doesn't even have strerror
// but, oh well, just use a generic message
- sprintf(buffer, "Error #%d", errnum);
+ raw_string_ostream stream(str);
+ stream << "Error #" << errnum;
+ stream.flush();
#endif
return str;
}
More information about the llvm-commits
mailing list