https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=50cf10dfa485682f08d2975d69cee0a3b63c81b9

commit 50cf10dfa485682f08d2975d69cee0a3b63c81b9
Author:     Corinna Vinschen <[email protected]>
AuthorDate: Wed Aug 7 17:09:44 2024 +0200
Commit:     Corinna Vinschen <[email protected]>
CommitDate: Wed Aug 7 17:10:03 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 */

Reply via email to