PetScan::set_upper_bounds: use declared size of static array argument
[pet.git] / tests / for_while_overflow.scop
blobe85527466cacb386fb3c4c76bfe3615d18eae036
1 start: 74
2 end: 191
3 indent: "\t"
4 context: '[N] -> {  : N <= 2147483647 and N >= -2147483648 }'
5 arrays:
6 - context: '{  :  }'
7   extent: '[N] -> { __pet_test_0[T] : T >= 0 }'
8   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
9   element_type: int
10   element_size: 4
11   uniquely_defined: 1
12 - context: '{  :  }'
13   extent: '[N] -> { s[] }'
14   element_type: int
15   element_size: 4
16 statements:
17 - line: 11
18   domain: '[N] -> { S_0[] }'
19   schedule: '{ S_0[] -> [0] }'
20   body:
21     type: expression
22     expr:
23       type: op
24       operation: =
25       arguments:
26       - type: access
27         relation: '[N] -> { S_0[] -> s[] }'
28         index: '[N] -> { S_0[] -> s[] }'
29         reference: __pet_ref_0
30         read: 0
31         write: 1
32       - type: int
33         value: 0
34 - line: 12
35   domain: '[N] -> { [S_1[T] -> [1]] : T >= 0 }'
36   schedule: '{ S_1[T] -> [1, T, 0] }'
37   body:
38     type: expression
39     expr:
40       type: op
41       operation: =
42       arguments:
43       - type: access
44         relation: '[N] -> { S_1[T] -> __pet_test_0[T] }'
45         index: '[N] -> { S_1[T] -> __pet_test_0[(T)] }'
46         reference: __pet_ref_2
47         read: 0
48         write: 1
49       - type: call
50         name: t
51   arguments:
52   - type: access
53     relation: '[N] -> { S_1[T] -> __pet_test_0[-1 + T] : T >= 1 }'
54     index: '[N] -> { S_1[T] -> __pet_test_0[((-1 + T) : T >= 1)] }'
55     reference: __pet_ref_1
56     read: 1
57     write: 0
58 - line: 14
59   domain: '[N] -> { [S_2[T, i] -> [1]] : T >= 0 and i >= 0 and N <= 1073741823 and
60     i <= -1 + 2N }'
61   schedule: '[N] -> { S_2[T, i] -> [1, T, 1, 0, i] }'
62   body:
63     type: expression
64     expr:
65       type: op
66       operation: =
67       arguments:
68       - type: access
69         relation: '[N] -> { S_2[T, i] -> s[] }'
70         index: '[N] -> { S_2[T, i] -> s[] }'
71         reference: __pet_ref_4
72         read: 0
73         write: 1
74       - type: op
75         operation: +
76         arguments:
77         - type: access
78           relation: '[N] -> { S_2[T, i] -> s[] }'
79           index: '[N] -> { S_2[T, i] -> s[] }'
80           reference: __pet_ref_5
81           read: 1
82           write: 0
83         - type: int
84           value: 1
85   arguments:
86   - type: access
87     relation: '[N] -> { S_2[T, i] -> __pet_test_0[T] }'
88     index: '[N] -> { S_2[T, i] -> __pet_test_0[(T)] }'
89     reference: __pet_ref_3
90     read: 1
91     write: 0
92 implications:
93 - satisfied: 1
94   extension: '{ __pet_test_0[T] -> __pet_test_0[T''] : T'' <= T and T'' >= 0 }'