]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/intcvt.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / intcvt.go
index a54d276e6b2f2eba7f358bc53ad1460cd8da66e9..3920528a403bfad15b4f5faee8c63ceab3356846 100644 (file)
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// run
 
 // 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.
 
+// Test implicit and explicit conversions of constants.
+
 package main
 
 const (
-       ci8 = -1<<7;
-       ci16 = -1<<15 + 100;
-       ci32 = -1<<31 + 100000;
-       ci64 = -1<<63 + 10000000001;
-       
-       cu8 = 1<<8 - 1;
-       cu16 = 1<<16 - 1234;
-       cu32 = 1<<32 - 1234567;
-       cu64 = 1<<64 - 1234567890123;
-
-       cf32 = 1e8 + 0.5;
-       cf64 = -1e8 + 0.5;
+       ci8  = -1 << 7
+       ci16 = -1<<15 + 100
+       ci32 = -1<<31 + 100000
+       ci64 = -1<<63 + 10000000001
+
+       cu8  = 1<<8 - 1
+       cu16 = 1<<16 - 1234
+       cu32 = 1<<32 - 1234567
+       cu64 = 1<<64 - 1234567890123
+
+       cf32 = 1e8 + 0.5
+       cf64 = -1e8 + 0.5
 )
 
 var (
-       i8 int8 = ci8;
-       i16 int16 = ci16;
-       i32 int32 = ci32;
-       i64 int64 = ci64;
-
-       u8 uint8 = cu8;
-       u16 uint16 = cu16;
-       u32 uint32 = cu32;
-       u64 uint64 = cu64;
-       
-//     f32 float32 = 1e8 + 0.5;
-//     f64 float64 = -1e8 + 0.5;
+       i8  int8  = ci8
+       i16 int16 = ci16
+       i32 int32 = ci32
+       i64 int64 = ci64
+
+       u8  uint8  = cu8
+       u16 uint16 = cu16
+       u32 uint32 = cu32
+       u64 uint64 = cu64
+
+       //      f32 float32 = 1e8 + 0.5
+       //      f64 float64 = -1e8 + 0.5
 )
 
