All of lore.kernel.org
 help / color / mirror / Atom feed
* [Cocci] Matching from upper level struct
@ 2015-05-20 20:35 Vladimir Zapolskiy
  2015-05-20 20:58 ` Julia Lawall
  0 siblings, 1 reply; 4+ messages in thread
From: Vladimir Zapolskiy @ 2015-05-20 20:35 UTC (permalink / raw)
  To: cocci

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-05-21 17:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-20 20:35 [Cocci] Matching from upper level struct Vladimir Zapolskiy
2015-05-20 20:58 ` Julia Lawall
2015-05-21 12:21   ` Vladimir Zapolskiy
2015-05-21 17:32     ` Julia Lawall

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.