OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [fixedbugs/] [bug027.go] - Blame information for rev 700

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 700 jeremybenn
// $G $D/$F.go && $L $F.$A && ./$A.out
2
 
3
// Copyright 2009 The Go Authors. All rights reserved.
4
// Use of this source code is governed by a BSD-style
5
// license that can be found in the LICENSE file.
6
 
7
package main
8
 
9
import "fmt"
10
 
11
type Element interface {
12
}
13
 
14
type Vector struct {
15
        nelem int
16
        elem  []Element
17
}
18
 
19
func New() *Vector {
20
        v := new(Vector)
21
        v.nelem = 0
22
        v.elem = make([]Element, 10)
23
        return v
24
}
25
 
26
func (v *Vector) At(i int) Element {
27
        return v.elem[i]
28
}
29
 
30
func (v *Vector) Insert(e Element) {
31
        v.elem[v.nelem] = e
32
        v.nelem++
33
}
34
 
35
func main() {
36
        type I struct{ val int }
37
        i0 := new(I)
38
        i0.val = 0
39
        i1 := new(I)
40
        i1.val = 11
41
        i2 := new(I)
42
        i2.val = 222
43
        i3 := new(I)
44
        i3.val = 3333
45
        i4 := new(I)
46
        i4.val = 44444
47
        v := New()
48
        r := "hi\n"
49
        v.Insert(i4)
50
        v.Insert(i3)
51
        v.Insert(i2)
52
        v.Insert(i1)
53
        v.Insert(i0)
54
        for i := 0; i < v.nelem; i++ {
55
                var x *I
56
                x = v.At(i).(*I)
57
                r += fmt.Sprintln(i, x.val) // prints correct list
58
        }
59
        for i := 0; i < v.nelem; i++ {
60
                r += fmt.Sprintln(i, v.At(i).(*I).val)
61
        }
62
        expect := `hi
63
 
64
1 3333
65
2 222
66
3 11
67
4 0
68
 
69
1 3333
70
2 222
71
3 11
72
4 0
73
`
74
        if r != expect {
75
                panic(r)
76
        }
77
}
78
 
79
/*
80
bug027.go:50: illegal types for operand
81
        (I{}) CONV ({})
82
bug027.go:50: illegal types for operand
83
        (I{}) CONV ({})
84
*/

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.