diff --git a/tests/value/traces/oracle/test1.res.oracle b/tests/value/traces/oracle/test1.res.oracle index fb550f92c6ddb17fd2c0dd399f71bccabdba4219..011f6645879b2f33794ba38f1a6e4aff01c49281 100644 --- a/tests/value/traces/oracle/test1.res.oracle +++ b/tests/value/traces/oracle/test1.res.oracle @@ -1,17 +1,17 @@ [kernel] Parsing tests/value/traces/test1.c (with 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 +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization entropy_source ∈ [--..--] g ∈ {42} -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value:final-states] Values at end of function main: +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: g ∈ {5; 45} tmp ∈ {5; 45} -[value:d-traces] Trace domains: +[eva:d-traces] Trace domains: start: 0; globals = g, entropy_source; main_formals = c; {[ 0 -> initialize variable: entropy_source -> 1 1 -> initialize variable using type Library_Global @@ -22,64 +22,66 @@ entropy_source -> 2 c -> 5 5 -> EnterScope: tmp -> 6 6 -> Assign: tmp = 0 -> 7 - 7 -> Assume: c false -> 8; Assume: c true -> 9 - 8 -> Assign: tmp = 2 -> 12 - 9 -> Assign: tmp = g -> 11 - 11 -> EnterScope: i -> 17 - 12 -> EnterScope: i -> 14 - 14 -> initialize variable: i -> 15 - 15 -> Assign: i = 0 -> 16 - 16 -> enter_loop -> 22 - 17 -> initialize variable: i -> 18 - 18 -> Assign: i = 0 -> 19 - 19 -> enter_loop -> 21 - 21 -> Assume: i < 3 true -> 24 - 22 -> Assume: i < 3 true -> 25 - 24 -> Assign: tmp = tmp + 1 -> 27 - 25 -> Assign: tmp = tmp + 1 -> 26 - 26 -> Assign: i = i + 1 -> 28 - 27 -> Assign: i = i + 1 -> 29 - 28 -> Assume: i < 3 true -> 34 - 29 -> Assume: i < 3 true -> 33 - 33 -> Assign: tmp = tmp + 1 -> 36 - 34 -> Assign: tmp = tmp + 1 -> 35 - 35 -> Assign: i = i + 1 -> 38 - 36 -> Assign: i = i + 1 -> 37 - 37 -> Assume: i < 3 true -> 44 - 38 -> Assume: i < 3 true -> 43 - 43 -> Assign: tmp = tmp + 1 -> 46 - 44 -> Assign: tmp = tmp + 1 -> 45 - 45 -> Assign: i = i + 1 -> 48 - 46 -> Assign: i = i + 1 -> 47 - 47 -> Assume: i < 3 false -> 54 - 48 -> Assume: i < 3 false -> 53 - 53 -> LeaveScope: i -> 55 - 54 -> LeaveScope: i -> 56 - 55 -> Assign: g = tmp -> 58 - 56 -> Assign: g = tmp -> 57 - 57 -> join -> 59 - 58 -> join -> 59 ]} at 59 + 7 -> Assume: c true -> 8; Assume: c false -> 10 + 8 -> Assign: tmp = g -> 9 + 9 -> EnterScope: i -> 15 + 10 -> Assign: tmp = 2 -> 11 + 11 -> EnterScope: i -> 12 + 12 -> initialize variable: i -> 13 + 13 -> Assign: i = 0 -> 14 + 14 -> enter_loop -> 19 + 15 -> initialize variable: i -> 16 + 16 -> Assign: i = 0 -> 17 + 17 -> enter_loop -> 18 + 18 -> Assume: i < 3 true -> 20 + 19 -> Assume: i < 3 true -> 21 + 20 -> Assign: tmp = tmp + 1 -> 23 + 21 -> Assign: tmp = tmp + 1 -> 22 + 22 -> Assign: i = i + 1 -> 24 + 23 -> Assign: i = i + 1 -> 25 + 24 -> Assume: i < 3 true -> 27 + 25 -> Assume: i < 3 true -> 26 + 26 -> Assign: tmp = tmp + 1 -> 29 + 27 -> Assign: tmp = tmp + 1 -> 28 + 28 -> Assign: i = i + 1 -> 30 + 29 -> Assign: i = i + 1 -> 31 + 30 -> Assume: i < 3 true -> 33 + 31 -> Assume: i < 3 true -> 32 + 32 -> Assign: tmp = tmp + 1 -> 35 + 33 -> Assign: tmp = tmp + 1 -> 34 + 34 -> Assign: i = i + 1 -> 36 + 35 -> Assign: i = i + 1 -> 37 + 36 -> Assume: i < 3 false -> 39 + 37 -> Assume: i < 3 false -> 38 + 38 -> LeaveScope: i -> 40 + 39 -> LeaveScope: i -> 41 + 40 -> LeaveScope: i -> 42 + 41 -> LeaveScope: i -> 43 + 42 -> Assign: g = tmp -> 45 + 43 -> Assign: g = tmp -> 44 + 44 -> join -> 46 + 45 -> join -> 46 ]} at 46 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== - These dependencies hold at termination for the executions that terminate: + These dependencies hold at termination for the executions that terminate: [from] Function main: g FROM g; c \result FROM g; c [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function main: - g; tmp; i + g; tmp; i [inout] Inputs for function main: - g -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value:initial-state] Values of globals at initialization + g +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization entropy_source ∈ [--..--] g ∈ {42} -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value:final-states] Values at end of function main: +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: g ∈ {5; 45} __traces_domain_return ∈ {5; 45} /* Generated by Frama-C */ diff --git a/tests/value/traces/oracle/test2.res.oracle b/tests/value/traces/oracle/test2.res.oracle index b855d5a78193a13bdf03f4fd99d2c83ae5902ceb..963ee92ec44b1f6a9de50e1a4d8d4929ce75452e 100644 --- a/tests/value/traces/oracle/test2.res.oracle +++ b/tests/value/traces/oracle/test2.res.oracle @@ -1,110 +1,112 @@ [kernel] Parsing tests/value/traces/test2.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 +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization -[value] computing for function loop <- main. - Called from tests/value/traces/test2.i:18. -[value] Recording results for loop -[value] Done for function loop -[value] computing for function loop <- main. - Called from tests/value/traces/test2.i:18. -[value] Recording results for loop -[value] Done for function loop -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value:final-states] Values at end of function loop: +[eva] computing for function loop <- main. + Called from tests/value/traces/test2.i:18. +[eva] Recording results for loop +[eva] Done for function loop +[eva] computing for function loop <- main. + Called from tests/value/traces/test2.i:18. +[eva] Recording results for loop +[eva] Done for function loop +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function loop: j ∈ {4; 5} -[value:final-states] Values at end of function main: +[eva:final-states] Values at end of function main: tmp ∈ {4; 5} -[value:d-traces] Trace domains: +[eva:d-traces] Trace domains: start: 0; globals = ; main_formals = c; {[ 0 -> initialize variable using type Main_Formal c -> 1 1 -> EnterScope: tmp -> 2 2 -> Assign: tmp = 0 -> 3 - 3 -> Assume: c false -> 4; Assume: c true -> 5 - 4 -> Assign: tmp = 2 -> 8 - 5 -> Assign: tmp = 1 -> 7 - 7 -> start_call: loop (true) -> 9 - 8 -> start_call: loop (true) -> 45 - 9 -> EnterScope: j -> 10 - 10 -> Assign: j = tmp -> 11 - 11 -> EnterScope: i -> 12 - 12 -> initialize variable: i -> 13 - 13 -> Assign: i = 0 -> 14 - 14 -> enter_loop -> 15 - 15 -> Assume: i < 3 true -> 16 - 16 -> Assign: j = j + 1 -> 17 - 17 -> Assign: i = i + 1 -> 18 - 18 -> Assume: i < 3 true -> 20 - 20 -> Assign: j = j + 1 -> 21 - 21 -> Assign: i = i + 1 -> 22 - 22 -> Assume: i < 3 true -> 25 - 25 -> Assign: j = j + 1 -> 26 - 26 -> Assign: i = i + 1 -> 27 - 27 -> Assume: i < 3 false -> 30 - 30 -> LeaveScope: i -> 31 - 31 -> EnterScope: \result<loop> -> 32 - 32 -> Assign: \result<loop> = j -> 33 - 33 -> LeaveScope: j -> 41 - 41 -> finalize_call: loop -> 42 - 42 -> Assign: tmp = \result<loop> -> 43 - 43 -> LeaveScope: \result<loop> -> 44 - 44 -> join -> 90 - 45 -> EnterScope: j -> 46 - 46 -> Assign: j = tmp -> 47 - 47 -> EnterScope: i -> 49 - 49 -> initialize variable: i -> 50 - 50 -> Assign: i = 0 -> 51 - 51 -> enter_loop -> 52 - 52 -> Assume: i < 3 true -> 53 - 53 -> Assign: j = j + 1 -> 54 - 54 -> Assign: i = i + 1 -> 55 - 55 -> Assume: i < 3 true -> 57 - 57 -> Assign: j = j + 1 -> 58 - 58 -> Assign: i = i + 1 -> 59 - 59 -> Assume: i < 3 true -> 62 - 62 -> Assign: j = j + 1 -> 63 - 63 -> Assign: i = i + 1 -> 64 - 64 -> Assume: i < 3 false -> 67 - 67 -> LeaveScope: i -> 68 - 68 -> EnterScope: \result<loop> -> 69 - 69 -> Assign: \result<loop> = j -> 70 - 70 -> LeaveScope: j -> 86 - 86 -> finalize_call: loop -> 87 - 87 -> Assign: tmp = \result<loop> -> 88 - 88 -> LeaveScope: \result<loop> -> 89 - 89 -> join -> 90 ]} at 90 + 3 -> Assume: c true -> 4; Assume: c false -> 6 + 4 -> Assign: tmp = 1 -> 5 + 5 -> start_call: loop (true) -> 8 + 6 -> Assign: tmp = 2 -> 7 + 7 -> start_call: loop (true) -> 40 + 8 -> EnterScope: j -> 9 + 9 -> Assign: j = tmp -> 10 + 10 -> EnterScope: i -> 11 + 11 -> initialize variable: i -> 12 + 12 -> Assign: i = 0 -> 13 + 13 -> enter_loop -> 14 + 14 -> Assume: i < 3 true -> 15 + 15 -> Assign: j = j + 1 -> 16 + 16 -> Assign: i = i + 1 -> 17 + 17 -> Assume: i < 3 true -> 18 + 18 -> Assign: j = j + 1 -> 19 + 19 -> Assign: i = i + 1 -> 20 + 20 -> Assume: i < 3 true -> 21 + 21 -> Assign: j = j + 1 -> 22 + 22 -> Assign: i = i + 1 -> 23 + 23 -> Assume: i < 3 false -> 24 + 24 -> LeaveScope: i -> 25 + 25 -> LeaveScope: i -> 26 + 26 -> EnterScope: \result<loop> -> 27 + 27 -> Assign: \result<loop> = j -> 28 + 28 -> LeaveScope: j -> 36 + 36 -> finalize_call: loop -> 37 + 37 -> Assign: tmp = \result<loop> -> 38 + 38 -> LeaveScope: \result<loop> -> 39 + 39 -> join -> 79 + 40 -> EnterScope: j -> 41 + 41 -> Assign: j = tmp -> 42 + 42 -> EnterScope: i -> 44 + 44 -> initialize variable: i -> 45 + 45 -> Assign: i = 0 -> 46 + 46 -> enter_loop -> 47 + 47 -> Assume: i < 3 true -> 48 + 48 -> Assign: j = j + 1 -> 49 + 49 -> Assign: i = i + 1 -> 50 + 50 -> Assume: i < 3 true -> 51 + 51 -> Assign: j = j + 1 -> 52 + 52 -> Assign: i = i + 1 -> 53 + 53 -> Assume: i < 3 true -> 54 + 54 -> Assign: j = j + 1 -> 55 + 55 -> Assign: i = i + 1 -> 56 + 56 -> Assume: i < 3 false -> 57 + 57 -> LeaveScope: i -> 58 + 58 -> LeaveScope: i -> 59 + 59 -> EnterScope: \result<loop> -> 60 + 60 -> Assign: \result<loop> = j -> 61 + 61 -> LeaveScope: j -> 75 + 75 -> finalize_call: loop -> 76 + 76 -> Assign: tmp = \result<loop> -> 77 + 77 -> LeaveScope: \result<loop> -> 78 + 78 -> join -> 79 ]} at 79 [from] Computing for function loop [from] Done for function loop [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== - These dependencies hold at termination for the executions that terminate: + These dependencies hold at termination for the executions that terminate: [from] Function loop: \result FROM j [from] Function main: \result FROM c [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function loop: - j; i + j; i [inout] Inputs for function loop: - \nothing + \nothing [inout] Out (internal) for function main: - tmp + tmp [inout] Inputs for function main: - \nothing -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value:initial-state] Values of globals at initialization + \nothing +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value:final-states] Values at end of function main: +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: __traces_domain_return ∈ {4; 5} /* Generated by Frama-C */ int main(int c) diff --git a/tests/value/traces/oracle/test3.res.oracle b/tests/value/traces/oracle/test3.res.oracle index a5b57bde5acf7d84a5c476dbb1a5189d34493629..f773988a12d52fc2da93b1de8d6c5128169f9529 100644 --- a/tests/value/traces/oracle/test3.res.oracle +++ b/tests/value/traces/oracle/test3.res.oracle @@ -1,17 +1,17 @@ [kernel] Parsing tests/value/traces/test3.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 +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization g ∈ {0} -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value:final-states] Values at end of function main: +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: g ∈ {4} tmp ∈ {4} __retres ∈ {5} -[value:d-traces] Trace domains: +[eva:d-traces] Trace domains: start: 0; globals = g; main_formals = c; {[ 0 -> initialize variable: g -> 1 1 -> initialize variable using type Main_Formal @@ -26,23 +26,23 @@ c -> 2 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== - These dependencies hold at termination for the executions that terminate: + These dependencies hold at termination for the executions that terminate: [from] Function main: g FROM \nothing \result FROM \nothing [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function main: - g; tmp; __retres + g; tmp; __retres [inout] Inputs for function main: - g -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value:initial-state] Values of globals at initialization + g +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization g ∈ {0} -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value:final-states] Values at end of function main: +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: g ∈ {4} __traces_domain_return ∈ {5} /* Generated by Frama-C */ diff --git a/tests/value/traces/oracle/test4.res.oracle b/tests/value/traces/oracle/test4.res.oracle index f8b7c0adf4e3b670b9ac1ebd202c72f91e5c44c7..58d76d1237695a1dc97a49ef367b042c67f254ce 100644 --- a/tests/value/traces/oracle/test4.res.oracle +++ b/tests/value/traces/oracle/test4.res.oracle @@ -1,22 +1,28 @@ [kernel] Parsing tests/value/traces/test4.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 +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization -tests/value/traces/test4.i:9:[value] entering loop for the first time -tests/value/traces/test4.i:11:[value] warning: signed overflow. assert tmp + 1 ≤ 2147483647; -tests/value/traces/test4.i:14:[value] warning: signed overflow. assert tmp + 1 ≤ 2147483647; -tests/value/traces/test4.i:17:[value] warning: signed overflow. assert tmp + 1 ≤ 2147483647; -tests/value/traces/test4.i:20:[value] warning: signed overflow. assert tmp + 1 ≤ 2147483647; -tests/value/traces/test4.i:23:[value] warning: signed overflow. assert tmp + 1 ≤ 2147483647; -tests/value/traces/test4.i:25:[value] warning: signed overflow. assert tmp + 1 ≤ 2147483647; -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value:final-states] Values at end of function main: +[eva] tests/value/traces/test4.i:9: starting to merge loop iterations +[eva:alarm] tests/value/traces/test4.i:11: Warning: + signed overflow. assert tmp + 1 ≤ 2147483647; +[eva:alarm] tests/value/traces/test4.i:14: Warning: + signed overflow. assert tmp + 1 ≤ 2147483647; +[eva:alarm] tests/value/traces/test4.i:17: Warning: + signed overflow. assert tmp + 1 ≤ 2147483647; +[eva:alarm] tests/value/traces/test4.i:20: Warning: + signed overflow. assert tmp + 1 ≤ 2147483647; +[eva:alarm] tests/value/traces/test4.i:23: Warning: + signed overflow. assert tmp + 1 ≤ 2147483647; +[eva:alarm] tests/value/traces/test4.i:25: Warning: + signed overflow. assert tmp + 1 ≤ 2147483647; +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: tmp ∈ [46..2147483647] -[value:d-traces] Trace domains: +[eva:d-traces] Trace domains: start: 0; globals = ; main_formals = c; {[ 0 -> initialize variable using type Main_Formal c -> 1 @@ -35,233 +41,234 @@ c -> 1 13 -> Assume: i % 11 false -> 14 14 -> Assign: tmp = tmp + 1 -> 15 15 -> Assign: i = i + 1 -> 16 - 16 -> Assume: i < 100 true -> 18 - 18 -> Assume: i % 2 true -> 19 - 19 -> Assign: tmp = tmp + 1 -> 20 - 20 -> Assume: i % 3 true -> 21 - 21 -> Assign: tmp = tmp + 1 -> 22 - 22 -> Assume: i % 5 true -> 23 - 23 -> Assign: tmp = tmp + 1 -> 24 - 24 -> Assume: i % 7 true -> 25 - 25 -> Assign: tmp = tmp + 1 -> 26 - 26 -> Assume: i % 11 true -> 27 + 16 -> Assume: i < 100 true -> 17 + 17 -> Assume: i % 2 true -> 18 + 18 -> Assign: tmp = tmp + 1 -> 19 + 19 -> Assume: i % 3 true -> 20 + 20 -> Assign: tmp = tmp + 1 -> 21 + 21 -> Assume: i % 5 true -> 22 + 22 -> Assign: tmp = tmp + 1 -> 23 + 23 -> Assume: i % 7 true -> 24 + 24 -> Assign: tmp = tmp + 1 -> 25 + 25 -> Assume: i % 11 true -> 26 + 26 -> Assign: tmp = tmp + 1 -> 27 27 -> Assign: tmp = tmp + 1 -> 28 - 28 -> Assign: tmp = tmp + 1 -> 29 - 29 -> Assign: i = i + 1 -> 30 - 30 -> Assume: i < 100 true -> 33 - 33 -> Assume: i % 2 false -> 34 - 34 -> Assume: i % 3 true -> 35 - 35 -> Assign: tmp = tmp + 1 -> 36 - 36 -> Assume: i % 5 true -> 38 + 28 -> Assign: i = i + 1 -> 29 + 29 -> Assume: i < 100 true -> 30 + 30 -> Assume: i % 2 false -> 31 + 31 -> Assume: i % 3 true -> 32 + 32 -> Assign: tmp = tmp + 1 -> 33 + 33 -> Assume: i % 5 true -> 34 + 34 -> Assign: tmp = tmp + 1 -> 35 + 35 -> Assume: i % 7 true -> 36 + 36 -> Assign: tmp = tmp + 1 -> 37 + 37 -> Assume: i % 11 true -> 38 38 -> Assign: tmp = tmp + 1 -> 39 - 39 -> Assume: i % 7 true -> 41 - 41 -> Assign: tmp = tmp + 1 -> 42 - 42 -> Assume: i % 11 true -> 44 - 44 -> Assign: tmp = tmp + 1 -> 45 - 45 -> Assign: tmp = tmp + 1 -> 47 - 47 -> Assign: i = i + 1 -> 48 - 48 -> Assume: i < 100 true -> 51 - 51 -> Assume: i % 2 true -> 52 - 52 -> Assign: tmp = tmp + 1 -> 53 - 53 -> Assume: i % 3 false -> 55 - 55 -> Assume: i % 5 true -> 56 + 39 -> Assign: tmp = tmp + 1 -> 40 + 40 -> Assign: i = i + 1 -> 41 + 41 -> Assume: i < 100 true -> 42 + 42 -> Assume: i % 2 true -> 43 + 43 -> Assign: tmp = tmp + 1 -> 44 + 44 -> Assume: i % 3 false -> 45 + 45 -> Assume: i % 5 true -> 46 + 46 -> Assign: tmp = tmp + 1 -> 47 + 47 -> Assume: i % 7 true -> 48 + 48 -> Assign: tmp = tmp + 1 -> 49 + 49 -> Assume: i % 11 true -> 50 + 50 -> Assign: tmp = tmp + 1 -> 51 + 51 -> Assign: tmp = tmp + 1 -> 52 + 52 -> Assign: i = i + 1 -> 53 + 53 -> Assume: i < 100 true -> 54 + 54 -> Assume: i % 2 false -> 55 + 55 -> Assume: i % 3 true -> 56 56 -> Assign: tmp = tmp + 1 -> 57 - 57 -> Assume: i % 7 true -> 59 - 59 -> Assign: tmp = tmp + 1 -> 60 - 60 -> Assume: i % 11 true -> 62 + 57 -> Assume: i % 5 true -> 58 + 58 -> Assign: tmp = tmp + 1 -> 59 + 59 -> Assume: i % 7 true -> 60 + 60 -> Assign: tmp = tmp + 1 -> 61 + 61 -> Assume: i % 11 true -> 62 62 -> Assign: tmp = tmp + 1 -> 63 - 63 -> Assign: tmp = tmp + 1 -> 65 - 65 -> Assign: i = i + 1 -> 66 - 66 -> Assume: i < 100 true -> 69 - 69 -> Assume: i % 2 false -> 70 - 70 -> Assume: i % 3 true -> 71 - 71 -> Assign: tmp = tmp + 1 -> 72 - 72 -> Assume: i % 5 true -> 74 + 63 -> Assign: tmp = tmp + 1 -> 64 + 64 -> Assign: i = i + 1 -> 65 + 65 -> Assume: i < 100 true -> 66 + 66 -> Assume: i % 2 true -> 67 + 67 -> Assign: tmp = tmp + 1 -> 68 + 68 -> Assume: i % 3 true -> 69 + 69 -> Assign: tmp = tmp + 1 -> 70 + 70 -> Assume: i % 5 false -> 71 + 71 -> Assume: i % 7 true -> 72 + 72 -> Assign: tmp = tmp + 1 -> 73 + 73 -> Assume: i % 11 true -> 74 74 -> Assign: tmp = tmp + 1 -> 75 - 75 -> Assume: i % 7 true -> 77 - 77 -> Assign: tmp = tmp + 1 -> 78 - 78 -> Assume: i % 11 true -> 80 - 80 -> Assign: tmp = tmp + 1 -> 81 - 81 -> Assign: tmp = tmp + 1 -> 83 - 83 -> Assign: i = i + 1 -> 84 - 84 -> Assume: i < 100 true -> 87 - 87 -> Assume: i % 2 true -> 88 - 88 -> Assign: tmp = tmp + 1 -> 89 - 89 -> Assume: i % 3 true -> 91 - 91 -> Assign: tmp = tmp + 1 -> 92 - 92 -> Assume: i % 5 false -> 94 - 94 -> Assume: i % 7 true -> 95 - 95 -> Assign: tmp = tmp + 1 -> 96 - 96 -> Assume: i % 11 true -> 98 + 75 -> Assign: tmp = tmp + 1 -> 76 + 76 -> Assign: i = i + 1 -> 77 + 77 -> Assume: i < 100 true -> 78 + 78 -> Assume: i % 2 false -> 79 + 79 -> Assume: i % 3 false -> 80 + 80 -> Assume: i % 5 true -> 81 + 81 -> Assign: tmp = tmp + 1 -> 82 + 82 -> Assume: i % 7 true -> 83 + 83 -> Assign: tmp = tmp + 1 -> 84 + 84 -> Assume: i % 11 true -> 85 + 85 -> Assign: tmp = tmp + 1 -> 86 + 86 -> Assign: tmp = tmp + 1 -> 87 + 87 -> Assign: i = i + 1 -> 88 + 88 -> Assume: i < 100 true -> 89 + 89 -> Assume: i % 2 true -> 90 + 90 -> Assign: tmp = tmp + 1 -> 91 + 91 -> Assume: i % 3 true -> 92 + 92 -> Assign: tmp = tmp + 1 -> 93 + 93 -> Assume: i % 5 true -> 94 + 94 -> Assign: tmp = tmp + 1 -> 95 + 95 -> Assume: i % 7 false -> 96 + 96 -> Assume: i % 11 true -> 97 + 97 -> Assign: tmp = tmp + 1 -> 98 98 -> Assign: tmp = tmp + 1 -> 99 - 99 -> Assign: tmp = tmp + 1 -> 101 - 101 -> Assign: i = i + 1 -> 102 - 102 -> Assume: i < 100 true -> 105 - 105 -> Assume: i % 2 false -> 106 - 106 -> Assume: i % 3 false -> 107 - 107 -> Assume: i % 5 true -> 108 - 108 -> Assign: tmp = tmp + 1 -> 109 - 109 -> Assume: i % 7 true -> 111 - 111 -> Assign: tmp = tmp + 1 -> 112 - 112 -> Assume: i % 11 true -> 114 + 99 -> Assign: i = i + 1 -> 100 + 100 -> Assume: i < 100 true -> 101 + 101 -> Assume: i % 2 false -> 102 + 102 -> Assume: i % 3 true -> 103 + 103 -> Assign: tmp = tmp + 1 -> 104 + 104 -> Assume: i % 5 true -> 105 + 105 -> Assign: tmp = tmp + 1 -> 106 + 106 -> Assume: i % 7 true -> 107 + 107 -> Assign: tmp = tmp + 1 -> 108 + 108 -> Assume: i % 11 true -> 109 + 109 -> Assign: tmp = tmp + 1 -> 110 + 110 -> Assign: tmp = tmp + 1 -> 111 + 111 -> Assign: i = i + 1 -> 112 + 112 -> Assume: i < 100 true -> 113 + 113 -> Assume: i % 2 true -> 114 114 -> Assign: tmp = tmp + 1 -> 115 - 115 -> Assign: tmp = tmp + 1 -> 117 - 117 -> Assign: i = i + 1 -> 118 - 118 -> Assume: i < 100 true -> 121 - 121 -> Assume: i % 2 true -> 122 + 115 -> Assume: i % 3 false -> 116 + 116 -> Assume: i % 5 true -> 117 + 117 -> Assign: tmp = tmp + 1 -> 118 + 118 -> Assume: i % 7 true -> 119 + 119 -> Assign: tmp = tmp + 1 -> 120 + 120 -> Assume: i % 11 true -> 121 + 121 -> Assign: tmp = tmp + 1 -> 122 122 -> Assign: tmp = tmp + 1 -> 123 - 123 -> Assume: i % 3 true -> 125 - 125 -> Assign: tmp = tmp + 1 -> 126 - 126 -> Assume: i % 5 true -> 128 - 128 -> Assign: tmp = tmp + 1 -> 129 - 129 -> Assume: i % 7 false -> 131 - 131 -> Assume: i % 11 true -> 132 + 123 -> Assign: i = i + 1 -> 124 + 124 -> Assume: i < 100 true -> 125; join -> 136 + 125 -> Assume: i % 2 false -> 126; join -> 138 + 126 -> Assume: i % 3 true -> 127; join -> 143 + 127 -> Assign: tmp = tmp + 1 -> 128 + 128 -> Assume: i % 5 false -> 129; join -> 146 + 129 -> Assume: i % 7 true -> 130; join -> 151 + 130 -> Assign: tmp = tmp + 1 -> 131 + 131 -> Assume: i % 11 true -> 132; join -> 154 132 -> Assign: tmp = tmp + 1 -> 133 - 133 -> Assign: tmp = tmp + 1 -> 135 - 135 -> Assign: i = i + 1 -> 136 - 136 -> Assume: i < 100 true -> 139 - 139 -> Assume: i % 2 false -> 140 - 140 -> Assume: i % 3 true -> 141 - 141 -> Assign: tmp = tmp + 1 -> 142 - 142 -> Assume: i % 5 true -> 144 + 133 -> Assign: tmp = tmp + 1 -> 134; join -> 159 + 134 -> Assign: i = i + 1 -> 135; join -> 161 + 135 -> join -> 136 + 136 -> Assume: i < 100 true -> 137; join -> 163 + 137 -> join -> 138 + 138 -> Assume: i % 2 true -> 139; Assume: i % 2 false -> 141; join -> 165 + 139 -> Assign: tmp = tmp + 1 -> 140 + 140 -> join -> 142 + 141 -> join -> 142 + 142 -> join -> 143 + 143 -> Assume: i % 3 true -> 144; join -> 170 144 -> Assign: tmp = tmp + 1 -> 145 - 145 -> Assume: i % 7 true -> 147 + 145 -> join -> 146 + 146 -> Assume: i % 5 true -> 147; Assume: i % 5 false -> 149; join -> 175 147 -> Assign: tmp = tmp + 1 -> 148 - 148 -> Assume: i % 11 true -> 150 - 150 -> Assign: tmp = tmp + 1 -> 151 - 151 -> Assign: tmp = tmp + 1 -> 153 - 153 -> Assign: i = i + 1 -> 154 - 154 -> Assume: i < 100 true -> 157 - 157 -> Assume: i % 2 true -> 158 - 158 -> Assign: tmp = tmp + 1 -> 159 - 159 -> Assume: i % 3 false -> 161 - 161 -> Assume: i % 5 true -> 162 - 162 -> Assign: tmp = tmp + 1 -> 163 - 163 -> Assume: i % 7 true -> 165 - 165 -> Assign: tmp = tmp + 1 -> 166 - 166 -> Assume: i % 11 true -> 168 - 168 -> Assign: tmp = tmp + 1 -> 169 - 169 -> Assign: tmp = tmp + 1 -> 171 - 171 -> Assign: i = i + 1 -> 172 - 172 -> Assume: i < 100 true -> 175; join -> 190 - 175 -> Assume: i % 2 false -> 176; join -> 193 - 176 -> Assume: i % 3 true -> 177; join -> 199 - 177 -> Assign: tmp = tmp + 1 -> 178 - 178 -> Assume: i % 5 false -> 180; join -> 203 - 180 -> Assume: i % 7 true -> 181; join -> 209 - 181 -> Assign: tmp = tmp + 1 -> 182 - 182 -> Assume: i % 11 true -> 184; join -> 213 - 184 -> Assign: tmp = tmp + 1 -> 185 - 185 -> Assign: tmp = tmp + 1 -> 187; join -> 219 - 187 -> Assign: i = i + 1 -> 188; join -> 221 - 188 -> join -> 190 - 190 -> Assume: i < 100 true -> 192; join -> 224 + 148 -> join -> 150 + 149 -> join -> 150 + 150 -> join -> 151 + 151 -> Assume: i % 7 true -> 152; join -> 180 + 152 -> Assign: tmp = tmp + 1 -> 153 + 153 -> join -> 154 + 154 -> Assume: i % 11 true -> 155; Assume: i % 11 false -> 157; + join -> 183 + 155 -> Assign: tmp = tmp + 1 -> 156; join -> 185 + 156 -> join -> 158 + 157 -> join -> 158 + 158 -> join -> 159 + 159 -> Assign: tmp = tmp + 1 -> 160; join -> 189 + 160 -> join -> 161 + 161 -> Assign: i = i + 1 -> 162; join -> 191 + 162 -> join -> 163 + 163 -> Assume: i < 100 true -> 164; join -> 193 + 164 -> join -> 165 + 165 -> Assume: i % 2 true -> 166; Assume: i % 2 false -> 168; join -> 196 + 166 -> Assign: tmp = tmp + 1 -> 167 + 167 -> join -> 169 + 168 -> join -> 169 + 169 -> join -> 170 + 170 -> Assume: i % 3 true -> 171; Assume: i % 3 false -> 173; join -> 201 + 171 -> Assign: tmp = tmp + 1 -> 172 + 172 -> join -> 174 + 173 -> join -> 174 + 174 -> join -> 175 + 175 -> Assume: i % 5 true -> 176; Assume: i % 5 false -> 178; join -> 206 + 176 -> Assign: tmp = tmp + 1 -> 177 + 177 -> join -> 179 + 178 -> join -> 179 + 179 -> join -> 180 + 180 -> Assume: i % 7 true -> 181; join -> 211 + 181 -> Assign: tmp = tmp + 1 -> 182; join -> 213 + 182 -> join -> 183 + 183 -> Assume: i % 11 true -> 184; Assume: i % 11 false -> 187; + join -> 217 + 184 -> join -> 185 + 185 -> Assign: tmp = tmp + 1 -> 186; join -> 219 + 186 -> join -> 188 + 187 -> join -> 188 + 188 -> join -> 189 + 189 -> Assign: tmp = tmp + 1 -> 190; join -> 223 + 190 -> join -> 191 + 191 -> Assign: i = i + 1 -> 192; join -> 225 192 -> join -> 193 - 193 -> Assume: i % 2 false -> 194; Assume: i % 2 true -> 195; join -> 227 - 194 -> join -> 198 - 195 -> Assign: tmp = tmp + 1 -> 196 - 196 -> join -> 198 - 198 -> join -> 199 - 199 -> Assume: i % 3 true -> 200; join -> 233 - 200 -> Assign: tmp = tmp + 1 -> 201 - 201 -> join -> 203 - 203 -> Assume: i % 5 false -> 204; Assume: i % 5 true -> 205; join -> 239 - 204 -> join -> 208 - 205 -> Assign: tmp = tmp + 1 -> 206 - 206 -> join -> 208 - 208 -> join -> 209 - 209 -> Assume: i % 7 true -> 210; join -> 245 - 210 -> Assign: tmp = tmp + 1 -> 211 + 193 -> join -> 196 + 196 -> join -> 201 + 201 -> join -> 206 + 206 -> join -> 211 211 -> join -> 213 - 213 -> Assume: i % 11 false -> 214; Assume: i % 11 true -> 215; - join -> 249 - 214 -> join -> 218 - 215 -> Assign: tmp = tmp + 1 -> 216; join -> 252 - 216 -> join -> 218 - 218 -> join -> 219 - 219 -> Assign: tmp = tmp + 1 -> 220; join -> 256 - 220 -> join -> 221 - 221 -> Assign: i = i + 1 -> 222; join -> 258 - 222 -> join -> 224 - 224 -> Assume: i < 100 true -> 226; join -> 261 - 226 -> join -> 227 - 227 -> Assume: i % 2 false -> 228; Assume: i % 2 true -> 229; join -> 265 - 228 -> join -> 232 - 229 -> Assign: tmp = tmp + 1 -> 230 - 230 -> join -> 232 - 232 -> join -> 233 - 233 -> Assume: i % 3 false -> 234; Assume: i % 3 true -> 235; join -> 271 - 234 -> join -> 238 - 235 -> Assign: tmp = tmp + 1 -> 236 - 236 -> join -> 238 - 238 -> join -> 239 - 239 -> Assume: i % 5 false -> 240; Assume: i % 5 true -> 241; join -> 277 - 240 -> join -> 244 - 241 -> Assign: tmp = tmp + 1 -> 242 - 242 -> join -> 244 - 244 -> join -> 245 - 245 -> Assume: i % 7 true -> 246; join -> 283 - 246 -> Assign: tmp = tmp + 1 -> 247; join -> 286 - 247 -> join -> 249 - 249 -> Assume: i % 11 false -> 250; Assume: i % 11 true -> 251; - join -> 290 - 250 -> join -> 255 - 251 -> join -> 252 - 252 -> Assign: tmp = tmp + 1 -> 253; join -> 293 - 253 -> join -> 255 - 255 -> join -> 256 - 256 -> Assign: tmp = tmp + 1 -> 257; join -> 297 - 257 -> join -> 258 - 258 -> Assign: i = i + 1 -> 259; join -> 299 - 259 -> join -> 261 - 261 -> join -> 265 - 265 -> join -> 271 - 271 -> join -> 277 - 277 -> join -> 283 - 283 -> join -> 286 - 286 -> join -> 290 - 290 -> join -> 293 - 293 -> join -> 297 - 297 -> join -> 299 - 299 -> Loop(4) 262 {[ 262 -> Assume: i < 100 true -> 264 - 264 -> Assume: i % 2 false -> 266; - Assume: i % 2 true -> 267 - 266 -> join -> 270 - 267 -> Assign: tmp = tmp + 1 -> 268 - 268 -> join -> 270 - 270 -> Assume: i % 3 false -> 272; - Assume: i % 3 true -> 273 - 272 -> join -> 276 - 273 -> Assign: tmp = tmp + 1 -> 274 - 274 -> join -> 276 - 276 -> Assume: i % 5 false -> 278; - Assume: i % 5 true -> 279 - 278 -> join -> 282 - 279 -> Assign: tmp = tmp + 1 -> 280 - 280 -> join -> 282 - 282 -> Assume: i % 7 false -> 284; - Assume: i % 7 true -> 285 - 284 -> join -> 289 - 285 -> Assign: tmp = tmp + 1 -> 287 - 287 -> join -> 289 - 289 -> Assume: i % 11 false -> 291; - Assume: i % 11 true -> 292 - 291 -> join -> 296 - 292 -> Assign: tmp = tmp + 1 -> 294 - 294 -> join -> 296 - 296 -> Assign: tmp = tmp + 1 -> 298 - 298 -> Assign: i = i + 1 -> 300 ]} -> 304 - 304 -> Assume: i < 100 false -> 305 - 305 -> leave_loop -> 306 - 306 -> LeaveScope: i -> 312 ]} at 312 + 213 -> join -> 217 + 217 -> join -> 219 + 219 -> join -> 223 + 223 -> join -> 225 + 225 -> Loop(4) 194 {[ 194 -> Assume: i < 100 true -> 195 + 195 -> Assume: i % 2 true -> 197; + Assume: i % 2 false -> 199 + 197 -> Assign: tmp = tmp + 1 -> 198 + 198 -> join -> 200 + 199 -> join -> 200 + 200 -> Assume: i % 3 true -> 202; + Assume: i % 3 false -> 204 + 202 -> Assign: tmp = tmp + 1 -> 203 + 203 -> join -> 205 + 204 -> join -> 205 + 205 -> Assume: i % 5 true -> 207; + Assume: i % 5 false -> 209 + 207 -> Assign: tmp = tmp + 1 -> 208 + 208 -> join -> 210 + 209 -> join -> 210 + 210 -> Assume: i % 7 true -> 212; + Assume: i % 7 false -> 215 + 212 -> Assign: tmp = tmp + 1 -> 214 + 214 -> join -> 216 + 215 -> join -> 216 + 216 -> Assume: i % 11 true -> 218; + Assume: i % 11 false -> 221 + 218 -> Assign: tmp = tmp + 1 -> 220 + 220 -> join -> 222 + 221 -> join -> 222 + 222 -> Assign: tmp = tmp + 1 -> 224 + 224 -> Assign: i = i + 1 -> 226 ]} -> 228 + 228 -> Assume: i < 100 false -> 229 + 229 -> leave_loop -> 230 + 230 -> LeaveScope: i -> 231 + 231 -> LeaveScope: i -> 232 ]} at 232 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== - These dependencies hold at termination for the executions that terminate: + These dependencies hold at termination for the executions that terminate: [from] Function main: \result FROM \nothing [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function main: - tmp; i + tmp; i [inout] Inputs for function main: - \nothing + \nothing diff --git a/tests/value/traces/oracle/test5.res.oracle b/tests/value/traces/oracle/test5.res.oracle index 9c6a9068b068c513efbad3a6cee95e95b61341f4..44b41790709aaacdddb7a1205dace5c258bcf91a 100644 --- a/tests/value/traces/oracle/test5.res.oracle +++ b/tests/value/traces/oracle/test5.res.oracle @@ -1,98 +1,102 @@ [kernel] Parsing tests/value/traces/test5.i (no preprocessing) -tests/value/traces/test5.i:21:[kernel] warning: Calling undeclared function my_switch. Old style K&R code? -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value:initial-state] Values of globals at initialization +[kernel:typing:implicit-function-declaration] tests/value/traces/test5.i:21: Warning: + Calling undeclared function my_switch. Old style K&R code? +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -tests/value/traces/test5.i:21:[kernel] warning: Neither code nor specification for function my_switch, generating default assigns from the prototype -[value] using specification for function my_switch -[value] Done for function my_switch -tests/value/traces/test5.i:21:[value] warning: signed overflow. - assert tmp_0 + tmp ≤ 2147483647; - (tmp_0 from my_switch(tmp)) -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -tests/value/traces/test5.i:21:[value] warning: signed overflow. - assert -2147483648 ≤ tmp_0 + tmp; - (tmp_0 from my_switch(tmp)) -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -tests/value/traces/test5.i:20:[value] entering loop for the first time -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -tests/value/traces/test5.i:19:[value] entering loop for the first time -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] computing for function my_switch <- main. - Called from tests/value/traces/test5.i:21. -[value] Done for function my_switch -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value:final-states] Values at end of function main: +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[kernel:annot:missing-spec] tests/value/traces/test5.i:21: Warning: + Neither code nor specification for function my_switch, generating default assigns from the prototype +[eva] using specification for function my_switch +[eva] Done for function my_switch +[eva:alarm] tests/value/traces/test5.i:21: Warning: + signed overflow. + assert tmp_0 + tmp ≤ 2147483647; + (tmp_0 from my_switch(tmp)) +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva:alarm] tests/value/traces/test5.i:21: Warning: + signed overflow. + assert -2147483648 ≤ tmp_0 + tmp; + (tmp_0 from my_switch(tmp)) +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] tests/value/traces/test5.i:20: starting to merge loop iterations +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] tests/value/traces/test5.i:19: starting to merge loop iterations +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] computing for function my_switch <- main. + Called from tests/value/traces/test5.i:21. +[eva] Done for function my_switch +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: tmp ∈ [--..--] -[value:d-traces] Trace domains: +[eva:d-traces] Trace domains: start: 0; globals = ; main_formals = c; {[ 0 -> initialize variable using type Main_Formal c -> 1 @@ -117,440 +121,463 @@ c -> 1 19 -> Assign: tmp = tmp_0 + tmp -> 20 20 -> LeaveScope: tmp_0 -> 21 21 -> Assign: j = j + 1 -> 22 - 22 -> Assume: j < 10 true -> 24 - 24 -> EnterScope: tmp_0 -> 25 - 25 -> EnterScope: \result<my_switch> -> 26 - 26 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 27 - 27 -> Assign: tmp_0 = \result<my_switch> -> 29 - 29 -> LeaveScope: \result<my_switch> -> 30 - 30 -> Assign: tmp = tmp_0 + tmp -> 31 - 31 -> LeaveScope: tmp_0 -> 33 - 33 -> Assign: j = j + 1 -> 34 - 34 -> Assume: j < 10 true -> 37 - 37 -> EnterScope: tmp_0 -> 38 - 38 -> EnterScope: \result<my_switch> -> 39 - 39 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 40 - 40 -> Assign: tmp_0 = \result<my_switch> -> 42 - 42 -> LeaveScope: \result<my_switch> -> 43 - 43 -> Assign: tmp = tmp_0 + tmp -> 44 - 44 -> LeaveScope: tmp_0 -> 46 - 46 -> Assign: j = j + 1 -> 47 - 47 -> Assume: j < 10 true -> 50 - 50 -> EnterScope: tmp_0 -> 51 - 51 -> EnterScope: \result<my_switch> -> 52 - 52 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 53 - 53 -> Assign: tmp_0 = \result<my_switch> -> 55 - 55 -> LeaveScope: \result<my_switch> -> 56 - 56 -> Assign: tmp = tmp_0 + tmp -> 57 - 57 -> LeaveScope: tmp_0 -> 59 - 59 -> Assign: j = j + 1 -> 60 - 60 -> Assume: j < 10 true -> 63 + 22 -> Assume: j < 10 true -> 23 + 23 -> EnterScope: tmp_0 -> 24 + 24 -> EnterScope: \result<my_switch> -> 25 + 25 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 26 + 26 -> Assign: tmp_0 = \result<my_switch> -> 28 + 28 -> LeaveScope: \result<my_switch> -> 29 + 29 -> Assign: tmp = tmp_0 + tmp -> 30 + 30 -> LeaveScope: tmp_0 -> 31 + 31 -> Assign: j = j + 1 -> 32 + 32 -> Assume: j < 10 true -> 33 + 33 -> EnterScope: tmp_0 -> 34 + 34 -> EnterScope: \result<my_switch> -> 35 + 35 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 36 + 36 -> Assign: tmp_0 = \result<my_switch> -> 38 + 38 -> LeaveScope: \result<my_switch> -> 39 + 39 -> Assign: tmp = tmp_0 + tmp -> 40 + 40 -> LeaveScope: tmp_0 -> 41 + 41 -> Assign: j = j + 1 -> 42 + 42 -> Assume: j < 10 true -> 43 + 43 -> EnterScope: tmp_0 -> 44 + 44 -> EnterScope: \result<my_switch> -> 45 + 45 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 46 + 46 -> Assign: tmp_0 = \result<my_switch> -> 48 + 48 -> LeaveScope: \result<my_switch> -> 49 + 49 -> Assign: tmp = tmp_0 + tmp -> 50 + 50 -> LeaveScope: tmp_0 -> 51 + 51 -> Assign: j = j + 1 -> 52 + 52 -> Assume: j < 10 true -> 53 + 53 -> EnterScope: tmp_0 -> 54 + 54 -> EnterScope: \result<my_switch> -> 55 + 55 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 56 + 56 -> Assign: tmp_0 = \result<my_switch> -> 58 + 58 -> LeaveScope: \result<my_switch> -> 59 + 59 -> Assign: tmp = tmp_0 + tmp -> 60 + 60 -> LeaveScope: tmp_0 -> 61 + 61 -> Assign: j = j + 1 -> 62 + 62 -> Assume: j < 10 true -> 63 63 -> EnterScope: tmp_0 -> 64 64 -> EnterScope: \result<my_switch> -> 65 65 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 66 66 -> Assign: tmp_0 = \result<my_switch> -> 68 68 -> LeaveScope: \result<my_switch> -> 69 69 -> Assign: tmp = tmp_0 + tmp -> 70 - 70 -> LeaveScope: tmp_0 -> 72 - 72 -> Assign: j = j + 1 -> 73 - 73 -> Assume: j < 10 true -> 76 - 76 -> EnterScope: tmp_0 -> 77 - 77 -> EnterScope: \result<my_switch> -> 78 - 78 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 79 - 79 -> Assign: tmp_0 = \result<my_switch> -> 81 - 81 -> LeaveScope: \result<my_switch> -> 82 - 82 -> Assign: tmp = tmp_0 + tmp -> 83 - 83 -> LeaveScope: tmp_0 -> 85 - 85 -> Assign: j = j + 1 -> 86 - 86 -> Assume: j < 10 true -> 89 - 89 -> EnterScope: tmp_0 -> 90 - 90 -> EnterScope: \result<my_switch> -> 91 - 91 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 92 - 92 -> Assign: tmp_0 = \result<my_switch> -> 94 - 94 -> LeaveScope: \result<my_switch> -> 95 - 95 -> Assign: tmp = tmp_0 + tmp -> 96 - 96 -> LeaveScope: tmp_0 -> 98 - 98 -> Assign: j = j + 1 -> 99 - 99 -> Assume: j < 10 true -> 102 - 102 -> EnterScope: tmp_0 -> 103 - 103 -> EnterScope: \result<my_switch> -> 104 - 104 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 105 - 105 -> Assign: tmp_0 = \result<my_switch> -> 107 - 107 -> LeaveScope: \result<my_switch> -> 108 - 108 -> Assign: tmp = tmp_0 + tmp -> 109 - 109 -> LeaveScope: tmp_0 -> 111 + 70 -> LeaveScope: tmp_0 -> 71 + 71 -> Assign: j = j + 1 -> 72 + 72 -> Assume: j < 10 true -> 73 + 73 -> EnterScope: tmp_0 -> 74 + 74 -> EnterScope: \result<my_switch> -> 75 + 75 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 76 + 76 -> Assign: tmp_0 = \result<my_switch> -> 78 + 78 -> LeaveScope: \result<my_switch> -> 79 + 79 -> Assign: tmp = tmp_0 + tmp -> 80 + 80 -> LeaveScope: tmp_0 -> 81 + 81 -> Assign: j = j + 1 -> 82 + 82 -> Assume: j < 10 true -> 83 + 83 -> EnterScope: tmp_0 -> 84 + 84 -> EnterScope: \result<my_switch> -> 85 + 85 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 86 + 86 -> Assign: tmp_0 = \result<my_switch> -> 88 + 88 -> LeaveScope: \result<my_switch> -> 89 + 89 -> Assign: tmp = tmp_0 + tmp -> 90 + 90 -> LeaveScope: tmp_0 -> 91 + 91 -> Assign: j = j + 1 -> 92 + 92 -> Assume: j < 10 true -> 93 + 93 -> EnterScope: tmp_0 -> 94 + 94 -> EnterScope: \result<my_switch> -> 95 + 95 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 96 + 96 -> Assign: tmp_0 = \result<my_switch> -> 98 + 98 -> LeaveScope: \result<my_switch> -> 99 + 99 -> Assign: tmp = tmp_0 + tmp -> 100 + 100 -> LeaveScope: tmp_0 -> 101 + 101 -> Assign: j = j + 1 -> 102 + 102 -> Assume: j < 10 true -> 103 + 103 -> EnterScope: tmp_0 -> 104 + 104 -> EnterScope: \result<my_switch> -> 105 + 105 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 106 + 106 -> Assign: tmp_0 = \result<my_switch> -> 108 + 108 -> LeaveScope: \result<my_switch> -> 109 + 109 -> Assign: tmp = tmp_0 + tmp -> 110 + 110 -> LeaveScope: tmp_0 -> 111 111 -> Assign: j = j + 1 -> 112 - 112 -> Assume: j < 10 true -> 115 - 115 -> EnterScope: tmp_0 -> 116 - 116 -> EnterScope: \result<my_switch> -> 117 - 117 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 118 - 118 -> Assign: tmp_0 = \result<my_switch> -> 120 - 120 -> LeaveScope: \result<my_switch> -> 121 - 121 -> Assign: tmp = tmp_0 + tmp -> 122 - 122 -> LeaveScope: tmp_0 -> 124 - 124 -> Assign: j = j + 1 -> 125 - 125 -> Assume: j < 10 true -> 128 - 128 -> EnterScope: tmp_0 -> 129 - 129 -> EnterScope: \result<my_switch> -> 130 - 130 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 131 - 131 -> Assign: tmp_0 = \result<my_switch> -> 133 - 133 -> LeaveScope: \result<my_switch> -> 134 - 134 -> Assign: tmp = tmp_0 + tmp -> 135 - 135 -> LeaveScope: tmp_0 -> 137 - 137 -> Assign: j = j + 1 -> 138 - 138 -> Assume: j < 10 false -> 141; join -> 151 - 141 -> LeaveScope: j -> 142 - 142 -> Assign: i = i + 1 -> 143 - 143 -> Assume: i < 10 true -> 145 - 145 -> EnterScope: j -> 146 - 146 -> initialize variable: j -> 147 - 147 -> Assign: j = 0 -> 148 - 148 -> enter_loop -> 150 - 150 -> join -> 151 - 151 -> Assume: j < 10 false -> 153; Assume: j < 10 true -> 154; - join -> 166 - 153 -> LeaveScope: j -> 213 - 154 -> EnterScope: tmp_0 -> 155; join -> 170 - 155 -> EnterScope: \result<my_switch> -> 156; join -> 172 - 156 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 157 - 157 -> Assign: tmp_0 = \result<my_switch> -> 159 - 159 -> LeaveScope: \result<my_switch> -> 160 - 160 -> Assign: tmp = tmp_0 + tmp -> 161; join -> 178 - 161 -> LeaveScope: tmp_0 -> 163 - 163 -> Assign: j = j + 1 -> 164; join -> 182 - 164 -> join -> 166 - 166 -> Assume: j < 10 false -> 168; Assume: j < 10 true -> 169; - join -> 185 - 168 -> LeaveScope: j -> 214 - 169 -> join -> 170 - 170 -> EnterScope: tmp_0 -> 171; join -> 192 - 171 -> join -> 172 - 172 -> EnterScope: \result<my_switch> -> 173; join -> 194 - 173 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 174 - 174 -> Assign: tmp_0 = \result<my_switch> -> 176 - 176 -> LeaveScope: \result<my_switch> -> 177 - 177 -> join -> 178 - 178 -> Assign: tmp = tmp_0 + tmp -> 179; join -> 200 - 179 -> LeaveScope: tmp_0 -> 181 - 181 -> join -> 182 - 182 -> Assign: j = j + 1 -> 183; join -> 204 - 183 -> join -> 185 - 185 -> Assume: j < 10 false -> 190; join -> 192 - 190 -> leave_loop -> 191 - 191 -> LeaveScope: j -> 215 - 192 -> join -> 194 - 194 -> join -> 200 - 200 -> join -> 204 - 204 -> join -> 256; - Loop(16) 186 {[ 186 -> Assume: j < 10 true -> 189 - 189 -> EnterScope: tmp_0 -> 193 - 193 -> EnterScope: \result<my_switch> -> 195 - 195 -> CallDeclared: + 112 -> Assume: j < 10 false -> 113; join -> 122 + 113 -> LeaveScope: j -> 114 + 114 -> LeaveScope: j -> 115 + 115 -> Assign: i = i + 1 -> 116 + 116 -> Assume: i < 10 true -> 117 + 117 -> EnterScope: j -> 118 + 118 -> initialize variable: j -> 119 + 119 -> Assign: j = 0 -> 120 + 120 -> enter_loop -> 121 + 121 -> join -> 122 + 122 -> Assume: j < 10 true -> 123; Assume: j < 10 false -> 167; + join -> 133 + 123 -> EnterScope: tmp_0 -> 124; join -> 135 + 124 -> EnterScope: \result<my_switch> -> 125; join -> 137 + 125 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 126 + 126 -> Assign: tmp_0 = \result<my_switch> -> 128 + 128 -> LeaveScope: \result<my_switch> -> 129 + 129 -> Assign: tmp = tmp_0 + tmp -> 130; join -> 143 + 130 -> LeaveScope: tmp_0 -> 131 + 131 -> Assign: j = j + 1 -> 132; join -> 146 + 132 -> join -> 133 + 133 -> Assume: j < 10 true -> 134; Assume: j < 10 false -> 166; + join -> 148 + 134 -> join -> 135 + 135 -> EnterScope: tmp_0 -> 136; join -> 151 + 136 -> join -> 137 + 137 -> EnterScope: \result<my_switch> -> 138; join -> 153 + 138 -> CallDeclared: \result<my_switch> = my_switch(tmp) -> 139 + 139 -> Assign: tmp_0 = \result<my_switch> -> 141 + 141 -> LeaveScope: \result<my_switch> -> 142 + 142 -> join -> 143 + 143 -> Assign: tmp = tmp_0 + tmp -> 144; join -> 159 + 144 -> LeaveScope: tmp_0 -> 145 + 145 -> join -> 146 + 146 -> Assign: j = j + 1 -> 147; join -> 162 + 147 -> join -> 148 + 148 -> Assume: j < 10 false -> 168; join -> 151 + 151 -> join -> 153 + 153 -> join -> 159 + 159 -> join -> 162 + 162 -> join -> 208; + Loop(16) 149 {[ 149 -> Assume: j < 10 true -> 150 + 150 -> EnterScope: tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> -> 154 + 154 -> CallDeclared: \result<my_switch> = - my_switch(tmp) -> 196 - 196 -> Assign: tmp_0 = \result<my_switch> -> 198 - 198 -> LeaveScope: \result<my_switch> -> 199 - 199 -> Assign: tmp = tmp_0 + tmp -> 201 - 201 -> LeaveScope: tmp_0 -> 203 - 203 -> Assign: j = j + 1 -> 205 ]} -> 208 - 208 -> Assume: j < 10 false -> 209 - 209 -> leave_loop -> 210 - 210 -> LeaveScope: j -> 216 - 213 -> Assign: i = i + 1 -> 217 - 214 -> Assign: i = i + 1 -> 218 - 215 -> Assign: i = i + 1 -> 219 - 216 -> Assign: i = i + 1 -> 220 - 217 -> Assume: i < 10 true -> 232 - 218 -> Assume: i < 10 true -> 231 - 219 -> Assume: i < 10 true -> 230 - 220 -> Assume: i < 10 true -> 229 - 229 -> EnterScope: j -> 242 - 230 -> EnterScope: j -> 239 - 231 -> EnterScope: j -> 236 - 232 -> EnterScope: j -> 233 - 233 -> initialize variable: j -> 234 - 234 -> Assign: j = 0 -> 235 - 235 -> enter_loop -> 252 - 236 -> initialize variable: j -> 237 - 237 -> Assign: j = 0 -> 238 - 238 -> enter_loop -> 251 - 239 -> initialize variable: j -> 240 - 240 -> Assign: j = 0 -> 241 - 241 -> enter_loop -> 250 - 242 -> initialize variable: j -> 243 - 243 -> Assign: j = 0 -> 244 - 244 -> enter_loop -> 249 - 249 -> join -> 253 - 250 -> join -> 253 - 251 -> join -> 254 - 252 -> join -> 255 - 253 -> join -> 254 - 254 -> join -> 255 - 255 -> join -> 256 - 256 -> join -> 275; - Loop(16) 186 {[ 186 -> Assume: j < 10 true -> 189 - 189 -> EnterScope: tmp_0 -> 193 - 193 -> EnterScope: \result<my_switch> -> 195 - 195 -> CallDeclared: + my_switch(tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> -> 157 + 157 -> LeaveScope: \result<my_switch> -> 158 + 158 -> Assign: tmp = tmp_0 + tmp -> 160 + 160 -> LeaveScope: tmp_0 -> 161 + 161 -> Assign: j = j + 1 -> 163 ]} -> 170 + 166 -> LeaveScope: j -> 175 + 167 -> LeaveScope: j -> 176 + 168 -> leave_loop -> 169 + 169 -> LeaveScope: j -> 174 + 170 -> Assume: j < 10 false -> 171 + 171 -> leave_loop -> 172 + 172 -> LeaveScope: j -> 173 + 173 -> LeaveScope: j -> 177 + 174 -> LeaveScope: j -> 178 + 175 -> LeaveScope: j -> 179 + 176 -> LeaveScope: j -> 180 + 177 -> Assign: i = i + 1 -> 184 + 178 -> Assign: i = i + 1 -> 183 + 179 -> Assign: i = i + 1 -> 182 + 180 -> Assign: i = i + 1 -> 181 + 181 -> Assume: i < 10 true -> 188 + 182 -> Assume: i < 10 true -> 187 + 183 -> Assume: i < 10 true -> 186 + 184 -> Assume: i < 10 true -> 185 + 185 -> EnterScope: j -> 198 + 186 -> EnterScope: j -> 195 + 187 -> EnterScope: j -> 192 + 188 -> EnterScope: j -> 189 + 189 -> initialize variable: j -> 190 + 190 -> Assign: j = 0 -> 191 + 191 -> enter_loop -> 204 + 192 -> initialize variable: j -> 193 + 193 -> Assign: j = 0 -> 194 + 194 -> enter_loop -> 203 + 195 -> initialize variable: j -> 196 + 196 -> Assign: j = 0 -> 197 + 197 -> enter_loop -> 202 + 198 -> initialize variable: j -> 199 + 199 -> Assign: j = 0 -> 200 + 200 -> enter_loop -> 201 + 201 -> join -> 207 + 202 -> join -> 206 + 203 -> join -> 205 + 204 -> join -> 205 + 205 -> join -> 206 + 206 -> join -> 207 + 207 -> join -> 208 + 208 -> join -> 221; + Loop(16) 149 {[ 149 -> Assume: j < 10 true -> 150 + 150 -> EnterScope: tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> -> 154 + 154 -> CallDeclared: \result<my_switch> = - my_switch(tmp) -> 196 - 196 -> Assign: tmp_0 = \result<my_switch> -> 198 - 198 -> LeaveScope: \result<my_switch> -> 199 - 199 -> Assign: tmp = tmp_0 + tmp -> 201 - 201 -> LeaveScope: tmp_0 -> 203 - 203 -> Assign: j = j + 1 -> 205 ]} -> 258 - 258 -> Assume: j < 10 false -> 259 - 259 -> leave_loop -> 260 - 260 -> LeaveScope: j -> 264 - 264 -> Assign: i = i + 1 -> 265 - 265 -> Assume: i < 10 false -> 268; Assume: i < 10 true -> 269 - 268 -> LeaveScope: i -> 443 - 269 -> EnterScope: j -> 270 - 270 -> initialize variable: j -> 271 - 271 -> Assign: j = 0 -> 272 - 272 -> enter_loop -> 274 - 274 -> join -> 275 - 275 -> join -> 294; - Loop(16) 186 {[ 186 -> Assume: j < 10 true -> 189 - 189 -> EnterScope: tmp_0 -> 193 - 193 -> EnterScope: \result<my_switch> -> 195 - 195 -> CallDeclared: + my_switch(tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> -> 157 + 157 -> LeaveScope: \result<my_switch> -> 158 + 158 -> Assign: tmp = tmp_0 + tmp -> 160 + 160 -> LeaveScope: tmp_0 -> 161 + 161 -> Assign: j = j + 1 -> 163 ]} -> 210 + 210 -> Assume: j < 10 false -> 211 + 211 -> leave_loop -> 212 + 212 -> LeaveScope: j -> 213 + 213 -> LeaveScope: j -> 214 + 214 -> Assign: i = i + 1 -> 215 + 215 -> Assume: i < 10 true -> 216; Assume: i < 10 false -> 341 + 216 -> EnterScope: j -> 217 + 217 -> initialize variable: j -> 218 + 218 -> Assign: j = 0 -> 219 + 219 -> enter_loop -> 220 + 220 -> join -> 221 + 221 -> join -> 234; + Loop(16) 149 {[ 149 -> Assume: j < 10 true -> 150 + 150 -> EnterScope: tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> -> 154 + 154 -> CallDeclared: \result<my_switch> = - my_switch(tmp) -> 196 - 196 -> Assign: tmp_0 = \result<my_switch> -> 198 - 198 -> LeaveScope: \result<my_switch> -> 199 - 199 -> Assign: tmp = tmp_0 + tmp -> 201 - 201 -> LeaveScope: tmp_0 -> 203 - 203 -> Assign: j = j + 1 -> 205 ]} -> 277 - 277 -> Assume: j < 10 false -> 278 - 278 -> leave_loop -> 279 - 279 -> LeaveScope: j -> 283 - 283 -> Assign: i = i + 1 -> 284 - 284 -> Assume: i < 10 false -> 287; Assume: i < 10 true -> 288 - 287 -> LeaveScope: i -> 444 - 288 -> EnterScope: j -> 289 - 289 -> initialize variable: j -> 290 - 290 -> Assign: j = 0 -> 291 - 291 -> enter_loop -> 293 - 293 -> join -> 294 - 294 -> join -> 313; - Loop(16) 186 {[ 186 -> Assume: j < 10 true -> 189 - 189 -> EnterScope: tmp_0 -> 193 - 193 -> EnterScope: \result<my_switch> -> 195 - 195 -> CallDeclared: + my_switch(tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> -> 157 + 157 -> LeaveScope: \result<my_switch> -> 158 + 158 -> Assign: tmp = tmp_0 + tmp -> 160 + 160 -> LeaveScope: tmp_0 -> 161 + 161 -> Assign: j = j + 1 -> 163 ]} -> 223 + 223 -> Assume: j < 10 false -> 224 + 224 -> leave_loop -> 225 + 225 -> LeaveScope: j -> 226 + 226 -> LeaveScope: j -> 227 + 227 -> Assign: i = i + 1 -> 228 + 228 -> Assume: i < 10 true -> 229; Assume: i < 10 false -> 340 + 229 -> EnterScope: j -> 230 + 230 -> initialize variable: j -> 231 + 231 -> Assign: j = 0 -> 232 + 232 -> enter_loop -> 233 + 233 -> join -> 234 + 234 -> join -> 247; + Loop(16) 149 {[ 149 -> Assume: j < 10 true -> 150 + 150 -> EnterScope: tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> -> 154 + 154 -> CallDeclared: \result<my_switch> = - my_switch(tmp) -> 196 - 196 -> Assign: tmp_0 = \result<my_switch> -> 198 - 198 -> LeaveScope: \result<my_switch> -> 199 - 199 -> Assign: tmp = tmp_0 + tmp -> 201 - 201 -> LeaveScope: tmp_0 -> 203 - 203 -> Assign: j = j + 1 -> 205 ]} -> 296 - 296 -> Assume: j < 10 false -> 297 - 297 -> leave_loop -> 298 - 298 -> LeaveScope: j -> 302 - 302 -> Assign: i = i + 1 -> 303 - 303 -> Assume: i < 10 false -> 306; Assume: i < 10 true -> 307 - 306 -> LeaveScope: i -> 445 - 307 -> EnterScope: j -> 308 - 308 -> initialize variable: j -> 309 - 309 -> Assign: j = 0 -> 310 - 310 -> enter_loop -> 312 - 312 -> join -> 313 - 313 -> join -> 332; - Loop(16) 186 {[ 186 -> Assume: j < 10 true -> 189 - 189 -> EnterScope: tmp_0 -> 193 - 193 -> EnterScope: \result<my_switch> -> 195 - 195 -> CallDeclared: + my_switch(tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> -> 157 + 157 -> LeaveScope: \result<my_switch> -> 158 + 158 -> Assign: tmp = tmp_0 + tmp -> 160 + 160 -> LeaveScope: tmp_0 -> 161 + 161 -> Assign: j = j + 1 -> 163 ]} -> 236 + 236 -> Assume: j < 10 false -> 237 + 237 -> leave_loop -> 238 + 238 -> LeaveScope: j -> 239 + 239 -> LeaveScope: j -> 240 + 240 -> Assign: i = i + 1 -> 241 + 241 -> Assume: i < 10 true -> 242; Assume: i < 10 false -> 339 + 242 -> EnterScope: j -> 243 + 243 -> initialize variable: j -> 244 + 244 -> Assign: j = 0 -> 245 + 245 -> enter_loop -> 246 + 246 -> join -> 247 + 247 -> join -> 260; + Loop(16) 149 {[ 149 -> Assume: j < 10 true -> 150 + 150 -> EnterScope: tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> -> 154 + 154 -> CallDeclared: \result<my_switch> = - my_switch(tmp) -> 196 - 196 -> Assign: tmp_0 = \result<my_switch> -> 198 - 198 -> LeaveScope: \result<my_switch> -> 199 - 199 -> Assign: tmp = tmp_0 + tmp -> 201 - 201 -> LeaveScope: tmp_0 -> 203 - 203 -> Assign: j = j + 1 -> 205 ]} -> 315 - 315 -> Assume: j < 10 false -> 316 - 316 -> leave_loop -> 317 - 317 -> LeaveScope: j -> 321 - 321 -> Assign: i = i + 1 -> 322 - 322 -> Assume: i < 10 false -> 325; Assume: i < 10 true -> 326 - 325 -> LeaveScope: i -> 446 - 326 -> EnterScope: j -> 327 - 327 -> initialize variable: j -> 328 - 328 -> Assign: j = 0 -> 329 - 329 -> enter_loop -> 331 - 331 -> join -> 332 - 332 -> join -> 351; - Loop(16) 186 {[ 186 -> Assume: j < 10 true -> 189 - 189 -> EnterScope: tmp_0 -> 193 - 193 -> EnterScope: \result<my_switch> -> 195 - 195 -> CallDeclared: + my_switch(tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> -> 157 + 157 -> LeaveScope: \result<my_switch> -> 158 + 158 -> Assign: tmp = tmp_0 + tmp -> 160 + 160 -> LeaveScope: tmp_0 -> 161 + 161 -> Assign: j = j + 1 -> 163 ]} -> 249 + 249 -> Assume: j < 10 false -> 250 + 250 -> leave_loop -> 251 + 251 -> LeaveScope: j -> 252 + 252 -> LeaveScope: j -> 253 + 253 -> Assign: i = i + 1 -> 254 + 254 -> Assume: i < 10 true -> 255; Assume: i < 10 false -> 338 + 255 -> EnterScope: j -> 256 + 256 -> initialize variable: j -> 257 + 257 -> Assign: j = 0 -> 258 + 258 -> enter_loop -> 259 + 259 -> join -> 260 + 260 -> join -> 273; + Loop(16) 149 {[ 149 -> Assume: j < 10 true -> 150 + 150 -> EnterScope: tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> -> 154 + 154 -> CallDeclared: \result<my_switch> = - my_switch(tmp) -> 196 - 196 -> Assign: tmp_0 = \result<my_switch> -> 198 - 198 -> LeaveScope: \result<my_switch> -> 199 - 199 -> Assign: tmp = tmp_0 + tmp -> 201 - 201 -> LeaveScope: tmp_0 -> 203 - 203 -> Assign: j = j + 1 -> 205 ]} -> 334 - 334 -> Assume: j < 10 false -> 335 - 335 -> leave_loop -> 336 - 336 -> LeaveScope: j -> 340 - 340 -> Assign: i = i + 1 -> 341 - 341 -> Assume: i < 10 false -> 344; Assume: i < 10 true -> 345; - join -> 362 - 344 -> LeaveScope: i -> 447 - 345 -> EnterScope: j -> 346; join -> 366 - 346 -> initialize variable: j -> 347 - 347 -> Assign: j = 0 -> 348 - 348 -> enter_loop -> 350 - 350 -> join -> 351 - 351 -> join -> 372; - Loop(16) 186 {[ 186 -> Assume: j < 10 true -> 189 - 189 -> EnterScope: tmp_0 -> 193 - 193 -> EnterScope: \result<my_switch> -> 195 - 195 -> CallDeclared: + my_switch(tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> -> 157 + 157 -> LeaveScope: \result<my_switch> -> 158 + 158 -> Assign: tmp = tmp_0 + tmp -> 160 + 160 -> LeaveScope: tmp_0 -> 161 + 161 -> Assign: j = j + 1 -> 163 ]} -> 262 + 262 -> Assume: j < 10 false -> 263 + 263 -> leave_loop -> 264 + 264 -> LeaveScope: j -> 265 + 265 -> LeaveScope: j -> 266 + 266 -> Assign: i = i + 1 -> 267 + 267 -> Assume: i < 10 true -> 268; Assume: i < 10 false -> 337; + join -> 281 + 268 -> EnterScope: j -> 269; join -> 283 + 269 -> initialize variable: j -> 270 + 270 -> Assign: j = 0 -> 271 + 271 -> enter_loop -> 272 + 272 -> join -> 273 + 273 -> join -> 288; + Loop(16) 149 {[ 149 -> Assume: j < 10 true -> 150 + 150 -> EnterScope: tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> -> 154 + 154 -> CallDeclared: \result<my_switch> = - my_switch(tmp) -> 196 - 196 -> Assign: tmp_0 = \result<my_switch> -> 198 - 198 -> LeaveScope: \result<my_switch> -> 199 - 199 -> Assign: tmp = tmp_0 + tmp -> 201 - 201 -> LeaveScope: tmp_0 -> 203 - 203 -> Assign: j = j + 1 -> 205 ]} -> 353 - 353 -> Assume: j < 10 false -> 354 - 354 -> leave_loop -> 355 - 355 -> LeaveScope: j -> 359; join -> 380 - 359 -> Assign: i = i + 1 -> 360; join -> 382 - 360 -> join -> 362 - 362 -> Assume: i < 10 false -> 364; Assume: i < 10 true -> 365; - join -> 385 - 364 -> LeaveScope: i -> 448 - 365 -> join -> 366 - 366 -> EnterScope: j -> 367; join -> 389 - 367 -> initialize variable: j -> 368 - 368 -> Assign: j = 0 -> 369 - 369 -> enter_loop -> 371 - 371 -> join -> 372 - 372 -> join -> 395; - Loop(16) 186 {[ 186 -> Assume: j < 10 true -> 189 - 189 -> EnterScope: tmp_0 -> 193 - 193 -> EnterScope: \result<my_switch> -> 195 - 195 -> CallDeclared: + my_switch(tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> -> 157 + 157 -> LeaveScope: \result<my_switch> -> 158 + 158 -> Assign: tmp = tmp_0 + tmp -> 160 + 160 -> LeaveScope: tmp_0 -> 161 + 161 -> Assign: j = j + 1 -> 163 ]} -> 275 + 275 -> Assume: j < 10 false -> 276 + 276 -> leave_loop -> 277 + 277 -> LeaveScope: j -> 278; join -> 293 + 278 -> LeaveScope: j -> 279 + 279 -> Assign: i = i + 1 -> 280; join -> 296 + 280 -> join -> 281 + 281 -> Assume: i < 10 true -> 282; Assume: i < 10 false -> 336; + join -> 298 + 282 -> join -> 283 + 283 -> EnterScope: j -> 284; join -> 300 + 284 -> initialize variable: j -> 285 + 285 -> Assign: j = 0 -> 286 + 286 -> enter_loop -> 287 + 287 -> join -> 288 + 288 -> join -> 305; + Loop(16) 149 {[ 149 -> Assume: j < 10 true -> 150 + 150 -> EnterScope: tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> -> 154 + 154 -> CallDeclared: \result<my_switch> = - my_switch(tmp) -> 196 - 196 -> Assign: tmp_0 = \result<my_switch> -> 198 - 198 -> LeaveScope: \result<my_switch> -> 199 - 199 -> Assign: tmp = tmp_0 + tmp -> 201 - 201 -> LeaveScope: tmp_0 -> 203 - 203 -> Assign: j = j + 1 -> 205 ]} -> 374 - 374 -> Assume: j < 10 false -> 375 - 375 -> leave_loop -> 376 - 376 -> join -> 380 - 380 -> LeaveScope: j -> 381; join -> 403 - 381 -> join -> 382 - 382 -> Assign: i = i + 1 -> 383; join -> 405 - 383 -> join -> 385 - 385 -> Assume: i < 10 false -> 387; Assume: i < 10 true -> 388; - join -> 408 - 387 -> LeaveScope: i -> 449 - 388 -> join -> 389 - 389 -> EnterScope: j -> 390; join -> 415 - 390 -> initialize variable: j -> 391 - 391 -> Assign: j = 0 -> 392 - 392 -> enter_loop -> 394 - 394 -> join -> 395 - 395 -> join -> 421; - Loop(16) 186 {[ 186 -> Assume: j < 10 true -> 189 - 189 -> EnterScope: tmp_0 -> 193 - 193 -> EnterScope: \result<my_switch> -> 195 - 195 -> CallDeclared: + my_switch(tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> -> 157 + 157 -> LeaveScope: \result<my_switch> -> 158 + 158 -> Assign: tmp = tmp_0 + tmp -> 160 + 160 -> LeaveScope: tmp_0 -> 161 + 161 -> Assign: j = j + 1 -> 163 ]} -> 290 + 290 -> Assume: j < 10 false -> 291 + 291 -> leave_loop -> 292 + 292 -> join -> 293 + 293 -> LeaveScope: j -> 294; join -> 310 + 294 -> LeaveScope: j -> 295 + 295 -> join -> 296 + 296 -> Assign: i = i + 1 -> 297; join -> 313 + 297 -> join -> 298 + 298 -> Assume: i < 10 true -> 299; Assume: i < 10 false -> 335; + join -> 315 + 299 -> join -> 300 + 300 -> EnterScope: j -> 301; join -> 318 + 301 -> initialize variable: j -> 302 + 302 -> Assign: j = 0 -> 303 + 303 -> enter_loop -> 304 + 304 -> join -> 305 + 305 -> join -> 323; + Loop(16) 149 {[ 149 -> Assume: j < 10 true -> 150 + 150 -> EnterScope: tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> -> 154 + 154 -> CallDeclared: \result<my_switch> = - my_switch(tmp) -> 196 - 196 -> Assign: tmp_0 = \result<my_switch> -> 198 - 198 -> LeaveScope: \result<my_switch> -> 199 - 199 -> Assign: tmp = tmp_0 + tmp -> 201 - 201 -> LeaveScope: tmp_0 -> 203 - 203 -> Assign: j = j + 1 -> 205 ]} -> 397 - 397 -> Assume: j < 10 false -> 398 - 398 -> leave_loop -> 399 - 399 -> join -> 403 - 403 -> LeaveScope: j -> 404; join -> 429 - 404 -> join -> 405 - 405 -> Assign: i = i + 1 -> 406; join -> 431 - 406 -> join -> 408 - 408 -> Assume: i < 10 false -> 413; join -> 415 - 413 -> leave_loop -> 414 - 414 -> LeaveScope: i -> 450 - 415 -> join -> 421 - 421 -> join -> 429 - 429 -> join -> 431 - 431 -> Loop(10) 409 {[ 409 -> Assume: i < 10 true -> 412 - 412 -> EnterScope: j -> 416 - 416 -> initialize variable: j -> 417 - 417 -> Assign: j = 0 -> 418 - 418 -> enter_loop -> 420 - 420 -> Loop(16) 186 {[ 186 -> Assume: + my_switch(tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> -> 157 + 157 -> LeaveScope: \result<my_switch> -> 158 + 158 -> Assign: tmp = tmp_0 + tmp -> 160 + 160 -> LeaveScope: tmp_0 -> 161 + 161 -> Assign: j = j + 1 -> 163 ]} -> 307 + 307 -> Assume: j < 10 false -> 308 + 308 -> leave_loop -> 309 + 309 -> join -> 310 + 310 -> LeaveScope: j -> 311; join -> 328 + 311 -> LeaveScope: j -> 312 + 312 -> join -> 313 + 313 -> Assign: i = i + 1 -> 314; join -> 331 + 314 -> join -> 315 + 315 -> Assume: i < 10 false -> 342; join -> 318 + 318 -> join -> 323 + 323 -> join -> 328 + 328 -> join -> 331 + 331 -> Loop(10) 316 {[ 316 -> Assume: i < 10 true -> 317 + 317 -> EnterScope: j -> 319 + 319 -> initialize variable: j -> 320 + 320 -> Assign: j = 0 -> 321 + 321 -> enter_loop -> 322 + 322 -> Loop(16) 149 {[ 149 -> Assume: j < 10 true - -> 189 - 189 -> EnterScope: - tmp_0 -> 193 - 193 -> EnterScope: + -> 150 + 150 -> EnterScope: + tmp_0 -> 152 + 152 -> EnterScope: \result<my_switch> - -> 195 - 195 -> CallDeclared: + -> 154 + 154 -> CallDeclared: \result<my_switch> = my_switch( - tmp) -> 196 - 196 -> Assign: + tmp) -> 155 + 155 -> Assign: tmp_0 = \result<my_switch> - -> 198 - 198 -> LeaveScope: + -> 157 + 157 -> LeaveScope: \result<my_switch> - -> 199 - 199 -> Assign: + -> 158 + 158 -> Assign: tmp = tmp_0 + tmp - -> 201 - 201 -> LeaveScope: - tmp_0 -> 203 - 203 -> Assign: + -> 160 + 160 -> LeaveScope: + tmp_0 -> 161 + 161 -> Assign: j = j + 1 - -> 205 ]} - -> 423 - 423 -> Assume: j < 10 false -> 424 - 424 -> leave_loop -> 425 - 425 -> LeaveScope: j -> 430 - 430 -> Assign: i = i + 1 -> 432 ]} -> 435 - 435 -> Assume: i < 10 false -> 436 - 436 -> leave_loop -> 437 - 437 -> LeaveScope: i -> 451 - 443 -> join -> 459 - 444 -> join -> 458 - 445 -> join -> 457 - 446 -> join -> 456 - 447 -> join -> 455 - 448 -> join -> 454 - 449 -> join -> 453 - 450 -> join -> 452 - 451 -> join -> 452 - 452 -> join -> 453 - 453 -> join -> 454 - 454 -> join -> 455 - 455 -> join -> 456 - 456 -> join -> 457 - 457 -> join -> 458 - 458 -> join -> 459 ]} at 459 + -> 163 ]} + -> 325 + 325 -> Assume: j < 10 false -> 326 + 326 -> leave_loop -> 327 + 327 -> LeaveScope: j -> 329 + 329 -> LeaveScope: j -> 330 + 330 -> Assign: i = i + 1 -> 332 ]} -> 344 + 335 -> LeaveScope: i -> 349 + 336 -> LeaveScope: i -> 350 + 337 -> LeaveScope: i -> 351 + 338 -> LeaveScope: i -> 352 + 339 -> LeaveScope: i -> 353 + 340 -> LeaveScope: i -> 354 + 341 -> LeaveScope: i -> 355 + 342 -> leave_loop -> 343 + 343 -> LeaveScope: i -> 348 + 344 -> Assume: i < 10 false -> 345 + 345 -> leave_loop -> 346 + 346 -> LeaveScope: i -> 347 + 347 -> LeaveScope: i -> 356 + 348 -> LeaveScope: i -> 357 + 349 -> LeaveScope: i -> 358 + 350 -> LeaveScope: i -> 359 + 351 -> LeaveScope: i -> 360 + 352 -> LeaveScope: i -> 361 + 353 -> LeaveScope: i -> 362 + 354 -> LeaveScope: i -> 363 + 355 -> LeaveScope: i -> 364 + 356 -> join -> 372 + 357 -> join -> 371 + 358 -> join -> 370 + 359 -> join -> 369 + 360 -> join -> 368 + 361 -> join -> 367 + 362 -> join -> 366 + 363 -> join -> 365 + 364 -> join -> 365 + 365 -> join -> 366 + 366 -> join -> 367 + 367 -> join -> 368 + 368 -> join -> 369 + 369 -> join -> 370 + 370 -> join -> 371 + 371 -> join -> 372 ]} at 372 [from] Computing for function main [from] Computing for function my_switch <-main [from] Done for function my_switch [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== - These dependencies hold at termination for the executions that terminate: + These dependencies hold at termination for the executions that terminate: [from] Function my_switch: \result FROM x_0 [from] Function main: \result FROM \nothing [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function main: - tmp; i; j; tmp_0 + tmp; i; j; tmp_0 [inout] Inputs for function main: - \nothing -[kernel] user error: no known last created project. + \nothing +[kernel] User Error: no known last created project. [kernel] Frama-C aborted: invalid user input.