[ros-diffs] [arty] 13810: Some warning suppression. Read the <rant/>.

arty at svn.reactos.com arty at svn.reactos.com
Fri Mar 4 02:47:01 CET 2005


Some warning suppression.  Read the <rant/>.
Modified: trunk/reactos/lib/adns/Makefile
Modified: trunk/reactos/lib/adns/adns_win32/adns_win32.h
Modified: trunk/reactos/lib/adns/src/event.c
  _____  

Modified: trunk/reactos/lib/adns/Makefile
--- trunk/reactos/lib/adns/Makefile	2005-03-04 00:18:25 UTC (rev
13809)
+++ trunk/reactos/lib/adns/Makefile	2005-03-04 01:47:01 UTC (rev
13810)
@@ -8,7 +8,7 @@

 
 TARGET_CFLAGS = \
  -O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
- -Wstrict-prototypes -Wmissing-prototypes -Wall -DADNS_JGAA_WIN32
+ -Wstrict-prototypes -Wmissing-prototypes -Wall -DADNS_JGAA_WIN32
-D__USE_W32API -D__REACTOS__
 
 # require os code to explicitly request A/W version of
structs/functions
 TARGET_CFLAGS += -Isrc -Iadns_win32
  _____  

Modified: trunk/reactos/lib/adns/adns_win32/adns_win32.h
--- trunk/reactos/lib/adns/adns_win32/adns_win32.h	2005-03-04
00:18:25 UTC (rev 13809)
+++ trunk/reactos/lib/adns/adns_win32/adns_win32.h	2005-03-04
01:47:01 UTC (rev 13810)
@@ -157,5 +157,34 @@

 
 #include "timercmp.h" /* arty added: mingw headers don't seem to have
it */
 
+/*
+ * <rant>
+ * These fix the following warning in GCC:
+ * warning: passing arg 1 of `ntohs' with different width due to
prototype
+ *
+ * Even if you declare an unsigned char or unsigned short variable and
pass
+ * it to htons or ntohs, this warning will be generated.  I believe
this is
+ * a gcc bug.  You can try to reproduce the bug like this:
+ *
+ * u_short foo(u_short bar) {
+ *   return htons(bar);
+ * }
+ *
+ * Using the reactos compiler settings this generates the error.
Unless I'm
+ * missing something, the active prototypes for htons and ntohs are:
+ *
+ * u_short PASCAL htons(u_short);
+ * u_short PASCAL ntohs(u_short);
+ *
+ * From winsock2.h.  Since the function above has exactly the same
signature
+ * as htons except for the required PASCAL (__stdcall) decoration, gcc
is
+ * erroneously detecting a narrowed value.
+ * </rant>
+ */
+#ifdef __REACTOS__
+#define htons(x) ((((x)&0xff)<<8)|(((x)>>8)&0xff))
+#define ntohs(x) htons(x)
+#endif
+
 #endif /* ADNS_WIN32_H_INCLUDED */
 
  _____  

Modified: trunk/reactos/lib/adns/src/event.c
--- trunk/reactos/lib/adns/src/event.c	2005-03-04 00:18:25 UTC (rev
13809)
+++ trunk/reactos/lib/adns/src/event.c	2005-03-04 01:47:01 UTC (rev
13810)
@@ -52,7 +52,7 @@

   
   serv= ads->tcpserver;
   adns_socket_close(ads->tcpsocket);
-  ads->tcpsocket= -1;
+  ads->tcpsocket= INVALID_SOCKET;
   ads->tcprecv.used= ads->tcprecv_skip= ads->tcpsend.used= 0;
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20050304/596aa629/attachment.html


More information about the Ros-diffs mailing list