File: struct2.res.oracle

package info (click to toggle)
frama-c 20161101%2Bsilicon%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 42,324 kB
  • ctags: 35,695
  • sloc: ml: 200,142; ansic: 31,465; makefile: 2,334; sh: 1,643; lisp: 259; python: 85; asm: 26
file content (190 lines) | stat: -rw-r--r-- 7,627 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/value/struct2.i (no preprocessing)
[value] Analyzing a complete application starting at f_precis
[value] Computing initial state
[value] Initial state computed
[value:initial-state] Values of globals at initialization
  NULL[rbits 32768 to 65543] ∈ [--..--]
  tabst[0..9] ∈ {0}
  tabst2[0..9] ∈ {0}
  tab_s[0..1] ∈ {0}
  tab_s1[0..1] ∈ {0}
  tab_s2[0..1] ∈ {0}
  tab_s3[0..1] ∈ {0}
  tab_s4[0..1] ∈ {0}
  s1 ∈ {0}
  s2 ∈ {0}
  s4 ∈ {0}
  s5 ∈ {0}
  s6 ∈ {0}
  s8 ∈ {0}
  s7 ∈ {0}
  tabl[0..9] ∈ {0}
  tab1[0..1] ∈ {0}
  tab2[0..1] ∈ {0}
  tab3[0..1] ∈ {0}
  tab4[0..1] ∈ {0}
  tab5[0..1] ∈ {0}
  tab6[0..1] ∈ {0}
  p ∈ {0}
  p2 ∈ {0}
  p3 ∈ {0}
  p4 ∈ {0}
  p5 ∈ {0}
  p6 ∈ {0}
  p7 ∈ {0}
  q ∈ {0}
  r ∈ {0}
  s ∈ {0}
  t ∈ {0}
  a ∈ {0}
  b ∈ {0}
  v ∈ [--..--]
  Tab[0..9] ∈ {0}
  P ∈ {0}
tests/value/struct2.i:74:[value] warning: accessing out of bounds index. assert 0 ≤ i;
tests/value/struct2.i:74:[value] warning: accessing out of bounds index. assert i < 2;
tests/value/struct2.i:76:[value] warning: accessing out of bounds index. assert 0 ≤ (int)(i + j);
tests/value/struct2.i:76:[value] warning: accessing out of bounds index. assert (int)(i + j) < 2;
tests/value/struct2.i:76:[value] warning: signed overflow. assert i + j ≤ 2147483647;
tests/value/struct2.i:78:[value] warning: accessing out of bounds index. assert tab2[i] < 2;
tests/value/struct2.i:80:[value] warning: accessing out of bounds index. assert tab2[1] < 2;
tests/value/struct2.i:82:[value] warning: accessing out of bounds index. assert 0 ≤ (int)(tab2[i] + j);
tests/value/struct2.i:82:[value] warning: accessing out of bounds index. assert (int)(tab2[i] + j) < 2;
tests/value/struct2.i:99:[value] warning: accessing out of bounds index. assert 0 ≤ (int)(tabl[i] + y);
tests/value/struct2.i:99:[value] warning: accessing out of bounds index. assert (int)(tabl[i] + y) < 2;
tests/value/struct2.i:117:[value] warning: signed overflow. assert -2147483648 ≤ *p + x;
tests/value/struct2.i:117:[value] warning: signed overflow. assert *p + x ≤ 2147483647;
tests/value/struct2.i:124:[value] warning: out of bounds read. assert \valid_read(r);
tests/value/struct2.i:124:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
tests/value/struct2.i:130:[value] warning: out of bounds read. assert \valid_read(p3 + 2);
tests/value/struct2.i:138:[value] warning: signed overflow. assert *((int *)0x1020) + i ≤ 2147483647;
tests/value/struct2.i:149:[value] warning: out of bounds write. assert \valid(*t + i);
tests/value/struct2.i:185:[value] warning: accessing out of bounds index. assert 0 ≤ (int)(i + j);
tests/value/struct2.i:185:[value] warning: accessing out of bounds index. assert (int)(i + j) < 2;
tests/value/struct2.i:185:[value] warning: accessing out of bounds index. assert 0 ≤ k;
tests/value/struct2.i:185:[value] warning: accessing out of bounds index. assert k < 2;
tests/value/struct2.i:185:[value] warning: accessing out of bounds index. assert 0 ≤ l;
tests/value/struct2.i:185:[value] warning: accessing out of bounds index. assert l < 2;
tests/value/struct2.i:185:[value] warning: accessing out of bounds index. assert 0 ≤ (int)(tab3[l] + m);
tests/value/struct2.i:185:[value] warning: accessing out of bounds index. assert (int)(tab3[l] + m) < 10;
tests/value/struct2.i:185:[value] warning: signed overflow. assert -2147483648 ≤ tab3[l] + m;
tests/value/struct2.i:185:[value] warning: signed overflow. assert tab3[l] + m ≤ 2147483647;
[value] Recording results for f_precis
[value] done for function f_precis
tests/value/struct2.i:124:[value] assertion 'Value,mem_access' got final status invalid.
tests/value/struct2.i:130:[value] assertion 'Value,mem_access' got final status invalid.
[value] ====== VALUES COMPUTED ======
[value:final-states] Values at end of function f_precis:
  NULL[rbits 32768 to 32799] ∈ {{ NULL + [--..--] ; (? *)&a }}
      [rbits 32800 to 65543] ∈ [--..--]
  tab_s[0] ∈ {0}
       [1].a ∈ [--..--]
       [1]{.d[0..9]; .b; .e[0..9]; .c} ∈ {0}
  tab_s1[0..1] ∈ {0}
  tab_s2[0].a ∈ [--..--]
        {[0]{.d[0..9]; .b; .e[0..9]; .c}; [1]} ∈ {0}
  tab_s3[0].a ∈ [--..--]
        {[0]{.d[0..9]; .b; .e[0..9]; .c}; [1]} ∈ {0}
  tab_s4[0].a ∈ [--..--]
        [0]{.d[0..9]; .b; .e[0..9]; .c} ∈ {0}
        [1].a ∈ [--..--]
        [1]{.d[0..9]; .b; .e[0..9]; .c} ∈ {0}
  s1.a ∈ [--..--]
    .d[0] ∈ {0}
    .d[1] ∈ [--..--]
    {.d[2..9]; .b; .e[0..9]} ∈ {0}
    .c ∈ {{ &s2 }}
  s2{.a; .d[0..1]} ∈ [--..--]
    .d[2..9] ∈ {0}
    .b.a ∈ [--..--]
    .b.b ∈ {{ &a }}
    .e[0..9] ∈ {0}
    .c ∈ {{ &s2 }}
  s4{.a; .d[0..9]; .b} ∈ {0}
    .e[0].a ∈ [-128..127]
    {.e{[0].b; [1..9]}; .c} ∈ {0}
  s8.a ∈ {0}
    .b ∈ {{ &a }}
  s7 ∈ {0}
  tab1[0..1] ∈ {2}
  tab2[0] ∈ {0; 2}
      [1] ∈ {0}
  tab3[0..1] ∈ [--..--]
  tab4[0] ∈ {0; 2}
      [1] ∈ {0}
  tab5[0] ∈ {2}
      [1] ∈ {0}
  tab6[0..1] ∈ {0; 2}
  p ∈ {{ &a }}
  p2 ∈ {{ &tab1[2] }}
  p3 ∈ {{ &tab1{[0], [1]} }}
  p4 ∈ {{ &a }}
  p5 ∈ {4096}
  p6 ∈ {4112}
  p7 ∈ {{ &tab1[3] }}
  q ∈ {4096}
  r ∈ {0}
  s ∈ {4144}
  t ∈ {4176}
  a ∈ [--..--]
  b ∈ {0}
