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/doc/plugins.texi | |
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/doc/plugins.texi')
-rw-r--r-- | gcc/doc/plugins.texi | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/gcc/doc/plugins.texi b/gcc/doc/plugins.texi index 1710395..cf5d2af 100644 --- a/gcc/doc/plugins.texi +++ b/gcc/doc/plugins.texi @@ -41,11 +41,27 @@ This function is called from @code{compile_file} right before invoking the parser. The arguments to @code{plugin_init} are: @itemize @bullet -@item @code{plugin_name}: Name of the plugin. -@item @code{argc}: Number of arguments specified with @option{-fplugin-arg-...}. -@item @code{argv}: Array of @code{argc} key-value pairs. +@item @code{plugin_info}: Plugin invocation information. +@item @code{version}: GCC version. @end itemize +The @code{plugin_info} struct is defined as follows: + +@smallexample +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. */ +@} +@end smallexample + If initialization fails, @code{plugin_init} must return a non-zero value. Otherwise, it should return 0. @@ -120,7 +136,8 @@ struct plugin_pass /* Sample plugin code that registers a new pass. */ int -plugin_init (const char *plugin_name, int argc, struct plugin_argument *argv) +plugin_init (struct plugin_name_args *plugin_info, + struct plugin_gcc_version *version) @{ struct plugin_pass pass_info; @@ -131,7 +148,7 @@ plugin_init (const char *plugin_name, int argc, struct plugin_argument *argv) ... /* Register the new pass. */ - register_callback (plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &pass_info); + register_callback (plugin_info->base_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &pass_info); ... @} |