|
Message-ID: <alpine.LNX.2.20.13.2008022148160.2454@monopod.intra.ispras.ru> Date: Sun, 2 Aug 2020 21:53:19 +0300 (MSK) From: Alexander Monakov <amonakov@...ras.ru> To: musl@...ts.openwall.com Subject: Re: Musl's FD_{SET,ISSET,CLR} macros from sys/select.h trigger gcc's -Wsign-conversion warnings On Sun, 2 Aug 2020, Petr Skocik wrote: > #define FD_SET(d, s) ((s)->fds_bits[(d)/(8*(int)sizeof(long))] |= > (1UL<<((d)%(8*(int)sizeof(long))))) > #define FD_CLR(d, s) ((s)->fds_bits[(d)/(8*(int)sizeof(long))] &= > ~(1UL<<((d)%(8*(int)sizeof(long))))) > #define FD_ISSET(d, s) !!((s)->fds_bits[(d)/(8*(int)sizeof(long))] & > (1UL<<((d)%(8*(int)sizeof(long))))) > > You might want to add them. (casting 'd' to size_t would have been more appropriate, as there's no need to perform signed division and modulus here) This is one of the cases where the warning should have been suppressed by GCC unless -Wsystem-headers is also given: the problem appears when expanding a macro defined in a system header, so the user can't cleanly avoid it. Would you care to open an issue in the GCC Bugzilla about it? Alexander
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.