On Tue, 26 May 2020, Thomas Adam wrote:

> On Sun, 17 May 2020 at 10:22, Markus Elfring <[email protected]> wrote:
> > Generally, yes.
> >
> > A more complete source code transformation approach can become challenging.
>
> So I've decided to try and take a different approach, and have
> rethrough the function interface.
>
> Rather than try and modify the arguments in the way I was, I think it
> makes sense to largely keep the existing function signatures.
>
> So for example, currently there is:
>
> func_old(int level, const char *func, const char *fmt, ...);
>
> What I'm after here is to modify func_old, such that I drop the "int
> level" parameter, and change the *func occurrences to "__func__", and
> drag the variadic arguments with the transformation, hence, I'd like
> func_old to now look like:
>
> func_old(const char *func, const char *fmt, ...);
>
> So what was once:
>
> func_old(ERR, "MyFunction", "%s: hello: %d, %d", myvar, x, y);
>
> Should now be:
>
> func_old(__func__,  "%s: hello: %d, %d", myvar, x, y);
>
> I'm having trouble expressing my smPL to understand the ellipses
> correctly.  Here's what I have so far:
>
> @@
> expression L, F;
> @@
>
> - func_old(L, F, ...);
> + func_old(__func_, ...);


You can't add ...  Coccinelle has no idea what it refers to.  You can just
put:

func_old(
- L,F
+ __func__
  ,...)

julia

>
> ... but here, things fall apart:
>
> init_defs_builtins: /usr/bin/../lib/coccinelle/standard.h
> File "contrib/coccinelle/remove_debug.cocci", line 6, column 21, charpos = 68
>   around = '...',
>   whole content = + func_old(__func__, ...);
>
> Any ideas on what I'm doing wrong?  If there's appropriate
> documentation on this, please feel free to point me toward it.  I feel
> as though I'm missing something obvious here, so thanks for your time
> and for any help you can give.
>
> -- Thomas
> _______________________________________________
> Cocci mailing list
> [email protected]
> https://systeme.lip6.fr/mailman/listinfo/cocci
>
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to