2 # SPDX-License-Identifier: GPL-2.0
4 # checkdeclares: find struct declared more than once
6 # Copyright 2021 Wan Jiabing<wanjiabing@vivo.com>
7 # Inspired by checkincludes.pl
9 # This script checks for duplicate struct declares.
10 # Note that this will not take into consideration macros so
11 # you should run this only if you know you do have real dups
12 # and do not have them under #ifdef's.
13 # You could also just review the results.
18 print "Usage: checkdeclares.pl file1.h ...\n";
19 print "Warns of struct declaration duplicates\n";
29 foreach my $file (@ARGV) {
30 open(my $f, '<', $file)
31 or die "Cannot open $file: $!.\n";
33 my %declaredstructs = ();
36 if (m/^\s*struct\s*(\w*);$/o) {
37 ++$declaredstructs{$1};
43 foreach my $structname (keys %declaredstructs) {
44 if ($declaredstructs{$structname} > 1) {
45 print "$file: struct $structname is declared more than once.\n";
51 if ($dup_counter == 0) {
52 print "No duplicate struct declares found.\n";