[Cocci] Matching function pointer typedef

Håkon Løvdal hlovdal at gmail.com
Tue May 15 22:50:46 CEST 2018


It's been a while since I used coccinelle, but I think to remember that you must
(and in any case should) keep the non-changing parts outside of the
+/- lines, e.g.

@@
@@
         typedef void (*toto_t)(int a, int b
+        , int c
         );

etc

BR Håkon Løvdal

On 15 May 2018 at 22:36, Jerome Glisse <jglisse at redhat.com> wrote:
> Hello,
>
> I am trying to modify an function pointer typedef something like:
>
> @@
> @@
> - typedef void (*toto_t)(int a, int b);
> + typedef void (*toto_t)(int a, int b, int c);
>
> But it seems spatch or the semantic does not handle function pointer.
> Or simply that typedef is not well handled in the first place. Thing
> like:
>
> @@
> @@
> - typedef int nombre;
> + typedef unsigned nombre;
>
> also fails to work. But if typedef is use with struct then it works.
> For instance:
>
> @@
> @@
> - typedef struct {int a;} nombre;
> + typedef struct {unsigned a;} nombre;
>
> Do work. Looking at declaration grammar i do not see why the former
> does not work. I am using fedora 27 coccinelle 1.0.6 if that matters.
>
> Is this a known limitation or am i writting it wrong ?
>
> Thank you for any input on this,
> Jérôme
> _______________________________________________
> Cocci mailing list
> Cocci at systeme.lip6.fr
> https://systeme.lip6.fr/mailman/listinfo/cocci


More information about the Cocci mailing list