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 */

Reply via email to