aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/plugins.texi
diff options
context:
space:
mode:
authorTaras Glek <tglek@mozilla.com>2009-05-21 17:34:43 +0000
committerTaras Glek <tglek@gcc.gnu.org>2009-05-21 17:34:43 +0000
commit9fefa0aac20b7ca088b4d2fa3bf1abaa8df691f0 (patch)
tree97cb00e10e01fbc57f7a018ec45a6b6c41fa22bc /gcc/doc/plugins.texi
parent1ea9fe562c2e9c3a7772304e588aba86d8e58152 (diff)
downloadgcc-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.texi27
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);
...
@}