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

Subversion Repositories openrisc

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

Compare with Previous | Blame | View Log

// errchk $G -e $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 I interface{}

const (
        // assume all types behave similarly to int8/uint8
        Int8   int8  = 101
        Minus1 int8  = -1
        Uint8  uint8 = 102
        Const  = 103

        Float32    float32 = 104.5
        Float64    float64 = 105.5
        ConstFloat = 106.5
        Big        float64 = 1e300

        String = "abc"
        Bool   = true
)

var (
        a1 = Int8 * 100              // ERROR "overflow"
        a2 = Int8 * -1               // OK
        a3 = Int8 * 1000             // ERROR "overflow"
        a4 = Int8 * int8(1000)       // ERROR "overflow"
        a5 = int8(Int8 * 1000)       // ERROR "overflow"
        a6 = int8(Int8 * int8(1000)) // ERROR "overflow"
        a7 = Int8 - 2*Int8 - 2*Int8  // ERROR "overflow"
        a8 = Int8 * Const / 100      // ERROR "overflow"
        a9 = Int8 * (Const / 100)    // OK

        b1   = Uint8 * Uint8                                 // ERROR "overflow"
        b2   = Uint8 * -1                                    // ERROR "overflow"
        b3   = Uint8 - Uint8                                 // OK
        b4   = Uint8 - Uint8 - Uint8                         // ERROR "overflow"
        b5   = uint8(^0)                                     // ERROR "overflow"
        b6   = ^uint8(0)                                     // OK
        b7   = uint8(Minus1)                                 // ERROR "overflow"
        b8   = uint8(int8(-1))                               // ERROR "overflow"
        b8a  = uint8(-1)                                     // ERROR "overflow"
        b9   byte                    = (1 << 10) >> 8        // OK
        b10  byte                    = (1 << 10)             // ERROR "overflow"
        b11  byte                    = (byte(1) << 10) >> 8  // ERROR "overflow"
        b12  byte                    = 1000                  // ERROR "overflow"
        b13  byte                    = byte(1000)            // ERROR "overflow"
        b14  byte                    = byte(100) * byte(100) // ERROR "overflow"
        b15  byte                    = byte(100) * 100       // ERROR "overflow"
        b16  byte                    = byte(0) * 1000        // ERROR "overflow"
        b16a byte                    = 0 * 1000              // OK
        b17  byte                    = byte(0) * byte(1000)  // ERROR "overflow"
        b18  byte                    = Uint8 / 0             // ERROR "division by zero"

        c1 float64     = Big
        c2 float64     = Big * Big          // ERROR "overflow"
        c3 float64     = float64(Big) * Big // ERROR "overflow"
        c4 = Big * Big                      // ERROR "overflow"
        c5 = Big / 0                        // ERROR "division by zero"
)

func f(int)

func main() {
        f(Int8)             // ERROR "convert|wrong type|cannot"
        f(Minus1)           // ERROR "convert|wrong type|cannot"
        f(Uint8)            // ERROR "convert|wrong type|cannot"
        f(Const)            // OK
        f(Float32)          // ERROR "convert|wrong type|cannot"
        f(Float64)          // ERROR "convert|wrong type|cannot"
        f(ConstFloat)       // ERROR "truncate"
        f(ConstFloat - 0.5) // OK
        f(Big)              // ERROR "convert|wrong type|cannot"
        f(String)           // ERROR "convert|wrong type|cannot|incompatible"
        f(Bool)             // ERROR "convert|wrong type|cannot|incompatible"
}

const ptr = nil // ERROR "const.*nil"

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.