1 // $G $D/$F.go && $L $F.$A && ./$A.out
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.
12 ci32 = -1<<31 + 100000;
13 ci64 = -1<<63 + 10000000001;
17 cu32 = 1<<32 - 1234567;
18 cu64 = 1<<64 - 1234567890123;
35 // f32 float32 = 1e8 + 0.5;
36 // f64 float64 = -1e8 + 0.5;
39 func chki8(i, v int8) { if i != v { panicln(i, "!=", v) } }
40 func chki16(i, v int16) { if i != v { panicln(i, "!=", v) } }
41 func chki32(i, v int32) { if i != v { panicln(i, "!=", v) } }
42 func chki64(i, v int64) { if i != v { panicln(i, "!=", v) } }
43 func chku8(i, v uint8) { if i != v { panicln(i, "!=", v) } }
44 func chku16(i, v uint16) { if i != v { panicln(i, "!=", v) } }
45 func chku32(i, v uint32) { if i != v { panicln(i, "!=", v) } }
46 func chku64(i, v uint64) { if i != v { panicln(i, "!=", v) } }
47 //func chkf32(f, v float32) { if f != v { panicln(f, "!=", v) } }
48 //func chkf64(f, v float64) { if f != v { panicln(f, "!=", v) } }
51 chki8(int8(i8), ci8 & 0xff - 1<<8);
52 chki8(int8(i16), ci16 & 0xff);
53 chki8(int8(i32), ci32 & 0xff - 1<<8);
54 chki8(int8(i64), ci64 & 0xff);
55 chki8(int8(u8), cu8 & 0xff - 1<<8);
56 chki8(int8(u16), cu16 & 0xff);
57 chki8(int8(u32), cu32 & 0xff);
58 chki8(int8(u64), cu64 & 0xff);
59 // chki8(int8(f32), 0);
60 // chki8(int8(f64), 0);
62 chki16(int16(i8), ci8 & 0xffff - 1<<16);
63 chki16(int16(i16), ci16 & 0xffff - 1<<16);
64 chki16(int16(i32), ci32 & 0xffff - 1<<16);
65 chki16(int16(i64), ci64 & 0xffff - 1<<16);
66 chki16(int16(u8), cu8 & 0xffff);
67 chki16(int16(u16), cu16 & 0xffff - 1<<16);
68 chki16(int16(u32), cu32 & 0xffff);
69 chki16(int16(u64), cu64 & 0xffff - 1<<16);
70 // chki16(int16(f32), 0);
71 // chki16(int16(f64), 0);
73 chki32(int32(i8), ci8 & 0xffffffff - 1<<32);
74 chki32(int32(i16), ci16 & 0xffffffff - 1<<32);
75 chki32(int32(i32), ci32 & 0xffffffff - 1<<32);
76 chki32(int32(i64), ci64 & 0xffffffff);
77 chki32(int32(u8), cu8 & 0xffffffff);
78 chki32(int32(u16), cu16 & 0xffffffff);
79 chki32(int32(u32), cu32 & 0xffffffff - 1<<32);
80 chki32(int32(u64), cu64 & 0xffffffff - 1<<32);
81 // chki32(int32(f32), 0);
82 // chki32(int32(f64), 0);
84 chki64(int64(i8), ci8 & 0xffffffffffffffff - 1<<64);
85 chki64(int64(i16), ci16 & 0xffffffffffffffff - 1<<64);
86 chki64(int64(i32), ci32 & 0xffffffffffffffff - 1<<64);
87 chki64(int64(i64), ci64 & 0xffffffffffffffff - 1<<64);
88 chki64(int64(u8), cu8 & 0xffffffffffffffff);
89 chki64(int64(u16), cu16 & 0xffffffffffffffff);
90 chki64(int64(u32), cu32 & 0xffffffffffffffff);
91 chki64(int64(u64), cu64 & 0xffffffffffffffff - 1<<64);
92 // chki64(int64(f32), 0);
93 // chki64(int64(f64), 0);
96 chku8(uint8(i8), ci8 & 0xff);
97 chku8(uint8(i16), ci16 & 0xff);
98 chku8(uint8(i32), ci32 & 0xff);
99 chku8(uint8(i64), ci64 & 0xff);
100 chku8(uint8(u8), cu8 & 0xff);
101 chku8(uint8(u16), cu16 & 0xff);
102 chku8(uint8(u32), cu32 & 0xff);
103 chku8(uint8(u64), cu64 & 0xff);
104 // chku8(uint8(f32), 0);
105 // chku8(uint8(f64), 0);
107 chku16(uint16(i8), ci8 & 0xffff);
108 chku16(uint16(i16), ci16 & 0xffff);
109 chku16(uint16(i32), ci32 & 0xffff);
110 chku16(uint16(i64), ci64 & 0xffff);
111 chku16(uint16(u8), cu8 & 0xffff);
112 chku16(uint16(u16), cu16 & 0xffff);
113 chku16(uint16(u32), cu32 & 0xffff);
114 chku16(uint16(u64), cu64 & 0xffff);
115 // chku16(uint16(f32), 0);
116 // chku16(uint16(f64), 0);
118 chku32(uint32(i8), ci8 & 0xffffffff);
119 chku32(uint32(i16), ci16 & 0xffffffff);
120 chku32(uint32(i32), ci32 & 0xffffffff);
121 chku32(uint32(i64), ci64 & 0xffffffff);
122 chku32(uint32(u8), cu8 & 0xffffffff);
123 chku32(uint32(u16), cu16 & 0xffffffff);
124 chku32(uint32(u32), cu32 & 0xffffffff);
125 chku32(uint32(u64), cu64 & 0xffffffff);
126 // chku32(uint32(f32), 0);
127 // chku32(uint32(f64), 0);
129 chku64(uint64(i8), ci8 & 0xffffffffffffffff);
130 chku64(uint64(i16), ci16 & 0xffffffffffffffff);
131 chku64(uint64(i32), ci32 & 0xffffffffffffffff);
132 chku64(uint64(i64), ci64 & 0xffffffffffffffff);
133 chku64(uint64(u8), cu8 & 0xffffffffffffffff);
134 chku64(uint64(u16), cu16 & 0xffffffffffffffff);
135 chku64(uint64(u32), cu32 & 0xffffffffffffffff);
136 chku64(uint64(u64), cu64 & 0xffffffffffffffff);
137 // chku64(uint64(f32), 0);
138 // chku64(uint64(f64), 0);