Le 13 juil. 2011 à 18:35, Pierre Vittet a écrit :
> Hello,
> 
> sorry to answer that late (I didn't saw your mail in my mailbox.... + I was 
> preparing me for RMLL/Libre software meeting).
Yeah i know, i wanted to be there for your RMLL session, but i had to work on 
tuesday ! 

> 
> Your solution looks to be a nice one, I am goiing to try it and I will post 
> the result of my experiment. I was not aware of that hook.
> 
> Thanks!
> 
> Pierre Vittet

At that time i didn't know you were working on Melt, and for now the few things 
i know about it is that it's mainly abut hooking the pass manager (or am i 
wrong ?) So all those useful events like PLUGIN_PRE_GENERICIZE or 
PLUGIN_FINISH_TYPE don't seems to be catchable through the Melt API (again, i'm 
maybe wrong, but if not it should be easy to add that feature to Melt).

The main drawback of using PLUGIN_PRE_GENERICIZE to catch symbol declaration is 
that it is fired only for function body declaration. That's why i pinged an old 
patch adding a new event PLUGIN_FINISH_DECL. See 
http://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg09792.html

To get the full name of any declaration (ie like 
my_namespace::my_class::my_value or int::my_namespace::my_class::my_method 
(int, const char *)) just do:
const char *fullname = lang_hooks.decl_printable_name (my_dec, 2l);
(with #include "langhooks.h")
That's exactly what current_function_name() does with current_function_decl.

Romain Geissler

Reply via email to