From: Meador Inge Date: Thu, 27 Sep 2012 16:05:38 +0000 (+0000) Subject: gcc-ar.c (main): Handle the returning of the sub-process error code correctly. X-Git-Tag: misc/gccgo-go1_1_2~600 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=33adc2a3251455613837491b32de4fa5477da62a;p=thirdparty%2Fgcc.git gcc-ar.c (main): Handle the returning of the sub-process error code correctly. 2012-09-27 Meador Inge * gcc-ar.c (main): Handle the returning of the sub-process error code correctly. From-SVN: r191809 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fe86a66f6bf9..20217ba69b37 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-09-27 Meador Inge + + * gcc-ar.c (main): Handle the returning of the sub-process error + code correctly. + 2012-09-27 Ulrich Weigand * lower-subreg.c (enum classify_move_insn): Rename diff --git a/gcc/gcc-ar.c b/gcc/gcc-ar.c index caae1670bf60..5f78378dea86 100644 --- a/gcc/gcc-ar.c +++ b/gcc/gcc-ar.c @@ -42,6 +42,7 @@ main(int ac, char **av) const char *err_msg; const char **nargv; bool is_ar = !strcmp (PERSONALITY, "ar"); + int exit_code = FATAL_EXIT_CODE; exe_name = PERSONALITY; #ifdef CROSS_DIRECTORY_STRUCTURE @@ -96,6 +97,20 @@ main(int ac, char **av) NULL,NULL, &status, &err); if (err_msg) fprintf(stderr, "Error running %s: %s\n", exe_name, err_msg); + else if (status) + { + if (WIFSIGNALED (status)) + { + int sig = WTERMSIG (status); + fprintf (stderr, "%s terminated with signal %d [%s]%s\n", + exe_name, sig, strsignal(sig), + WCOREDUMP(status) ? ", core dumped" : ""); + } + else if (WIFEXITED (status)) + exit_code = WEXITSTATUS (status); + } + else + exit_code = SUCCESS_EXIT_CODE; - return err; + return exit_code; }