+2017-04-24 Richard Biener <rguenther@suse.de>
+
+ PR bootstrap/79814
+ * pass_manager.h (pass_manager::operator new): Remove.
+ (pass_manager::operator delete): Likewise.
+ * passes.c (pass_manager::operator new): Remove.
+ (pass_manager::operator delete): Likewise.
+ (pass_manager::pass_manager): Zero individual pass members.
+
2017-04-23 Uros Bizjak <ubizjak@gmail.com>
PR target/70799
-> 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);
-}
-
-void
-pass_manager::operator delete (void *ptr)
-{
- free (ptr);
-}
-
pass_manager::pass_manager (context *ctxt)
: all_passes (NULL), all_small_ipa_passes (NULL), all_lowering_passes (NULL),
all_regular_ipa_passes (NULL),
{
opt_pass **p;
+ /* Zero-initialize pass members. */
+#define INSERT_PASSES_AFTER(PASS)
+#define PUSH_INSERT_PASSES_WITHIN(PASS)
+#define POP_INSERT_PASSES()
+#define NEXT_PASS(PASS, NUM) PASS ## _ ## NUM = NULL
+#define NEXT_PASS_WITH_ARG(PASS, NUM, ARG) NEXT_PASS (PASS, NUM)
+#define TERMINATE_PASS_LIST(PASS)
+#include "pass-instances.def"
+#undef INSERT_PASSES_AFTER
+#undef PUSH_INSERT_PASSES_WITHIN
+#undef POP_INSERT_PASSES
+#undef NEXT_PASS
+#undef NEXT_PASS_WITH_ARG
+#undef TERMINATE_PASS_LIST
+
/* Initialize the pass_lists array. */
#define DEF_PASS_LIST(LIST) pass_lists[PASS_LIST_NO_##LIST] = &LIST;
GCC_PASS_LISTS