C++ Plugins

Terrence Miller terrencem@sbcglobal.net
Mon Oct 19 21:53:00 GMT 2009


<response at end>
Benjamin Smedberg wrote:
> On 10/11/09 12:13 PM, Terrence Miller wrote:
>   
>> (Version 4.5.0)
>>
>> There are plugin callbacks which trigger at the end of processing types
>> and C++ functions,
>> but I can not find a clean way for plugin code to notice a top-level
>> variable declaration.
>>
>> I'm hoping that the answer does not require the plugin shared library to
>> bind to global symbols of the compiler (i.e. global_namespace).
>>     
> Why not? That's what dehydra does: it enumerates through the items in
> global_namespace in PLUGIN_FINISH_UNIT.
>
> --BDS
>   
Because it makes the name "global_namespace" and the list 
order(TREE_CHAIN (t) points  to  a declaration
located earlier in the file than t) be part of the plugin interface and 
these two items are not documented.  Also
you end up with one way of handling top-level types (PLUGIN_FINISH_TYPE) 
and functions
(PLUGIN_CXX_CP_PRE_GENERICIZE) and a different way of handling 
variables.  A better scheme (IMO)
would be to have a plugin triggered when the declaration of a variable 
is complete and another pair of plugins
for scope entry/exit.


           Terrence




More information about the Gcc mailing list