/* Macro to produce some complex structure from x */
#define LIST(x) x
void func1(float x, float y)
void func2(LIST(float) x, LIST(float) y)
The old version of emacs ctags that I tested, as well as the FreeBSD ctags, both recognize both func1 and func2, and place entries for them in the tags file. Exuberant ctags, however, does NOT recognize func2.
I tend think that the behaviour for the other two ctags programs is correct and that the Exuberant Ctags behaviour is wrong.