mirror of https://github.com/golang/go.git
go/scanner: align line and column limit with the compiler's limit
The compiler disallows line and column numbers > (1<<30) (cmd/compiler/internal/syntax.PosMax). Set the go/scanner limit to the same rather than off by one. For #59180 Change-Id: Ibf9e0e6826d6f6230b0d492543b7e906298a0524 Reviewed-on: https://go-review.googlesource.com/c/go/+/482595 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Damien Neil <dneil@google.com>
This commit is contained in:
parent
7ce4587265
commit
63f5596788
|
|
@ -8,6 +8,8 @@ import "fmt"
|
|||
|
||||
// PosMax is the largest line or column value that can be represented without loss.
|
||||
// Incoming values (arguments) larger than PosMax will be set to PosMax.
|
||||
//
|
||||
// Keep this consistent with maxLineCol in go/scanner.
|
||||
const PosMax = 1 << 30
|
||||
|
||||
// A Pos represents an absolute (line, col) source position
|
||||
|
|
|
|||
|
|
@ -255,7 +255,8 @@ func (s *Scanner) updateLineInfo(next, offs int, text []byte) {
|
|||
|
||||
// Put a cap on the maximum size of line and column numbers.
|
||||
// 30 bits allows for some additional space before wrapping an int32.
|
||||
const maxLineCol = 1<<30 - 1
|
||||
// Keep this consistent with cmd/compile/internal/syntax.PosMax.
|
||||
const maxLineCol = 1 << 30
|
||||
var line, col int
|
||||
i2, n2, ok2 := trailingDigits(text[:i-1])
|
||||
if ok2 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue