Ian Lance Taylor wrote:
For something like PLUGIN_ADD_CPP_MACROS, the need is clear, but I
think it's an open question we should add a hook or whether the plugin
should just call cpp_define. A hook means that we promise to always
have a way to do this in case cpp_define changes. How do we decide
when to add that kind of thing to the plugin interface and when to
simply require the plugin to invoke gcc functions directly?
I (Basile) don't know much of libcpp. If a plugin can just call
cpp_define, this is ok for me. But then, we perhaps should document how
can that be called, and when (at plugin initialization, at
PLUGIN_START_UNIT? I don't know!)
I don't claim that a PLUGIN_ADD_CPP_MACROS is needed, I just think that
we should be able to declare additional builtin CPP macros [like
__DATE__ is, or perhaps like defined inside CPP is] from plugins.
I am not familiar enough with libcpp to understand if calling cpp_define
from a plugin is enough.
As a matter of fact, there are several *.def files which seems to be
#include-d to fill some constant arrays. For these kind of things, I
would suppose that perhaps some registration facility is needed,
probably as an addition register_plugin_XXXX function. Of course, not
every *.def fits into that scheme: I don't claim that plugin should
register a new kind of GIMPLE or TREE node (even if a file like
gcc/gimple.def or gcc/tree.def exists). [*] But the files
gcc/builtins.def & gcc/builtin-types.def seems to suggest a vector of
extra plugin-registered builtins & builtin-types and perhaps a
register_plugin_builtin function etc...
Regards.
(*) Half-joking note about adding GIMPLE node in plugins. Of course, if
all GCC was in C++, plugins could register extra GIMPLE nodes :-)
provided the GIMPLE node would be implemented as an abstract class (with
many virtual method slots).
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***