(linenum→info "unix/slp.c:2238")

qemu/0.9.1/check_ops.sh

    1: #! /bin/sh
    2: # Script to check for duplicate function prologues in op.o
    3: # Typically this indicates missing FORCE_RET();
    4: # This script does not detect other errors that may be present.
    5: 
    6: # Usage: check_ops.sh [-m machine] [op.o]
    7: #   machine and op.o are guessed if not specified.
    8: 
    9: if [ "x$1" = "x-m" ]; then
   10:   machine=$2
   11:   shift 2
   12: else
   13:   machine=`uname -m`
   14: fi
   15: if [ -z "$1" ]; then
   16:   for f in `find . -name op.o`; do
   17:     /bin/sh "$0" -m $machine $f
   18:   done
   19:   exit 0
   20: fi
   21: 
   22: case $machine in
   23:   i?86)
   24:     ret='\tret'
   25:     ;;
   26:   x86_64)
   27:     ret='\tretq'
   28:     ;;
   29:   arm)
   30:     ret='\tldm.*pc'
   31:     ;;
   32:   ppc* | powerpc*)
   33:     ret='\tblr'
   34:     ;;
   35:   mips*)
   36:     ret='\tjr.*ra'
   37:     ;;
   38:   s390*)
   39:     ret='\tbr.*'
   40:     ;;
   41:   *)
   42:     echo "Unknown machine `uname -m`"
   43:     ;;
   44: esac
   45: echo $1
   46: # op_exit_tb causes false positives on some hosts.
   47: ${CROSS}objdump -dr $1  | \
   48:   sed -e '/>:$\|'"$ret"'/!d' -e 's/.*<\(.*\)>:/~\1:/' -e 's/.*'"$ret"'.*/!/' | \
   49:   sed -e ':1;N;s/\n//;t1' | sed -e 's/~/\n/g' | grep -v '^op_exit_tb' | \
   50:   grep '^op_.*!!'
Syntax (Markdown)