about summary refs log tree commit diff
path: root/misc/bits/select2.h
diff options
context:
space:
mode:
authorPaul Pluzhnikov <ppluzhnikov@google.com>2012-06-13 09:57:18 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2012-06-13 09:57:18 -0700
commitceb9e56b3d1f8c1922e0526c2e841373843460e2 (patch)
treed4e8a467540d705187cd5015cbdfd8356133b4ff /misc/bits/select2.h
parentddb28975144a7fd620ac2cae6fa219f73bd9e790 (diff)
downloadglibc-ceb9e56b3d1f8c1922e0526c2e841373843460e2.tar.gz
glibc-ceb9e56b3d1f8c1922e0526c2e841373843460e2.tar.xz
glibc-ceb9e56b3d1f8c1922e0526c2e841373843460e2.zip
Suppress sign-conversion warning from FD_SET.
[BZ #14210] See <http://sourceware.org/ml/libc-alpha/2012-05/msg01794.html>.
* debug/fdelt_chk.c (__fdelt_chk): Accept and return long int,
not unsigned long int.
* misc/bits/select2.h (__fdelt_chk, __fdelt_warn, __FD_ELT): Likewise.
Diffstat (limited to 'misc/bits/select2.h')
-rw-r--r--misc/bits/select2.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/misc/bits/select2.h b/misc/bits/select2.h
index 9679925b06..76ae36877a 100644
--- a/misc/bits/select2.h
+++ b/misc/bits/select2.h
@@ -1,5 +1,5 @@
 /* Checking macros for select functions.
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,14 +21,15 @@
 #endif
 
 /* Helper functions to issue warnings and errors when needed.  */
-extern unsigned long int __fdelt_chk (unsigned long int __d);
-extern unsigned long int __fdelt_warn (unsigned long int __d)
+extern long int __fdelt_chk (long int __d);
+extern long int __fdelt_warn (long int __d)
   __warnattr ("bit outside of fd_set selected");
 #undef __FD_ELT
 #define	__FD_ELT(d) \
   __extension__								    \
-  ({ unsigned long int __d = (d);					    \
+  ({ long int __d = (d);						    \
      (__builtin_constant_p (__d)					    \
-      ? (__d >= __FD_SETSIZE						    \
-	 ? __fdelt_warn (__d) : (__d / __NFDBITS))			    \
+      ? (0 <= __d && __d < __FD_SETSIZE					    \
+	 ? (__d / __NFDBITS)						    \
+	 : __fdelt_warn (__d))						    \
       : __fdelt_chk (__d)); })