MATCH: Improve `A CMP 0 ? A : -A` set of patterns to use bitwise_equal_p.
[official-gcc.git] / gcc / testsuite / gdc.test / fail_compilation / fail14089.d
blobf60910432de08145ad949fee83ce1592ea9689b0
1 /*
2 TEST_OUTPUT:
3 ---
4 fail_compilation/fail14089.d(41): Error: `1` has no effect
5 fail_compilation/fail14089.d(41): Error: `1` has no effect
6 fail_compilation/fail14089.d(42): Error: `1` has no effect
7 fail_compilation/fail14089.d(42): Error: `n` has no effect
8 fail_compilation/fail14089.d(43): Error: `1` has no effect
9 fail_compilation/fail14089.d(43): Error: `s.val` has no effect
10 fail_compilation/fail14089.d(44): Error: `n` has no effect
11 fail_compilation/fail14089.d(44): Error: `1` has no effect
12 fail_compilation/fail14089.d(45): Error: `s.val` has no effect
13 fail_compilation/fail14089.d(45): Error: `1` has no effect
14 ---
17 bool cond;
19 void main()
21 int foo() { return 0; }
22 int n;
23 struct S { int val; }
24 S s;
26 // The whole of each CondExps has side effects, So no error.
27 cond ? foo() : n;
28 cond ? foo() : s.val;
29 cond ? 1 : foo();
30 cond ? n : foo();
31 cond ? s.val : foo();
33 cond ? (n = 1) : 1;
34 cond ? (n = 1) : n;
35 cond ? (n = 1) : s.val;
36 cond ? 1 : (n = 1);
37 cond ? n : (n = 1);
38 cond ? s.val : (n = 1);
40 // errors
41 cond ? 1 : 1;
42 cond ? 1 : n;
43 cond ? 1 : s.val;
44 cond ? n : 1;
45 cond ? s.val : 1;