diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2021-12-01 23:56:28 +0100 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2021-12-02 01:46:07 +0100 |
commit | fa10faa72d8e9e97b6e564f8b0a7b602538d0da0 (patch) | |
tree | ec8bbec2cec218e2f906408392754d7c110bca3d | |
parent | 12421a364548323df7126c6e3e2d0f82ad8fe53a (diff) | |
download | gcc-fa10faa72d8e9e97b6e564f8b0a7b602538d0da0.zip gcc-fa10faa72d8e9e97b6e564f8b0a7b602538d0da0.tar.gz gcc-fa10faa72d8e9e97b6e564f8b0a7b602538d0da0.tar.bz2 |
d: Disable the D runtime garbage collector after initializing (PR103520)
Not all targets that support building libdruntime have a stable garbage
collector, so to avoid running into problems where live memory allocated
by the D GC is freed, disable all in-flight collections until a time
when scanning is more reliably implemented everywhere.
PR d/103520
gcc/d/ChangeLog:
* d-frontend.h (gc_disable): Declare.
* d-lang.cc (d_init_options): Disable the D runtime garbage collector
after initializing.
-rw-r--r-- | gcc/d/d-frontend.h | 2 | ||||
-rw-r--r-- | gcc/d/d-lang.cc | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/gcc/d/d-frontend.h b/gcc/d/d-frontend.h index 3edf812..e7695d5 100644 --- a/gcc/d/d-frontend.h +++ b/gcc/d/d-frontend.h @@ -21,7 +21,7 @@ along with GCC; see the file COPYING3. If not see /* These functions are defined in D runtime. */ extern "C" int rt_init (void); extern "C" int rt_term (void); -//extern "C" void gc_disable (void); +extern "C" void gc_disable (void); extern "C" void *gc_malloc (size_t sz, unsigned ba = 0, const void *ti = NULL); extern "C" void gc_free (void *); extern "C" void gc_collect (void); diff --git a/gcc/d/d-lang.cc b/gcc/d/d-lang.cc index d20370e..dbf7a8b 100644 --- a/gcc/d/d-lang.cc +++ b/gcc/d/d-lang.cc @@ -288,7 +288,7 @@ d_init_options (unsigned int, cl_decoded_option *decoded_options) { /* Initialize the D runtime. */ rt_init (); -// gc_disable (); + gc_disable (); /* Set default values. */ global._init (); |