Jan Vesely | 8c8c287 | 2017-09-29 19:06:48 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | FILE=$1 |
| 4 | if [ ! -f $FILE ]; then |
| 5 | echo "ERROR: Not a file: $FILE" |
| 6 | exit 3 |
| 7 | fi |
| 8 | ret=0 |
| 9 | if [ "x$LLVM_CONFIG" = "x" ]; then |
| 10 | LLVM_CONFIG=llvm-config |
| 11 | echo 'WARNING: $LLVM_CONFIG not set, falling back to $PATH llvm-config' |
| 12 | ret=2 |
| 13 | fi |
| 14 | |
| 15 | |
| 16 | BIN_DIR=$($LLVM_CONFIG --bindir) |
| 17 | DIS="$BIN_DIR/llvm-dis" |
| 18 | if [ ! -x $DIS ]; then |
| 19 | echo "ERROR: Disassembler '$DIS' is not executable" |
| 20 | exit 3 |
| 21 | fi |
| 22 | |
| 23 | TMP_FILE=$(mktemp) |
| 24 | |
| 25 | # Check for calls. Calls to llvm intrinsics are OK |
| 26 | $DIS < $FILE | grep ' call ' | grep -v '@llvm' > "$TMP_FILE" |
Jan Vesely | 136381dc | 2017-10-08 20:07:56 | [diff] [blame] | 27 | COUNT=$(wc -l < "$TMP_FILE") |
Jan Vesely | 8c8c287 | 2017-09-29 19:06:48 | [diff] [blame] | 28 | |
Jan Vesely | 136381dc | 2017-10-08 20:07:56 | [diff] [blame] | 29 | if [ "$COUNT" -ne "0" ]; then |
| 30 | echo "ERROR: $COUNT unresolved calls detected in $FILE" |
Jan Vesely | 8c8c287 | 2017-09-29 19:06:48 | [diff] [blame] | 31 | cat $TMP_FILE |
| 32 | ret=1 |
| 33 | else |
| 34 | echo "File $FILE is OK" |
| 35 | fi |
| 36 | exit $ret |