+ checkpatch-warn-when-using-extern-with-function-prototypes-in-h-files.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Subject: + checkpatch-warn-when-using-extern-with-function-prototypes-in-h-files.patch added to -mm tree
To: joe@xxxxxxxxxxx,hannes@xxxxxxxxxxxxxxxxxxx
From: akpm@xxxxxxxxxxxxxxxxxxxx
Date: Tue, 30 Jul 2013 13:35:40 -0700


The patch titled
     Subject: checkpatch: warn when using extern with function prototypes in .h files
has been added to the -mm tree.  Its filename is
     checkpatch-warn-when-using-extern-with-function-prototypes-in-h-files.patch

This patch should soon appear at
    http://ozlabs.org/~akpm/mmots/broken-out/checkpatch-warn-when-using-extern-with-function-prototypes-in-h-files.patch
and later at
    http://ozlabs.org/~akpm/mmotm/broken-out/checkpatch-warn-when-using-extern-with-function-prototypes-in-h-files.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/SubmitChecklist when testing your code ***

The -mm tree is included into linux-next and is updated
there every 3-4 working days

------------------------------------------------------
From: Joe Perches <joe@xxxxxxxxxxx>
Return-Path: <joe@xxxxxxxxxxx>
Received: from localhost (localhost [127.0.0.1])
	by localhost.localdomain (8.14.3/8.14.3) with ESMTP id r6P2xMsU012357
	for <akpm@localhost>; Wed, 24 Jul 2013 19:59:22 -0700
X-Original-To: akpm@xxxxxxxxxxxxxxxxxxxxxxxx
Delivered-To: akpm@xxxxxxxxxxxxxxxxxxxxxxxx
Received: from mail.linuxfoundation.org [140.211.169.12]
	by localhost with IMAP (fetchmail-6.3.11)
	for <akpm@localhost> (single-drop); Wed, 24 Jul 2013 19:59:22 -0700 (PDT)
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTP id AF27D9A7
	for <akpm@xxxxxxxxxxxxxxxxxxxxxxxx>; Thu, 25 Jul 2013 02:59:14 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-pb0-f50.google.com (mail-pb0-f50.google.com [209.85.160.50])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 343C81FFFD
	for <akpm@xxxxxxxxxxxxxxxxxxxxxxxx>; Thu, 25 Jul 2013 02:59:13 +0000 (UTC)
Received: by mail-pb0-f50.google.com with SMTP id wz7so173057pbc.9
        for <akpm@xxxxxxxxxxxxxxxxxxxxxxxx>; Wed, 24 Jul 2013 19:59:12 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20120113;
        h=message-id:subject:from:to:cc:date:in-reply-to:references
         :content-type:x-mailer:mime-version:content-transfer-encoding
         :delivered-to:x-gm-message-state;
        bh=HegxCR9S/6Ol8/NXFHJEqp0kOFZ1qzccL84Eae8nUis=;
        b=W3LdZSCP098FS/g9/+9FviU/F0DVnRCUYq8tC+VhyczZlOKyTv0LQ0CoQQyNQcZTWd
         NLlppFh6VztGAti+unlJMX28IQ7cWcG/M2EAFDD4wEgkxEIz4Cm5VZFKZzSC6IIfVeNW
         MNABHbWkKxuflG4Tn17q6nqWr/2M3YR1CT2g5XUfUutoxXhP4K1ql+Nz49nfMdPX2lc2
         cvxDyee98exPWoVr/YGtBFvNfRs2yFsp+JIsmTFnpm2WSJ/NfxHkaMJ8n+bLdXTdUzHk
         nguFp8PpXoUiBU0SzBfJrmCvJ2wjOYbsJYdNrpX4fsYND+wnhIhbY6DzJkuvE1ZHyEwV
         gCww==
X-Received: by 10.66.240.140 with SMTP id wa12mr46799974pac.162.1374721152928;
        Wed, 24 Jul 2013 19:59:12 -0700 (PDT)
X-Received: by 10.66.240.140 with SMTP id wa12mr46799933pac.162.1374721152333;
        Wed, 24 Jul 2013 19:59:12 -0700 (PDT)
Received: from labridge.com (perches-mx.perches.com. [206.117.179.246])
        by mx.google.com with ESMTPS id ib1si28287620pbc.190.2013.07.24.19.59.11
        for <akpm@xxxxxxxxxxxxxxxxxxxx>
        (version=SSLv3 cipher=RC4-SHA bits=128/128);
        Wed, 24 Jul 2013 19:59:12 -0700 (PDT)
Received-SPF: pass (google.com: best guess record for domain of joe@xxxxxxxxxxx designates 206.117.179.246 as permitted sender) client-ip=206.117.179.246;
Authentication-Results: mx.google.com;
       spf=pass (google.com: best guess record for domain of joe@xxxxxxxxxxx designates 206.117.179.246 as permitted sender) smtp.mail=joe@xxxxxxxxxxx
Received: from [173.51.221.202] (account joe@xxxxxxxxxxx HELO [192.168.1.152])
  by labridge.com (CommuniGate Pro SMTP 5.0.14)
  with ESMTPA id 21185239; Wed, 24 Jul 2013 19:59:11 -0700
Message-ID: <1374721150.1924.26.camel@joe-AO722>
Subject: checkpatch: Warn when using extern with function prototypes in .h files
To: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Whitcroft <apw@xxxxxxxxxxxxx>,
        Hannes Frederic Sowa
	 <hannes@xxxxxxxxxxxxxxxxxxx>,
        Cong Wang <xiyou.wangcong@xxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx,
        netdev@xxxxxxxxxxxxxxx
