Commit 8eec4ebd authored by Rick Arnold's avatar Rick Arnold Committed by Rob Pike

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
parent d4d77052
......@@ -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
}
}
......
// 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\]"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment