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
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
gofrontend | Loading commit data... | |
ChangeLog | Loading commit data... | |
Make-lang.in | Loading commit data... | |
README.gcc | Loading commit data... | |
config-lang.in | Loading commit data... | |
gccgo.texi | Loading commit data... | |
go-backend.c | Loading commit data... | |
go-c.h | Loading commit data... | |
go-gcc-diagnostics.cc | Loading commit data... | |
go-gcc.cc | Loading commit data... | |
go-gcc.h | Loading commit data... | |
go-lang.c | Loading commit data... | |
go-linemap.cc | Loading commit data... | |
go-location.h | Loading commit data... | |
go-sha1.cc | Loading commit data... | |
go-system.h | Loading commit data... | |
gospec.c | Loading commit data... | |
lang-specs.h | Loading commit data... | |
lang.opt | Loading commit data... |