Date: Wed, 24 Jul 2013 19:59:10 -0700
In-Reply-To: <20130725014732.GA10036@xxxxxxxxxxxxxxxxxxxxxxxxx>
References: <1374602291.3387.17.camel@joe-AO722>
	 <kspuuk$k2v$1@xxxxxxxxxxxxx> <1374716480.1924.18.camel@joe-AO722>
	 <20130725014732.GA10036@xxxxxxxxxxxxxxxxxxxxxxxxx>
Content-Type: text/plain; charset="ISO-8859-1"
X-Mailer: Evolution 3.6.4-0ubuntu1
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
Delivered-To: akpm@xxxxxxxxxxxxxxxxxxxx
X-Gm-Message-State: ALoCoQkkQsRYHjRth62vtcP2dTWDIwQLza8w9oAlP7aNvPZVCU8/74ko7De9B0TFmFBM8qdCEjbQlYxIHSzNihSjxkKeB0LTWYHEidJ2R+XDo/yIU8CxNvnZhFzBMoEaX+PVkbAAa74lFaIaja01gGa6fdujyd1/lw==
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW
	autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org

Using the extern keyword on function prototypes is superfluous
visual noise so suggest removing it.

Using extern can cause unnecessary line wrapping at 80 columns
and unnecessarily long multi-line function prototypes.

Suggested-by: Hannes Frederic Sowa <hannes@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
---
On Thu, 2013-07-25 at 03:47 +0200, Hannes Frederic Sowa wrote:
> On Wed, Jul 24, 2013 at 06:41:20PM -0700, Joe Perches wrote:
> > On Thu, 2013-07-25 at 01:27 +0000, Cong Wang wrote:
> > > On Tue, 23 Jul 2013 at 17:58 GMT, Joe Perches <joe@xxxxxxxxxxx> wrote:
> > > > Function prototypes don't need to be declared
> > > > extern in .h files.  It's assumed by the compiler
> > > > and is as unnecessary as using auto is when
> > > > declaring automatic/local variables in a block.
> > > Since we all know this, why bother it?
> > If everyone knew this, new ones wouldn't be added.
> > But a lot are.
> Couldn't checkpatch take care of these?

checkpatch doesn't work well for multiple lines so
this doesn't work on things like
	extern unsigned long
	foo(type bar);
but it does for the single line function prototypes.

Using --fix removes them.

 scripts/checkpatch.pl | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 6918517..23126d4 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3866,6 +3866,16 @@ sub process {
 			}
 		}
 
+# check for new externs in .h files.
+		if ($realfile =~ /\.h$/ &&
+		    $line =~ /^\+\s*(extern\s+)$Type\s*$Ident\s*\(/s) {
+			if (WARN("AVOID_EXTERNS",
+				 "extern prototypes should be avoided in .h files\n" . $herecurr) &&
+			    $fix) {
+				$fixed[$linenr - 1] =~ s/(.*)\bextern\b\s*(.*)/$1$2/;
+			}
+		}
+
 # check for new externs in .c files.
 		if ($realfile =~ /\.c$/ && defined $stat &&
 		    $stat =~ /^.\s*(?:extern\s+)?$Type\s+($Ident)(\s*)\(/s)
-- 
1.8.1.2.459.gbcd45b4.dirty



Patches currently in -mm which might be from joe@xxxxxxxxxxx are

maintainers-dynamic-debug-jasons-not-there.patch
printk-move-to-separate-directory-for-easier-modification.patch
printk-move-to-separate-directory-for-easier-modification-fix.patch
printk-add-console_cmdlineh.patch
printk-move-braille-console-support-into-separate-braille-files.patch
printk-use-pointer-for-console_cmdline-indexing.patch
printk-rename-struct-log-to-struct-printk_log.patch
maintainers-exynos-remove-board-files.patch
maintainers-arm-omap2-3-remove-unused-clockdomain-files.patch
maintainers-omap-powerdomain-update-patterns.patch
maintainers-arm-s3c2410-update-patterns.patch
maintainers-arm-spear-consolidate-sections.patch
maintainers-arm-plat-nomadik-update-patterns.patch
maintainers-arm-s3c24xx-remove-plat-s3c24xx.patch
maintainers-ghes_edac-update-pattern.patch
maintainers-update-siano-drivers.patch
maintainers-si4713-fix-file-pattern.patch
maintainers-update-it913x-patterns.patch
maintainers-update-sirf-patterns.patch
maintainers-update-ssbi-patterns.patch
maintainers-update-file-pattern-for-arc-uart.patch
maintainers-update-usb-ehci-platform-pattern.patch
maintainers-usb-phy-update-patterns.patch
maintainers-update-gre-demux-patterns.patch
checkpatch-add-a-few-more-fix-corrections.patch
checkpatch-check-camelcase-by-word-not-by-lval.patch
checkpatch-enforce-sane-perl-version.patch
checkpatch-check-for-duplicate-signatures.patch
checkpatch-warn-when-using-extern-with-function-prototypes-in-h-files.patch
firmware-dmi_scan-drop-obsolete-comment.patch
firmware-dmi_scan-fix-most-checkpatch-errors-and-warnings.patch
firmware-dmi_scan-constify-strings.patch
firmware-dmi_scan-drop-oom-messages.patch
pktcdvd-convert-zone-macro-to-static-function-get_zone.patch
pktcdvd-convert-printk-to-pr_level.patch
pktcdvd-consolidate-dprintk-and-vprintk-macros.patch
pktcdvd-add-struct-pktcdvd_device-to-pkt_dbg.patch
pktcdvd-add-struct-pktcdvd_devicename-to-pr_err-logging-where-possible.patch
pktcdvd-convert-pr_notice-to-pkt_notice.patch
pktcdvd-convert-pr_info-to-pkt_info.patch
pktcdvd-add-struct-pktcdvd_device-to-pkt_dump_sense.patch
linux-next.patch

--
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux