]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: extend GOSSAFUNC match to well-formed package suffix match.
authorDavid Chase <drchase@google.com>
Wed, 21 Apr 2021 14:30:25 +0000 (10:30 -0400)
committerDavid Chase <drchase@google.com>
Sat, 24 Apr 2021 20:08:46 +0000 (20:08 +0000)
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 <drchase@google.com>
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/compile/internal/ssagen/ssa.go

index c293e4db19231780c910d5c0967ac2d832dfdccf..800d6a0b635eed902468fff83321ed8d1ae32bba 100644 (file)
@@ -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 {