From: Ian Lance Taylor Date: Sat, 22 Aug 2009 00:41:18 +0000 (-0700) Subject: If the compiler dumps core, bash will print a useless error X-Git-Tag: weekly.2009-11-06~801 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f861c7f61b9503bb01d2781487c267f8c320d42d;p=gostls13.git If the compiler dumps core, bash will print a useless error message with the full path of the errchk script. Catch that by wrapping the if statement which invokes the compiler in a subshell. Use the $TMPOUT file as a flag to let the main shell know whether the subshell ran. Since the compiler stdout and stderr are redirected, if the if statement produces any output, then the compiler crashed, and we report that. R=r,rsc DELTA=14 (11 added, 1 deleted, 2 changed) OCL=33690 CL=33692 --- diff --git a/test/errchk b/test/errchk index 00694c256f..c1183868f3 100755 --- a/test/errchk +++ b/test/errchk @@ -34,11 +34,21 @@ rm -f $TMPOUT $TMPERR $TMPALL $TMPTMP $TMPBUG trap "rm -f $TMPOUT $TMPERR $TMPALL $TMPTMP $TMPBUG" 0 1 2 3 14 15 -if $* >$TMPOUT 2>$TMPERR; then - echo 1>&2 "BUG: errchk: command succeeded unexpectedly" +(if $* >$TMPOUT 2>$TMPERR; then + echo 1>&4 "BUG: errchk: command succeeded unexpectedly" + cat 1>&3 $TMPOUT + cat 1>&4 $TMPERR + rm -f $TMPOUT $TMPERR + fi) 3>&1 4>&2 >$TMPTMP 2>&1 + +if ! test -f $TMPOUT; then + exit 0 +fi + +if test -s $TMPTMP; then + echo 1>&2 BUG: errchk: compiler crashed cat $TMPOUT cat 1>&2 $TMPERR - rm -f $TMPOUT $TMPERR exit 0 fi