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, _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
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