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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [assign1.go] - Rev 700

Compare with Previous | Blame | View Log

// errchk $G -e $D/$F.go

// 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 (
        A [10]int
        B []int
        C chan int
        F func() int
        I interface {
                m() int
        }
        M map[int]int
        P *int
        S struct {
                X int
        }

        A1 [10]int
        B1 []int
        C1 chan int
        F1 func() int
        I1 interface {
                m() int
        }
        M1 map[int]int
        P1 *int
        S1 struct {
                X int
        }
)

var (
        a0 [10]int
        b0 []int
        c0 chan int
        f0 func() int
        i0 interface {
                m() int
        }
        m0 map[int]int
        p0 *int
        s0 struct {
                X int
        }

        a A
        b B
        c C
        f F
        i I
        m M
        p P
        s S

        a1 A1
        b1 B1
        c1 C1
        f1 F1
        i1 I1
        m1 M1
        p1 P1
        s1 S1

        pa0 *[10]int
        pb0 *[]int
        pc0 *chan int
        pf0 *func() int
        pi0 *interface {
                m() int
        }
        pm0 *map[int]int
        pp0 **int
        ps0 *struct {
                X int
        }

        pa *A
        pb *B
        pc *C
        pf *F
        pi *I
        pm *M
        pp *P
        ps *S

        pa1 *A1
        pb1 *B1
        pc1 *C1
        pf1 *F1
        pi1 *I1
        pm1 *M1
        pp1 *P1
        ps1 *S1
)

