aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-pass.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-pass.h')
-rw-r--r--gcc/tree-pass.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index 787a49b..b2182c5 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -76,11 +76,22 @@ namespace gcc
/* An instance of a pass. This is also "pass_data" to minimize the
changes in existing code. */
-class opt_pass : public pass_data
+class GTY((user)) opt_pass : public pass_data
{
public:
+ /* Ensure that instances are allocated in the GC-managed heap. */
+ void *operator new (size_t sz);
+
virtual ~opt_pass () { }
+ /* GTY((user)) methods, to be called once per traversal.
+ opt_pass subclasses with additional GC-managed data should override
+ these, chain up to the base class implementation, then walk their
+ extra fields. */
+ virtual void gt_ggc_mx ();
+ virtual void gt_pch_nx ();
+ virtual void gt_pch_nx_with_op (gt_pointer_operator op, void *cookie);
+
/* Create a copy of this pass.
Passes that can have multiple instances must provide their own