Hi,
I am trying to make a small modification to a local copy of gcc (In particular the g++ front end) that will help me in documenting exceptions that can be thrown by functions. I have had a look at most of the gcc documentation i could find and it has been helpful, but i am currently stuck in where to look next. I know roughly how i want to implement this code, but i need to find an appropriate place to "hook into the g++ fronten code". What i need at the point of where i hook in, is just the intermediate tree generated by the C++ front end. This is the one spoken of in chapter 9 of the document "GNU Compiler Collection (GCC) Internals" where it talks about the intermediate representation used by the C and C++ front ends. I assume that this tree is generated, and then converted to a GIMPLE tree and then later to RTL, but what happens with it after i have used it is really none of my concern.
Questions:
1) Does gcc generate this full tree before it compiles the code (I.e. generates RTL and then assembly etc), and if not is there any point in time where this intermediate tree is complete so that i can get access to all information parsed in the given g++ session.
2) If there is a full tree generated, where is the best place to get that tree for my purposes (I will not be modifying the tree just iterating through it getting the appropriate information that i need and saving it externally)?
3) If the tree is never generated in its entirety at any point, i noticed that in the gcc/toplev.c file there is a function called: rest_of_compilation which is called for each function being compiled from what i can tell. It there something similar inside the front end where i can hook into that will give the full tree/branch for each function in the parsed file(s)?
Thanks for any help, Brendon.