Hello Julia,
please excuse me for a newbie question, I'm trying to find a way how to
match an assignment done from embracing struct or union.
If you consider this C code sample:
----8<----
static void a(void) {};
struct x {
void (*u)(void);
};
struct y {
struct x v;
};
struct x k = {
.u = a,
};
struct y l = {
.v = {
.u = a,
},
};
----8<----
where "struct x" type is known and "struct y" may be arbitrary/unknown,
and I would like to match both assignments.
My naïve rule finds only k.u assignment:
----8<----
@@
struct x X;
identifier value;
@@
* X.u = value;
----8<----
I believe it should not be a problem for me to get access to ".u", if I
get ".v" identifier firstly, but here I encounter a problem, probably
because "{ .u = a, }" above is not considered as a valid expression to
be matched in a rule like ".f = E,".
Any help is appreciated, thank you in advance.
--
With best wishes,
Vladimir
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci