mirror of
https://github.com/golang/go
synced 2024-11-22 19:24:59 -07:00
cmd/gc: fix array index out of bounds error message
The error message was previously off by one in all cases. Fixes #7150. LGTM=r R=golang-codereviews, r CC=golang-codereviews https://golang.org/cl/65850043
This commit is contained in:
parent
d4d77052b4
commit
8eec4ebd7d
@ -2503,7 +2503,7 @@ typecheckcomplit(Node **np)
|
||||
len = i;
|
||||
if(t->bound >= 0 && len > t->bound) {
|
||||
setlineno(l);
|
||||
yyerror("array index %d out of bounds [0:%d]", len, t->bound);
|
||||
yyerror("array index %d out of bounds [0:%d]", len-1, t->bound);
|
||||
t->bound = -1; // no more errors
|
||||
}
|
||||
}
|
||||
|
17
test/fixedbugs/issue7150.go
Normal file
17
test/fixedbugs/issue7150.go
Normal file
@ -0,0 +1,17 @@
|
||||
// errorcheck
|
||||
|
||||
// Copyright 2014 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// issue 7150: array index out of bounds error off by one
|
||||
|
||||
package main
|
||||
|
||||
func main() {
|
||||
_ = [0]int{-1: 50} // ERROR "array index must be non-negative integer constant"
|
||||
_ = [0]int{0: 0} // ERROR "array index 0 out of bounds \[0:0\]"
|
||||
_ = [0]int{5: 25} // ERROR "array index 5 out of bounds \[0:0\]"
|
||||
_ = [10]int{2: 10, 15: 30} // ERROR "array index 15 out of bounds \[0:10\]"
|
||||
_ = [10]int{5: 5, 1: 1, 12: 12} // ERROR "array index 12 out of bounds \[0:10\]"
|
||||
}
|
Loading…
Reference in New Issue
Block a user