1 #!/usr/bin/env perl 2 # SPDX-License-Identifier: GPL-2.0 3 # 4 # checkdeclares: find struct declared more tha 5 # 6 # Copyright 2021 Wan Jiabing<wanjiabing@vivo.co 7 # Inspired by checkincludes.pl 8 # 9 # This script checks for duplicate struct decl 10 # Note that this will not take into considerat 11 # you should run this only if you know you do 12 # and do not have them under #ifdef's. 13 # You could also just review the results. 14 15 use strict; 16 17 sub usage { 18 print "Usage: checkdeclares.pl file1.h 19 print "Warns of struct declaration dup 20 exit 1; 21 } 22 23 if ($#ARGV < 0) { 24 usage(); 25 } 26 27 my $dup_counter = 0; 28 29 foreach my $file (@ARGV) { 30 open(my $f, '<', $file) 31 or die "Cannot open $file: $!.\n"; 32 33 my %declaredstructs = (); 34 35 while (<$f>) { 36 if (m/^\s*struct\s*(\w*);$/o) 37 ++$declaredstructs{$1} 38 } 39 } 40 41 close($f); 42 43 foreach my $structname (keys %declared 44 if ($declaredstructs{$structna 45 print "$file: struct $ 46 ++$dup_counter; 47 } 48 } 49 } 50 51 if ($dup_counter == 0) { 52 print "No duplicate struct declares fo 53 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.