@@ -45,7 +45,7 @@ case "${noconfigdirs}" in
;;
esac
-gtfiles="\$(srcdir)/d/d-tree.h \$(srcdir)/d/d-builtins.cc \$(srcdir)/d/d-lang.cc \$(srcdir)/d/modules.cc \$(srcdir)/d/typeinfo.cc"
+gtfiles="\$(srcdir)/d/d-tree.h \$(srcdir)/d/d-builtins.cc \$(srcdir)/d/d-lang.cc \$(srcdir)/d/typeinfo.cc"
# Do not build by default.
build_by_default="no"
@@ -75,7 +75,7 @@ static tree stop_minfo_node;
/* Record information about module initialization, termination,
unit testing, and thread local storage in the compilation. */
-struct GTY(()) module_info
+struct module_info
{
vec <tree, va_gc> *ctors;
vec <tree, va_gc> *dtors;
@@ -121,11 +121,6 @@ static module_info *current_testing_module;
static Module *current_module_decl;
-/* Static constructors and destructors (not D `static this'). */
-
-static GTY(()) vec <tree, va_gc> *static_ctor_list;
-static GTY(()) vec <tree, va_gc> *static_dtor_list;
-
/* Returns an internal function identified by IDENT. This is used
by both module initialization and dso handlers. */
@@ -460,10 +455,12 @@ register_moduleinfo (Module *decl, tree minfo)
/* Declare dso_ctor() and dso_dtor(). */
tree dso_ctor = build_dso_cdtor_fn (true);
- vec_safe_push (static_ctor_list, dso_ctor);
+ DECL_STATIC_CONSTRUCTOR (dso_ctor) = 1;
+ decl_init_priority_insert (dso_ctor, DEFAULT_INIT_PRIORITY);
tree dso_dtor = build_dso_cdtor_fn (false);
- vec_safe_push (static_dtor_list, dso_dtor);
+ DECL_STATIC_DESTRUCTOR (dso_dtor) = 1;
+ decl_fini_priority_insert (dso_dtor, DEFAULT_INIT_PRIORITY);
first_module = false;
}
@@ -908,27 +905,4 @@ d_finish_compilation (tree *vec, int len)
tree decl = vec[i];
wrapup_global_declarations (&decl, 1);
}
-
- /* If the target does not directly support static constructors,
- static_ctor_list contains a list of all static constructors defined
- so far. This routine will create a function to call all of those
- and is picked up by collect2. */
- if (static_ctor_list)
- {
- tree decl = build_funcs_gates_fn (get_file_function_name ("I"),
- static_ctor_list, NULL);
- DECL_STATIC_CONSTRUCTOR (decl) = 1;
- decl_init_priority_insert (decl, DEFAULT_INIT_PRIORITY);
- }
-
- if (static_dtor_list)
- {
- tree decl = build_funcs_gates_fn (get_file_function_name ("D"),
- static_dtor_list, NULL);
- DECL_STATIC_DESTRUCTOR (decl) = 1;
- decl_fini_priority_insert (decl, DEFAULT_INIT_PRIORITY);
- }
}
-
-
-#include "gt-d-modules.h"
deleted file mode 100644
@@ -1,11 +0,0 @@
-// https://bugzilla.gdcproject.org/show_bug.cgi?id=270
-// { dg-do compile }
-
-module gdc270;
-
-void foo()
-{
-}
-
-/* { dg-final { scan-assembler "_GLOBAL__D_6gdc270" } } */
-/* { dg-final { scan-assembler "_GLOBAL__I_6gdc270" } } */
deleted file mode 100644
@@ -1,7 +0,0 @@
-// https://bugzilla.gdcproject.org/show_bug.cgi?id=270
-// { dg-do compile }
-
-module gdc270;
-
-/* { dg-final { scan-assembler "_GLOBAL__D_6gdc270" } } */
-/* { dg-final { scan-assembler "_GLOBAL__I_6gdc270" } } */