diff --git a/pkg/goversion/go_version.go b/pkg/goversion/go_version.go index 5caf1b9bb..88a2d4e5c 100644 --- a/pkg/goversion/go_version.go +++ b/pkg/goversion/go_version.go @@ -155,11 +155,18 @@ func Installed() (GoVersion, bool) { // or go version) is major.minor or a later version, or a development // version. func VersionAfterOrEqual(version string, major, minor int) bool { + return VersionAfterOrEqualRev(version, major, minor, -1) +} + +// VersionAfterOrEqualRev checks that version (as returned by runtime.Version() +// or go version) is major.minor or a later version, or a development +// version. +func VersionAfterOrEqualRev(version string, major, minor, rev int) bool { ver, _ := Parse(version) if ver.IsDevel() { return true } - return ver.AfterOrEqual(GoVersion{major, minor, -1, 0, 0, ""}) + return ver.AfterOrEqual(GoVersion{major, minor, rev, 0, 0, ""}) } const producerVersionPrefix = "Go cmd/compile " diff --git a/pkg/proc/proc_test.go b/pkg/proc/proc_test.go index f33ddac37..92e6e38db 100644 --- a/pkg/proc/proc_test.go +++ b/pkg/proc/proc_test.go @@ -4804,7 +4804,8 @@ func TestStepIntoWrapperForEmbeddedPointer(t *testing.T) { {contStepout, 29}}) // same test but with next instead of stepout - if goversion.VersionAfterOrEqual(runtime.Version(), 1, 14) && runtime.GOARCH != "386" { + if goversion.VersionAfterOrEqual(runtime.Version(), 1, 14) && runtime.GOARCH != "386" && !goversion.VersionAfterOrEqualRev(runtime.Version(), 1, 15, 4) { + // Line numbers generated for versions 1.14 through 1.15.3 on any system except linux/386 testseq2(t, "ifaceembcall", "", []seqTest{ {contContinue, 28}, // main.main, the line calling iface.PtrReceiver() {contStep, 18}, // main.(*A).PtrReceiver