Mike Tubby via Exim-users <[email protected]> (Mi 16 Jan 2019 14:58:07 CET): > All, > > When compiling Exim 4.91 on Ubuntu 16.04.5 LTS I get a gcc warning in the > USR1 signal handler: > > gcc exim.c > exim.c: In function ‘usr1_handler’: > exim.c:242:1: warning: ignoring return value of ‘write’, declared with > attribute warn_unused_result [-Wunused-result] > (void)write(fd, process_info, process_info_len); > ^ > gcc expand.c
On a curent Debian this attribute isn't used for the write(2)
call. Hm. Intentional?
> > if (fd > 0) {
> > ssize_t x;
> > int y;
> >
> > x = write(fd, process_info, process_info_len);
> > y = close(fd);
> > }
> 242,243d252
> < (void)write(fd, process_info, process_info_len);
> < (void)close(fd);
While (void) write(…) seems to express clearly the intention,
I'm not sure why GCC does not understand it (anymore, not yet?)
Beside from your proposal using a dummy variable, I found another
way
if (write(…));
if (close(…));
But it needs a comment or a macro like
#define IGNORE_RESULT(x) if(x)
…
IGNORE_RESULT(write(…))
--
Heiko
signature.asc
Description: PGP signature
-- ## List details at https://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/
