summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authordmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>2013-08-05 20:04:02 +0000
committerdmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>2013-08-05 20:04:02 +0000
commit04b48e188ae6a8d32af00743d2225ad600c324b8 (patch)
tree809dc530fde0246b16ba125f9f342ee515aaefc8 /gcc
parentbcfddb5b871250af38e3023c5d26e19fcf524bf2 (diff)
downloadgcc-04b48e188ae6a8d32af00743d2225ad600c324b8.tar.gz
Zero-initialize pass_manager
gcc/ * passes.c (pass_manager::operator new): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201506 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/pass_manager.h2
-rw-r--r--gcc/passes.c7
3 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ffa880bac65..b985e37aec3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2013-08-05 David Malcolm <dmalcolm@redhat.com>
+ * passes.c (pass_manager::operator new): New.
+
+2013-08-05 David Malcolm <dmalcolm@redhat.com>
+
Handwritten part of conversion of passes to C++ classes.
* Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
diff --git a/gcc/pass_manager.h b/gcc/pass_manager.h
index ea078a5eb66..00f0b1c50f4 100644
--- a/gcc/pass_manager.h
+++ b/gcc/pass_manager.h
@@ -47,6 +47,8 @@ class context;
class pass_manager
{
public:
+ void *operator new (size_t sz);
+
pass_manager(context *ctxt);
void register_pass (struct register_pass_info *pass_info);
diff --git a/gcc/passes.c b/gcc/passes.c
index fcbd630dd88..8efce30b6e6 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -1339,6 +1339,13 @@ pass_manager::register_pass (struct register_pass_info *pass_info)
-> all_passes
*/
+void *
+pass_manager::operator new (size_t sz)
+{
+ /* Ensure that all fields of the pass manager are zero-initialized. */
+ return xcalloc (1, sz);
+}
+
pass_manager::pass_manager (context *ctxt)
: all_passes(NULL), all_small_ipa_passes(NULL), all_lowering_passes(NULL),
all_regular_ipa_passes(NULL), all_lto_gen_passes(NULL),