cp-tree.h (lang_decl_flags): Add global_ctor_p and global_dtor_p.
authorMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 1 Oct 1999 00:43:27 +0000 (00:43 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 1 Oct 1999 00:43:27 +0000 (00:43 +0000)
* cp-tree.h (lang_decl_flags): Add global_ctor_p and
global_dtor_p.  Add init_priority.
(DECL_ACCESS): Adjust accordingly.
(DECL_GLOBAL_CTOR_P, DECL_GLOBAL_DTOR_P): New macros.
(GLOBAL_INIT_PRIORITY): Likewise.
* decl.c (lang_mark_tree): Adjust accordingly.
(start_objects): Set DECL_GLOBAL_CTOR_P, DECL_GLOBAL_DTOR_P,
and GLOBAL_INIT_PRIORITY.
* dump.c (dequeue_and_dump): Print them.
* ir.texi: Document them.

From-SVN: r29738

gcc/cp/decl2.c

index 19a9cf1701fa64b0b2d9c463aec1cb3cbb50ba38..b3cdad48dd9b4b1df37b19a67e7b55cf1f53402b 100644 (file)
@@ -2811,6 +2811,13 @@ start_objects (method_type, initp)
   /* Mark this declaration as used to avoid spurious warnings.  */
   TREE_USED (current_function_decl) = 1;
 
+  /* Mark this function as a global constructor or destructor.  */
+  if (method_type == 'I')
+    DECL_GLOBAL_CTOR_P (current_function_decl) = 1;
+  else
+    DECL_GLOBAL_DTOR_P (current_function_decl) = 1;
+  GLOBAL_INIT_PRIORITY (current_function_decl) = initp;
+
   body = begin_compound_stmt (/*has_no_scope=*/0);
 
   /* We cannot allow these functions to be elided, even if they do not