]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/ssa: skip EndSequence entries in TestStmtLines
authorqmuntal <quimmuntal@gmail.com>
Fri, 4 Jul 2025 10:45:42 +0000 (12:45 +0200)
committerGopher Robot <gobot@golang.org>
Mon, 7 Jul 2025 16:14:56 +0000 (09:14 -0700)
The TestStmtLines test has been accessing a nil pointer when it
tries to look up LineEntry.File.Name on a line entry with
EndSequence set to true. The doc for EndSequence specifies that if
EndSequence is set, only it and the Address field are meaningful. Skip
the entries with EndSequence set when building the set of files.

I've reproduced this issue locally.
Probably also fixes #49372, but will leave that for a follow-up CL.

Fixes #74475
Updates #49372

Change-Id: Ic0664f7652b52a0a20239d13fe16454622740821
Reviewed-on: https://go-review.googlesource.com/c/go/+/685835
Reviewed-by: Than McIntosh <thanm@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Bypass: Dmitri Shuralyov <dmitshur@golang.org>
Auto-Submit: Quim Muntal <quimmuntal@gmail.com>

src/cmd/compile/internal/ssa/stmtlines_test.go

index e17a5402af818d0df95f749cca315ca65ba05997..8cd11e9828e0f9b92f41836d4b4a9f375ae23539 100644 (file)
@@ -120,6 +120,11 @@ func TestStmtLines(t *testing.T) {
                                break
                        }
                        must(err)
+                       if le.EndSequence {
+                               // When EndSequence is true only
+                               // le.Address is meaningful, skip.
+                               continue
+                       }
                        fl := Line{le.File.Name, le.Line}
                        lines[fl] = lines[fl] || le.IsStmt
                }