Linux Documentation
 help / color / mirror / Atom feed
* kernel style preference trivia: '* const' vs '*const' ?
@ 2022-10-09 16:21 Joe Perches
  2022-10-09 16:52 ` Miguel Ojeda
  2022-10-10 11:48 ` David Laight
  0 siblings, 2 replies; 4+ messages in thread
From: Joe Perches @ 2022-10-09 16:21 UTC (permalink / raw)
  To: LKML, linux-doc; +Cc: Miguel Ojeda

The kernel uses '* const' about 10:1 over '*const'

coding_style and checkpatch don't care one way or another.

Does anyone care if there should be some kernel style preference?

$ git grep -P -oh '\b(?:char|u8)\s*\*\s*const\b' -- '*.[ch]' | \
  sort | uniq -c | sort -rn
  12450 char * const
   1357 char *const
     41 u8 * const
     17 char* const
      9 u8 *const
      5 char		*const
      2 char      * const
      2 char			*const
      1 char  * const
      1 char	*const
      1 char		* const


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kernel style preference trivia: '* const' vs '*const' ?
  2022-10-09 16:21 kernel style preference trivia: '* const' vs '*const' ? Joe Perches
@ 2022-10-09 16:52 ` Miguel Ojeda
  2022-10-09 21:47   ` Joe Perches
  2022-10-10 11:48 ` David Laight
  1 sibling, 1 reply; 4+ messages in thread
From: Miguel Ojeda @ 2022-10-09 16:52 UTC (permalink / raw)
  To: Joe Perches; +Cc: LKML, linux-doc

On Sun, Oct 9, 2022 at 6:21 PM Joe Perches <joe@perches.com> wrote:
>
> The kernel uses '* const' about 10:1 over '*const'

Yeah, going with the most commonly used one sounds best.

clang-format will be able to handle either way with
`SpaceAroundPointerQualifiers` as soon as the minimum is LLVM 12.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kernel style preference trivia: '* const' vs '*const' ?
  2022-10-09 16:52 ` Miguel Ojeda
@ 2022-10-09 21:47   ` Joe Perches
  0 siblings, 0 replies; 4+ messages in thread
From: Joe Perches @ 2022-10-09 21:47 UTC (permalink / raw)
  To: Miguel Ojeda; +Cc: LKML, linux-doc

On Sun, 2022-10-09 at 18:52 +0200, Miguel Ojeda wrote:
> On Sun, Oct 9, 2022 at 6:21 PM Joe Perches <joe@perches.com> wrote:
> > 
> > The kernel uses '* const' about 10:1 over '*const'
> 
> Yeah, going with the most commonly used one sounds best.
> 
> clang-format will be able to handle either way with
> `SpaceAroundPointerQualifiers` as soon as the minimum is LLVM 12.

Perhaps the below.

Perhaps it should be a --strict only CHK, but the rest of the const
tests are WARN as well.

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

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 2737e4ced5745..eccd7940eb18b 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -4605,6 +4605,14 @@ sub process {
 			}
 		}
 
+# check for foo *const, prefer foo * const
+		if ($line =~ /\*const\b/) {
+			if (WARN("POINTER_CONST",
+				 "Prefer * const over *const\n" . $herecurr) &&
+			    $fix) {
+				$fixed[$fixlinenr] =~ s/\*const\b/* const/;
+			}
+		}
 # check for non-global char *foo[] = {"bar", ...} declarations.
 		if ($line =~ /^.\s+(?:static\s+|const\s+)?char\s+\*\s*\w+\s*\[\s*\]\s*=\s*\{/) {
 			WARN("STATIC_CONST_CHAR_ARRAY",

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* RE: kernel style preference trivia: '* const' vs '*const' ?
  2022-10-09 16:21 kernel style preference trivia: '* const' vs '*const' ? Joe Perches
  2022-10-09 16:52 ` Miguel Ojeda
@ 2022-10-10 11:48 ` David Laight
  1 sibling, 0 replies; 4+ messages in thread
From: David Laight @ 2022-10-10 11:48 UTC (permalink / raw)
  To: 'Joe Perches', LKML, linux-doc; +Cc: Miguel Ojeda

From: Joe Perches
> Sent: 09 October 2022 17:22
> 
> The kernel uses '* const' about 10:1 over '*const'
> 
> coding_style and checkpatch don't care one way or another.
> 
> Does anyone care if there should be some kernel style preference?

I see a wave of patches to 'correct' all the uses...

> $ git grep -P -oh '\b(?:char|u8)\s*\*\s*const\b' -- '*.[ch]' | \
>   sort | uniq -c | sort -rn
>   12450 char * const
>    1357 char *const
>      41 u8 * const
>      17 char* const

That one should be an error.
Consider:
	char* const foo, bar;

Fortunately the compiler will find those.

I'd guess 'char* foo' is already an error?

Which makes me think the * ought to be as close as possible
to the variable/field name.
So perhaps 'char *const foo' should be ok.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-10-10 11:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-09 16:21 kernel style preference trivia: '* const' vs '*const' ? Joe Perches
2022-10-09 16:52 ` Miguel Ojeda
2022-10-09 21:47   ` Joe Perches
2022-10-10 11:48 ` David Laight

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox