]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gdc.test/fail_compilation/fail9413.d
Add D front-end, libphobos library, and D2 testsuite.
[thirdparty/gcc.git] / gcc / testsuite / gdc.test / fail_compilation / fail9413.d
1 /*
2 TEST_OUTPUT:
3 ---
4 fail_compilation/fail9413.d(45): Error: variable fail9413.foo.x cannot modify parameter 'x' in contract
5 fail_compilation/fail9413.d(32): Error: variable fail9413.foo.x cannot modify parameter 'x' in contract
6 fail_compilation/fail9413.d(33): Error: variable fail9413.foo.bar.y cannot modify parameter 'y' in contract
7 fail_compilation/fail9413.d(38): Error: variable fail9413.foo.x cannot modify parameter 'x' in contract
8 fail_compilation/fail9413.d(39): Error: variable fail9413.foo.bar.y cannot modify parameter 'y' in contract
9 fail_compilation/fail9413.d(40): Error: variable fail9413.foo.bar.s cannot modify result 's' in contract
10 fail_compilation/fail9413.d(50): Error: variable fail9413.foo.x cannot modify parameter 'x' in contract
11 fail_compilation/fail9413.d(73): Error: variable fail9413.foo.x cannot modify parameter 'x' in contract
12 fail_compilation/fail9413.d(74): Error: variable fail9413.foo.r cannot modify result 'r' in contract
13 fail_compilation/fail9413.d(58): Error: variable fail9413.foo.x cannot modify parameter 'x' in contract
14 fail_compilation/fail9413.d(59): Error: variable fail9413.foo.r cannot modify result 'r' in contract
15 fail_compilation/fail9413.d(60): Error: variable fail9413.foo.baz.y cannot modify parameter 'y' in contract
16 fail_compilation/fail9413.d(65): Error: variable fail9413.foo.x cannot modify parameter 'x' in contract
17 fail_compilation/fail9413.d(66): Error: variable fail9413.foo.r cannot modify result 'r' in contract
18 fail_compilation/fail9413.d(67): Error: variable fail9413.foo.baz.y cannot modify parameter 'y' in contract
19 fail_compilation/fail9413.d(68): Error: variable fail9413.foo.baz.s cannot modify result 's' in contract
20 fail_compilation/fail9413.d(79): Error: variable fail9413.foo.x cannot modify parameter 'x' in contract
21 fail_compilation/fail9413.d(80): Error: variable fail9413.foo.r cannot modify result 'r' in contract
22 ---
23 */
24
25 int foo(int x)
26 in
27 {
28 int a;
29 int bar(int y)
30 in
31 {
32 x = 10; // err
33 y = 10; // err
34 a = 1; // OK
35 }
36 out(s)
37 {
38 x = 10; // err
39 y = 10; // err
40 s = 10; // err
41 a = 1; // OK
42 }
43 body
44 {
45 x = 10; // err
46 y = 1; // OK
47 a = 1; // OK
48 return 2;
49 }
50 x = 10; // err
51 }
52 out(r)
53 {
54 int a;
55 int baz(int y)
56 in
57 {
58 x = 10; // err
59 r = 10; // err
60 y = 10; // err
61 a = 1; // OK
62 }
63 out(s)
64 {
65 x = 10; // err
66 r = 10; // err
67 y = 10; // err
68 s = 10; // err
69 a = 1; // OK
70 }
71 body
72 {
73 x = 10; // err
74 r = 10; // err
75 y = 1; // OK
76 a = 1; // OK
77 return 2;
78 }
79 x = 10; // err
80 r = 10; // err
81 }
82 body
83 {
84 return 1;
85 }