conditionalize this to work on windows, untested but it should work

according to the intarnetz


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55248 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2008-08-23 19:27:03 +00:00
parent 097af7fc8f
commit 0958ab0fd1

View File

@ -17,6 +17,7 @@
#include "llvm/ADT/StringExtras.h"
#include <cassert>
#include <cstring>
#include <cstdio>
#include <string>
#include <iosfwd>
@ -173,7 +174,11 @@ public:
/// returns the length of the formatted string. If the buffer is too small,
/// this returns a length to retry with, which will be larger than BufferSize.
virtual unsigned print(char *Buffer, unsigned BufferSize) const {
#ifdef WIN32
int N = _snprintf(Buffer, BufferSize-1, Fmt, Val);
#else
int N = snprintf(Buffer, BufferSize-1, Fmt, Val);
#endif
if (N < 0) // VC++ and old GlibC return negative on overflow.
return BufferSize*2;
if (unsigned(N) >= BufferSize-1)// Other impls yield number of bytes needed.