perl.h: fix signedness warning with clang
authorDavid Mitchell <davem@iabyn.com>
Wed, 12 Dec 2012 10:34:29 +0000 (10:34 +0000)
committerDavid Mitchell <davem@iabyn.com>
Wed, 12 Dec 2012 13:39:33 +0000 (13:39 +0000)
'len' arg to my_vsnprintf() is supposed to be Size_t; cast it that way
before testing it.

perl.h

diff --git a/perl.h b/perl.h
index d97a577..412848c 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1709,7 +1709,7 @@ EXTERN_C char *crypt(const char *, const char *);
 
 #if defined(HAS_VSNPRINTF) && defined(HAS_C99_VARIADIC_MACROS) && !(defined(DEBUGGING) && !defined(PERL_USE_GCC_BRACE_GROUPS)) && !defined(PERL_GCC_PEDANTIC)
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#      define my_vsnprintf(buffer, len, ...) ({ int __len__ = vsnprintf(buffer, len, __VA_ARGS__); if ((len) > 0 && (Size_t)__len__ >= (len)) Perl_croak_nocontext("panic: vsnprintf buffer overflow"); __len__; })
+#      define my_vsnprintf(buffer, len, ...) ({ int __len__ = vsnprintf(buffer, len, __VA_ARGS__); if ((len) > 0 && (Size_t)__len__ >= (Size_t)(len)) Perl_croak_nocontext("panic: vsnprintf buffer overflow"); __len__; })
 #      define PERL_MY_VSNPRINTF_GUARDED
 #  else
 #    define my_vsnprintf(buffer, len, ...) vsnprintf(buffer, len, __VA_ARGS__)