diff options
author | Austin Clements <austin@google.com> | 2017-10-24 17:10:02 -0400 |
---|---|---|
committer | Austin Clements <austin@google.com> | 2017-10-29 20:21:43 +0000 |
commit | afbe646ab4480696d61462e9cab2ad048b5c1b6c (patch) | |
tree | 0afc29efdb52fd3ceb5193e2b9277c41b5463543 /src/cmd/compile/internal/ssa/export_test.go | |
parent | 507ca082d116c19cbe5cbdd457e6b37d851d2341 (diff) | |
download | go-afbe646ab4480696d61462e9cab2ad048b5c1b6c.tar.gz go-afbe646ab4480696d61462e9cab2ad048b5c1b6c.zip |
cmd/compile: report typedslicecopy write barriers
Most write barrier calls are inserted by SSA, but copy and append are
lowered to runtime.typedslicecopy during walk. Fix these to set
Func.WBPos and emit the "write barrier" warning, as done for the write
barriers inserted by SSA. As part of this, we refactor setting WBPos
and emitting this warning into the frontend so it can be shared by
both walk and SSA.
Change-Id: I5fe9997d9bdb55e03e01dd58aee28908c35f606b
Reviewed-on: https://go-review.googlesource.com/73411
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/export_test.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/export_test.go | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/ssa/export_test.go b/src/cmd/compile/internal/ssa/export_test.go index ad69463bdd..d1d6831eb3 100644 --- a/src/cmd/compile/internal/ssa/export_test.go +++ b/src/cmd/compile/internal/ssa/export_test.go @@ -125,6 +125,8 @@ func (d DummyFrontend) Syslook(s string) *obj.LSym { func (DummyFrontend) UseWriteBarrier() bool { return true // only writebarrier_test cares } +func (DummyFrontend) SetWBPos(pos src.XPos) { +} func (d DummyFrontend) Logf(msg string, args ...interface{}) { d.t.Logf(msg, args...) } func (d DummyFrontend) Log() bool { return true } @@ -132,7 +134,6 @@ func (d DummyFrontend) Log() bool { return true } func (d DummyFrontend) Fatalf(_ src.XPos, msg string, args ...interface{}) { d.t.Fatalf(msg, args...) } func (d DummyFrontend) Warnl(_ src.XPos, msg string, args ...interface{}) { d.t.Logf(msg, args...) } func (d DummyFrontend) Debug_checknil() bool { return false } -func (d DummyFrontend) Debug_wb() bool { return false } var dummyTypes Types |