Print this page
new smatch

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/sparsec
          +++ new/usr/src/tools/smatch/src/sparsec
↓ open down ↓ 21 lines elided ↑ open up ↑
  22   22                  ;;
  23   23          '-c')
  24   24                  NEED_LINK=0
  25   25                  ;;
  26   26          *)
  27   27                  SPARSEOPTS="$SPARSEOPTS $1 " ;;
  28   28          esac
  29   29          shift
  30   30  done
  31   31  
  32      -TMPLLVM=`mktemp -t tmp.XXXXXX`".llvm"
  33      -TMPFILE=`mktemp -t tmp.XXXXXX`".o"
       32 +TMPFILE=`mktemp -t tmp.XXXXXX`
  34   33  
  35      -$DIRNAME/sparse-llvm $SPARSEOPTS > $TMPLLVM
  36   34  
  37   35  LLC=`"${LLVM_CONFIG:-llvm-config}" --bindir`/llc
  38   36  
  39      -$LLC -o - $TMPLLVM | as -o $TMPFILE
       37 +LLC_ARCH_OPTS=
       38 +case "$(uname -s)" in
       39 +*CYGWIN*)
       40 +        # cygwin uses the sjlj (setjmp-longjmp) exception model
       41 +        LLC_ARCH_OPTS="-exception-model=sjlj"
       42 +        ;;
       43 +*)
       44 +        ;;
       45 +esac
  40   46  
       47 +$DIRNAME/sparse-llvm $SPARSEOPTS | $LLC ${LLC_ARCH_OPTS} | as -o $TMPFILE
       48 +
  41   49  if [ $NEED_LINK -eq 1 ]; then
  42   50          if [ -z $OUTFILE ]; then
  43   51                  OUTFILE=a.out
  44   52          fi
  45   53          gcc $TMPFILE -o $OUTFILE
       54 +        rm -f $TMPFILE
  46   55  else
  47   56          if [ -z $OUTFILE ]; then
  48   57                  echo "`basename $0`: no output file"
  49   58                  exit 1
  50   59          fi
  51   60          mv $TMPFILE $OUTFILE
  52   61  fi
  53      -
  54      -rm -f $TMPLLVM
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX