diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-06-13 20:32:10 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-06-13 20:32:10 +0000 |
commit | 1df5fce42a295ae8cb34c6a4aae30814679b0b59 (patch) | |
tree | 0dd19ecdee4854a48eb38384caaf3269c7fc8e20 /gcc/tree.c | |
parent | a7bf6c088934ef39a937069fca7408c7f540c551 (diff) | |
download | gcc-1df5fce42a295ae8cb34c6a4aae30814679b0b59.zip gcc-1df5fce42a295ae8cb34c6a4aae30814679b0b59.tar.gz gcc-1df5fce42a295ae8cb34c6a4aae30814679b0b59.tar.bz2 |
compiler: avoid introducing redundant write barriers
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
Diffstat (limited to 'gcc/tree.c')
0 files changed, 0 insertions, 0 deletions