This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to find function_decl by identifier in plugin


On 10/24/2015 02:31 PM, Ivan Kulagin wrote:
> Hello!
> 
> I am writing some plugin and I have a problem with creating a function call.
> For creating call (by gimple_build_call) I have to specify the
> function_decl tree.
Does it work when GIMPLE representation is already built (just checking)?

> How can I get the list of all declarations (that used not only in
> current function, I need get the all available declarations also from
> included headers) in order to lookup by identifier function_decl which
> I want to call?
You probably need to use the symbol table. See the 'symbol_table' class
defined in 'cgraph.h' (there is a global instance of this class, 'symtab').

> 
> For example:
> /* lookup_fn_decl - It is some pseudo-function which searches a
> function declaration by identifier */
There is a 'cgraph_node::get' static method.

> /* all_decl_list_head - It is pointer to the head list of all
> declarations. It is what I need */
Something like 'symtab->first_symbol ()' should work. There is also a
macro for walking all declared symbols, 'FOR_EACH_SYMBOL'.

-- 
Regards,
    Mikhail Maltsev


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]