Preprocessor macros


Is there a way to detect code that declares a function, and then uses the preprocessor to define calls to it as empty? i.e. code that does:

extern int _IO_ftrylockfile (_IO_FILE *);
# define _IO_ftrylockfile(_fp) /**/

I've had a rather confusing debugging session where I thought maybe seeing different prototypes due to preprocessor directives. Compiling my generated code was giving me the (not entirely helpful) error message: error: non-void function '__ffi$580' should return a value [-Wreturn-type]

   return _IO_ftrylockfile($arg0);

When I grep'd the preprocessor output for the prototype it was shown correctly, but it was only when I searched for the call site that I saw what was really going on.