diff options
Diffstat (limited to 'source4/script/find_unused_macros.pl')
-rwxr-xr-x | source4/script/find_unused_macros.pl | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/source4/script/find_unused_macros.pl b/source4/script/find_unused_macros.pl new file mode 100755 index 0000000000..8886835fa3 --- /dev/null +++ b/source4/script/find_unused_macros.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl +# Script that reads in C files and prints defines that are used nowhere in the +# code + +# Arguments: C and H files +# Copyright Jelmer Vernooij <jelmer@samba.org>, GPL + +use strict; + +my %defined; +my %used; +my %files; + +my $tmp; +while($tmp = shift) { + $files{$tmp} = $tmp; + open(FI, $tmp); + my $ln = 0; + while(<FI>) { + $ln++; + my $line = $_; + my $cur = ""; + if(/^#define ([A-Za-z0-9_]+)/) { + $defined{$1} = "$tmp:$ln"; + $cur = $1; + } + + $_ = $line; + while(/([A-Za-z0-9_]+)/sgm) { + if($cur ne $1) { $used{$1} = "$tmp:$ln"; } + } + } + close FI; +} + +foreach(keys %defined) { + if(!$used{$_}) { print "$defined{$_}: Macro `$_' is unused\n"; } +} |