PATCH, libiberty: eliminate build warning
Doug Kwan (關振德)
dougkwan@google.com
Thu Nov 19 16:16:00 GMT 2009
If the macro is used before an "else" keyword, would there be a
problem? I would instead do something like:
#define writeerr(s) do {write (STDERR_FILE_NO, s, strlen (s)); } while (0)
-Doug
2009/11/19 Ben Elliston <bje@au1.ibm.com>:
> This patch eliminates a warning in pex-unix.c due to write(3) being
> marked as warn_unused_result on some GNU/Linux distributions. As the
> coment in pex_child_error says, there is no alternative such as using
> fwrite(3).
>
> Okay for binutils and gcc trunk?
>
> Thanks, Ben
>
> 2009-11-19 Ben Elliston <bje@au.ibm.com>
>
> * pex-unix.c (pex_child_error): Define writeerr macro to avoid
> unused result warnings from write(3) calls. Undefine writeerr
> after all uses.
>
> Index: pex-unix.c
> ===================================================================
> RCS file: /cvs/src/src/libiberty/pex-unix.c,v
> retrieving revision 1.14
> diff -u -p -r1.14 pex-unix.c
> --- pex-unix.c 27 Jul 2009 19:01:17 -0000 1.14
> +++ pex-unix.c 19 Nov 2009 10:09:16 -0000
> @@ -368,7 +368,7 @@ static void
> pex_child_error (struct pex_obj *obj, const char *executable,
> const char *errmsg, int err)
> {
> -#define writeerr(s) (void) write (STDERR_FILE_NO, s, strlen (s))
> +#define writeerr(s) if (write (STDERR_FILE_NO, s, strlen (s))) {}
> writeerr (obj->pname);
> writeerr (": error trying to exec '");
> writeerr (executable);
> @@ -377,6 +377,7 @@ pex_child_error (struct pex_obj *obj, co
> writeerr (": ");
> writeerr (xstrerror (err));
> writeerr ("\n");
> +#undef writeerr
> _exit (-1);
> }
>
>
>
>
More information about the Binutils
mailing list