aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/compile/internal/inline/inl.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/inline/inl.go b/src/cmd/compile/internal/inline/inl.go
index 4909650ae4..75f3a4b907 100644
--- a/src/cmd/compile/internal/inline/inl.go
+++ b/src/cmd/compile/internal/inline/inl.go
@@ -412,7 +412,7 @@ func (v *hairyVisitor) doNode(n ir.Node) bool {
// failures (a good example is the TestAllocations in
// crypto/ed25519).
if isAtomicCoverageCounterUpdate(n) {
- break
+ return false
}
}
if n.X.Op() == ir.OMETHEXPR {
@@ -629,7 +629,7 @@ func (v *hairyVisitor) doNode(n ir.Node) bool {
// then result in test failures (a good example is the
// TestAllocations in crypto/ed25519).
n := n.(*ir.AssignStmt)
- if n.X.Op() == ir.OINDEX && isIndexingCoverageCounter(n) {
+ if n.X.Op() == ir.OINDEX && isIndexingCoverageCounter(n.X) {
return false
}
}
@@ -1729,7 +1729,8 @@ func isAtomicCoverageCounterUpdate(cn *ir.CallExpr) bool {
return false
}
fn := name.Sym().Name
- if name.Sym().Pkg.Path != "sync/atomic" || fn != "AddUint32" {
+ if name.Sym().Pkg.Path != "sync/atomic" ||
+ (fn != "AddUint32" && fn != "StoreUint32") {
return false
}
if len(cn.Args) != 2 || cn.Args[0].Op() != ir.OADDR {