diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2019-08-17 04:35:37 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2019-08-17 04:35:37 +0000 |
commit | 777c02825229f14cf91c6044827ea42a77ded4a3 (patch) | |
tree | 3dd9baeb70c0752889ee56008eb3642fc4d3e76a /gcc/go/gofrontend | |
parent | 7aad42b91897c6b9fa3047efdd8d966a2788c159 (diff) | |
download | gcc-777c02825229f14cf91c6044827ea42a77ded4a3.zip gcc-777c02825229f14cf91c6044827ea42a77ded4a3.tar.gz gcc-777c02825229f14cf91c6044827ea42a77ded4a3.tar.bz2 |
runtime: scan write barrier buffer conservatively
In gccgo, we insert the write barriers in the frontend, and so we
cannot completely prevent write barriers on stack writes. So it
is possible for a bad pointer appearing in the write barrier
buffer. When flushing the write barrier, treat it the same as
sacnning the stack. In particular, don't mark a pointer if it
does not point to an allocated object. We already have similar
logic in greyobject. With this, hopefully, we can prevent an
unallocated object from being marked completely.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190599
From-SVN: r274598
Diffstat (limited to 'gcc/go/gofrontend')
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 48b4249..78597da 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -0f6d673d5b1a3474c3424cb6994ae8ff9baed255 +838f926c93898767f0337122725a4f52a1335186 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. |