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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [ken/] [interbasic.go] - Rev 858

Go to most recent revision | Compare with Previous | Blame | View Log

// $G $D/$F.go && $L $F.$A && ./$A.out

// 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

type myint int
type mystring string
type I0 interface{}

func f() {
        var ia, ib I0
        var i myint
        var s mystring

        if ia != ib {
                panic("1")
        }

        i = 1
        ia = i
        ib = i
        if ia != ib {
                panic("2")
        }
        if ia == nil {
                panic("3")
        }

        i = 2
        ia = i
        if ia == ib {
                panic("4")
        }

        ia = nil
        if ia == ib {
                panic("5")
        }

        ib = nil
        if ia != ib {
                panic("6")
        }

        if ia != nil {
                panic("7")
        }

        s = "abc"
        ia = s
        ib = nil
        if ia == ib {
                panic("8")
        }

        s = "def"
        ib = s
        if ia == ib {
                panic("9")
        }

        s = "abc"
        ib = s
        if ia != ib {
                panic("a")
        }
}

func main() {
        var ia [20]I0
        var b bool
        var s string
        var i8 int8
        var i16 int16
        var i32 int32
        var i64 int64
        var u8 uint8
        var u16 uint16
        var u32 uint32
        var u64 uint64

        f()

        ia[0] = "xxx"
        ia[1] = 12345
        ia[2] = true

        s = "now is"
        ia[3] = s
        b = false
        ia[4] = b

        i8 = 29
        ia[5] = i8
        i16 = 994
        ia[6] = i16
        i32 = 3434
        ia[7] = i32
        i64 = 1234567
        ia[8] = i64

        u8 = 12
        ia[9] = u8
        u16 = 799
        ia[10] = u16
        u32 = 4455
        ia[11] = u32
        u64 = 765432
        ia[12] = u64

        s = ia[0].(string)
        if s != "xxx" {
                println(0, s)
                panic("fail")
        }
        i32 = int32(ia[1].(int))
        if i32 != 12345 {
                println(1, i32)
                panic("fail")
        }
        b = ia[2].(bool)
        if b != true {
                println(2, b)
                panic("fail")
        }

        s = ia[3].(string)
        if s != "now is" {
                println(3, s)
                panic("fail")
        }
        b = ia[4].(bool)
        if b != false {
                println(4, b)
                panic("fail")
        }

        i8 = ia[5].(int8)
        if i8 != 29 {
                println(5, i8)
                panic("fail")
        }
        i16 = ia[6].(int16)
        if i16 != 994 {
                println(6, i16)
                panic("fail")
        }
        i32 = ia[7].(int32)
        if i32 != 3434 {
                println(7, i32)
                panic("fail")
        }
        i64 = ia[8].(int64)
        if i64 != 1234567 {
                println(8, i64)
                panic("fail")
        }

        u8 = ia[9].(uint8)
        if u8 != 12 {
                println(5, u8)
                panic("fail")
        }
        u16 = ia[10].(uint16)
        if u16 != 799 {
                println(6, u16)
                panic("fail")
        }
        u32 = ia[11].(uint32)
        if u32 != 4455 {
                println(7, u32)
                panic("fail")
        }
        u64 = ia[12].(uint64)
        if u64 != 765432 {
                println(8, u64)
                panic("fail")
        }
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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