From: David Malcolm Date: Mon, 5 Aug 2013 20:04:02 +0000 (+0000) Subject: Zero-initialize pass_manager X-Git-Tag: releases/gcc-4.9.0~4703 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6a389ed508822befad6d8b994874b04a521431cc;p=thirdparty%2Fgcc.git Zero-initialize pass_manager gcc/ * passes.c (pass_manager::operator new): New. From-SVN: r201506 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ffa880bac65b..b985e37aec35 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2013-08-05 David Malcolm + + * passes.c (pass_manager::operator new): New. + 2013-08-05 David Malcolm Handwritten part of conversion of passes to C++ classes. diff --git a/gcc/pass_manager.h b/gcc/pass_manager.h index ea078a5eb66d..00f0b1c50f4f 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 fcbd630dd881..8efce30b6e6e 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),