The traversal used by the write barrier insertion phase can sometimes wind up visiting new statements inserted during the traversal, which then results in duplicate / redundant write barrier guards. Example program to reproduce: package small type S struct { N *S K int } var G *S = &S{N: nil, K: 101} This patch changes the traversal code to keep track of statements already added and avoid processing them again later in the traversal. Fixes golang/go#25867 Reviewed-on: https://go-review.googlesource.com/118637 From-SVN: r261568
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
LICENSE | Loading commit data... | |
MERGE | Loading commit data... | |
PATENTS | Loading commit data... | |
README | Loading commit data... | |
ast-dump.cc | Loading commit data... | |
ast-dump.h | Loading commit data... | |
backend.h | Loading commit data... | |
escape.cc | Loading commit data... | |
escape.h | Loading commit data... | |
export.cc | Loading commit data... | |
export.h | Loading commit data... | |
expressions.cc | Loading commit data... | |
expressions.h | Loading commit data... | |
go-diagnostics.cc | Loading commit data... | |
go-diagnostics.h | Loading commit data... | |
go-dump.cc | Loading commit data... | |
go-dump.h | Loading commit data... | |
go-encode-id.cc | Loading commit data... | |
go-encode-id.h | Loading commit data... | |
go-linemap.h | Loading commit data... | |
go-optimize.cc | Loading commit data... | |
go-optimize.h | Loading commit data... | |
go-sha1.h | Loading commit data... | |
go.cc | Loading commit data... | |
gogo.cc | Loading commit data... | |
gogo.h | Loading commit data... | |
import-archive.cc | Loading commit data... | |
import.cc | Loading commit data... | |
import.h | Loading commit data... | |
lex.cc | Loading commit data... | |
lex.h | Loading commit data... | |
names.cc | Loading commit data... | |
operator.h | Loading commit data... | |
parse.cc | Loading commit data... | |
parse.h | Loading commit data... | |
runtime.cc | Loading commit data... | |
runtime.def | Loading commit data... | |
runtime.h | Loading commit data... | |
statements.cc | Loading commit data... | |
statements.h | Loading commit data... | |
string-dump.h | Loading commit data... | |
types.cc | Loading commit data... | |
types.h | Loading commit data... | |
unsafe.cc | Loading commit data... | |
wb.cc | Loading commit data... |