From: David Chase Date: Wed, 21 Apr 2021 14:30:25 +0000 (-0400) Subject: cmd/compile: extend GOSSAFUNC match to well-formed package suffix match. X-Git-Tag: go1.17beta1~455 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=70deaa33ebd91944484526ab368fa19c499ff29f;p=gostls13.git cmd/compile: extend GOSSAFUNC match to well-formed package suffix match. e.g., LeadingZeros, bits.LeadingZeros, math/bits.LeadingZeros but not its.LeadingZeros Change-Id: Ib9a57e4db0af03c55bf5b5027aa6f8a5a84f2134 Reviewed-on: https://go-review.googlesource.com/c/go/+/312291 Trust: David Chase Run-TryBot: David Chase TryBot-Result: Go Bot Reviewed-by: Cherry Zhang --- diff --git a/src/cmd/compile/internal/ssagen/ssa.go b/src/cmd/compile/internal/ssagen/ssa.go index c293e4db19..800d6a0b63 100644 --- a/src/cmd/compile/internal/ssagen/ssa.go +++ b/src/cmd/compile/internal/ssagen/ssa.go @@ -399,8 +399,10 @@ func okOffset(offset int64) int64 { func buildssa(fn *ir.Func, worker int) *ssa.Func { name := ir.FuncName(fn) printssa := false - if ssaDump != "" { // match either a simple name e.g. "(*Reader).Reset", or a package.name e.g. "compress/gzip.(*Reader).Reset" - printssa = name == ssaDump || base.Ctxt.Pkgpath+"."+name == ssaDump + if ssaDump != "" { // match either a simple name e.g. "(*Reader).Reset", package.name e.g. "compress/gzip.(*Reader).Reset", or subpackage name "gzip.(*Reader).Reset" + pkgDotName := base.Ctxt.Pkgpath+"."+name + printssa = name == ssaDump || + strings.HasSuffix(pkgDotName, ssaDump) && (pkgDotName == ssaDump || strings.HasSuffix(pkgDotName, "/"+ssaDump)) } var astBuf *bytes.Buffer if printssa {