Commit f861c7f6 authored by Ian Lance Taylor's avatar Ian Lance Taylor

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
parent f50e7b15
...@@ -34,11 +34,21 @@ rm -f $TMPOUT $TMPERR $TMPALL $TMPTMP $TMPBUG ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment