diff options
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/compile/internal/gc/walk.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index b4c38ec12b..69c8390fe0 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -2140,6 +2140,12 @@ func needwritebarrier(l *Node, r *Node) bool { return false } + // No write barrier for storing global function, which is live + // no matter what. + if r.Op == ONAME && r.Class == PFUNC { + return false + } + // Otherwise, be conservative and use write barrier. return true } |
