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