2009-11-19 Rafael Avila de Espindola <espindola@google.com>
authorespindola <espindola@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Nov 2009 20:22:53 +0000 (20:22 +0000)
committerespindola <espindola@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Nov 2009 20:22:53 +0000 (20:22 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154342 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/doc/plugins.texi
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/plugin/selfassign.c
gcc/testsuite/gcc.dg/plugin/ggcplug.c
gcc/testsuite/gcc.dg/plugin/selfassign.c

index 5c288a0..8f64624 100644 (file)
@@ -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
index 6639a4e..eb1008e 100644 (file)
@@ -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
 
index bcf6d55..c96876f 100644 (file)
@@ -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
index 6dade30..8d76301 100644 (file)
@@ -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.  */
index 49b5c95..03bd563 100644 (file)
@@ -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 */
index f804222..8d76301 100644 (file)
@@ -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.  */