From 3678336b201730fc081cf11d52eaf9b0f641ee45 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 24 Oct 2022 23:26:56 +0200 Subject: scripts/checksrc.pl: detect duplicated include files After an idea by Dan Fandrich in #9794 Closes #9796 --- scripts/checksrc.pl | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'scripts') diff --git a/scripts/checksrc.pl b/scripts/checksrc.pl index 651b4b700..54cd30cd9 100755 --- a/scripts/checksrc.pl +++ b/scripts/checksrc.pl @@ -380,6 +380,7 @@ sub scanfile { my $incomment=0; my @copyright=(); + my %includes; checksrc_clear(); # for file based ignores accept_violations(); @@ -472,6 +473,15 @@ sub scanfile { $line, length($1), $file, $l, "\/\/ comment"); } + if($l =~ /^(\#\s*include\s+)([\">].*[>}"])/) { + my ($pre, $path) = ($1, $2); + if($includes{$path}) { + checkwarn("INCLUDEDUP", + $line, length($1), $file, $l, "duplicated include"); + } + $includes{$path} = $l; + } + # detect and strip preprocessor directives if($l =~ /^[ \t]*\#/) { # preprocessor line -- cgit v1.2.1