https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=c75f3939d843fe80d13a8a2fc64c50f8ffed6f5a
commit c75f3939d843fe80d13a8a2fc64c50f8ffed6f5a Author: Corinna Vinschen <[email protected]> AuthorDate: Wed Aug 7 17:09:44 2024 +0200 Commit: Corinna Vinschen <[email protected]> CommitDate: Thu Aug 22 19:58:49 2024 +0200 Cygwin: asm/socket.h: drop outdated casts The _IOR anbd _IOW macros cast the sizeof of their third arg uselessly to long. The _IO definitions have been taken from BSD in 1995 and never changed again. The fact that the sizeof() gets cast to long is probably a remnant from the past when the stuff was supposed to be used on 16 bit machines, but the value was supposed to be 32 bit. Given that the values are not supposed to be ever bigger than 32 bit, we drop the (long) cast. Compare with current FreeBSD, which does not cast at all. Signed-off-by: Corinna Vinschen <[email protected]> Diff: --- winsup/cygwin/include/asm/socket.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/include/asm/socket.h b/winsup/cygwin/include/asm/socket.h index 9aeb889b87bd..276df3a0b5fd 100644 --- a/winsup/cygwin/include/asm/socket.h +++ b/winsup/cygwin/include/asm/socket.h @@ -17,8 +17,8 @@ details. */ #define IOC_IN 0x80000000 /* copy in parameters */ #define _IO(x,y) (IOC_VOID|(x<<8)|y) -#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y) -#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y) +#define _IOR(x,y,t) (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y) +#define _IOW(x,y,t) (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y) #define SIOCATMARK _IOR('s', 7, long) /* at oob mark? */ #define FIONREAD _IOR('f', 127, long) /* get # bytes to read */
