From 9fefa0aac20b7ca088b4d2fa3bf1abaa8df691f0 Mon Sep 17 00:00:00 2001 From: Taras Glek Date: Thu, 21 May 2009 17:34:43 +0000 Subject: 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 --- gcc/doc/plugins.texi | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'gcc/doc/plugins.texi') 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); ... @} -- cgit v1.1