-func chki8(i, v int8) { if i != v { panicln(i, "!=", v) } }
-func chki16(i, v int16) { if i != v { panicln(i, "!=", v) } }
-func chki32(i, v int32) { if i != v { panicln(i, "!=", v) } }
-func chki64(i, v int64) { if i != v { panicln(i, "!=", v) } }
-func chku8(i, v uint8) { if i != v { panicln(i, "!=", v) } }
-func chku16(i, v uint16) { if i != v { panicln(i, "!=", v) } }
-func chku32(i, v uint32) { if i != v { panicln(i, "!=", v) } }
-func chku64(i, v uint64) { if i != v { panicln(i, "!=", v) } }
-//func chkf32(f, v float32) { if f != v { panicln(f, "!=", v) } }
-//func chkf64(f, v float64) { if f != v { panicln(f, "!=", v) } }
+func chki8(i, v int8) {
+       if i != v {
+               println(i, "!=", v)
+               panic("fail")
+       }
+}
+func chki16(i, v int16) {
+       if i != v {
+               println(i, "!=", v)
+               panic("fail")
+       }
+}
+func chki32(i, v int32) {
+       if i != v {
+               println(i, "!=", v)
+               panic("fail")
+       }
+}
+func chki64(i, v int64) {
+       if i != v {
+               println(i, "!=", v)
+               panic("fail")
+       }
+}
+func chku8(i, v uint8) {
+       if i != v {
+               println(i, "!=", v)
+               panic("fail")
+       }
+}
+func chku16(i, v uint16) {
+       if i != v {
+               println(i, "!=", v)
+               panic("fail")
+       }
+}
+func chku32(i, v uint32) {
+       if i != v {
+               println(i, "!=", v)
+               panic("fail")
+       }
+}
+func chku64(i, v uint64) {
+       if i != v {
+               println(i, "!=", v)
+               panic("fail")
+       }
+}
+//func chkf32(f, v float32) { if f != v { println(f, "!=", v); panic("fail") } }
+//func chkf64(f, v float64) { if f != v { println(f, "!=", v); panic("fail") } }
 
 func main() {
-       chki8(int8(i8), ci8 & 0xff - 1<<8);
-       chki8(int8(i16), ci16 & 0xff);
-       chki8(int8(i32), ci32 & 0xff - 1<<8);
-       chki8(int8(i64), ci64 & 0xff);
-       chki8(int8(u8), cu8 & 0xff - 1<<8);
-       chki8(int8(u16), cu16 & 0xff);
-       chki8(int8(u32), cu32 & 0xff);
-       chki8(int8(u64), cu64 & 0xff);
-//     chki8(int8(f32), 0);
-//     chki8(int8(f64), 0);
-
-       chki16(int16(i8), ci8 & 0xffff - 1<<16);
-       chki16(int16(i16), ci16 & 0xffff - 1<<16);
-       chki16(int16(i32), ci32 & 0xffff - 1<<16);
-       chki16(int16(i64), ci64 & 0xffff - 1<<16);
-       chki16(int16(u8), cu8 & 0xffff);
-       chki16(int16(u16), cu16 & 0xffff - 1<<16);
-       chki16(int16(u32), cu32 & 0xffff);
-       chki16(int16(u64), cu64 & 0xffff - 1<<16);
-//     chki16(int16(f32), 0);
-//     chki16(int16(f64), 0);
-
-       chki32(int32(i8), ci8 & 0xffffffff - 1<<32);
-       chki32(int32(i16), ci16 & 0xffffffff - 1<<32);
-       chki32(int32(i32), ci32 & 0xffffffff - 1<<32);
-       chki32(int32(i64), ci64 & 0xffffffff);
-       chki32(int32(u8), cu8 & 0xffffffff);
-       chki32(int32(u16), cu16 & 0xffffffff);
-       chki32(int32(u32), cu32 & 0xffffffff - 1<<32);
-       chki32(int32(u64), cu64 & 0xffffffff - 1<<32);
-//     chki32(int32(f32), 0);
-//     chki32(int32(f64), 0);
-
-       chki64(int64(i8), ci8 & 0xffffffffffffffff - 1<<64);
-       chki64(int64(i16), ci16 & 0xffffffffffffffff - 1<<64);
-       chki64(int64(i32), ci32 & 0xffffffffffffffff - 1<<64);
-       chki64(int64(i64), ci64 & 0xffffffffffffffff - 1<<64);
-       chki64(int64(u8), cu8 & 0xffffffffffffffff);
-       chki64(int64(u16), cu16 & 0xffffffffffffffff);
-       chki64(int64(u32), cu32 & 0xffffffffffffffff);
-       chki64(int64(u64), cu64 & 0xffffffffffffffff - 1<<64);
-//     chki64(int64(f32), 0);
-//     chki64(int64(f64), 0);
-
-
-       chku8(uint8(i8), ci8 & 0xff);
-       chku8(uint8(i16), ci16 & 0xff);
-       chku8(uint8(i32), ci32 & 0xff);
-       chku8(uint8(i64), ci64 & 0xff);
-       chku8(uint8(u8), cu8 & 0xff);
-       chku8(uint8(u16), cu16 & 0xff);
-       chku8(uint8(u32), cu32 & 0xff);
-       chku8(uint8(u64), cu64 & 0xff);
-//     chku8(uint8(f32), 0);
-//     chku8(uint8(f64), 0);
-
-       chku16(uint16(i8), ci8 & 0xffff);
-       chku16(uint16(i16), ci16 & 0xffff);
-       chku16(uint16(i32), ci32 & 0xffff);
-       chku16(uint16(i64), ci64 & 0xffff);
-       chku16(uint16(u8), cu8 & 0xffff);
-       chku16(uint16(u16), cu16 & 0xffff);
-       chku16(uint16(u32), cu32 & 0xffff);
-       chku16(uint16(u64), cu64 & 0xffff);
-//     chku16(uint16(f32), 0);
-//     chku16(uint16(f64), 0);
-
-       chku32(uint32(i8), ci8 & 0xffffffff);
-       chku32(uint32(i16), ci16 & 0xffffffff);
-       chku32(uint32(i32), ci32 & 0xffffffff);
-       chku32(uint32(i64), ci64 & 0xffffffff);
-       chku32(uint32(u8), cu8 & 0xffffffff);
-       chku32(uint32(u16), cu16 & 0xffffffff);
-       chku32(uint32(u32), cu32 & 0xffffffff);
-       chku32(uint32(u64), cu64 & 0xffffffff);
-//     chku32(uint32(f32), 0);
-//     chku32(uint32(f64), 0);
-
-       chku64(uint64(i8), ci8 & 0xffffffffffffffff);
-       chku64(uint64(i16), ci16 & 0xffffffffffffffff);
-       chku64(uint64(i32), ci32 & 0xffffffffffffffff);
-       chku64(uint64(i64), ci64 & 0xffffffffffffffff);
-       chku64(uint64(u8), cu8 & 0xffffffffffffffff);
-       chku64(uint64(u16), cu16 & 0xffffffffffffffff);
-       chku64(uint64(u32), cu32 & 0xffffffffffffffff);
-       chku64(uint64(u64), cu64 & 0xffffffffffffffff);
-//     chku64(uint64(f32), 0);
-//     chku64(uint64(f64), 0);
+       chki8(int8(i8), ci8&0xff-1<<8)
+       chki8(int8(i16), ci16&0xff)
+       chki8(int8(i32), ci32&0xff-1<<8)
+       chki8(int8(i64), ci64&0xff)
+       chki8(int8(u8), cu8&0xff-1<<8)
+       chki8(int8(u16), cu16&0xff)
+       chki8(int8(u32), cu32&0xff)
+       chki8(int8(u64), cu64&0xff)
+       //      chki8(int8(f32), 0)
+       //      chki8(int8(f64), 0)
+
+       chki16(int16(i8), ci8&0xffff-1<<16)
+       chki16(int16(i16), ci16&0xffff-1<<16)
+       chki16(int16(i32), ci32&0xffff-1<<16)
+       chki16(int16(i64), ci64&0xffff-1<<16)
+       chki16(int16(u8), cu8&0xffff)
+       chki16(int16(u16), cu16&0xffff-1<<16)
+       chki16(int16(u32), cu32&0xffff)
+       chki16(int16(u64), cu64&0xffff-1<<16)
+       //      chki16(int16(f32), 0)
+       //      chki16(int16(f64), 0)
+
+       chki32(int32(i8), ci8&0xffffffff-1<<32)
+       chki32(int32(i16), ci16&0xffffffff-1<<32)
+       chki32(int32(i32), ci32&0xffffffff-1<<32)
+       chki32(int32(i64), ci64&0xffffffff)
+       chki32(int32(u8), cu8&0xffffffff)
+       chki32(int32(u16), cu16&0xffffffff)
+       chki32(int32(u32), cu32&0xffffffff-1<<32)
+       chki32(int32(u64), cu64&0xffffffff-1<<32)
+       //      chki32(int32(f32), 0)
+       //      chki32(int32(f64), 0)
+
+       chki64(int64(i8), ci8&0xffffffffffffffff-1<<64)
+       chki64(int64(i16), ci16&0xffffffffffffffff-1<<64)
+       chki64(int64(i32), ci32&0xffffffffffffffff-1<<64)
+       chki64(int64(i64), ci64&0xffffffffffffffff-1<<64)
+       chki64(int64(u8), cu8&0xffffffffffffffff)
+       chki64(int64(u16), cu16&0xffffffffffffffff)
+       chki64(int64(u32), cu32&0xffffffffffffffff)
+       chki64(int64(u64), cu64&0xffffffffffffffff-1<<64)
+       //      chki64(int64(f32), 0)
+       //      chki64(int64(f64), 0)
+
+
+       chku8(uint8(i8), ci8&0xff)
+       chku8(uint8(i16), ci16&0xff)
+       chku8(uint8(i32), ci32&0xff)
+       chku8(uint8(i64), ci64&0xff)
+       chku8(uint8(u8), cu8&0xff)
+       chku8(uint8(u16), cu16&0xff)
+       chku8(uint8(u32), cu32&0xff)
+       chku8(uint8(u64), cu64&0xff)
+       //      chku8(uint8(f32), 0)
+       //      chku8(uint8(f64), 0)
+
+       chku16(uint16(i8), ci8&0xffff)
+       chku16(uint16(i16), ci16&0xffff)
+       chku16(uint16(i32), ci32&0xffff)
+       chku16(uint16(i64), ci64&0xffff)
+       chku16(uint16(u8), cu8&0xffff)
+       chku16(uint16(u16), cu16&0xffff)
+       chku16(uint16(u32), cu32&0xffff)
+       chku16(uint16(u64), cu64&0xffff)
+       //      chku16(uint16(f32), 0)
+       //      chku16(uint16(f64), 0)
+
+       chku32(uint32(i8), ci8&0xffffffff)
+       chku32(uint32(i16), ci16&0xffffffff)
+       chku32(uint32(i32), ci32&0xffffffff)
+       chku32(uint32(i64), ci64&0xffffffff)
+       chku32(uint32(u8), cu8&0xffffffff)
+       chku32(uint32(u16), cu16&0xffffffff)
+       chku32(uint32(u32), cu32&0xffffffff)
+       chku32(uint32(u64), cu64&0xffffffff)
+       //      chku32(uint32(f32), 0)
+       //      chku32(uint32(f64), 0)
+
+       chku64(uint64(i8), ci8&0xffffffffffffffff)
+       chku64(uint64(i16), ci16&0xffffffffffffffff)
+       chku64(uint64(i32), ci32&0xffffffffffffffff)
+       chku64(uint64(i64), ci64&0xffffffffffffffff)
+       chku64(uint64(u8), cu8&0xffffffffffffffff)
+       chku64(uint64(u16), cu16&0xffffffffffffffff)
+       chku64(uint64(u32), cu32&0xffffffffffffffff)
+       chku64(uint64(u64), cu64&0xffffffffffffffff)
+       //      chku64(uint64(f32), 0)
+       //      chku64(uint64(f64), 0)
 }