diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-24 04:57:49 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-24 04:57:49 +0000 |
commit | 7c6d19502b3e308cdac7fb14983b599049d4e411 (patch) | |
tree | 04973280cd4751c0a3490cd189256c35db4d0517 /libiberty/pex-unix.c | |
parent | 4269dd0cd199dc351f7e966e651bef18bfaa9e2f (diff) | |
download | gcc-7c6d19502b3e308cdac7fb14983b599049d4e411.tar.gz |
2009-11-24 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 154487
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@154488 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty/pex-unix.c')
-rw-r--r-- | libiberty/pex-unix.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libiberty/pex-unix.c b/libiberty/pex-unix.c index 3753812b314..4428f60863f 100644 --- a/libiberty/pex-unix.c +++ b/libiberty/pex-unix.c @@ -368,7 +368,8 @@ static void pex_child_error (struct pex_obj *obj, const char *executable, const char *errmsg, int err) { -#define writeerr(s) if (write (STDERR_FILE_NO, s, strlen (s))) {} + int retval = 0; +#define writeerr(s) retval |= (write (STDERR_FILE_NO, s, strlen (s)) < 0) writeerr (obj->pname); writeerr (": error trying to exec '"); writeerr (executable); @@ -378,7 +379,8 @@ pex_child_error (struct pex_obj *obj, const char *executable, writeerr (xstrerror (err)); writeerr ("\n"); #undef writeerr - _exit (-1); + /* Exit with -2 if the error output failed, too. */ + _exit (retval == 0 ? -1 : -2); } /* Execute a child. */ |