aboutsummaryrefslogtreecommitdiff
path: root/compiler/tests/verifier/expr_constexpr_limits.bad
blob: b9a8d9627e4713ac412b341b4cbd7b95aff8ef90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

uint8 ok1 = 250;
int ok2 = 0;

/* ERRORS */
uint8 aa = 100 + 200 + 50;
uint8 ab = ok1 + 6;
uint8 ac = ok1 - 251;
uint8 ad = (0xe bitxor 0x1) << 5;
int8 ba = 120 + 8;
int8 bb = (0 - 1) + -128;

/* ERRORS */
uint16 da = 65534 + 2;
uint16 db = 10 + 1 - 12;
int16 ea = 32766 + 2;
int16 eb = -32767 - 2;
int16 ec = (-32768 + 1) - 2;

/* ERRORS */
uint32 ha = 4294967294 + 2;
uint32 hb = 4294967295 - 1234567890 - 3060399406;
int32 ia = 2147483646 + 2;
int32 ib = -2 - 2147483647;
int32 ic = -2 + (1 -2147483648);

/* ERRORS */
uint64 la = 1 + 18446744073709551615;
uint64 lb = 0x9fffffffffffffff << 1;
int64 ma = 2 + (9223372036854775807 - 1);
int64 mb = ((-9223372036854775808 + 0) + 1) - 2;

/* ERRORS */
uint16 shifted1 = (340282366920938463463374607431768211455 >> 111 as uint128) typeassert uint16;
uint16 shifted2 = 0x00000000000000000000000000000001 << 16;
uint32 toobig1 = 18446744073709551615 as uint64 typeassert uint32;
uint32 toobig2 = 4294967296 as uint64 typeassert uint32;