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