aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRafael Espindola <espindola@gcc.gnu.org>2009-11-19 20:22:53 +0000
committerRafael Espindola <espindola@gcc.gnu.org>2009-11-19 20:22:53 +0000
commite4d5031cc88db53fe3aa9759b9c9780c179b21b5 (patch)
treeb395448ebbfaf7f0dd42352215cbda920c328003 /gcc
parentbf4967a1bd8c61fdf111a47f6ef87e24479299df (diff)
downloadgcc-e4d5031cc88db53fe3aa9759b9c9780c179b21b5.zip
gcc-e4d5031cc88db53fe3aa9759b9c9780c179b21b5.tar.gz
gcc-e4d5031cc88db53fe3aa9759b9c9780c179b21b5.tar.bz2
[multiple changes]
2009-11-19 Rafael Avila de Espindola <espindola@google.com> * g++.dg/plugin/selfassign.c: Include plugin-version.h. (plugin_init): Pass correct version to plugin_default_version_check. * gcc.dg/plugin/ggcplug.c: Include plugin-version.h. (plugin_init): Pass correct version to plugin_default_version_check. * gcc.dg/plugin/selfassign.c: Include plugin-version.h. (plugin_init): Pass correct version to plugin_default_version_check. 2009-11-19 Basile Starynkevitch <basile@starynkevitch.net> Rafael Avila de Espindola <espindola@google.com> * doc/plugins.texi (Plugin initialization): Added advices for retrieving the version of GCC at plugin compilation and loading times. From-SVN: r154342
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/doc/plugins.texi19
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/g++.dg/plugin/selfassign.c3
-rw-r--r--gcc/testsuite/gcc.dg/plugin/ggcplug.c3
-rw-r--r--gcc/testsuite/gcc.dg/plugin/selfassign.c4
6 files changed, 41 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5c288a0..8f64624 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,11 @@
2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
+ Rafael Avila de Espindola <espindola@google.com>
+
+ * doc/plugins.texi (Plugin initialization): Added advices for
+ retrieving the version of GCC at plugin compilation and loading
+ times.
+
+2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
* plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
(dump_active_plugins): output to file everything. Use
diff --git a/gcc/doc/plugins.texi b/gcc/doc/plugins.texi
index 6639a4e..eb1008e 100644
--- a/gcc/doc/plugins.texi
+++ b/gcc/doc/plugins.texi
@@ -105,6 +105,25 @@ The function @code{plugin_default_version_check} takes two pointers to
such structure and compare them field by field. It can be used by the
plugin's @code{plugin_init} function.
+The version of GCC used to compile the plugin can be found in the symbol
+@code{gcc_version} defined in the header @file{plugin-version.h}. The
+recommended version check to perform looks like
+
+@smallexample
+#include "plugin-version.h"
+...
+
+int
+plugin_init (struct plugin_name_args *plugin_info,
+ struct plugin_gcc_version *version)
+@{
+ if (!plugin_default_version_check (version, &gcc_version))
+ return 1;
+
+@}
+@end smallexample
+
+but you can also check the individual fields if you want a less strict check.
@subsection Plugin callbacks
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bcf6d55..c96876f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2009-11-19 Rafael Avila de Espindola <espindola@google.com>
+
+ * g++.dg/plugin/selfassign.c: Include plugin-version.h.
+ (plugin_init): Pass correct version to plugin_default_version_check.
+ * gcc.dg/plugin/ggcplug.c: Include plugin-version.h.
+ (plugin_init): Pass correct version to plugin_default_version_check.
+ * gcc.dg/plugin/selfassign.c: Include plugin-version.h.
+ (plugin_init): Pass correct version to plugin_default_version_check.
+
2009-11-19 Jason Merrill <jason@redhat.com>
PR c++/561
diff --git a/gcc/testsuite/g++.dg/plugin/selfassign.c b/gcc/testsuite/g++.dg/plugin/selfassign.c
index 6dade30..8d76301 100644
--- a/gcc/testsuite/g++.dg/plugin/selfassign.c
+++ b/gcc/testsuite/g++.dg/plugin/selfassign.c
@@ -13,6 +13,7 @@
#include "tree.h"
#include "tree-pass.h"
#include "intl.h"
+#include "plugin-version.h"
int plugin_is_GPL_compatible;
@@ -305,7 +306,7 @@ plugin_init (struct plugin_name_args *plugin_info,
bool enabled = true;
int i;
- if (!plugin_default_version_check (version, version))
+ if (!plugin_default_version_check (version, &gcc_version))
return 1;
/* Self-assign detection should happen after SSA is constructed. */
diff --git a/gcc/testsuite/gcc.dg/plugin/ggcplug.c b/gcc/testsuite/gcc.dg/plugin/ggcplug.c
index 49b5c95..03bd563 100644
--- a/gcc/testsuite/gcc.dg/plugin/ggcplug.c
+++ b/gcc/testsuite/gcc.dg/plugin/ggcplug.c
@@ -12,6 +12,7 @@
#include "tree-pass.h"
#include "intl.h"
#include "gcc-plugin.h"
+#include "plugin-version.h"
int plugin_is_GPL_compatible;
@@ -43,7 +44,7 @@ plugin_init (struct plugin_name_args *plugin_info,
int argc = plugin_info->argc;
int i = 0;
struct plugin_argument *argv = plugin_info->argv;
- if (!plugin_default_version_check (version, version))
+ if (!plugin_default_version_check (version, &gcc_version))
return 1;
/* Process the plugin arguments. This plugin takes the following arguments:
count-ggc-start count-ggc-end count-ggc-mark */
diff --git a/gcc/testsuite/gcc.dg/plugin/selfassign.c b/gcc/testsuite/gcc.dg/plugin/selfassign.c
index f804222..8d76301 100644
--- a/gcc/testsuite/gcc.dg/plugin/selfassign.c
+++ b/gcc/testsuite/gcc.dg/plugin/selfassign.c
@@ -13,7 +13,7 @@
#include "tree.h"
#include "tree-pass.h"
#include "intl.h"
-
+#include "plugin-version.h"
int plugin_is_GPL_compatible;
@@ -306,7 +306,7 @@ plugin_init (struct plugin_name_args *plugin_info,
bool enabled = true;
int i;
- if (!plugin_default_version_check (version, version))
+ if (!plugin_default_version_check (version, &gcc_version))
return 1;
/* Self-assign detection should happen after SSA is constructed. */