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
|
[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/syntax/copy_visitor.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
s.a ∈ {1}
.b ∈ {2}
tests/syntax/copy_visitor.i:22:[value] assertion got status valid.
[value] computing for function f <- main.
Called from tests/syntax/copy_visitor.i:23.
tests/syntax/copy_visitor.i:11:[value] function f: precondition got status valid.
[value] Recording results for f
[value] Done for function f
[value] Recording results for main
[value] done for function main
[value] ====== VALUES COMPUTED ======
[value:final-states] Values at end of function f:
s{.a; .b} ∈ {2}
__retres ∈ {2}
[value:final-states] Values at end of function main:
s{.a; .b} ∈ {2}
__retres ∈ {0}
/* Generated by Frama-C */
struct S {
int a ;
int b ;
};
struct S s = {.a = 1, .b = 2};
/*@ requires \valid(s_0);
assigns s_0->a; */
int f(struct S *s_0)
{
int __retres;
s_0->a = 2;
__retres = s_0->b;
return __retres;
}
/*@ assigns s.a; */
int main(void)
{
int __retres;
s.a = 2;
/*@ assert s.a ≡ 2; */ ;
f(& s);
__retres = 0;
return __retres;
}
int g(int x);
int g(int x)
{
int __retres;
__retres = 0;
return __retres;
}
|