Example of converting global state to per-pass state.
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 13 Aug 2013 00:45:27 +0000 (00:45 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Tue, 13 Aug 2013 00:45:27 +0000 (00:45 +0000)
gcc/testsuite

2013-08-13  David Malcolm  <dmalcolm@redhat.com>

Example of converting global state to per-pass state.

* gcc.dg/plugin/one_time_plugin.c (one_pass::execute): Convert
global state "static int counter" to...
(one_pass::counter): ...this instance data.

From-SVN: r201681

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/plugin/one_time_plugin.c

index 6b82931..bc45fdb 100644 (file)
@@ -1,5 +1,13 @@
 2013-08-13  David Malcolm  <dmalcolm@redhat.com>
 
+       Example of converting global state to per-pass state.
+
+       * gcc.dg/plugin/one_time_plugin.c (one_pass::execute): Convert
+       global state "static int counter" to...
+       (one_pass::counter): ...this instance data.
+
+2013-08-13  David Malcolm  <dmalcolm@redhat.com>
+
        * gcc.dg/plugin/one_time_plugin.c: (one_pass_gate): Convert
        to member function...
        (one_pass::gate): ...this.
index 7e93e65..c4dace5 100644 (file)
@@ -33,13 +33,16 @@ class one_pass : public gimple_opt_pass
 {
 public:
   one_pass(gcc::context *ctxt)
-    : gimple_opt_pass(pass_data_one_pass, ctxt)
+    : gimple_opt_pass(pass_data_one_pass, ctxt),
+      counter(0)
   {}
 
   /* opt_pass methods: */
   bool gate ();
   unsigned int execute ();
 
+private:
+  int counter;
 }; // class one_pass
 
 } // anon namespace
@@ -51,8 +54,6 @@ bool one_pass::gate (void)
 
 unsigned int one_pass::execute ()
 {
-  static int counter = 0;
-
   if (counter > 0) {
     printf ("Executed more than once \n");
  }