Messages in this thread Patch in this message | | | Date | Thu, 22 Mar 2012 19:48:02 +0200 | From | Phil Carmody <> | Subject | Re: [PATCH 1/1] checkpatch.pl: thou shalt not use () or (...) in function declarations |
| |
On 22/03/12 09:53 -0700, ext H. Peter Anvin wrote: > On 03/22/2012 09:22 AM, Jiri Slaby wrote: > > > > That explanation is not fully correct. C99 explicitly says (6.7.5.3.14): > > An identifier list declares only the identifiers of the parameters of > > the function. An empty list in a function declarator that is part of a > > definition of that function specifies that the function has no > > parameters. The empty list in a function declarator that is not part of > > a definition of that function specifies that no information about the > > number or types of the parameters is supplied. > > > > So what you are trying to force here holds only for (forward) > > declarations. Not for functions with definitions (bodies). Is checkpatch > > capable to differ between those? > > We shouldn't use it anyway. gcc might take it that way in C99 mode, but > it's unclear if it does it in the default mode, and having declarators > and definitions be different is just asking for trouble.
This perhaps? (And my support goes to any better rewordings.)
From: Phil Carmody <ext-phil.2.carmody@nokia.com> Date: Thu, 22 Mar 2012 19:40:47 +0200 Subject: [PATCH 2/2] Documentation/CodingStyle: outlaw () use (void)
While empty paramter lists in function definitions are not technically wrong, those situations are rare enough that it's worth encouraging people towards a more uniform, always unambiguous, style. http://lkml.org/lkml/2012/3/22/241
Signed-off-by: Phil Carmody <ext-phil.2.carmody@nokia.com> --- Documentation/CodingStyle | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle index 2b90d32..c4b9df7 100644 --- a/Documentation/CodingStyle +++ b/Documentation/CodingStyle @@ -381,6 +381,8 @@ EXPORT_SYMBOL(system_is_up); In function prototypes, include parameter names with their data types. Although this is not required by the C language, it is preferred in Linux because it is a simple way to add valuable information for the reader. +Do not use empty parameter lists, as they sometimes mean one thing and +sometimes mean another - avoid ambiguity by using (void). Chapter 7: Centralized exiting of functions -- 1.7.2.5
| |