URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [indirect.go] - Rev 700
Compare with Previous | Blame | View Log
// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG indirect// 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 mainvar m0 map[string]intvar m1 *map[string]intvar m2 *map[string]int = &m0var m3 map[string]int = map[string]int{"a": 1}var m4 *map[string]int = &m3var s0 stringvar s1 *stringvar s2 *string = &s0var s3 string = "a"var s4 *string = &s3var a0 [10]intvar a1 *[10]intvar a2 *[10]int = &a0var b0 []intvar b1 *[]intvar b2 *[]int = &b0var b3 []int = []int{1, 2, 3}var b4 *[]int = &b3func crash() {// these uses of nil pointers// would crash but should type checkprintln("crash",len(a1)+cap(a1))}func nocrash() {// this is spaced funny so that// the compiler will print a different// line number for each len call if// it decides there are type errors.// it might also help in the traceback.x :=len(m0) +len(m3)if x != 1 {println("wrong maplen")panic("fail")}x =len(s0) +len(s3)if x != 1 {println("wrong stringlen")panic("fail")}x =len(a0) +len(a2)if x != 20 {println("wrong arraylen")panic("fail")}x =len(b0) +len(b3)if x != 3 {println("wrong slicelen")panic("fail")}x =cap(b0) +cap(b3)if x != 3 {println("wrong slicecap")panic("fail")}}func main() { nocrash() }
