support empty statements
[pet.git] / tests / call_struct.scop
blobef3b759b3f28eee96a5438a65d1545f326a2a126
1 start: 295
2 end: 407
3 indent: "\t"
4 context: '{  :  }'
5 schedule: '{ domain: "{ S_0[]; S_2[]; S_1[i] : 0 < i <= 3 }", child: { sequence: [
6   { filter: "{ S_0[] }" }, { filter: "{ S_1[i] }", child: { schedule: "L_0[{ S_1[i]
7   -> [(i)] }]" } }, { filter: "{ S_2[] }" } ] } }'
8 types:
9 - name: s0
10   definition: "struct s0 {\n    struct {\n        int a[10];\n    } f[10];\n    int
11     b;\n}"
12 - name: s
13   definition: "struct s {\n    struct s0 c[10];\n}"
14 arrays:
15 - context: '{  :  }'
16   extent: '{ s[i0] : 0 <= i0 <= 9 }'
17   element_type: struct s
18   element_size: 4040
19   element_is_record: 1
20 - context: '{  :  }'
21   extent: '{ s_c[s[i0] -> c[i1]] : 0 <= i0 <= 9 and 0 <= i1 <= 9 }'
22   element_type: struct s0
23   element_size: 404
24   element_is_record: 1
25 - context: '{  :  }'
26   extent: '{ s_c_b[s_c[s[i0] -> c[i1]] -> b[]] : 0 <= i0 <= 9 and 0 <= i1 <= 9 }'
27   element_type: int
28   element_size: 4
29 - context: '{  :  }'
30   extent: '{ s_c_f[s_c[s[i0] -> c[i1]] -> f[i2]] : 0 <= i0 <= 9 and 0 <= i1 <= 9 and
31     0 <= i2 <= 9 }'
32   element_type: <subfield>
33   element_size: 40
34   element_is_record: 1
35 - context: '{  :  }'
36   extent: '{ s_c_f_a[s_c_f[s_c[s[i0] -> c[i1]] -> f[i2]] -> a[i3]] : 0 <= i0 <= 9
37     and 0 <= i1 <= 9 and 0 <= i2 <= 9 and 0 <= i3 <= 9 }'
38   element_type: int
39   element_size: 4
40 statements:
41 - line: 30
42   domain: '{ S_0[] }'
43   body:
44     type: expression
45     expr:
46       type: call
47       name: bar
48       arguments:
49       - type: access
50         may_write: '{ S_0[] -> s_c_b[s_c[s[0] -> c[3]] -> b[]]; S_0[] -> s_c_f_a[s_c_f[s_c[s[0]
51           -> c[2]] -> f[o2]] -> a[o3]] : 0 <= o2 <= 9 and 0 <= o3 <= 9 }'
52         must_write: '{ S_0[] -> s_c_b[s_c[s[0] -> c[3]] -> b[]]; S_0[] -> s_c_f_a[s_c_f[s_c[s[0]
53           -> c[2]] -> f[o2]] -> a[o3]] : 0 <= o2 <= 9 and 0 <= o3 <= 9 }'
54         index: '{ S_0[] -> s_c[s[(0)] -> c[]] }'
55         depth: 2
56         reference: __pet_ref_0
57         read: 0
58         write: 1
59 - line: 32
60   domain: '{ S_1[i] : 0 < i <= 3 }'
61   body:
62     type: expression
63     expr:
64       type: call
65       name: bar
66       arguments:
67       - type: op
68         operation: '&'
69         arguments:
70         - type: access
71           may_write: '{ S_1[i] -> s_c_f_a[s_c_f[s_c[s[1] -> c[2 + i]] -> f[o2]] ->
72             a[o3]] : 0 <= o2 <= 9 and 0 <= o3 <= 9; S_1[i] -> s_c_b[s_c[s[1] -> c[3
73             + i]] -> b[]] }'
74           must_write: '{ S_1[i] -> s_c_f_a[s_c_f[s_c[s[1] -> c[2 + i]] -> f[o2]] ->
75             a[o3]] : 0 <= o2 <= 9 and 0 <= o3 <= 9; S_1[i] -> s_c_b[s_c[s[1] -> c[3
76             + i]] -> b[]] }'
77           index: '{ S_1[i] -> s_c[s[(1)] -> c[(i)]] }'
78           reference: __pet_ref_1
79           read: 0
80           write: 1
81 - line: 33
82   domain: '{ S_2[] }'
83   body:
84     type: expression
85     expr:
86       type: call
87       name: quux
88       arguments:
89       - type: op
90         operation: '&'
91         arguments:
92         - type: access
93           may_write: '{ S_2[] -> s_c_b[s_c[s[2] -> c[9]] -> b[]] }'
94           must_write: '{ S_2[] -> s_c_b[s_c[s[2] -> c[9]] -> b[]] }'
95           index: '{ S_2[] -> s_c_b[s_c[s[(2)] -> c[(9)]] -> b[]] }'
96           reference: __pet_ref_2
97           read: 0
98           write: 1