From: Tim Jenness Date: Tue, 7 Jul 2009 21:49:11 +0000 (-1000) Subject: Fix compiler warning when cuserid is absent and sizeof(int) != sizeof(pointer) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=56f4542c0225628c386228d839cd4db214424a79;p=p5sagit%2Fp5-mst-13.2.git Fix compiler warning when cuserid is absent and sizeof(int) != sizeof(pointer) The attached patch fixes a compilation warning from POSIX.xs when cuserid is missing and ints and pointers have different size. eg on Mac OSX when using 64-bit mode. gcc-4.2 -c -fno-common -DPERL_DARWIN -no-cpp-precomp -arch x86_64 -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -O3 -g -DVERSION=\"1.17\" -DXS_VERSION=\"1.17\" "-I../.." POSIX.c POSIX.c: In function 'XS_POSIX_cuserid': POSIX.c:4096: warning: cast to pointer from integer of different size Running Mkbootstrap for POSIX () chmod 644 POSIX.bs rm -f ../../lib/auto/POSIX/POSIX.bundle Also relevant for 5.10.1. Signed-off-by: H.Merijn Brand --- diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index b500158..6de3588 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -241,16 +241,12 @@ typedef struct termios* POSIX__Termios; #endif /* Possibly needed prototypes */ -char *cuserid (char *); #ifndef WIN32 double strtod (const char *, char **); long strtol (const char *, char **, int); unsigned long strtoul (const char *, char **, int); #endif -#ifndef HAS_CUSERID -#define cuserid(a) (char *) not_here("cuserid") -#endif #ifndef HAS_DIFFTIME #ifndef difftime #define difftime(a,b) not_here("difftime") @@ -1839,6 +1835,15 @@ ctermid(s = 0) char * cuserid(s = 0) char * s = 0; + CODE: +#ifdef HAS_CUSERID + RETVAL = cuserid(s); +#else + RETVAL = 0; + not_here("cuserid"); +#endif + OUTPUT: + RETVAL SysRetLong fpathconf(fd, name)