| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/usr/bin/env perl
- # SPDX-License-Identifier: GPL-2.0
- #
- # checkdeclares: find struct declared more than once
- #
- # Copyright 2021 Wan Jiabing<wanjiabing@vivo.com>
- # Inspired by checkincludes.pl
- #
- # This script checks for duplicate struct declares.
- # Note that this will not take into consideration macros so
- # you should run this only if you know you do have real dups
- # and do not have them under #ifdef's.
- # You could also just review the results.
- use strict;
- sub usage {
- print "Usage: checkdeclares.pl file1.h ...\n";
- print "Warns of struct declaration duplicates\n";
- exit 1;
- }
- if ($#ARGV < 0) {
- usage();
- }
- my $dup_counter = 0;
- foreach my $file (@ARGV) {
- open(my $f, '<', $file)
- or die "Cannot open $file: $!.\n";
- my %declaredstructs = ();
- while (<$f>) {
- if (m/^\s*struct\s*(\w*);$/o) {
- ++$declaredstructs{$1};
- }
- }
- close($f);
- foreach my $structname (keys %declaredstructs) {
- if ($declaredstructs{$structname} > 1) {
- print "$file: struct $structname is declared more than once.\n";
- ++$dup_counter;
- }
- }
- }
- if ($dup_counter == 0) {
- print "No duplicate struct declares found.\n";
- }
|