func main() {
        a0 = a
        a0 = a1
        a = a0
        a = a1 // ERROR "cannot use"
        a1 = a0
        a1 = a // ERROR "cannot use"

        b0 = b
        b0 = b1
        b = b0
        b = b1 // ERROR "cannot use"
        b1 = b0
        b1 = b // ERROR "cannot use"

        c0 = c
        c0 = c1
        c = c0
        c = c1 // ERROR "cannot use"
        c1 = c0
        c1 = c // ERROR "cannot use"

        f0 = f
        f0 = f1
        f = f0
        f = f1 // ERROR "cannot use"
        f1 = f0
        f1 = f // ERROR "cannot use"

        i0 = i
        i0 = i1
        i = i0
        i = i1
        i1 = i0
        i1 = i

        m0 = m
        m0 = m1
        m = m0
        m = m1 // ERROR "cannot use"
        m1 = m0
        m1 = m // ERROR "cannot use"

        p0 = p
        p0 = p1
        p = p0
        p = p1 // ERROR "cannot use"
        p1 = p0
        p1 = p // ERROR "cannot use"

        s0 = s
        s0 = s1
        s = s0
        s = s1 // ERROR "cannot use"
        s1 = s0
        s1 = s // ERROR "cannot use"

        pa0 = pa  // ERROR "cannot use|incompatible"
        pa0 = pa1 // ERROR "cannot use|incompatible"
        pa = pa0  // ERROR "cannot use|incompatible"
        pa = pa1  // ERROR "cannot use|incompatible"
        pa1 = pa0 // ERROR "cannot use|incompatible"
        pa1 = pa  // ERROR "cannot use|incompatible"

        pb0 = pb  // ERROR "cannot use|incompatible"
        pb0 = pb1 // ERROR "cannot use|incompatible"
        pb = pb0  // ERROR "cannot use|incompatible"
        pb = pb1  // ERROR "cannot use|incompatible"
        pb1 = pb0 // ERROR "cannot use|incompatible"
        pb1 = pb  // ERROR "cannot use|incompatible"

        pc0 = pc  // ERROR "cannot use|incompatible"
        pc0 = pc1 // ERROR "cannot use|incompatible"
        pc = pc0  // ERROR "cannot use|incompatible"
        pc = pc1  // ERROR "cannot use|incompatible"
        pc1 = pc0 // ERROR "cannot use|incompatible"
        pc1 = pc  // ERROR "cannot use|incompatible"

        pf0 = pf  // ERROR "cannot use|incompatible"
        pf0 = pf1 // ERROR "cannot use|incompatible"
        pf = pf0  // ERROR "cannot use|incompatible"
        pf = pf1  // ERROR "cannot use|incompatible"
        pf1 = pf0 // ERROR "cannot use|incompatible"
        pf1 = pf  // ERROR "cannot use|incompatible"

        pi0 = pi  // ERROR "cannot use|incompatible"
        pi0 = pi1 // ERROR "cannot use|incompatible"
        pi = pi0  // ERROR "cannot use|incompatible"
        pi = pi1  // ERROR "cannot use|incompatible"
        pi1 = pi0 // ERROR "cannot use|incompatible"
        pi1 = pi  // ERROR "cannot use|incompatible"

        pm0 = pm  // ERROR "cannot use|incompatible"
        pm0 = pm1 // ERROR "cannot use|incompatible"
        pm = pm0  // ERROR "cannot use|incompatible"
        pm = pm1  // ERROR "cannot use|incompatible"
        pm1 = pm0 // ERROR "cannot use|incompatible"
        pm1 = pm  // ERROR "cannot use|incompatible"

        pp0 = pp  // ERROR "cannot use|incompatible"
        pp0 = pp1 // ERROR "cannot use|incompatible"
        pp = pp0  // ERROR "cannot use|incompatible"
        pp = pp1  // ERROR "cannot use|incompatible"
        pp1 = pp0 // ERROR "cannot use|incompatible"
        pp1 = pp  // ERROR "cannot use|incompatible"

        ps0 = ps  // ERROR "cannot use|incompatible"
        ps0 = ps1 // ERROR "cannot use|incompatible"
        ps = ps0  // ERROR "cannot use|incompatible"
        ps = ps1  // ERROR "cannot use|incompatible"
        ps1 = ps0 // ERROR "cannot use|incompatible"
        ps1 = ps  // ERROR "cannot use|incompatible"


        a0 = [10]int(a)
        a0 = [10]int(a1)
        a = A(a0)
        a = A(a1)
        a1 = A1(a0)
        a1 = A1(a)

        b0 = []int(b)
        b0 = []int(b1)
        b = B(b0)
        b = B(b1)
        b1 = B1(b0)
        b1 = B1(b)

        c0 = chan int(c)
        c0 = chan int(c1)
        c = C(c0)
        c = C(c1)
        c1 = C1(c0)
        c1 = C1(c)

        f0 = func() int(f)
        f0 = func() int(f1)
        f = F(f0)
        f = F(f1)
        f1 = F1(f0)
        f1 = F1(f)

        i0 = interface {
                m() int
        }(i)
        i0 = interface {
                m() int
        }(i1)
        i = I(i0)
        i = I(i1)
        i1 = I1(i0)
        i1 = I1(i)

        m0 = map[int]int(m)
        m0 = map[int]int(m1)
        m = M(m0)
        m = M(m1)
        m1 = M1(m0)
        m1 = M1(m)

        p0 = (*int)(p)
        p0 = (*int)(p1)
        p = P(p0)
        p = P(p1)
        p1 = P1(p0)
        p1 = P1(p)

        s0 = struct {
                X int
        }(s)
        s0 = struct {
                X int
        }(s1)
        s = S(s0)
        s = S(s1)
        s1 = S1(s0)
        s1 = S1(s)

        pa0 = (*[10]int)(pa)
        pa0 = (*[10]int)(pa1)
        pa = (*A)(pa0)
        pa = (*A)(pa1)
        pa1 = (*A1)(pa0)
        pa1 = (*A1)(pa)

        pb0 = (*[]int)(pb)
        pb0 = (*[]int)(pb1)
        pb = (*B)(pb0)
        pb = (*B)(pb1)
        pb1 = (*B1)(pb0)
        pb1 = (*B1)(pb)

        pc0 = (*chan int)(pc)
        pc0 = (*chan int)(pc1)
        pc = (*C)(pc0)
        pc = (*C)(pc1)
        pc1 = (*C1)(pc0)
        pc1 = (*C1)(pc)

        pf0 = (*func() int)(pf)
        pf0 = (*func() int)(pf1)
        pf = (*F)(pf0)
        pf = (*F)(pf1)
        pf1 = (*F1)(pf0)
        pf1 = (*F1)(pf)

        pi0 = (*interface {
                m() int
        })(pi)
        pi0 = (*interface {
                m() int
        })(pi1)
        pi = (*I)(pi0)
        pi = (*I)(pi1)
        pi1 = (*I1)(pi0)
        pi1 = (*I1)(pi)

        pm0 = (*map[int]int)(pm)
        pm0 = (*map[int]int)(pm1)
        pm = (*M)(pm0)
        pm = (*M)(pm1)
        pm1 = (*M1)(pm0)
        pm1 = (*M1)(pm)

        pp0 = (**int)(pp)
        pp0 = (**int)(pp1)
        pp = (*P)(pp0)
        pp = (*P)(pp1)
        pp1 = (*P1)(pp0)
        pp1 = (*P1)(pp)

        ps0 = (*struct {
                X int
        })(ps)
        ps0 = (*struct {
                X int
        })(ps1)
        ps = (*S)(ps0)
        ps = (*S)(ps1)
        ps1 = (*S1)(ps0)
        ps1 = (*S1)(ps)

}

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.