Hello,

this patch fixes warnings like this in Dolphin

Socket.cpp:762:5: warning: comparison of integers of different signs:
'SOCKET' (aka 'unsigned long long') and 'const s32' (aka 'const int')
[-Wsign-compare]
  762 |     FD_SET(fd, &write_fds);
      |     ^~~~~~~~~~~~~~~~~~~~~~
C:/msys64/clang64/include/psdk_inc/_fd_types.h:77:40: note: expanded
from macro 'FD_SET'
   77 |                 if (((fd_set *)(set))->fd_array[__i] == (fd))
{         \
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^   ~~

This happens because on Windows a socket is unsigned and on Linux it
is signed and this is cross platform code.

Best regards
Oleg Tolmatcev
From be6cad960b6ffb22797756b9d82e34bd372959c2 Mon Sep 17 00:00:00 2001
From: Oleg Tolmatcev <oleg.tolmat...@gmail.com>
Date: Sat, 25 Nov 2023 00:41:31 +0100
Subject: [PATCH] headers: cast fd to SOCKET in macros

---
 mingw-w64-headers/include/psdk_inc/_fd_types.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/mingw-w64-headers/include/psdk_inc/_fd_types.h 
b/mingw-w64-headers/include/psdk_inc/_fd_types.h
index e3a5da62..18dcbe49 100644
--- a/mingw-w64-headers/include/psdk_inc/_fd_types.h
+++ b/mingw-w64-headers/include/psdk_inc/_fd_types.h
@@ -39,7 +39,7 @@ int WINAPI __WSAFDIsSet(SOCKET,fd_set *);
   do {                                                                 \
        u_int __i;                                                      \
        for(__i = 0; __i < ((fd_set *)(set))->fd_count; __i++) {        \
-               if (((fd_set *)(set))->fd_array[__i] == fd) {           \
+               if (((fd_set *)(set))->fd_array[__i] == (SOCKET)(fd)) { \
                        while (__i < ((fd_set *)(set))->fd_count - 1) { \
                                ((fd_set *)(set))->fd_array[__i] =      \
                                 ((fd_set *)(set))->fd_array[__i + 1];  \
@@ -74,13 +74,13 @@ int WINAPI __WSAFDIsSet(SOCKET,fd_set *);
   do {                                                                 \
        u_int __i;                                                      \
        for(__i = 0; __i < ((fd_set *)(set))->fd_count; __i++) {        \
-               if (((fd_set *)(set))->fd_array[__i] == (fd)) {         \
+               if (((fd_set *)(set))->fd_array[__i] == (SOCKET)(fd)) { \
                        break;                                          \
                }                                                       \
        }                                                               \
        if (__i == ((fd_set *)(set))->fd_count) {                       \
                if (((fd_set *)(set))->fd_count < FD_SETSIZE) {         \
-                       ((fd_set *)(set))->fd_array[__i] = (fd);        \
+                       ((fd_set *)(set))->fd_array[__i] = (SOCKET)(fd);\
                        ((fd_set *)(set))->fd_count++;                  \
                }                                                       \
        }                                                               \
@@ -91,7 +91,7 @@ int WINAPI __WSAFDIsSet(SOCKET,fd_set *);
   do {                                                                 \
        if (((fd_set *)(set))->fd_count < FD_SETSIZE)                   \
            ((fd_set *)(set))->fd_array[((fd_set *)(set))->fd_count++] =\
-                                                                  (fd);\
+                                                          (SOCKET)(fd);\
   } while(0)
 #endif /* _WINSOCK2API_ */
 #endif /* !FD_SET */
-- 
2.43.0.windows.1

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to