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