How to get AST for C source in plugin?

2010-02-12 Thread Ilya Caramishev

Hi,

I've posted this question to gcc-help list back in December and haven't 
got any reaction, so I decided to repost it here.


I'm trying to do some static analysis of C source using GCC 4.5 and my 
plugin.


I've tried registering my plugin for PLUGIN_FINISH_UNIT event. My plugin 
gets called, but I couldn't find a way to access AST - nothing is passed 
to my plugin as parameter. Maybe there is some GCC's global variable 
that contains AST I can use?


Alternatively I've tried Kenji Koyanagi's patch 
(http://gcc.gnu.org/ml/gcc/2009-03/msg00136.html) and it worked just 
fine, but I don't know whether this patch is going to be accepted in GCC 
4.5 codeline, which can be a show-stopper for me, because I want my 
plugin to work with standard compiler. Are there plans to add 
PLUGIN_C_PRE_GENERICIZE event to GCC plugin infrastructure?


Are there any other ways to get AST for the whole translation unit or 
separate functions in my plugin?


Regards,
Ilya


Re: How to get AST for C source in plugin?

2010-02-12 Thread Ilya Caramishev

On 12/02/10 19:51, Joern Rennecke wrote:

Quoting Ilya Caramishev :

I've tried registering my plugin for PLUGIN_FINISH_UNIT event.


That event occurs way too late.


Alternatively I've tried Kenji Koyanagi's patch
(http://gcc.gnu.org/ml/gcc/2009-03/msg00136.html) and it worked just
fine, but I don't know whether this patch is going to be accepted in
GCC 4.5 codeline, which can be a show-stopper for me, because I want my
plugin to work with standard compiler. Are there plans to add
PLUGIN_C_PRE_GENERICIZE event to GCC plugin infrastructure?


We now have the event PLUGIN_PRE_GENERICIZE both for the C and  C++
frontends.


That's exactly what I need, thank you!
I was working with October'09 snapshot for too long and didn't notice 
the change.


Ilya