aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc-plugin.h
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/gcc-plugin.h
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/gcc-plugin.h')
-rw-r--r--gcc/gcc-plugin.h29
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.