diff options
Diffstat (limited to 'tests/conformance/3-expressions/prec_left_andand.zc')
| -rw-r--r-- | tests/conformance/3-expressions/prec_left_andand.zc | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/conformance/3-expressions/prec_left_andand.zc b/tests/conformance/3-expressions/prec_left_andand.zc new file mode 100644 index 0000000..3e7a456 --- /dev/null +++ b/tests/conformance/3-expressions/prec_left_andand.zc @@ -0,0 +1,41 @@ +// expect: 1/1/1/1/0/0/1/1/0/0/0/0/0/0/0/0/0/0/1/1/1/1/1/1/1/1/1/1/1/1/1/1/0/0/ +// 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(0 && 6 || 8); + { int a = 0, b = 6, c = 8; pn(a && b || c); } + pn(5 && 4 | 4); + { int a = 5, b = 4, c = 4; pn(a && b | c); } + pn(3 && 7 ^ 7); + { int a = 3, b = 7, c = 7; pn(a && b ^ c); } + pn(-2 && 12 & 6); + { int a = -2, b = 12, c = 6; pn(a && b & c); } + pn(-2 && 6 == 1); + { int a = -2, b = 6, c = 1; pn(a && b == c); } + pn(0 && 8 != 8); + { int a = 0, b = 8, c = 8; pn(a && b != c); } + pn(7 && 9 < 5); + { int a = 7, b = 9, c = 5; pn(a && b < c); } + pn(3 && -3 > -2); + { int a = 3, b = -3, c = -2; pn(a && b > c); } + pn(1 && 12 <= 4); + { int a = 1, b = 12, c = 4; pn(a && b <= c); } + pn(7 && 4 >= 2); + { int a = 7, b = 4, c = 2; pn(a && b >= c); } + pn(-2 && 2 << 4); + { int a = -2, b = 2, c = 4; pn(a && b << c); } + pn(-3 && 9 >> 3); + { int a = -3, b = 9, c = 3; pn(a && b >> c); } + pn(5 && -3 + 4); + { int a = 5, b = -3, c = 4; pn(a && b + c); } + pn(8 && -1 - 6); + { int a = 8, b = -1, c = 6; pn(a && b - c); } + pn(-2 && 3 * 7); + { int a = -2, b = 3, c = 7; pn(a && b * c); } + pn(-2 && 3 / -1); + { int a = -2, b = 3, c = -1; pn(a && b / c); } + pn(9 && 100 % 5); + { int a = 9, b = 100, c = 5; pn(a && b % c); } + return 0; +} |
