#!/bin/sh | |
FILE=$1 | |
BIN_DIR=$2 | |
if [ ! -f $FILE ]; then | |
echo "ERROR: Not a file: $FILE" | |
exit 3 | |
fi | |
ret=0 | |
DIS="$BIN_DIR/llvm-dis" | |
if [ ! -x $DIS ]; then | |
echo "ERROR: Disassembler '$DIS' is not executable" | |
exit 3 | |
fi | |
TMP_FILE=$(mktemp) | |
# Check for calls. Calls to llvm intrinsics are OK | |
$DIS < $FILE | grep ' call ' | grep -v '@llvm' > "$TMP_FILE" | |
COUNT=$(wc -l < "$TMP_FILE") | |
if [ "$COUNT" -ne "0" ]; then | |
echo "ERROR: $COUNT unresolved calls detected in $FILE" | |
cat $TMP_FILE | |
ret=1 | |
else | |
echo "File $FILE is OK" | |
fi | |
exit $ret |