Jerry noticed that some symbols are missing with ctags, for example C<mem_sys_free>.
This happens for me too with ctags 5.6 on Win32, but other versions or platforms could suffer from the same problem. $ ctags --version Exuberant Ctags 5.6, Copyright (C) 1996-2004 Darren Hiebert Compiled: Jul 30 2006, 16:12:20 Addresses: <[EMAIL PROTECTED]>, http://ctags.sourceforge.net Optional compiled features: +win32, +regex, +internal-sort The issue is that ctags gets confused by definitions like these. ... foo(MACRO(...)) ctags indexes C<MACRO> instead of C<foo>. Here's an example: // test.c void f1(void *ptr) {} void f2(NULLOK(void *ptr)) {} void f3(NULLOK(void *ptr1), NOTNULL(void *ptr2)) {} // end $ ctags -f- test.c NOTNULL test.c /^f3(NULLOK(void *ptr1), NOTNULL(void *ptr2))$/;" f NULLOK test.c /^f2(NULLOK(void *ptr))$/;" f f1 test.c /^f1(void *ptr)$/;" f My current workaround for this is to grep tags directly for the symbol, like so: $ grep mem_sys_free tags NULLOK .\src\gc\memory.c /^mem_sys_free(NULLOK(void *from))$/;" f Ron