diff options
author | Taras Glek <tglek@mozilla.com> | 2009-05-21 17:34:43 +0000 |
---|---|---|
committer | Taras Glek <tglek@gcc.gnu.org> | 2009-05-21 17:34:43 +0000 |
commit | 9fefa0aac20b7ca088b4d2fa3bf1abaa8df691f0 (patch) | |
tree | 97cb00e10e01fbc57f7a018ec45a6b6c41fa22bc /gcc/gcc-plugin.h | |
parent | 1ea9fe562c2e9c3a7772304e588aba86d8e58152 (diff) | |
download | gcc-9fefa0aac20b7ca088b4d2fa3bf1abaa8df691f0.zip gcc-9fefa0aac20b7ca088b4d2fa3bf1abaa8df691f0.tar.gz gcc-9fefa0aac20b7ca088b4d2fa3bf1abaa8df691f0.tar.bz2 |
plugin.c (try_init_one_plugin): Updated to new plugin_init API.
gcc/ChangeLog
* plugin.c (try_init_one_plugin): Updated to new plugin_init API.
* gcc-plugin.h (plugin_init): Updated signature.
* gcc-plugin.h (plugin_name_args): Moved to this header.
* doc/plugins.texi (plugin_init): Updated documention to reflect API change.
* doc/plugins.texi (plugin_name_args): Added to documention.
gcc/testsuite/ChangeLog
* gcc.dg/plugin/selfassign.c (plugin_init): Updated to new plugin_init signature.
* g++.dg/plugin/selfassign.c (plugin_init): Updated to new plugin_init signature.
* g++.dg/plugin/dumb_plugin.c (plugin_init): Updated to new plugin_init signature.
* g++.dg/plugin/attribute_plugin.c (plugin_init): Updated to new plugin_init signature.
From-SVN: r147772
Diffstat (limited to 'gcc/gcc-plugin.h')
-rw-r--r-- | gcc/gcc-plugin.h | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/gcc/gcc-plugin.h b/gcc/gcc-plugin.h index ba20b42..e788eb7 100644 --- a/gcc/gcc-plugin.h +++ b/gcc/gcc-plugin.h @@ -79,6 +79,20 @@ struct plugin_gcc_version const char *configuration_arguments; }; +/* Object that keeps track of the plugin name and its arguments. */ +struct plugin_name_args +{ + char *base_name; /* Short name of the plugin (filename without + .so suffix). */ + const char *full_name; /* Path to the plugin as specified with + -fplugin=. */ + int argc; /* Number of arguments specified with + -fplugin-arg-... */ + struct plugin_argument *argv; /* Array of ARGC key-value pairs. */ + const char *version; /* Version string provided by plugin. */ + const char *help; /* Help string provided by plugin. */ +}; + /* The default version check. Compares every field in VERSION. */ extern bool plugin_default_version_check (struct plugin_gcc_version *, @@ -88,21 +102,18 @@ extern bool plugin_default_version_check (struct plugin_gcc_version *, should define this as an externally-visible function with name "plugin_init." - PLUGIN_NAME - name of the plugin (useful for error reporting) - VERSION - the plugin_gcc_version symbol of the plugin itself. - ARGC - the size of the ARGV array - ARGV - an array of key-value argument pair + PLUGIN_INFO - plugin invocation information. + VERSION - the plugin_gcc_version symbol of GCC. Returns 0 if initialization finishes successfully. */ -typedef int (*plugin_init_func) (const char *plugin_name, - struct plugin_gcc_version *version, - int argc, struct plugin_argument *argv); +typedef int (*plugin_init_func) (struct plugin_name_args *plugin_info, + struct plugin_gcc_version *version); /* Declaration for "plugin_init" function so that it doesn't need to be duplicated in every plugin. */ -extern int plugin_init (const char *, struct plugin_gcc_version *version, - int, struct plugin_argument *); +extern int plugin_init (struct plugin_name_args *plugin_info, + struct plugin_gcc_version *version); /* Function type for a plugin callback routine. |