diff options
author | Tom Tromey <tromey@redhat.com> | 2001-08-18 01:04:43 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2001-08-18 01:04:43 +0000 |
commit | 5a2586cf8fcf001cddb47d3f9bf6610975d1564d (patch) | |
tree | 0a038d94cc4acd44c0926f011247f6b7969fa84b /boehm-gc/mark_rts.c | |
parent | eed566698034311c58eea585da1ddb5a6e0807fb (diff) | |
download | gcc-5a2586cf8fcf001cddb47d3f9bf6610975d1564d.zip gcc-5a2586cf8fcf001cddb47d3f9bf6610975d1564d.tar.gz gcc-5a2586cf8fcf001cddb47d3f9bf6610975d1564d.tar.bz2 |
Makefile.am, [...]: Imported GC 6.0 and merged local changes.
* Makefile.am, acinclude.m4, configure.in: Imported GC 6.0 and
merged local changes.
From-SVN: r44994
Diffstat (limited to 'boehm-gc/mark_rts.c')
-rw-r--r-- | boehm-gc/mark_rts.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/boehm-gc/mark_rts.c b/boehm-gc/mark_rts.c index 8480a0e..251a0d1 100644 --- a/boehm-gc/mark_rts.c +++ b/boehm-gc/mark_rts.c @@ -471,8 +471,9 @@ ptr_t cold_gc_frame; cold_gc_bs_pointer = bsp - 2048; if (cold_gc_bs_pointer < BACKING_STORE_BASE) { cold_gc_bs_pointer = BACKING_STORE_BASE; + } else { + GC_push_all_stack(BACKING_STORE_BASE, cold_gc_bs_pointer); } - GC_push_all_stack(BACKING_STORE_BASE, cold_gc_bs_pointer); } else { cold_gc_bs_pointer = BACKING_STORE_BASE; } @@ -501,6 +502,10 @@ void GC_push_gc_structures GC_PROTO((void)) # endif } +#ifdef THREAD_LOCAL_ALLOC + void GC_mark_thread_local_free_lists(); +#endif + /* * Call the mark routines (GC_tl_push for a single pointer, GC_push_conditional * on groups of pointers) on every top level accessible pointer. @@ -552,6 +557,12 @@ ptr_t cold_gc_frame; GC_push_gc_structures(); } + /* Mark thread local free lists, even if their mark */ + /* descriptor excludes the link field. */ +# ifdef THREAD_LOCAL_ALLOC + GC_mark_thread_local_free_lists(); +# endif + /* * Now traverse stacks. */ |