[from] Computing for function f_precis
[from] Done for function f_precis
[from] ====== DEPENDENCIES COMPUTED ======
       These dependencies hold at termination for the executions that terminate:
[from] Function f_precis:
  NULL{[4096..4099]; [4144..4147]} FROM NULL[4176..4179]; i
      {[4100..4111]; [4116..4143]; [4148..8192]}
      FROM NULL[4176..4179]; i (and SELF)
      [4112..4115] FROM NULL{[4128..4131]; [4176..4179]}; i
  tab_s[0] FROM s2
       [1].a FROM x
  tab_s1{[0].b; [1].b} FROM s8; i (and SELF)
  tab_s2[0] FROM s2; s8; tabl[0]; x
  tab_s3[0].a FROM tabl[1]; x
  tab_s4{[0].a; [1].a} FROM tabl[0..1]; x; i; y (and SELF)
  s1{.a; .d[1]} FROM x
    {.d[0]; .d[2..9]; .e[0..9]} FROM s2
    .b FROM s8
    .c FROM \nothing
  s2{.a; .b.a} FROM x
    .d[0..1] FROM x; i (and SELF)
    {.b.b; .c} FROM \nothing
  s4.e[0].a
    FROM NULL{[4176..4179]; [4192]; [4200]}; tabst[2].a;
         tabst2{[0].a; [1].a; [2].a; [3].a; [4].a; [5].a; [6].a; [7].a;
                [8].a; [9].a};
          s5.e[0].b; tab2[0..1]; tab3[0..1]; i; j; k; l; m
  s8.b FROM \nothing
  s7 FROM s6.b
  tab1[0..1] FROM \nothing
  tab2[0..1] FROM i (and SELF)
  tab3[0..1] FROM i; j; k (and SELF)
  tab4[0] FROM tab2[0..1]; v; i (and SELF)
  tab5[0] FROM tab2[1]; i
  tab6[0..1] FROM tab2[0..1]; i; j (and SELF)
  p FROM \nothing
  p2 FROM \nothing
  p3 FROM i
  p4 FROM \nothing
  p5 FROM \nothing
  p6 FROM \nothing
  p7 FROM \nothing
  q FROM \nothing
  r FROM \nothing
  s FROM \nothing
  t FROM \nothing
  a FROM x
  b FROM v; i (and SELF)
[from] ====== END OF DEPENDENCIES ======
[inout] Out (internal) for function f_precis:
          NULL[4096..8192]; tab_s{[0]; [1].a}; tab_s1{[0].b; [1].b}; tab_s2[0];
          tab_s3[0].a; tab_s4{[0].a; [1].a}; s1; s2{{.a; .d[0..1]}; .b; .c};
          s4.e[0].a; s8.b; s7; tab1[0..1]; tab2[0..1]; tab3[0..1]; tab4[0]; tab5[0];
          tab6[0..1]; p; p2; p3; p4; p5; p6; p7; q; r; s; t; a; b
[inout] Inputs for function f_precis:
          NULL{[4128..4131]; [4176..4179]; [4192]; [4200]}; tabst[2].a;
          tabst2{[0].a; [1].a; [2].a; [3].a; [4].a; [5].a; [6].a; [7].a; [8].a;
                 [9].a}; s1; s2; s5.e[0].b; s6.b; s8; tabl[0..1]; tab1[0..1];
          tab2[0..1]; tab3[0..1]; p; p2; p3; p6; q; r; s; t; a; v