I've been planning to add a warning to GCC for a while. I've recently begun learning the GCC internals and trying to add some code.
So far I have made very little progress. All I have working is a warning parameter that, when enabled, emits a warning whenever a function is declared. It's not looking promising. What I'm having trouble with most is finding adequate documentation, especially about "tree" usage, and about the C++ frontend. I've read most of what's relevant in http://gcc.gnu.org/wiki & http://gcc.gnu.org/onlinedocs/gccint/ but what I'm really looking for is a reference manual. On the getting started page, http://www.airs.com/dnovillo/gcc/doc/html is meant to be a mid/back end reference. The mid part may help a little. Except it's 404'd and google has no cache. For example, I'm trying to temporarily emit the details of a cp_declarator (via printf) from parser.c/make_call_declarator() - line 1013ish. For the name, I think what I'm after is something akin to: char* foo(cp_declarator* target) { tree decl_name = target->u.id.unqualified_name; return SOME_MACRO(decl_name); }, but I'm kinda stumped as to where to go from there. I got that far from reading the source code. Is there a full list of macros, with their associated parameters, return types, and perhaps usage examples? I hope I didn't skip it. The internal docs simply has "This section is not here yet.". I guess I should really be asking: How did most people here learn devving for GCC? Did they take a course? just hack around and read online docs? learn from someone else? Are many here from the original dev team?