diff options
Diffstat (limited to 'src/go/parser/parser_test.go')
-rw-r--r-- | src/go/parser/parser_test.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/go/parser/parser_test.go b/src/go/parser/parser_test.go index 0c278924c9..15b265ffc3 100644 --- a/src/go/parser/parser_test.go +++ b/src/go/parser/parser_test.go @@ -742,3 +742,19 @@ func TestScopeDepthLimit(t *testing.T) { } } } + +// TestIssue59180 tests that line number overflow doesn't cause an infinite loop. +func TestIssue59180(t *testing.T) { + testcases := []string{ + "package p\n//line :9223372036854775806\n\n//", + "package p\n//line :1:9223372036854775806\n\n//", + "package p\n//line file:9223372036854775806\n\n//", + } + + for _, src := range testcases { + _, err := ParseFile(token.NewFileSet(), "", src, ParseComments) + if err == nil { + t.Errorf("ParseFile(%s) succeeded unexpectedly", src) + } + } +} |