1#!/bin/sh
2
3FILE=$1
4if [ ! -f $FILE ]; then
5	echo "ERROR: Not a file: $FILE"
6	exit 3
7fi
8ret=0
9if [ "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
13fi
14
15
16BIN_DIR=$($LLVM_CONFIG --bindir)
17DIS="$BIN_DIR/llvm-dis"
18if [ ! -x $DIS ]; then
19	echo "ERROR: Disassembler '$DIS' is not executable"
20	exit 3
21fi
22
23TMP_FILE=$(mktemp)
24
25# Check for calls. Calls to llvm intrinsics are OK
26$DIS < $FILE | grep ' call ' | grep -v '@llvm' > "$TMP_FILE"
27COUNT=$(wc -l < "$TMP_FILE")
28
29if [ "$COUNT" -ne "0" ]; then
30	echo "ERROR: $COUNT unresolved calls detected in $FILE"
31	cat $TMP_FILE
32	ret=1
33else
34	echo "File $FILE is OK"
35fi
36exit $ret
37