From 53597f24b007ce503dd7d22356c722cf0334f504 Mon Sep 17 00:00:00 2001 From: short <> Date: Fri, 2 Nov 2001 22:08:03 +0000 Subject: [PATCH] Checks unused non-static symbols and undefined .h-externed symbols --- bin/checkstatic | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 bin/checkstatic diff --git a/bin/checkstatic b/bin/checkstatic new file mode 100755 index 0000000..e525384 --- /dev/null +++ b/bin/checkstatic @@ -0,0 +1,38 @@ +#! /bin/sh + +fis="${*:-*.o}" + +for i in $fis;do + rest="`echo '' $fis ''|sed "s# $i # #"`" + trail="()" + for t in T BCDRS;do + for sym in `nm $i|sed -n 's/^.* ['$t'] \(.*\)$/\1/p'`;do + if nm $rest|grep -q ' U '"$sym"'$';then :;else + echo "$i $sym$trail"|sed 's/\.o /.c /' + fi + done + trail="" + done +done + +echo + +function checkextern +{ + ctags -f - --c-types=$1 `cvsfiles|grep '\.h$'` | \ + if $2;then + grep ' /\^extern ' + else + cat + fi \ + | while read -r line;do + sym="` echo "$line" | awk '{print $1}'`" + file="`echo "$line" | awk '{print $2}'`" + if nm $fis|grep -q " [$3] ""$sym"'$';then :;else + echo "extern $file $sym$4" + fi + done +} + +checkextern x true BCDRS "" +checkextern p false T "()" -- 1.8.3.1