1
0
mirror of https://github.com/golang/go synced 2024-11-22 19:54:39 -07:00
go/test/bugs/bug102.go
Russ Cox 5383e28ea0 change string([]byte) to pass array, rather than &a[0],
to string convert.  if the byte array has length 0,
the computation of &a[0] throws an index bounds error.

for fixed size arrays, this ends up invoking arrays2d
unnecessarily, but it works.

R=ken
DELTA=304  (44 added, 28 deleted, 232 changed)
OCL=15674
CL=15678
2008-09-22 20:12:15 -07:00

26 lines
579 B
Go

// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: should not crash
// Copyright 2009 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.
package main
func main() {
var b [0]byte;
s := string(b); // out of bounds trap
if s != "" {
panic("bad convert")
}
var b1 = [5]byte{'h', 'e', 'l', 'l', 'o'};
if string(b1) != "hello" {
panic("bad convert 1")
}
var b2 = new([]byte, 5)
for i := 0; i < 5; i++ { b2[i] = b1[i] }
if string(b2) != "hello" {
panic("bad convert 2")
}
}