]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR bootstrap/79814 (pass-instances.def:36:14: error: ‘*<unknown>.gcc::pass_manager...
authorRichard Biener <rguenther@suse.de>
Mon, 24 Apr 2017 07:33:20 +0000 (07:33 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 24 Apr 2017 07:33:20 +0000 (07:33 +0000)
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.

From-SVN: r247089

gcc/ChangeLog
gcc/pass_manager.h
gcc/passes.c

index 416cc17790389d53e81fed70005d8e5f8550367f..2f3a3985415f301ec8d13f7308d2a8f423a47b4c 100644 (file)
@@ -1,3 +1,12 @@
+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
index ae97cd411e216eec6f57749c911dbbf44b698778..cd8c2aaae44341e233a0562e2836a222bfa49f17 100644 (file)
@@ -47,9 +47,6 @@ class context;
 class pass_manager
 {
 public:
-  void *operator new (size_t sz);
-  void operator delete (void *ptr);
-
   pass_manager (context *ctxt);
   ~pass_manager ();
 
index 587c3be58c78867f8af3af9f8c571a562a6c1198..162cf8b82b2e6f26986d473636102bba3c9768f2 100644 (file)
@@ -1528,19 +1528,6 @@ 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);
-}
-
-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),
@@ -1549,6 +1536,21 @@ pass_manager::pass_manager (context *ctxt)
 {
   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