r274598 - in /trunk: gcc/go/gofrontend/MERGE li...
ian@gcc.gnu.org
ian@gcc.gnu.org
Sat Aug 17 04:35:00 GMT 2019
Author: ian
Date: Sat Aug 17 04:35:37 2019
New Revision: 274598
URL: https://gcc.gnu.org/viewcvs?rev=274598&root=gcc&view=rev
Log:
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
Modified:
trunk/gcc/go/gofrontend/MERGE
trunk/libgo/go/runtime/mwbbuf.go
More information about the Gcc-cvs
mailing list