Mike Tubby via Exim-users <exim-users@exim.org> (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

Attachment: 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/

Reply via email to