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 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369
|
[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/value/bitfield.i (no preprocessing)
[value] Analyzing a complete application starting at main
[value] Computing initial state
[value] Initial state computed
[value:initial-state] Values of globals at initialization
h ∈ {0}
k ∈ {0}
k8 ∈ {0}
kr8 ∈ {0}
ll ∈ {0}
ini.a ∈ {2}
.b ∈ {-7}
.c ∈ {99999}
{.d; .[bits 28 to 31]} ∈ {0}
VV ∈ {55}
q4 ∈ {40000}
X ∈ {0}
x{.f; .sf} ∈ {28349}
us ∈ {56355}
G ∈ {0}
H ∈ {0}
b ∈ {0}
c ∈ {0}
ee ∈ {0}
foo ∈ [--..--]
y ∈ [--..--]
[value] computing for function main_old <- main.
Called from tests/value/bitfield.i:150.
[value] Called Frama_C_show_each({1})
[value] Called Frama_C_show_each({3})
tests/value/bitfield.i:120:[value] Assigning imprecise value to v.c.
The imprecision originates from Arithmetic {tests/value/bitfield.i:120}
tests/value/bitfield.i:122:[value] warning: signed overflow. assert -2147483648 ≤ (int)v.d + 1;
tests/value/bitfield.i:122:[value] warning: signed overflow. assert (int)v.d + 1 ≤ 2147483647;
[value] computing for function f <- main_old <- main.
Called from tests/value/bitfield.i:125.
[value] DUMPING STATE of file tests/value/bitfield.i line 21
h ∈ {0}
k ∈ {0}
k8 ∈ {0}
kr8 ∈ {0}
ll ∈ {0}
ini.a ∈ {2}
.b ∈ {-7}
.c ∈ {99999}
{.d; .[bits 28 to 31]} ∈ {0}
VV ∈ {0}
q4 ∈ {40000}
X ∈ {7}
x_0 ∈ {7}
x{.f; .sf} ∈ {28349}
us ∈ {56355}
G ∈ {0}
H ∈ {0}
b ∈ {0}
c ∈ {0}
ee ∈ {0}
foo ∈ [--..--]
y ∈ [--..--]
v.a ∈ {0}
.b ∈ {7}
.c ∈
{{ garbled mix of &{v} (origin: Arithmetic {tests/value/bitfield.i:120}) }}
.[bits 28 to 31] ∈ UNINITIALIZED
.d ∈ {{ &v + {9} }}
l_161{.f0; .f1[bits 0 to 31]} ∈ {-1}
=END OF DUMP==
[value] Recording results for f
[value] Done for function f
tests/value/bitfield.i:126:[value] warning: signed overflow. assert -2147483648 ≤ foo + foo;
tests/value/bitfield.i:126:[value] warning: signed overflow. assert foo + foo ≤ 2147483647;
tests/value/bitfield.i:127:[value] Assigning imprecise value to h.c.
The imprecision originates from Arithmetic {tests/value/bitfield.i:127}
[value] computing for function return_8 <- main_old <- main.
Called from tests/value/bitfield.i:130.
[value] Recording results for return_8
[value] Done for function return_8
[value] computing for function g <- main_old <- main.
Called from tests/value/bitfield.i:133.
[value] Recording results for g
[value] Done for function g
[value] Recording results for main_old
[value] Done for function main_old
tests/value/bitfield.i:150:[value] warning: locals {v} escaping the scope of main_old through h
[value] computing for function imprecise_bts_1671 <- main.
Called from tests/value/bitfield.i:151.
tests/value/bitfield.i:69:[value] entering loop for the first time
[value] computing for function leaf <- imprecise_bts_1671 <- main.
Called from tests/value/bitfield.i:70.
tests/value/bitfield.i:70:[kernel] warning: Neither code nor specification for function leaf, generating default assigns from the prototype
[value] using specification for function leaf
[value] Done for function leaf
tests/value/bitfield.i:71:[value] Reading left-value ee.
It contains a garbled mix of {b} because of Misaligned
{tests/value/bitfield.i:70}.
[value] Called Frama_C_show_each({{ garbled mix of &{b}
(origin: Misaligned {tests/value/bitfield.i:70}) }})
tests/value/bitfield.i:73:[value] Reading left-value ee.
It contains a garbled mix of {b} because of Misaligned
{tests/value/bitfield.i:70}.
[value] Called Frama_C_show_each(.next ∈
{{ garbled mix of &{b}
(origin: Misaligned {tests/value/bitfield.i:70}) }}
.bitf ∈ {0}
.[bits 65 to 95] ∈
{{ garbled mix of &{b}
(origin: Misaligned {tests/value/bitfield.i:70}) }})
tests/value/bitfield.i:74:[value] Assigning imprecise value to c.
The imprecision originates from Misaligned {tests/value/bitfield.i:70}
[value] computing for function leaf <- imprecise_bts_1671 <- main.
Called from tests/value/bitfield.i:70.
[value] Done for function leaf
[value] Called Frama_C_show_each({{ garbled mix of &{b}
(origin: Misaligned {tests/value/bitfield.i:70}) }})
tests/value/bitfield.i:72:[value] warning: out of bounds write. assert \valid(&c->bitf);
[value] Called Frama_C_show_each({{ garbled mix of &{b}
(origin: Misaligned {tests/value/bitfield.i:70}) }})
tests/value/bitfield.i:74:[value] warning: out of bounds read. assert \valid_read(&c->next.next);
[value] computing for function leaf <- imprecise_bts_1671 <- main.
Called from tests/value/bitfield.i:70.
[value] Done for function leaf
[value] Recording results for imprecise_bts_1671
[value] Done for function imprecise_bts_1671
[value] computing for function logic <- main.
Called from tests/value/bitfield.i:152.
[value] Called Frama_C_show_each(.v0_3 ∈ [--..--]
.v4 ∈ {0}
.v5_31 ∈ [--..--])
[value] Called Frama_C_show_each(.v0_3 ∈ [--..--]
.v4 ∈ {0}
.v5_31 ∈ [--..--])
[value] Called Frama_C_show_each({0})
tests/value/bitfield.i:93:[value] assertion got status valid.
[value] Called Frama_C_show_each([bits 0 to 2] ∈ [--..--]
[bits 3 to 3] ∈ {0}
[bits 4 to 31] ∈ [--..--])
tests/value/bitfield.i:99:[value] assertion got status valid.
tests/value/bitfield.i:101:[value] warning: accessing uninitialized left-value. assert \initialized(&w.v4);
[value] Recording results for logic
[value] Done for function logic
[value] computing for function eq_bitfields <- main.
Called from tests/value/bitfield.i:153.
[value] DUMPING STATE of file tests/value/bitfield.i line 143
h.a ∈ {0}
.b ∈ [--..--]
.c ∈ [--..--] or ESCAPINGADDR
{.d; .[bits 28 to 31]} ∈ {0}
k ∈ {0}
k8.a ∈ {0}
.b ∈ {-8}
{.c; .d; .[bits 28 to 31]} ∈ {0}
kr8.a ∈ {0}
.b ∈ {8}
{.c; .d; .[bits 28 to 31]} ∈ {0}
ll.b ∈ {-25536}
.[bits 16 to 31] ∈ {0}
ini.a ∈ {2}
.b ∈ {-7}
.c ∈ {99999}
{.d; .[bits 28 to 31]} ∈ {0}
VV ∈ {0}
q4 ∈ {40000}
X ∈ {7}
x{.f; .sf} ∈ {28349}
us ∈ {56355}
G ∈ {1}
H ∈ {0}
b ∈ {0}
c ∈
{{ garbled mix of &{b; ee}
(origin: Misaligned {tests/value/bitfield.i:70}) }}
ee ∈
{{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
foo ∈ [--..--]
y.v0_3 ∈ [--..--]
.v4 ∈ {0}
.v5_31 ∈ [--..--]
i ∈ {16; 17}
s.a ∈ {0; 1}
.b ∈ UNINITIALIZED
.c ∈ {16; 17}
{.d; .[bits 28 to 31]} ∈ UNINITIALIZED
=END OF DUMP==
[value] Recording results for eq_bitfields
[value] Done for function eq_bitfields
[value] Recording results for main
[value] done for function main
tests/value/bitfield.i:101:[value] assertion 'Value,initialisation' got final status invalid.
[value] ====== VALUES COMPUTED ======
[value:final-states] Values at end of function eq_bitfields:
i ∈ [--..--]
[value:final-states] Values at end of function f:
X ∈ {7}
[value:final-states] Values at end of function g:
H ∈ {0}
r ∈ {1}
[value:final-states] Values at end of function imprecise_bts_1671:
b ∈ {0}
c ∈
{{ garbled mix of &{b; ee}
(origin: Misaligned {tests/value/bitfield.i:70}) }}
ee ∈
{{ garbled mix of &{b}
(origin: Misaligned {tests/value/bitfield.i:70}) }}
[value:final-states] Values at end of function logic:
y.v0_3 ∈ [--..--]
.v4 ∈ {0}
.v5_31 ∈ [--..--]
w.v0_3 ∈ {1}
{.v4; .v5_31} ∈ UNINITIALIZED
[value:final-states] Values at end of function return_8:
__retres ∈ {8}
[value:final-states] Values at end of function main_old:
h.a ∈ {0}
.b ∈ [--..--]
.c ∈
{{ garbled mix of &{v}
(origin: Arithmetic {tests/value/bitfield.i:127}) }}
{.d; .[bits 28 to 31]} ∈ {0}
k8.a ∈ {0}
.b ∈ {-8}
{.c; .d; .[bits 28 to 31]} ∈ {0}
kr8.a ∈ {0}
.b ∈ {8}
{.c; .d; .[bits 28 to 31]} ∈ {0}
ll.b ∈ {-25536}
.[bits 16 to 31] ∈ {0}
VV ∈ {0}
X ∈ {7}
G ∈ {1}
H ∈ {0}
v.a ∈ {0}
.b ∈ {7}
.c ∈
{{ garbled mix of &{v}
(origin: Arithmetic {tests/value/bitfield.i:120}) }}
.[bits 28 to 31] ∈ UNINITIALIZED
.d ∈ {{ &v + {9} }}
l_161{.f0; .f1[bits 0 to 31]} ∈ {-1}
[value:final-states] Values at end of function main:
h.a ∈ {0}
.b ∈ [--..--]
.c ∈ [--..--] or ESCAPINGADDR
{.d; .[bits 28 to 31]} ∈ {0}
k8.a ∈ {0}
.b ∈ {-8}
{.c; .d; .[bits 28 to 31]} ∈ {0}
kr8.a ∈ {0}
.b ∈ {8}
{.c; .d; .[bits 28 to 31]} ∈ {0}
ll.b ∈ {-25536}
.[bits 16 to 31] ∈ {0}
VV ∈ {0}
X ∈ {7}
G ∈ {1}
H ∈ {0}
b ∈ {0}
c ∈
{{ garbled mix of &{b; ee}
(origin: Misaligned {tests/value/bitfield.i:70}) }}
ee ∈
{{ garbled mix of &{b}
(origin: Misaligned {tests/value/bitfield.i:70}) }}
y.v0_3 ∈ [--..--]
.v4 ∈ {0}
.v5_31 ∈ [--..--]
[from] Computing for function eq_bitfields
[from] Computing for function Frama_C_dump_each <-eq_bitfields
[from] Done for function Frama_C_dump_each
[from] Done for function eq_bitfields
[from] Computing for function f
[from] Done for function f
[from] Computing for function g
[from] Done for function g
[from] Computing for function imprecise_bts_1671
[from] Computing for function leaf <-imprecise_bts_1671
[from] Done for function leaf
[from] Done for function imprecise_bts_1671
[from] Computing for function logic
[from] Done for function logic
[from] Computing for function return_8
[from] Done for function return_8
[from] Computing for function main_old
[from] Done for function main_old
[from] Computing for function main
[from] Done for function main
[from] ====== DEPENDENCIES COMPUTED ======
These dependencies hold at termination for the executions that terminate:
[from] Function eq_bitfields:
NO EFFECTS
[from] Function f:
X FROM x_0
[from] Function g:
H FROM x.sf; us
\result FROM x.f; us
[from] Function leaf:
ee FROM ee (and SELF)
[from] Function imprecise_bts_1671:
b FROM ee{.next.next; {.bitf; .[bits 65 to 95]}}; foo (and SELF)
c FROM ee{.next.next; {.bitf; .[bits 65 to 95]}}; foo
ee{.next.next; {.bitf; .[bits 65 to 95]}}
FROM ee{.next.next; {.bitf; .[bits 65 to 95]}}; foo (and SELF)
.next.prev FROM ee{.next.next; {.bitf; .[bits 65 to 95]}}; foo
[from] Function logic:
y.v4 FROM y.v4 (and SELF)
[from] Function return_8:
\result FROM \nothing
[from] Function main_old:
h.a FROM h.a
.b FROM h{.a; .b}; foo
.c FROM \nothing
k8.b FROM \nothing
kr8.b FROM \nothing
ll.b FROM q4
VV FROM h.a
X FROM \nothing
G FROM x.f; us
H FROM x.sf; us
[from] Function main:
h.a FROM h.a
.b FROM h{.a; .b}; foo
.c FROM \nothing
k8.b FROM \nothing
kr8.b FROM \nothing
ll.b FROM q4
VV FROM h.a
X FROM \nothing
G FROM x.f; us
H FROM x.sf; us
b FROM ee{.next.next; {.bitf; .[bits 65 to 95]}}; foo (and SELF)
c FROM ee{.next.next; {.bitf; .[bits 65 to 95]}}; foo
ee{.next.next; {.bitf; .[bits 65 to 95]}}
FROM ee{.next.next; {.bitf; .[bits 65 to 95]}}; foo (and SELF)
.next.prev FROM ee{.next.next; {.bitf; .[bits 65 to 95]}}; foo
y.v4 FROM y.v4 (and SELF)
[from] ====== END OF DEPENDENCIES ======
[inout] Out (internal) for function eq_bitfields:
i; s{.a; .c}
[inout] Inputs for function eq_bitfields:
foo
[inout] Out (internal) for function f:
X
[inout] Inputs for function f:
\nothing
[inout] Out (internal) for function g:
H; r
[inout] Inputs for function g:
x; us
[inout] Out (internal) for function imprecise_bts_1671:
b; c; ee
[inout] Inputs for function imprecise_bts_1671:
c; ee; foo
[inout] Out (internal) for function logic:
y.v4; w.v0_3; wc
[inout] Inputs for function logic:
foo; y
[inout] Out (internal) for function return_8:
__retres
[inout] Inputs for function return_8:
\nothing
[inout] Out (internal) for function main_old:
h{.a; .b; .c}; k8.b; kr8.b; ll.b; VV; X; G; H; v{{.a; .b; .c}; .d}; l_161
[inout] Inputs for function main_old:
h{.a; .b}; VV; q4; x; us; foo
[inout] Out (internal) for function main:
h{.a; .b; .c}; k8.b; kr8.b; ll.b; VV; X; G; H; b; c; ee; y.v4
[inout] Inputs for function main:
h{.a; .b}; VV; q4; x; us; c; ee; foo; y
|