diff options
Diffstat (limited to 'tests/conformance/3-expressions/prec_left_shl.zc')
| -rw-r--r-- | tests/conformance/3-expressions/prec_left_shl.zc | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/conformance/3-expressions/prec_left_shl.zc b/tests/conformance/3-expressions/prec_left_shl.zc new file mode 100644 index 0000000..78eef19 --- /dev/null +++ b/tests/conformance/3-expressions/prec_left_shl.zc @@ -0,0 +1,43 @@ +// expect: 1/1/0/0/72/72/36/36/0/0/0/0/1/1/0/0/1/1/1/1/1/1/-64/-64/32/32/2594073385365405696/2594073385365405696/900719925474099200/900719925474099200/-144115188075855872/-144115188075855872/2/2/-1/-1/ +// first operator << followed by each other binary operator; operands chosen so that the two groupings differ +include rt; +void pn(int x) { rt.put_n(x); rt.put_c(10); } +fn main() { + pn(3 << 3 || 2); + { int a = 3, b = 3, c = 2; pn(a << b || c); } + pn(-8 << 7 && 0); + { int a = -8, b = 7, c = 0; pn(a << b && c); } + pn(4 << 4 | 8); + { int a = 4, b = 4, c = 8; pn(a << b | c); } + pn(1 << 6 ^ 100); + { int a = 1, b = 6, c = 100; pn(a << b ^ c); } + pn(3 << 5 & 1); + { int a = 3, b = 5, c = 1; pn(a << b & c); } + pn(2 << 3 == 6); + { int a = 2, b = 3, c = 6; pn(a << b == c); } + pn(-3 << 6 != 100); + { int a = -3, b = 6, c = 100; pn(a << b != c); } + pn(5 << 6 < 9); + { int a = 5, b = 6, c = 9; pn(a << b < c); } + pn(7 << 0 > 3); + { int a = 7, b = 0, c = 3; pn(a << b > c); } + pn(0 << 1 <= 3); + { int a = 0, b = 1, c = 3; pn(a << b <= c); } + pn(8 << 0 >= 3); + { int a = 8, b = 0, c = 3; pn(a << b >= c); } + pn(-1 << 1 << 5); + { int a = -1, b = 1, c = 5; pn(a << b << c); } + pn(4 << 5 >> 2); + { int a = 4, b = 5, c = 2; pn(a << b >> c); } + pn(9 << 2 + -8); + { int a = 9, b = 2, c = -8; pn(a << b + c); } + pn(100 << 1 - 12); + { int a = 100, b = 1, c = 12; pn(a << b - c); } + pn(-8 << 6 * 9); + { int a = -8, b = 6, c = 9; pn(a << b * c); } + pn(2 << 0 / 7); + { int a = 2, b = 0, c = 7; pn(a << b / c); } + pn(-1 << 5 % 5); + { int a = -1, b = 5, c = 5; pn(a << b % c); } + return 0; +} |
