]> Cypherpunks repositories - gostls13.git/commitdiff
If the compiler dumps core, bash will print a useless error
authorIan Lance Taylor <iant@golang.org>
Sat, 22 Aug 2009 00:41:18 +0000 (17:41 -0700)
committerIan Lance Taylor <iant@golang.org>
Sat, 22 Aug 2009 00:41:18 +0000 (17:41 -0700)
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

test/errchk

index 00694c256f76ec7715a681e45dd31026a1bc9506..c1183868f3f0d1e070638c4f0a07ddb90f327300 100755 (executable)
@@ -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