diff --git a/src/kernel_services/abstract_interp/origin.ml b/src/kernel_services/abstract_interp/origin.ml index 357ebfd681a2f55cc8dd3ab93b61e9545dac4988..495429175fba6d65763439b519f770e8cbd82a15 100644 --- a/src/kernel_services/abstract_interp/origin.ml +++ b/src/kernel_services/abstract_interp/origin.ml @@ -41,6 +41,10 @@ let kind_label = function | Merge -> "Merge" | Arith -> "Arithmetic" +(* Ideally, we would use the current statement sid instead of the current + source file location. However, that would require passing the current + statement through any datastructures and operations that can create + garbled mixes, which would be an invasive change. *) type location = Cil_datatype.Location.t type tt = @@ -139,9 +143,10 @@ module History_Info = struct let size = 32 end -(* Number of writes, number of reads, related bases. *) -module History_Data = - Datatype.Triple (Datatype.Int) (Datatype.Int) (Base.SetLattice) +module LocSet = Cil_datatype.Location.Set + +(* Locations of writes, locations of reads, related bases. *) +module History_Data = Datatype.Triple (LocSet) (LocSet) (Base.SetLattice) module History = State_builder.Hashtbl (Hashtbl) (History_Data) (History_Info) let clear () = Id.reset (); History.clear () @@ -154,21 +159,35 @@ let is_current = function current location. *) let register_write bases t = if is_unknown t then false else - let change (w, r, b) = w+1, r, Base.SetLattice.join b bases in - let count, _, _ = History.memo ~change (fun _ -> 1, 0, bases) t in - count < 2 && is_current t + let current_loc = Cil.CurrentLoc.get () in + let is_new = not (History.mem t) in + let change (w, r, b) = + LocSet.add current_loc w, r, Base.SetLattice.join b bases + in + let create _ = LocSet.singleton current_loc, LocSet.empty, bases in + ignore (History.memo ~change create t); + is_new && is_current t (* Registers a read only if the current location is not that of the origin. *) let register_read bases t = if not (is_unknown t || is_current t) then - let change (w, r, b) = w, r+1, Base.SetLattice.join b bases in - ignore (History.memo ~change (fun _ -> 0, 1, bases) t) + let current_loc = Cil.CurrentLoc.get () in + let change (w, r, b) = + w, LocSet.add current_loc r, Base.SetLattice.join b bases + in + let create _ = LocSet.empty, LocSet.singleton current_loc, bases in + ignore (History.memo ~change create t) (* Returns the list of recorded origins, sorted by number of reads. Origins with no reads are filtered. *) let get_history () = let list = List.of_seq (History.to_seq ()) in - let list = List.filter (fun (_origin, (_, r, _)) -> r > 0) list in + let count (origin, (w, r, bases)) = + if LocSet.is_empty r + then None + else Some (origin, (LocSet.cardinal w, LocSet.cardinal r, bases)) + in + let list = List.filter_map count list in let cmp (origin1, (_, r1, _)) (origin2, (_, r2, _)) = let r = r2 - r1 in if r <> 0 then r else compare origin1 origin2 @@ -185,12 +204,13 @@ let pretty_origin fmt origin = let pretty_history fmt = let list = get_history () in + let plural count = if count = 1 then "" else "s" in let pp_origin fmt (origin, (w, r, bases)) = let bases = Base.SetLattice.filter (fun b -> not (Base.is_null b)) bases in Format.fprintf fmt - "@[<hov 2>%a@ (read %i times, propagated %i times)@ \ + "@[<hov 2>%a@ (read in %i statement%s, propagated through %i statement%s)@ \ garbled mix of &%a@]" - pretty_origin origin r w Base.SetLattice.pretty bases + pretty_origin origin r (plural r) w (plural w) Base.SetLattice.pretty bases in if list <> [] then Format.fprintf fmt diff --git a/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle b/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle index ae50bf359dc8ec7fdd730f6d2635af6d25ce7453..cf45c0419b9b6fccad75b7f3d378f92617627862 100644 --- a/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle +++ b/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle @@ -16,7 +16,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: exceptional.i:5: arithmetic operation on addresses - (read 3 times, propagated 3 times) garbled mix of &{i} + (read in 2 statements, propagated through 2 statements) + garbled mix of &{i} [eva:summary] ====== ANALYSIS SUMMARY ====== ---------------------------------------------------------------------------- 2 functions analyzed (out of 2): 100% coverage. diff --git a/src/plugins/variadic/tests/defined/oracle/sum_with_unspecified_sequence.res.oracle b/src/plugins/variadic/tests/defined/oracle/sum_with_unspecified_sequence.res.oracle index 0597fca78db0c2d14ac7825ecfcc7ffbaa0c75f8..6efec9870ea80f65d22584419bd259c372760eae 100644 --- a/src/plugins/variadic/tests/defined/oracle/sum_with_unspecified_sequence.res.oracle +++ b/src/plugins/variadic/tests/defined/oracle/sum_with_unspecified_sequence.res.oracle @@ -25,7 +25,7 @@ (tmp from vararg) [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: - Initial state (read 12 times, propagated 6 times) + Initial state (read in 3 statements, propagated through 3 statements) garbled mix of &{S_0_S___va_params; S_1_S___va_params} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function sum: diff --git a/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle index 2db3d36303765a91e701f6147e9efaacfb3e789d..bf20a0b88dbf2b4ea2db4fe6c0430c05e4c3cef9 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle @@ -29,7 +29,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: printf_garbled_mix.c:6: arithmetic operation on addresses - (read 2 times, propagated 3 times) garbled mix of &{a} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{a} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: a[0] ∈ {1} diff --git a/tests/builtins/oracle/alloc.0.res.oracle b/tests/builtins/oracle/alloc.0.res.oracle index 684b949a466e6344892b87d74be20242abcbd010..54ebc9370407aa50dfdd282b12401f88086ce3a4 100644 --- a/tests/builtins/oracle/alloc.0.res.oracle +++ b/tests/builtins/oracle/alloc.0.res.oracle @@ -67,7 +67,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: alloc.c:26: arithmetic operation on addresses - (read 3 times, propagated 1 times) garbled mix of &{__malloc_main_l25} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{__malloc_main_l25} [eva] alloc.c:18: assertion 'Eva,mem_access' got final status invalid. [eva] alloc.c:19: assertion 'Eva,mem_access' got final status invalid. [eva] alloc.c:20: assertion 'Eva,mem_access' got final status invalid. diff --git a/tests/builtins/oracle/alloc.1.res.oracle b/tests/builtins/oracle/alloc.1.res.oracle index 3ce9953a7b83089a4d07f17bbecd883f451dca85..9d78cea78ca65f7bb53f13c7d32484b97ff680e7 100644 --- a/tests/builtins/oracle/alloc.1.res.oracle +++ b/tests/builtins/oracle/alloc.1.res.oracle @@ -33,7 +33,7 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: alloc.c:51: arithmetic operation on addresses - (read 2 times, propagated 1 times) + (read in 1 statement, propagated through 1 statement) garbled mix of &{__malloc_main_abs_l50} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main_abs: diff --git a/tests/builtins/oracle/imprecise-malloc-free.res.oracle b/tests/builtins/oracle/imprecise-malloc-free.res.oracle index 4cd01a4b78eb93961e52f4939f1736ed257095bb..12f3b1ea66b34ad3c965c436a9268a36cba10676 100644 --- a/tests/builtins/oracle/imprecise-malloc-free.res.oracle +++ b/tests/builtins/oracle/imprecise-malloc-free.res.oracle @@ -67,7 +67,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: imprecise-malloc-free.c:13: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{size2} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{size2} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: __fc_heap_status ∈ [--..--] diff --git a/tests/builtins/oracle/imprecise.res.oracle b/tests/builtins/oracle/imprecise.res.oracle index d5857d6a3780f56d151fe939579bfa1bfc81ef4d..9c3b0de6adf1e40daacaf0ac128c6b426c165ecf 100644 --- a/tests/builtins/oracle/imprecise.res.oracle +++ b/tests/builtins/oracle/imprecise.res.oracle @@ -267,7 +267,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: imprecise.c:19: arithmetic operation on addresses - (read 3 times, propagated 1 times) garbled mix of &{j; k} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{j; k} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function cast_address: p ∈ {{ &x }} @@ -815,7 +816,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: imprecise.c:19: arithmetic operation on addresses - (read 3 times, propagated 1 times) garbled mix of &{j; k} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{j; k} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function cast_address: p ∈ {{ &x }} diff --git a/tests/builtins/oracle/strchr.res.oracle b/tests/builtins/oracle/strchr.res.oracle index e1298461c038a1977a5d897d8e9a7a897efa1975..249e874dac1c5ca3971640c3baf12d3db698de8b 100644 --- a/tests/builtins/oracle/strchr.res.oracle +++ b/tests/builtins/oracle/strchr.res.oracle @@ -675,7 +675,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: strchr.c:541: arithmetic operation on addresses - (read 1 times, propagated 3 times) garbled mix of &{x} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{x} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function init_array_nondet: from ∈ {-1} diff --git a/tests/float/oracle/nonlin.0.res.oracle b/tests/float/oracle/nonlin.0.res.oracle index 043c52aa669533e1deb16aecb97093e67d3ede6e..f1e3762e46998e127a7fa8f744e42cd1eac9675b 100644 --- a/tests/float/oracle/nonlin.0.res.oracle +++ b/tests/float/oracle/nonlin.0.res.oracle @@ -287,7 +287,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: nonlin.c:98: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{x_0} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.1.res.oracle b/tests/float/oracle/nonlin.1.res.oracle index b69461ed024bb293807c22fcf863c634a5df7ae1..244530720993a3a7e052fc2c7c6f87e33eac1545 100644 --- a/tests/float/oracle/nonlin.1.res.oracle +++ b/tests/float/oracle/nonlin.1.res.oracle @@ -314,7 +314,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: nonlin.c:98: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{x_0} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.2.res.oracle b/tests/float/oracle/nonlin.2.res.oracle index 05b14b3983b595fd05c1a39dcc9fb51cac2aebcb..c34017d84d4a9ae84d71a2e2f54072c4703619fd 100644 --- a/tests/float/oracle/nonlin.2.res.oracle +++ b/tests/float/oracle/nonlin.2.res.oracle @@ -288,7 +288,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: nonlin.c:98: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{x_0} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.3.res.oracle b/tests/float/oracle/nonlin.3.res.oracle index 24ccbef205c1cd4e1a182e9eb30eebea036393c0..d23a6174a0cadc609bb5457dd506babb182eb65d 100644 --- a/tests/float/oracle/nonlin.3.res.oracle +++ b/tests/float/oracle/nonlin.3.res.oracle @@ -287,7 +287,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: nonlin.c:98: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{x_0} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.4.res.oracle b/tests/float/oracle/nonlin.4.res.oracle index a0f41891c242df0ead1a4ee73efaea7f01404844..20a680fb4f8c999495bd8c39d38b551737bbc1a4 100644 --- a/tests/float/oracle/nonlin.4.res.oracle +++ b/tests/float/oracle/nonlin.4.res.oracle @@ -314,7 +314,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: nonlin.c:98: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{x_0} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.5.res.oracle b/tests/float/oracle/nonlin.5.res.oracle index 25cd26ba1ee0c29e381e99198b125dd655c37124..5a90665f5e4c99e945c480c7c69d501d54c561e8 100644 --- a/tests/float/oracle/nonlin.5.res.oracle +++ b/tests/float/oracle/nonlin.5.res.oracle @@ -288,7 +288,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: nonlin.c:98: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{x_0} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/libc/oracle/spawn_h.res.oracle b/tests/libc/oracle/spawn_h.res.oracle index 08866e9f1aa7e5bba94b7b62fabfa540d82d32a4..45ebf20af8220b7e3871dddd1592c92f74c840d9 100644 --- a/tests/libc/oracle/spawn_h.res.oracle +++ b/tests/libc/oracle/spawn_h.res.oracle @@ -255,7 +255,7 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: spawn_h.c:36: assigns clause on addresses - (read 20 times, propagated 13 times) + (read in 3 statements, propagated through 2 statements) garbled mix of &{S_argv; S_0_S_argv; S_1_S_argv} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: diff --git a/tests/value/oracle/arith_pointer.res.oracle b/tests/value/oracle/arith_pointer.res.oracle index 2261d0849e3e6080bb275a5c6d6ea2a23ef5ef62..7ec5a5c6c38480782aa2243b7810ec1df378e6de 100644 --- a/tests/value/oracle/arith_pointer.res.oracle +++ b/tests/value/oracle/arith_pointer.res.oracle @@ -45,7 +45,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: arith_pointer.c:54: arithmetic operation on addresses - (read 2 times, propagated 2 times) garbled mix of &{x} + (read in 2 statements, propagated through 2 statements) + garbled mix of &{x} [eva] arith_pointer.c:30: assertion 'Eva,differing_blocks' got final status invalid. [eva] ====== VALUES COMPUTED ====== @@ -158,13 +159,17 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: arith_pointer.c:54: arithmetic operation on addresses - (read 2 times, propagated 2 times) garbled mix of &{x} + (read in 2 statements, propagated through 2 statements) + garbled mix of &{x} arith_pointer.c:30: arithmetic operation on addresses - (read 1 times, propagated 1 times) garbled mix of &{x; y} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{x; y} arith_pointer.c:49: arithmetic operation on addresses - (read 1 times, propagated 1 times) garbled mix of &{x; y} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{x; y} arith_pointer.c:51: arithmetic operation on addresses - (read 1 times, propagated 1 times) garbled mix of &{x; y} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{x; y} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main1: t[0..1] ∈ {-3} diff --git a/tests/value/oracle/backward_add_ptr.res.oracle b/tests/value/oracle/backward_add_ptr.res.oracle index 35d0fce388bc2f9a9d8e16c79392d358cc71385b..5765f51b99eb38cec763b3dabfe0d0427511271c 100644 --- a/tests/value/oracle/backward_add_ptr.res.oracle +++ b/tests/value/oracle/backward_add_ptr.res.oracle @@ -151,7 +151,8 @@ [eva:garbled-mix:summary] Warning: Origins of garbled mix generated during analysis: backward_add_ptr.c:68: arithmetic operation on addresses - (read 81 times, propagated 20 times) garbled mix of &{a; b; a; b; c} + (read in 30 statements, propagated through 11 statements) + garbled mix of &{a; b; a; b; c} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function gm: __retres ∈ diff --git a/tests/value/oracle/behaviors1.res.oracle b/tests/value/oracle/behaviors1.res.oracle index 6266ee5cf357f02688368950dbcf890d81a35c02..4a3b708b7a274c94b8096f7e7b49d188c44eeca7 100644 --- a/tests/value/oracle/behaviors1.res.oracle +++ b/tests/value/oracle/behaviors1.res.oracle @@ -449,9 +449,11 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: behaviors1.i:473: assigns clause on addresses - (read 1 times, propagated 3 times) garbled mix of &{a} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{a} behaviors1.i:474: assigns clause on addresses - (read 1 times, propagated 3 times) garbled mix of &{b} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{b} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function test_123_comp_2345_comp_disj: a ∈ [--..--] diff --git a/tests/value/oracle/bitfield.res.oracle b/tests/value/oracle/bitfield.res.oracle index cae0f2d2936a0ef67c6846b8e569f6073fa67bb2..13d02bf5face0862115370d911deb7b4db158327 100644 --- a/tests/value/oracle/bitfield.res.oracle +++ b/tests/value/oracle/bitfield.res.oracle @@ -210,7 +210,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: bitfield.i:70: misaligned read of addresses - (read 5 times, propagated 7 times) garbled mix of &{b; ee} + (read in 2 statements, propagated through 2 statements) + garbled mix of &{b; ee} [eva] bitfield.i:102: assertion 'Eva,initialization' got final status invalid. [scope:rm_asserts] removing 1 assertion(s) [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/bitwise_pointer.0.res.oracle b/tests/value/oracle/bitwise_pointer.0.res.oracle index 6b52884383aab14b10f97928c0c5f0ad1b923ba5..dbae1b4234accb4758e5190334400a33a901082b 100644 --- a/tests/value/oracle/bitwise_pointer.0.res.oracle +++ b/tests/value/oracle/bitwise_pointer.0.res.oracle @@ -46,9 +46,11 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: bitwise_pointer.i:18: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{t} + (read in 1 statement, propagated through 1 statement) garbled mix of & + {t} bitwise_pointer.i:22: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{t1} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{t1} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: t[0] ∈ {0; 5} diff --git a/tests/value/oracle/bitwise_pointer.1.res.oracle b/tests/value/oracle/bitwise_pointer.1.res.oracle index 6b52884383aab14b10f97928c0c5f0ad1b923ba5..dbae1b4234accb4758e5190334400a33a901082b 100644 --- a/tests/value/oracle/bitwise_pointer.1.res.oracle +++ b/tests/value/oracle/bitwise_pointer.1.res.oracle @@ -46,9 +46,11 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: bitwise_pointer.i:18: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{t} + (read in 1 statement, propagated through 1 statement) garbled mix of & + {t} bitwise_pointer.i:22: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{t1} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{t1} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: t[0] ∈ {0; 5} diff --git a/tests/value/oracle/context_free.res.oracle b/tests/value/oracle/context_free.res.oracle index ba68025f931ff6945455604a0f240ca29897ba3a..e96cce61b327150eae4318bcbefb5745363e0883 100644 --- a/tests/value/oracle/context_free.res.oracle +++ b/tests/value/oracle/context_free.res.oracle @@ -92,7 +92,7 @@ [eva] Done for function f [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: - Initial state (read 9 times, propagated 5 times) + Initial state (read in 7 statements, propagated through 5 statements) garbled mix of &{WELL_uu; S_p_svoid; S_qvoid; S_0_S_vvv; S_vv} [eva] context_free.i:62: assertion 'Eva,function_pointer' got final status invalid. diff --git a/tests/value/oracle/degeneration2.res.oracle b/tests/value/oracle/degeneration2.res.oracle index e792578b81a6454041457f7b7d52776de01325ce..eff8a7e0599a4ab260d119c5ea8ba5392688487c 100644 --- a/tests/value/oracle/degeneration2.res.oracle +++ b/tests/value/oracle/degeneration2.res.oracle @@ -26,7 +26,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: degeneration2.i:14: arithmetic operation on addresses - (read 6 times, propagated 1 times) garbled mix of &{B; C; D; E} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{B; C; D; E} [eva] degeneration2.i:25: assertion 'Eva,initialization' got final status invalid. [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/empty_struct.6.res.oracle b/tests/value/oracle/empty_struct.6.res.oracle index cf2ce4f7e5017fc89087bc192e005d7dec7f2189..e21bc00db4f202fb511055995dbfdbd9fb54324d 100644 --- a/tests/value/oracle/empty_struct.6.res.oracle +++ b/tests/value/oracle/empty_struct.6.res.oracle @@ -24,7 +24,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: empty_struct.c:99: assigns clause on addresses - (read 2 times, propagated 3 times) garbled mix of &{gs} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{gs} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main4: r ∈ diff --git a/tests/value/oracle/gauges.res.oracle b/tests/value/oracle/gauges.res.oracle index 71ec205b2f39796fa24f19f480c7b8a685727be1..d95843418224f140e4cdbaa4cac2e80ba3d80fcc 100644 --- a/tests/value/oracle/gauges.res.oracle +++ b/tests/value/oracle/gauges.res.oracle @@ -719,7 +719,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: gauges.c:188: arithmetic operation on addresses - (read 14 times, propagated 12 times) garbled mix of &{x; y} + (read in 2 statements, propagated through 2 statements) + garbled mix of &{x; y} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main0: i ∈ {1; 162} diff --git a/tests/value/oracle/imprecise_invalid_write.res.oracle b/tests/value/oracle/imprecise_invalid_write.res.oracle index 49172ffd8d93700972e082185b7f3d691c1be222..7dabe5398d5293a332b7025fb2e6e1cc19738130 100644 --- a/tests/value/oracle/imprecise_invalid_write.res.oracle +++ b/tests/value/oracle/imprecise_invalid_write.res.oracle @@ -48,9 +48,11 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: imprecise_invalid_write.i:9: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{main1} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{main1} imprecise_invalid_write.i:16: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{"abc"} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{"abc"} [eva] imprecise_invalid_write.i:5: assertion 'Eva,mem_access' got final status invalid. [eva] imprecise_invalid_write.i:10: diff --git a/tests/value/oracle/initialized.res.oracle b/tests/value/oracle/initialized.res.oracle index 150e3f1824268b9374592e59ea74da1ccc0c4429..6834f774e5734624b7a988ea43353c3c49baf858 100644 --- a/tests/value/oracle/initialized.res.oracle +++ b/tests/value/oracle/initialized.res.oracle @@ -234,7 +234,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: initialized.c:50: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{b4} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{b4} [eva] initialized.c:93: assertion 'Eva,initialization' got final status invalid. [eva] initialized.c:104: assertion 'Eva,initialization' got final status invalid. diff --git a/tests/value/oracle/leaf.res.oracle b/tests/value/oracle/leaf.res.oracle index 865b2bc8486622735e111a273c8a8300c3b277a9..3541ebf53544e46e6e73c83478c87b6b09fde88a 100644 --- a/tests/value/oracle/leaf.res.oracle +++ b/tests/value/oracle/leaf.res.oracle @@ -143,9 +143,11 @@ [eva] Done for function main [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: - leaf.i:55: assigns clause on addresses (read 10 times, propagated 2 times) + leaf.i:55: assigns clause on addresses + (read in 4 statements, propagated through 1 statement) garbled mix of &{pg} - leaf.i:50: assigns clause on addresses (read 4 times, propagated 2 times) + leaf.i:50: assigns clause on addresses + (read in 2 statements, propagated through 1 statement) garbled mix of &{g} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: diff --git a/tests/value/oracle/leaf2.res.oracle b/tests/value/oracle/leaf2.res.oracle index c03b05b96d49fc64e90e969fc0d3b0d84c0cd8fd..e648be006534144eeb94b6f672788b77498caeb6 100644 --- a/tests/value/oracle/leaf2.res.oracle +++ b/tests/value/oracle/leaf2.res.oracle @@ -24,7 +24,8 @@ [eva] Done for function main [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: - leaf2.i:6: assigns clause on addresses (read 4 times, propagated 4 times) + leaf2.i:6: assigns clause on addresses + (read in 2 statements, propagated through 2 statements) garbled mix of &{I} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: diff --git a/tests/value/oracle/library.res.oracle b/tests/value/oracle/library.res.oracle index 992d56c788e072721596736c0b2e43b90e331267..c5f6d20ff9c2d3815ffca02f192480d99153e54e 100644 --- a/tests/value/oracle/library.res.oracle +++ b/tests/value/oracle/library.res.oracle @@ -138,11 +138,14 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: library.i:31: assigns clause on addresses - (read 2 times, propagated 2 times) garbled mix of &{S_gpi} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{S_gpi} library.i:41: assigns clause on addresses - (read 2 times, propagated 2 times) garbled mix of &{S_gpf} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{S_gpf} library.i:45: assigns clause on addresses - (read 2 times, propagated 2 times) garbled mix of &{S_gpd} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{S_gpd} [eva] library.i:38: assertion 'Eva,function_pointer' got final status invalid. [eva] library.i:39: assertion 'Eva,function_pointer' got final status invalid. [eva] library.i:40: assertion 'Eva,function_pointer' got final status invalid. diff --git a/tests/value/oracle/logic.res.oracle b/tests/value/oracle/logic.res.oracle index 77e8322bc7e61c9497bbd89beac20ade5492cac4..b5b12200a01466149a7326b939807eabbf565fae 100644 --- a/tests/value/oracle/logic.res.oracle +++ b/tests/value/oracle/logic.res.oracle @@ -565,7 +565,8 @@ [eva] Done for function main [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: - logic.c:411: assigns clause on addresses (read 1 times, propagated 2 times) + logic.c:411: assigns clause on addresses + (read in 1 statement, propagated through 1 statement) garbled mix of &{x_0} [eva] logic.c:530: Cannot evaluate range bound __fc_len - 1 diff --git a/tests/value/oracle/multidim-relations.res.oracle b/tests/value/oracle/multidim-relations.res.oracle index aa7000e536dc44b7605a8c08d43d786b47352cd0..cd237bf6d63ad8d97d880ab1c2dcf0e24f33da60 100644 --- a/tests/value/oracle/multidim-relations.res.oracle +++ b/tests/value/oracle/multidim-relations.res.oracle @@ -50,10 +50,12 @@ [eva] Done for function main [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: - multidim-relations.c:18: imprecise merge of addresses - (read 7 times, propagated 0 times) garbled mix of &{g; h} multidim-relations.c:19: imprecise merge of addresses - (read 4 times, propagated 0 times) garbled mix of &{g; h} + (read in 2 statements, propagated through 0 statements) + garbled mix of &{g; h} + multidim-relations.c:18: imprecise merge of addresses + (read in 1 statement, propagated through 0 statements) + garbled mix of &{g; h} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function init_array: t[0]{.kind; .[bits 8 to 31]#} ∈ {0; 1} repeated %8 diff --git a/tests/value/oracle/origin.0.res.oracle b/tests/value/oracle/origin.0.res.oracle index e93befd14488bc1553a17bdd7359fd79315a146c..bc60be868660210ec493270d4716865054f9f9df 100644 --- a/tests/value/oracle/origin.0.res.oracle +++ b/tests/value/oracle/origin.0.res.oracle @@ -200,17 +200,23 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: origin.i:19: arithmetic operation on addresses - (read 3 times, propagated 2 times) garbled mix of &{ta2; tta2} + (read in 2 statements, propagated through 2 statements) + garbled mix of &{ta2; tta2} origin.i:54: misaligned read of addresses - (read 3 times, propagated 1 times) garbled mix of &{a; b} + (read in 2 statements, propagated through 1 statement) + garbled mix of &{a; b} origin.i:14: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{ta1} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{ta1} origin.i:25: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{ta3} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{ta3} origin.i:100: assigns clause on addresses - (read 2 times, propagated 2 times) garbled mix of &{S_gpp} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{S_gpp} origin.i:48: misaligned read of addresses - (read 2 times, propagated 1 times) garbled mix of &{a; b} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{a; b} [eva] origin.i:75: assertion 'Eva,initialization' got final status invalid. [scope:rm_asserts] removing 2 assertion(s) [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/origin.1.res.oracle b/tests/value/oracle/origin.1.res.oracle index f9c473570c4ed0ed91b4da38d351db512e6bfbf2..bef2267d64184d02139971b67c3dcc6651d2c0af 100644 --- a/tests/value/oracle/origin.1.res.oracle +++ b/tests/value/oracle/origin.1.res.oracle @@ -77,7 +77,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: origin.i:126: misaligned read of addresses - (read 1 times, propagated 2 times) garbled mix of &{x; y} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{x; y} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function origin: r.c ∈ [--..--] diff --git a/tests/value/oracle/period.res.oracle b/tests/value/oracle/period.res.oracle index 3f7cc6e99f50ff733afed56c83c82de26a529a36..8af4494c8c1d3f713fd45c9f8d299c4a2593d442 100644 --- a/tests/value/oracle/period.res.oracle +++ b/tests/value/oracle/period.res.oracle @@ -97,9 +97,11 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: period.c:51: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{g} + (read in 1 statement, propagated through 1 statement) garbled mix of & + {g} period.c:53: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{g} + (read in 1 statement, propagated through 1 statement) garbled mix of & + {g} [scope:rm_asserts] removing 1 assertion(s) [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: diff --git a/tests/value/oracle/recursion.0.res.oracle b/tests/value/oracle/recursion.0.res.oracle index cb1dcc89815e6b7e167b7eb1a22971dcd955bda1..4d4e89341922ddd4819b2f31160b9ad12ce81287 100644 --- a/tests/value/oracle/recursion.0.res.oracle +++ b/tests/value/oracle/recursion.0.res.oracle @@ -242,7 +242,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: recursion.c:311: assigns clause on addresses - (read 2 times, propagated 1 times) garbled mix of &{x; a; \copy<x>[1]} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{x; a; \copy<x>[1]} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function alarm: res ∈ [10..2147483647] diff --git a/tests/value/oracle/reduce_by_valid.res.oracle b/tests/value/oracle/reduce_by_valid.res.oracle index 826021d49273bf80cfb3f3e201cd0fa2cc3507dc..1779ee8c716488fdc0f783559066655c68cc23c9 100644 --- a/tests/value/oracle/reduce_by_valid.res.oracle +++ b/tests/value/oracle/reduce_by_valid.res.oracle @@ -182,7 +182,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: reduce_by_valid.i:272: assigns clause on addresses - (read 3 times, propagated 2 times) garbled mix of &{x; a} + (read in 2 statements, propagated through 1 statement) + garbled mix of &{x; a} [scope:rm_asserts] removing 12 assertion(s) [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main1: diff --git a/tests/value/oracle/shift.0.res.oracle b/tests/value/oracle/shift.0.res.oracle index 38218467e1391e87dd16adb079beca1594aa854e..cc754900f30ff9ebba2cfc2c8437efd4426d83df 100644 --- a/tests/value/oracle/shift.0.res.oracle +++ b/tests/value/oracle/shift.0.res.oracle @@ -64,7 +64,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: shift.i:52: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{t} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{t} [eva] shift.i:35: assertion 'Eva,shift' got final status invalid. [eva] shift.i:36: assertion 'Eva,shift' got final status invalid. [eva] shift.i:40: assertion 'Eva,shift' got final status invalid. diff --git a/tests/value/oracle/shift.1.res.oracle b/tests/value/oracle/shift.1.res.oracle index cf118f59bd758f7162dbcf25ddf0b285625eaa62..dc736953be952500c3174511fa4a395fbc6976f0 100644 --- a/tests/value/oracle/shift.1.res.oracle +++ b/tests/value/oracle/shift.1.res.oracle @@ -54,7 +54,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: shift.i:52: arithmetic operation on addresses - (read 1 times, propagated 2 times) garbled mix of &{t} + (read in 1 statement, propagated through 2 statements) + garbled mix of &{t} [eva] shift.i:35: assertion 'Eva,shift' got final status invalid. [eva] shift.i:36: assertion 'Eva,shift' got final status invalid. [eva] shift.i:40: assertion 'Eva,shift' got final status invalid. diff --git a/tests/value/oracle/sizeof.res.oracle b/tests/value/oracle/sizeof.res.oracle index aa6a36837e24f63aa3c3f9e895594f1743c78872..0a581e91501e2a1f8d61655272280b98ff4fc6f7 100644 --- a/tests/value/oracle/sizeof.res.oracle +++ b/tests/value/oracle/sizeof.res.oracle @@ -49,7 +49,8 @@ [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: sizeof.i:32: arithmetic operation on addresses - (read 2 times, propagated 1 times) garbled mix of &{s1} + (read in 1 statement, propagated through 1 statement) + garbled mix of &{s1} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function f: diff --git a/tests/value/oracle/va_list2.0.res.oracle b/tests/value/oracle/va_list2.0.res.oracle index 2b3a7d3e4a6bb9f37aa3a50764303572b75e81ae..c957328829e25d2ac3d408b799ef17760dce973c 100644 --- a/tests/value/oracle/va_list2.0.res.oracle +++ b/tests/value/oracle/va_list2.0.res.oracle @@ -38,7 +38,7 @@ [eva] Done for function main [eva:garbled-mix:summary] Origins of garbled mix generated during analysis: - Initial state (read 24 times, propagated 10 times) + Initial state (read in 6 statements, propagated through 4 statements) garbled mix of &{S_0_S___va_params; S_1_S___va_params} [scope:rm_asserts] removing 1 assertion(s) [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle_apron/backward_add_ptr.res.oracle b/tests/value/oracle_apron/backward_add_ptr.res.oracle index 04bf26aed2a3d76fb3e5f7a704d63846dbaab183..bc9d0f3f184d66a2ea9dbd7b881c4e8e5ecb5ee2 100644 --- a/tests/value/oracle_apron/backward_add_ptr.res.oracle +++ b/tests/value/oracle_apron/backward_add_ptr.res.oracle @@ -26,7 +26,3 @@ > Called from backward_add_ptr.c:160. > [eva] Recording results for gm > [eva] Done for function gm -154c166 -< (read 81 times, propagated 20 times) garbled mix of &{a; b; a; b; c} ---- -> (read 81 times, propagated 28 times) garbled mix of &{a; b; a; b; c} diff --git a/tests/value/oracle_apron/gauges.res.oracle b/tests/value/oracle_apron/gauges.res.oracle index fd4e06736e9b52c1034bcc0c5c67a5abef42fe89..269040aa1abf3c62135d5285883779f7cc3cb198 100644 --- a/tests/value/oracle_apron/gauges.res.oracle +++ b/tests/value/oracle_apron/gauges.res.oracle @@ -50,15 +50,15 @@ < Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647] --- > Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..598] -784c771 +785c772 < n ∈ [-2147483648..99] --- > n ∈ [-2147483547..99] -787c774 +788c775 < i ∈ [0..2147483647] --- > i ∈ [10..2147483647] -823c810 +824c811 < i ∈ [0..2147483647] --- > i ∈ [0..21] diff --git a/tests/value/oracle_equality/addition.res.oracle b/tests/value/oracle_equality/addition.res.oracle index 5a0da48b045e46f9201b4058cfc0010bef15e6cc..cfbd463cdffd29c09f0e53feed5f870850e73e5c 100644 --- a/tests/value/oracle_equality/addition.res.oracle +++ b/tests/value/oracle_equality/addition.res.oracle @@ -5,32 +5,34 @@ < signed overflow. assert (int)*((char *)(&q1)) + 2 ≤ 2147483647; < [eva:garbled-mix:write] addition.i:61: Warning: < Assigning imprecise value to p14 because of misaligned read of addresses. -141c135,139 +141c135,140 < [scope:rm_asserts] removing 9 assertion(s) --- > [eva:garbled-mix:summary] Warning: > Origins of garbled mix generated during analysis: > addition.i:59: misaligned read of addresses -> (read 1 times, propagated 2 times) garbled mix of &{p1} +> (read in 1 statement, propagated through 2 statements) +> garbled mix of &{p1} > [scope:rm_asserts] removing 7 assertion(s) -165c163 +165c164 < {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:61}) }} --- > {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:59}) }} -359,362d356 +359,362d357 < [eva:alarm] addition.i:61: Warning: < signed overflow. assert -2147483648 ≤ (int)*((char *)(&q1)) + 2; < [eva:alarm] addition.i:61: Warning: < signed overflow. assert (int)*((char *)(&q1)) + 2 ≤ 2147483647; -368c362,366 +368c363,368 < [scope:rm_asserts] removing 9 assertion(s) --- > [eva:garbled-mix:summary] Warning: > Origins of garbled mix generated during analysis: > addition.i:59: misaligned read of addresses -> (read 1 times, propagated 2 times) garbled mix of &{p1} +> (read in 1 statement, propagated through 2 statements) +> garbled mix of &{p1} > [scope:rm_asserts] removing 7 assertion(s) -393c391 +393c393 < {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:61}) }} --- > {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:59}) }} diff --git a/tests/value/oracle_equality/arith_pointer.res.oracle b/tests/value/oracle_equality/arith_pointer.res.oracle index e8d12d536a5435ae4567640619599a9d10b2e3ab..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/tests/value/oracle_equality/arith_pointer.res.oracle +++ b/tests/value/oracle_equality/arith_pointer.res.oracle @@ -1,8 +0,0 @@ -48c48 -< (read 2 times, propagated 2 times) garbled mix of &{x} ---- -> (read 3 times, propagated 2 times) garbled mix of &{x} -161c161 -< (read 2 times, propagated 2 times) garbled mix of &{x} ---- -> (read 3 times, propagated 2 times) garbled mix of &{x} diff --git a/tests/value/oracle_equality/backward_add_ptr.res.oracle b/tests/value/oracle_equality/backward_add_ptr.res.oracle index 1b7ff53fec0b3b7db573cd6fc15fa8834ae8b229..c3c184d82b0109006098a4a095481c737e2e8a92 100644 --- a/tests/value/oracle_equality/backward_add_ptr.res.oracle +++ b/tests/value/oracle_equality/backward_add_ptr.res.oracle @@ -23,7 +23,3 @@ > Called from backward_add_ptr.c:160. > [eva] Recording results for gm > [eva] Done for function gm -154c163 -< (read 81 times, propagated 20 times) garbled mix of &{a; b; a; b; c} ---- -> (read 86 times, propagated 26 times) garbled mix of &{a; b; a; b; c} diff --git a/tests/value/oracle_equality/bitfield.res.oracle b/tests/value/oracle_equality/bitfield.res.oracle index d8fa5662f8993ea18aae6c740069a2253c9740e2..b7f02aef9d9234ff8d70cd49e40316983a4aed8c 100644 --- a/tests/value/oracle_equality/bitfield.res.oracle +++ b/tests/value/oracle_equality/bitfield.res.oracle @@ -2,7 +2,3 @@ > [eva] bitfield.i:71: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} -213c216 -< (read 5 times, propagated 7 times) garbled mix of &{b; ee} ---- -> (read 6 times, propagated 7 times) garbled mix of &{b; ee} diff --git a/tests/value/oracle_equality/bitwise_pointer.0.res.oracle b/tests/value/oracle_equality/bitwise_pointer.0.res.oracle index 688b8e07ea0d94b9b3a3e8c2d26e5ff3a5a8f9e6..b7ca0efaf344bdb30005a1c54cccd54bd7fab3cf 100644 --- a/tests/value/oracle_equality/bitwise_pointer.0.res.oracle +++ b/tests/value/oracle_equality/bitwise_pointer.0.res.oracle @@ -1,8 +1,8 @@ -66c66 +68c68 < x ∈ [0..9] --- > x ∈ {5} -79c79 +81c81 < x1 ∈ [0..9] --- > x1 ∈ {5} diff --git a/tests/value/oracle_equality/bitwise_pointer.1.res.oracle b/tests/value/oracle_equality/bitwise_pointer.1.res.oracle index 688b8e07ea0d94b9b3a3e8c2d26e5ff3a5a8f9e6..b7ca0efaf344bdb30005a1c54cccd54bd7fab3cf 100644 --- a/tests/value/oracle_equality/bitwise_pointer.1.res.oracle +++ b/tests/value/oracle_equality/bitwise_pointer.1.res.oracle @@ -1,8 +1,8 @@ -66c66 +68c68 < x ∈ [0..9] --- > x ∈ {5} -79c79 +81c81 < x1 ∈ [0..9] --- > x1 ∈ {5} diff --git a/tests/value/oracle_equality/context_free.res.oracle b/tests/value/oracle_equality/context_free.res.oracle index edf1bab4ce0f782dcf8cacb94936e89dd482ddbb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/tests/value/oracle_equality/context_free.res.oracle +++ b/tests/value/oracle_equality/context_free.res.oracle @@ -1,4 +0,0 @@ -95c95 -< Initial state (read 9 times, propagated 5 times) ---- -> Initial state (read 11 times, propagated 5 times) diff --git a/tests/value/oracle_equality/empty_struct.6.res.oracle b/tests/value/oracle_equality/empty_struct.6.res.oracle index a5fdd6006f01b6a3c868dca147b94ac07083a5ae..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/tests/value/oracle_equality/empty_struct.6.res.oracle +++ b/tests/value/oracle_equality/empty_struct.6.res.oracle @@ -1,4 +0,0 @@ -27c27 -< (read 2 times, propagated 3 times) garbled mix of &{gs} ---- -> (read 3 times, propagated 3 times) garbled mix of &{gs} diff --git a/tests/value/oracle_equality/gauges.res.oracle b/tests/value/oracle_equality/gauges.res.oracle index e5c21b0c6810b8e5a50ea0dfc412e8a08fef0766..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/tests/value/oracle_equality/gauges.res.oracle +++ b/tests/value/oracle_equality/gauges.res.oracle @@ -1,4 +0,0 @@ -722c722 -< (read 14 times, propagated 12 times) garbled mix of &{x; y} ---- -> (read 20 times, propagated 12 times) garbled mix of &{x; y} diff --git a/tests/value/oracle_equality/origin.0.res.oracle b/tests/value/oracle_equality/origin.0.res.oracle index a12449e315cdcbf000a4adcafec176f044d53066..9c85d7de249081d860e467bd51f94c8c1a757050 100644 --- a/tests/value/oracle_equality/origin.0.res.oracle +++ b/tests/value/oracle_equality/origin.0.res.oracle @@ -1,9 +1,9 @@ -246,247c246 +252,253c252 < pm2[bits 0 to 15]# ∈ {{ (? *)&a }}%32, bits 16 to 31 < [bits 16 to 31]# ∈ {{ (? *)&b }}%32, bits 0 to 15 --- > pm2 ∈ {{ &a + {-4} ; &b + {-4} }} -281,282c280 +287,288c286 < pm2[bits 0 to 15]# ∈ {{ (? *)&a }}%32, bits 16 to 31 < [bits 16 to 31]# ∈ {{ (? *)&b }}%32, bits 0 to 15 --- diff --git a/tests/value/oracle_equality/period.res.oracle b/tests/value/oracle_equality/period.res.oracle index 657c13125d1d186b4e4b752cd479fb28e639a08b..54f6fc44b0d4c8cf5be9e39d50eb248bd42f4eeb 100644 --- a/tests/value/oracle_equality/period.res.oracle +++ b/tests/value/oracle_equality/period.res.oracle @@ -4,7 +4,8 @@ < [eva:garbled-mix:write] period.c:53: < Assigning imprecise value to p because of arithmetic operation on addresses. < [eva:alarm] period.c:54: Warning: out of bounds read. assert \valid_read(p); -101,103d95 +102,105d96 < period.c:53: arithmetic operation on addresses -< (read 2 times, propagated 1 times) garbled mix of &{g} +< (read in 1 statement, propagated through 1 statement) garbled mix of & +< {g} < [scope:rm_asserts] removing 1 assertion(s) diff --git a/tests/value/oracle_equality/va_list2.0.res.oracle b/tests/value/oracle_equality/va_list2.0.res.oracle index 2907faaa45d2cec4207024217ed66cf9699b41f8..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/tests/value/oracle_equality/va_list2.0.res.oracle +++ b/tests/value/oracle_equality/va_list2.0.res.oracle @@ -1,4 +0,0 @@ -41c41 -< Initial state (read 24 times, propagated 10 times) ---- -> Initial state (read 28 times, propagated 10 times) diff --git a/tests/value/oracle_gauges/bitfield.res.oracle b/tests/value/oracle_gauges/bitfield.res.oracle index 619b7b85a2389c7c7816e21f58c56851130dcdb0..6bff95a7cf72715f871fc23bdef8b3a865305b41 100644 --- a/tests/value/oracle_gauges/bitfield.res.oracle +++ b/tests/value/oracle_gauges/bitfield.res.oracle @@ -14,7 +14,3 @@ > [eva] bitfield.i:73: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} -213c228 -< (read 5 times, propagated 7 times) garbled mix of &{b; ee} ---- -> (read 9 times, propagated 11 times) garbled mix of &{b; ee} diff --git a/tests/value/oracle_gauges/gauges.res.oracle b/tests/value/oracle_gauges/gauges.res.oracle index ded703ccb200de2e23ff4878b4831319fce4b033..0b8798617c76f22cfd19fe7d5427e6a2613da3f0 100644 --- a/tests/value/oracle_gauges/gauges.res.oracle +++ b/tests/value/oracle_gauges/gauges.res.oracle @@ -263,52 +263,48 @@ 714a835,836 > [eva] gauges.c:343: Call to builtin malloc > [eva] gauges.c:343: Call to builtin malloc -722c844 -< (read 14 times, propagated 12 times) garbled mix of &{x; y} ---- -> (read 12 times, propagated 11 times) garbled mix of &{x; y} -771,772c893,894 +772,773c894,895 < A ∈ {{ &A + [0..--],0%4 }} < B ∈ {{ &B + [0..--],0%4 }} --- > A ∈ {{ &A + [0..36],0%4 }} > B ∈ {{ &B + [0..36],0%4 }} -784c906 +785c907 < n ∈ [-2147483648..99] --- > n ∈ [-2147483547..99] -790c912 +791c913 < i ∈ {45; 46; 47; 48; 49; 50; 51} --- > i ∈ {45; 46; 47; 48} -796c918 +797c919 < i ∈ {-59; -58; -57; -56; -55; -54; -53} --- > i ∈ {-58; -57; -56; -55; -54; -53} -816c938 +817c939 < p ∈ {{ &u + [0..--],0%4 }} --- > p ∈ {{ &u + [0..400],0%4 }} -818c940 +819c941 < k ∈ [0..2147483647] --- > k ∈ [0..390] -823c945 +824c946 < i ∈ [0..2147483647] --- > i ∈ [0..21] -834,835c956,958 +835,836c957,959 < [1..9] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED < p ∈ {{ &y + [4..40],0%4 }} --- > [1..6] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED > [7..9] ∈ UNINITIALIZED > p ∈ {{ &y[7] }} -846c969 +847c970 < p ∈ {{ &T + [--..396],0%4 }} --- > p ∈ {{ &T + [-4..396],0%4 }} -851,855c974 +852,856c975 < n ∈ {0} < arr[0] ∈ {0} < [1] ∈ {-1} @@ -316,19 +312,19 @@ < p ∈ {{ &arr + [12..--],0%4 }} --- > NON TERMINATING FUNCTION -958a1078 +959a1079 > [from] Non-terminating function main8_aux (no dependencies) -981,982c1101,1102 +982,983c1102,1103 < p FROM p; A; B; n; p; A[0..9]; B[0..9] (and SELF) < \result FROM p; A; B; n; p; A[0..9]; B[0..9] --- > p FROM p; A; B; n; p; A[0..8]; B[0..8] (and SELF) > \result FROM p; A; B; n; p; A[0..8]; B[0..8] -1026c1146 +1027c1147 < NO EFFECTS --- > NON TERMINATING - NO EFFECTS -1060c1180 +1061c1181 < p; A[0..9]; B[0..9] --- > p; A[0..8]; B[0..8] diff --git a/tests/value/oracle_gauges/va_list2.0.res.oracle b/tests/value/oracle_gauges/va_list2.0.res.oracle index 70defd3cb22fe585b3ac25d1cbc4a5509d95456b..80fc106a63e0bc09c6ccf89c3f85ddb2cca12acd 100644 --- a/tests/value/oracle_gauges/va_list2.0.res.oracle +++ b/tests/value/oracle_gauges/va_list2.0.res.oracle @@ -11,7 +11,3 @@ > [eva] va_list2.c:21: > Frama_C_show_each_f: > {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }} -41c53 -< Initial state (read 24 times, propagated 10 times) ---- -> Initial state (read 36 times, propagated 16 times) diff --git a/tests/value/oracle_octagon/bitfield.res.oracle b/tests/value/oracle_octagon/bitfield.res.oracle index d8fa5662f8993ea18aae6c740069a2253c9740e2..b7f02aef9d9234ff8d70cd49e40316983a4aed8c 100644 --- a/tests/value/oracle_octagon/bitfield.res.oracle +++ b/tests/value/oracle_octagon/bitfield.res.oracle @@ -2,7 +2,3 @@ > [eva] bitfield.i:71: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} -213c216 -< (read 5 times, propagated 7 times) garbled mix of &{b; ee} ---- -> (read 6 times, propagated 7 times) garbled mix of &{b; ee} diff --git a/tests/value/oracle_octagon/gauges.res.oracle b/tests/value/oracle_octagon/gauges.res.oracle index acb804905135c794b100d1f8ccc6e91305a36faa..70f56d52bf5421e510c5b536b8cd02aecb1f2cbd 100644 --- a/tests/value/oracle_octagon/gauges.res.oracle +++ b/tests/value/oracle_octagon/gauges.res.oracle @@ -7,11 +7,11 @@ < [eva] gauges.c:218: Frama_C_show_each: < [eva:alarm] gauges.c:220: Warning: < signed overflow. assert -2147483648 ≤ n - 1; -773c766 +774c767 < numNonZero ∈ [-2147483648..8] --- > numNonZero ∈ {-1} -784c777 +785c778 < n ∈ [-2147483648..99] --- > n ∈ {-1} diff --git a/tests/value/oracle_symblocs/bitwise_pointer.0.res.oracle b/tests/value/oracle_symblocs/bitwise_pointer.0.res.oracle index 688b8e07ea0d94b9b3a3e8c2d26e5ff3a5a8f9e6..b7ca0efaf344bdb30005a1c54cccd54bd7fab3cf 100644 --- a/tests/value/oracle_symblocs/bitwise_pointer.0.res.oracle +++ b/tests/value/oracle_symblocs/bitwise_pointer.0.res.oracle @@ -1,8 +1,8 @@ -66c66 +68c68 < x ∈ [0..9] --- > x ∈ {5} -79c79 +81c81 < x1 ∈ [0..9] --- > x1 ∈ {5} diff --git a/tests/value/oracle_symblocs/bitwise_pointer.1.res.oracle b/tests/value/oracle_symblocs/bitwise_pointer.1.res.oracle index 688b8e07ea0d94b9b3a3e8c2d26e5ff3a5a8f9e6..b7ca0efaf344bdb30005a1c54cccd54bd7fab3cf 100644 --- a/tests/value/oracle_symblocs/bitwise_pointer.1.res.oracle +++ b/tests/value/oracle_symblocs/bitwise_pointer.1.res.oracle @@ -1,8 +1,8 @@ -66c66 +68c68 < x ∈ [0..9] --- > x ∈ {5} -79c79 +81c81 < x1 ∈ [0..9] --- > x1 ∈ {5}