mirror of
https://github.com/golang/go
synced 2024-11-25 12:57:58 -07:00
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
This commit is contained in:
parent
f50e7b156e
commit
f861c7f61b
16
test/errchk
16
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
|
trap "rm -f $TMPOUT $TMPERR $TMPALL $TMPTMP $TMPBUG" 0 1 2 3 14 15
|
||||||
|
|
||||||
if $* >$TMPOUT 2>$TMPERR; then
|
(if $* >$TMPOUT 2>$TMPERR; then
|
||||||
echo 1>&2 "BUG: errchk: command succeeded unexpectedly"
|
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 $TMPOUT
|
||||||
cat 1>&2 $TMPERR
|
cat 1>&2 $TMPERR
|
||||||
rm -f $TMPOUT $TMPERR
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user