summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Vesely <jan.vesely@rutgers.edu>2017-09-29 19:06:48 +0000
committerJan Vesely <jan.vesely@rutgers.edu>2017-09-29 19:06:48 +0000
commit8c8c287adf20f4c03ab4a92f899bdc9be80cc510 (patch)
treea8bbc96cece861fb08fe8a375cab8acef543fd3a
parent41b1500db092a1c3483071edcc817265415939bb (diff)
downloadbcm5719-llvm-8c8c287adf20f4c03ab4a92f899bdc9be80cc510.tar.gz
bcm5719-llvm-8c8c287adf20f4c03ab4a92f899bdc9be80cc510.zip
Add script to check for unresolved function calls
v2: add shell shebang improve error checks and reporting v3: fix typo Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewed-by: Aaron Watry <awatry@gmail.com> llvm-svn: 314546
-rwxr-xr-xlibclc/check_external_calls.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/libclc/check_external_calls.sh b/libclc/check_external_calls.sh
new file mode 100755
index 00000000000..ad1d8c26150
--- /dev/null
+++ b/libclc/check_external_calls.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+FILE=$1
+if [ ! -f $FILE ]; then
+ echo "ERROR: Not a file: $FILE"
+ exit 3
+fi
+ret=0
+if [ "x$LLVM_CONFIG" = "x" ]; then
+ LLVM_CONFIG=llvm-config
+ echo 'WARNING: $LLVM_CONFIG not set, falling back to $PATH llvm-config'
+ ret=2
+fi
+
+
+BIN_DIR=$($LLVM_CONFIG --bindir)
+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"
+
+if [ $(wc -l < "$TMP_FILE") -ne "0" ]; then
+ echo "ERROR: unresolved calls detected"
+ cat $TMP_FILE
+ ret=1
+else
+ echo "File $FILE is OK"
+fi
+exit $ret
OpenPOWER on IntegriCloud