Re: [PATCH 1/1] docs: kernel-doc: fix parsing of function pointers

From: Joe Perches
Date: Mon Sep 03 2018 - 18:28:16 EST


On Mon, 2018-09-03 at 15:38 -0600, Jonathan Corbet wrote:
> On Mon, 3 Sep 2018 22:29:00 +0200
> Heinrich Schuchardt <xypron.glpk@xxxxxx> wrote:
>
> > > > # pointer-to-function
> > > > $arg =~ tr/#/,/;
> > > > - $arg =~ m/[^\(]+\(\*?\s*([\w\.]*)\s*\)/;
> >
> > m/[^\(]+\(\*?\s*([\w\.]*)\s*\)/;
> > ^
> > Here we allow for 0..1 asterixes.
> >
> > If there is no asterix it is not a function pointer. Why should we care
> > for this case?
>
> GCC seems to allow that asterisk (asterix is an indomitable Gaul :) to be
> missing; not sure if that's officially allowed by the language or not. I
> also don't know if any code in the kernel elides it,

Many typedefs for function pointers do not use the *
Dunno if there are many others, I didn't look hard.

$ git grep -P '\w+\s*\*?\s*\(\s*\w+\w*\)\s*\(\w+' | \
grep -w typedef