mirror of
https://github.com/golang/go
synced 2024-11-11 23:50:22 -07:00
[dev.typeparams] cmd/compile: suppress liveness diagnostics of wrappers
Similar to the previous CL to suppress escape analysis diagnostics for method wrappers, suppress liveness analysis diagnostics too. It's hardly useful to know that all of a wrapper method's arguments are live at entry. Change-Id: I0d1e44552c6334ee3b454adc107430232abcb56a Reviewed-on: https://go-review.googlesource.com/c/go/+/330749 Trust: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
This commit is contained in:
parent
ddb09af1b8
commit
808dca3b2d
@ -1082,6 +1082,10 @@ func (lv *liveness) showlive(v *ssa.Value, live bitvec.BitVec) {
|
||||
if base.Flag.Live == 0 || ir.FuncName(lv.fn) == "init" || strings.HasPrefix(ir.FuncName(lv.fn), ".") {
|
||||
return
|
||||
}
|
||||
if lv.fn.Wrapper() || lv.fn.Dupok() {
|
||||
// Skip reporting liveness information for compiler-generated wrappers.
|
||||
return
|
||||
}
|
||||
if !(v == nil || v.Op.IsCall()) {
|
||||
// Historically we only printed this information at
|
||||
// calls. Keep doing so.
|
||||
|
@ -688,7 +688,7 @@ type T struct{}
|
||||
|
||||
func (*T) Foo(ptr *int) {}
|
||||
|
||||
type R struct{ *T } // ERRORAUTO "live at entry to \(\*R\)\.Foo: \.this ptr" "live at entry to R\.Foo: \.this ptr"
|
||||
type R struct{ *T }
|
||||
|
||||
// issue 18860: output arguments must be live all the time if there is a defer.
|
||||
// In particular, at printint r must be live.
|
||||
|
@ -683,7 +683,7 @@ type T struct{}
|
||||
|
||||
func (*T) Foo(ptr *int) {}
|
||||
|
||||
type R struct{ *T } // ERRORAUTO "live at entry to \(\*R\)\.Foo: \.this ptr" "live at entry to R\.Foo: \.this ptr"
|
||||
type R struct{ *T }
|
||||
|
||||
// issue 18860: output arguments must be live all the time if there is a defer.
|
||||
// In particular, at printint r must be live.
|
||||
|
Loading…
Reference in New Issue
Block a user