OSDN Git Service

Add static finding script.
authorBruce Momjian <bruce@momjian.us>
Wed, 20 Aug 1997 02:10:47 +0000 (02:10 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 20 Aug 1997 02:10:47 +0000 (02:10 +0000)
src/FIND_STATIC [new file with mode: 0644]

diff --git a/src/FIND_STATIC b/src/FIND_STATIC
new file mode 100644 (file)
index 0000000..bce75a2
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/sh
+trap "rm -f /tmp/$$" 0 1 2 3 15
+
+# This script finds functions that are either never called, or
+# should be static.
+# Some functions, like library functions and debug_print functions,
+# should remain unchanged.
+
+# Run on a compiled source tree, from the top of the source tree
+
+# My nm utility has 9 characters of address which I strip, then a 'type'
+# character, with T as a text function, and U as an undefined function
+# symbol, then the function name.
+
+find . -name '[a-z]*.o' -type f -print | while read FILE
+do
+       nm $FILE | cut -c10-100 |awk '{printf "%s\t%s\t%s\n", "'"$FILE"'",$1,$2}'
+done >/tmp/$$
+destroydb debug
+createdb debug
+echo "
+       create table debug (file text, scope char, func text);
+
+       copy debug from '/tmp/"$$"';
+
+       select  * 
+       into    table debug2 
+       from    debug;
+
+       update  debug2 
+       set     scope = '_' 
+       from    debug
+       where   debug2.func = debug.func and
+               debug2.scope = 'T' and debug.scope = 'U';
+
+       delete  from debug2
+       where   scope = '_';
+
+       select  *
+       from    debug2
+       where   scope = 'T';
+" |psql debug
+