properly handle arrays of typedefs and structs inside structs
[pet.git] / tests / struct14.scop
blob695049e9e06eac98c673c79e492161be6c4bcd2d
1 start: 125
2 end: 178
3 indent: "\t"
4 context: '{  :  }'
5 schedule: '{ domain: "{ S_0[]; S_1[] }", child: { sequence: [ { filter: "{ S_0[] }"
6   }, { filter: "{ S_1[] }" } ] } }'
7 types:
8 - name: scomplex
9   definition: "typedef struct scomplex {\n    float re;\n    float im;\n} scomplex"
10 - name: pair
11   definition: "struct pair {\n    scomplex c[2];\n}"
12 arrays:
13 - context: '{  :  }'
14   extent: '{ p[] }'
15   element_type: struct pair
16   element_size: 16
17   element_is_record: 1
18 - context: '{  :  }'
19   extent: '{ p_c[p[] -> c[i0]] : 0 <= i0 <= 1 }'
20   element_type: struct scomplex
21   element_size: 8
22   element_is_record: 1
23 - context: '{  :  }'
24   extent: '{ p_c_im[p_c[p[] -> c[i0]] -> im[]] : 0 <= i0 <= 1 }'
25   element_type: float
26   element_size: 4
27 - context: '{  :  }'
28   extent: '{ p_c_re[p_c[p[] -> c[i0]] -> re[]] : 0 <= i0 <= 1 }'
29   element_type: float
30   element_size: 4
31 statements:
32 - line: 15
33   domain: '{ S_0[] }'
34   body:
35     type: expression
36     expr:
37       type: op
38       operation: =
39       arguments:
40       - type: access
41         index: '{ S_0[] -> p_c_re[p_c[p[] -> c[(0)]] -> re[]] }'
42         reference: __pet_ref_0
43         read: 0
44         write: 1
45       - type: access
46         index: '{ S_0[] -> p_c_im[p_c[p[] -> c[(1)]] -> im[]] }'
47         reference: __pet_ref_1
48         read: 1
49         write: 0
50 - line: -1
51   domain: '{ S_1[] }'
52   body:
53     type: expression
54     expr:
55       type: op
56       operation: kill
57       arguments:
58       - type: access
59         killed: '{ S_1[] -> p[] }'
60         index: '{ S_1[] -> p[] }'
61         reference: __pet_ref_2
62         kill: 1