Re: [cocci] Can we match a known macro by macro name instead of expanded function name?
Tobias Deiminger <[email protected]>
| Newsgroups | fr.inria.cocci |
|---|---|
| Message-ID | <[email protected]> |
Am 29.11.2025 14:51 schrieb Julia Lawall:
> On Sat, 29 Nov 2025, Tobias Deiminger wrote:
> [...]
> The return type for the function is required in this case:
>
> @r@
> attribute a;
> identifier fn;
> types t;
> @@
>
> * t a fn(...) { ... }
@Julia
Thanks, almost there...
The rule with return type you suggested works when I put the expanded
form directly in my.c
asmlinkage unsigned long __SYSCALL_DEFINE0 mysyscall(void) { return 0;
}
*and* additionally add '#define __SYSCALL_DEFINE0 MACROANNOTATION' to
standard.h. Without MACROANNOTATION I would get semantic error.
But if I put the macro form to my.c (which is my original use case)
SYSCALL_DEFINE0(mysyscall) { return 0; }
and add either only this
#define SYSCALL_DEFINE0(func) \
asmlinkage unsigned long __SYSCALL_DEFINE0 func(void)
, or additionally the MACROANNOTATION hint to standard.h, I always get
parse errors, even with return type. Any ideas what's going on?
@Markus
> You might point remaining improvement possibilities out for this
> evolving software.
Thanks also for your pointers. I've started learning about Coccinelle
yesterday evening and think I'm not in a position to make improvement
suggestions :D What Julia suggested would suite my case, once it works.
Tobias