The patch titled Subject: scripts: a new script for checking duplicate struct declaration has been added to the -mm tree. Its filename is scripts-a-new-script-for-checking-duplicate-struct-declaration.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/scripts-a-new-script-for-checking-duplicate-struct-declaration.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/scripts-a-new-script-for-checking-duplicate-struct-declaration.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Wan Jiabing <wanjiabing@xxxxxxxx> Subject: scripts: a new script for checking duplicate struct declaration checkdeclares: find struct declared more than once. 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. Link: https://lkml.kernel.org/r/20210401110943.1010796-1-wanjiabing@xxxxxxxx Signed-off-by: Wan Jiabing <wanjiabing@xxxxxxxx> Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx> Cc: Joe Perches <joe@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- scripts/checkdeclares.pl | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) --- /dev/null +++ a/scripts/checkdeclares.pl @@ -0,0 +1,53 @@ +#!/usr/bin/env perl +# SPDX-License-Identifier: GPL-2.0 +# +# checkdeclares: find struct declared more than once +# +# Copyright 2021 Wan Jiabing<wanjiabing@xxxxxxxx> +# 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 \n"; + print "We just warn 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"; +} _ Patches currently in -mm which might be from wanjiabing@xxxxxxxx are scripts-a-new-script-for-checking-duplicate-struct-declaration.patch linux-memcontrolh-remove-duplicate-struct-declaration.patch