diff --git a/src/kernel_services/abstract_interp/lmap.ml b/src/kernel_services/abstract_interp/lmap.ml index 8d37feb25148d6698b36cb3a35f10a51a3d1da9c..e09243ea9c2a696788354c95601053fd8a269e08 100644 --- a/src/kernel_services/abstract_interp/lmap.ml +++ b/src/kernel_services/abstract_interp/lmap.ml @@ -187,7 +187,7 @@ struct let offm' = match size with | Int_Base.Top -> - let orig = Origin.current Origin.Arith in + let orig = Origin.current Origin.Misalign_write in Offsetmap.update_imprecise_everywhere ~validity orig v offm | Int_Base.Value size -> assert (Int.ge size Int.zero); diff --git a/src/kernel_services/abstract_interp/offsetmap.ml b/src/kernel_services/abstract_interp/offsetmap.ml index 2585c74c98c1599bb6c55475e6cd695b76ca1ffd..08fa4d98a93a955bd17f37776e332b8e9bca9a84 100644 --- a/src/kernel_services/abstract_interp/offsetmap.ml +++ b/src/kernel_services/abstract_interp/offsetmap.ml @@ -1849,7 +1849,7 @@ module Make (V : Offsetmap_lattice_with_isotropy.S) = struct let origin = match origin with | Some origin -> origin - | None -> Origin.(current Misalign_read) + | None -> Origin.(current Misalign_write) in let v = V.topify_with_origin origin v in (* TODO: check *) @@ -1872,7 +1872,7 @@ module Make (V : Offsetmap_lattice_with_isotropy.S) = struct let v = if Int.is_zero (period %~ size) then v else - let origin = Origin.(current Misalign_read) in + let origin = Origin.(current Misalign_write) in let v' = V.topify_with_origin origin v in if not (V.equal v v') then Lattice_messages.emit_approximation msg_emitter @@ -2803,14 +2803,14 @@ module Make_bitwise(V: sig in `Value (Int_Intervals.fold aux_itv itvs m) with Error_Top -> - update_imprecise_everywhere ~validity Origin.unknown v m + update_imprecise_everywhere ~validity Origin.(current Misalign_write) v m let add_binding_ival ~validity ~exact offsets ~size v m = match size with | Int_Base.Value size -> update ~validity ~exact ~offsets ~size v m | Int_Base.Top -> - update_imprecise_everywhere ~validity Origin.unknown v m + update_imprecise_everywhere ~validity Origin.(current Misalign_write) v m let fold_itv ?direction ~entire f itv m acc = let f' itv (v, _, _) acc = f itv v acc in diff --git a/src/kernel_services/abstract_interp/origin.ml b/src/kernel_services/abstract_interp/origin.ml index c1520c9d3baaac926b2c658815c19c86866c3729..422fc364d378f93c2cfa452560972958ea929cd2 100644 --- a/src/kernel_services/abstract_interp/origin.ml +++ b/src/kernel_services/abstract_interp/origin.ml @@ -22,18 +22,21 @@ type kind = | Misalign_read + | Misalign_write | Leaf | Merge | Arith let kind_rank = function | Misalign_read -> 0 - | Leaf -> 1 - | Merge -> 2 - | Arith -> 3 + | Misalign_write -> 1 + | Leaf -> 2 + | Merge -> 3 + | Arith -> 4 let kind_label = function - | Misalign_read -> "Misaligned" + | Misalign_read -> "Misaligned read" + | Misalign_write -> "Misaligned write" | Leaf -> "Library function" | Merge -> "Merge" | Arith -> "Arithmetic" @@ -102,6 +105,7 @@ let descr = function | Origin { kind } -> match kind with | Misalign_read -> "misaligned read of addresses" + | Misalign_write -> "misaligned write of addresses" | Leaf -> "assigns clause on addresses" | Merge -> "imprecise merge of addresses" | Arith -> "arithmetic operation on addresses" diff --git a/src/kernel_services/abstract_interp/origin.mli b/src/kernel_services/abstract_interp/origin.mli index 506c020b29df8a5c42bcb7ca7e8a780c285c0be4..a5d1ce6566cad15266083eafe041f6de6f5bf328 100644 --- a/src/kernel_services/abstract_interp/origin.mli +++ b/src/kernel_services/abstract_interp/origin.mli @@ -28,6 +28,7 @@ include Datatype.S type kind = | Misalign_read (* Misaligned read of addresses *) + | Misalign_write (* Misaligned write of addresses *) | Leaf (* Interpretation of assigns clause *) | Merge (* Imprecise merge of addresses *) | Arith (* Arithmetic operation on addresses *) diff --git a/tests/builtins/oracle/alloc.1.res.oracle b/tests/builtins/oracle/alloc.1.res.oracle index 77bfca7bbb74e166fbde9bb07f945257115aeb0c..3ce9953a7b83089a4d07f17bbecd883f451dca85 100644 --- a/tests/builtins/oracle/alloc.1.res.oracle +++ b/tests/builtins/oracle/alloc.1.res.oracle @@ -39,7 +39,7 @@ [eva:final-states] Values at end of function main_abs: NULL[rbits 2048 to 4103] ∈ {{ garbled mix of &{__malloc_main_abs_l50} - (origin: Misaligned {alloc.c:54}) }} + (origin: Misaligned write {alloc.c:54}) }} __fc_heap_status ∈ [--..--] q ∈ {{ &__malloc_main_abs_l50 }} r ∈ {{ NULL + [256..509] ; &__malloc_main_abs_l50 }} diff --git a/tests/builtins/oracle/imprecise.res.oracle b/tests/builtins/oracle/imprecise.res.oracle index 1ad813d673e5c5dc6276df115ec2a8b78663aed0..d5857d6a3780f56d151fe939579bfa1bfc81ef4d 100644 --- a/tests/builtins/oracle/imprecise.res.oracle +++ b/tests/builtins/oracle/imprecise.res.oracle @@ -273,7 +273,7 @@ p ∈ {{ &x }} c1 ∈ {{ (char)&x }} c2# ∈ {{ (? *)&x }}%32, bits 0 to 7 - c3 ∈ {{ garbled mix of &{x} (origin: Misaligned {imprecise.c:68}) }} + c3 ∈ {{ garbled mix of &{x} (origin: Misaligned read {imprecise.c:68}) }} [eva:final-states] Values at end of function garbled_mix_null: NULL[rbits 800 to 1607] ∈ [--..--] or ESCAPINGADDR p_gm_null ∈ [100..197] @@ -317,11 +317,12 @@ vy ∈ {1} or UNINITIALIZED [eva:final-states] Values at end of function write_garbled: NULL[rbits 800 to 1607] ∈ - {{ garbled mix of &{j; k} (origin: Misaligned {imprecise.c:22}) }} + {{ garbled mix of &{j; k} + (origin: Misaligned write {imprecise.c:22}) }} i ∈ {1} j ∈ {{ NULL + [1..197] ; (int)&j ; &k + [0..16] }} k[0..4] ∈ - {{ garbled mix of &{j; k} (origin: Misaligned {imprecise.c:22}) }} + {{ garbled mix of &{j; k} (origin: Misaligned write {imprecise.c:22}) }} p ∈ {{ NULL + [100..197] ; &j ; &k + [0..16] }} [eva:final-states] Values at end of function main: NULL[rbits 800 to 1607] ∈ [--..--] or ESCAPINGADDR @@ -820,7 +821,7 @@ p ∈ {{ &x }} c1 ∈ {{ (char)&x }} c2# ∈ {{ (? *)&x }}%32, bits 0 to 7 - c3 ∈ {{ garbled mix of &{x} (origin: Misaligned {imprecise.c:68}) }} + c3 ∈ {{ garbled mix of &{x} (origin: Misaligned read {imprecise.c:68}) }} [eva:final-states] Values at end of function garbled_mix_null: NULL[rbits 800 to 1607] ∈ [--..--] or ESCAPINGADDR p_gm_null ∈ [100..197] @@ -861,11 +862,12 @@ vy ∈ {1} or UNINITIALIZED [eva:final-states] Values at end of function write_garbled: NULL[rbits 800 to 1607] ∈ - {{ garbled mix of &{j; k} (origin: Misaligned {imprecise.c:22}) }} + {{ garbled mix of &{j; k} + (origin: Misaligned write {imprecise.c:22}) }} i ∈ {1} j ∈ {{ NULL + [1..197] ; (int)&j ; &k + [0..16] }} k[0..4] ∈ - {{ garbled mix of &{j; k} (origin: Misaligned {imprecise.c:22}) }} + {{ garbled mix of &{j; k} (origin: Misaligned write {imprecise.c:22}) }} p ∈ {{ NULL + [100..197] ; &j ; &k + [0..16] }} [eva:final-states] Values at end of function main: NULL[rbits 800 to 1607] ∈ [--..--] or ESCAPINGADDR diff --git a/tests/builtins/oracle/memcpy.res.oracle b/tests/builtins/oracle/memcpy.res.oracle index 47fb30443a6614c1dabe8e0aada9ca7fb56d4183..6fe4eedb72486a27ebdc2582a036bea66c8573cd 100644 --- a/tests/builtins/oracle/memcpy.res.oracle +++ b/tests/builtins/oracle/memcpy.res.oracle @@ -576,7 +576,7 @@ v2.x ∈ {5} .y ∈ {7} {.p; .padding[0..23]} ∈ {0} - v3 ∈ {{ garbled mix of &{v1} (origin: Misaligned {memcpy.c:87}) }} + v3 ∈ {{ garbled mix of &{v1} (origin: Misaligned read {memcpy.c:87}) }} v4.x ∈ [--..--] .y ∈ {{ (int)&t }} {.p; .padding[0..23]} ∈ [--..--] diff --git a/tests/builtins/oracle/memset.res.oracle b/tests/builtins/oracle/memset.res.oracle index d5217c400ffa1354b17d7e7da04b7d37f3f7ff11..a6115d361b6b54206f7f038fd794ce01df915472 100644 --- a/tests/builtins/oracle/memset.res.oracle +++ b/tests/builtins/oracle/memset.res.oracle @@ -113,7 +113,8 @@ t3[0..9] ∈ {0} [10..99]# ∈ {0; 17} repeated %8 t4[0..99] ∈ {0} - t5[0..99] ∈ {{ garbled mix of &{t1} (origin: Misaligned {memset.c:41}) }} + t5[0..99] ∈ + {{ garbled mix of &{t1} (origin: Misaligned read {memset.c:41}) }} t6[0..9] ∈ {0} [10..13]# ∈ {0; 34} repeated %8 [14..99] ∈ {0} @@ -168,7 +169,8 @@ t3[0..9] ∈ {0} [10..99]# ∈ {0; 17} repeated %8 t4[0..99] ∈ {0} - t5[0..99] ∈ {{ garbled mix of &{t1} (origin: Misaligned {memset.c:41}) }} + t5[0..99] ∈ + {{ garbled mix of &{t1} (origin: Misaligned read {memset.c:41}) }} t6[0..9] ∈ {0} [10..13]# ∈ {0; 34} repeated %8 [14..99] ∈ {0} diff --git a/tests/value/oracle/addition.res.oracle b/tests/value/oracle/addition.res.oracle index 1c7f73326fa47bb6b3b920c19f8baa452dde6daa..394936b8b9df05a61b4935cb721c0e66380efa36 100644 --- a/tests/value/oracle/addition.res.oracle +++ b/tests/value/oracle/addition.res.oracle @@ -159,8 +159,10 @@ p10 ∈ {{ garbled mix of &{p1} (origin: Arithmetic {addition.i:52}) }} p11 ∈ [-2147483648..0],0%4 p12 ∈ {{ garbled mix of &{p1; p2} (origin: Arithmetic {addition.i:56}) }} - p13 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:59}) }} - p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:61}) }} + p13 ∈ + {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:59}) }} + p14 ∈ + {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:61}) }} p15 ∈ {-1} p16 ∈ {2949122} p17 ∈ {-2147483648; 0} @@ -385,8 +387,10 @@ p10 ∈ {{ garbled mix of &{p1} (origin: Arithmetic {addition.i:52}) }} p11 ∈ [-2147483648..0],0%4 p12 ∈ {{ garbled mix of &{p1; p2} (origin: Arithmetic {addition.i:56}) }} - p13 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:59}) }} - p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:61}) }} + p13 ∈ + {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:59}) }} + p14 ∈ + {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:61}) }} p15 ∈ {-1} p16 ∈ {2; 2949122; 3014658} p17 ∈ {-2147483648; 0} diff --git a/tests/value/oracle/assigns_from.res.oracle b/tests/value/oracle/assigns_from.res.oracle index 55b41ae8a07167bd77b0ccba4956bae60544cb17..be60cecebede8380f7df749aecdd254fe0bcc968 100644 --- a/tests/value/oracle/assigns_from.res.oracle +++ b/tests/value/oracle/assigns_from.res.oracle @@ -373,17 +373,17 @@ base_a ∈ {17} a_0.addr ∈ {{ garbled mix of &{base_a; base_b} - (origin: Misaligned {assigns_from.i:215}) }} + (origin: Misaligned read {assigns_from.i:215}) }} .i ∈ {{ garbled mix of &{base_a; base_b} - (origin: Misaligned {assigns_from.i:215}) }} or UNINITIALIZED + (origin: Misaligned read {assigns_from.i:215}) }} or UNINITIALIZED base_b ∈ {11} b.addr ∈ {{ garbled mix of &{base_a; base_b} - (origin: Misaligned {assigns_from.i:215}) }} + (origin: Misaligned read {assigns_from.i:215}) }} .i ∈ {{ garbled mix of &{base_a; base_b} - (origin: Misaligned {assigns_from.i:215}) }} or UNINITIALIZED + (origin: Misaligned read {assigns_from.i:215}) }} or UNINITIALIZED [eva:final-states] Values at end of function main2: a[0..2] ∈ {0} [3] ∈ {2} diff --git a/tests/value/oracle/bitfield.res.oracle b/tests/value/oracle/bitfield.res.oracle index 3751001cbba46ff03930675e67332c3686863ee2..cae0f2d2936a0ef67c6846b8e569f6073fa67bb2 100644 --- a/tests/value/oracle/bitfield.res.oracle +++ b/tests/value/oracle/bitfield.res.oracle @@ -111,25 +111,25 @@ [eva] Done for function leaf [eva] bitfield.i:71: Frama_C_show_each: - {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} + {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} [eva] bitfield.i:73: Frama_C_show_each: - .next ∈ {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} + .next ∈ {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} .bitf ∈ {0} .[bits 65 to 95] ∈ - {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} + {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} [eva] bitfield.i:69: starting to merge loop iterations [eva] computing for function leaf <- imprecise_bts_1671 <- main. Called from bitfield.i:70. [eva] Done for function leaf [eva] bitfield.i:71: Frama_C_show_each: - {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} + {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} [eva:alarm] bitfield.i:72: Warning: out of bounds write. assert \valid(&c->bitf); [eva] bitfield.i:73: Frama_C_show_each: - {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} + {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} [eva:alarm] bitfield.i:74: Warning: out of bounds read. assert \valid_read(&c->next.next); [eva] computing for function leaf <- imprecise_bts_1671 <- main. @@ -187,8 +187,8 @@ G ∈ {1} H ∈ {0} b ∈ {0} - c ∈ {{ garbled mix of &{b; ee} (origin: Misaligned {bitfield.i:70}) }} - ee ∈ {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} + c ∈ {{ garbled mix of &{b; ee} (origin: Misaligned read {bitfield.i:70}) }} + ee ∈ {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} foo ∈ [--..--] y.v0_3 ∈ [--..--] .v4 ∈ {0} @@ -229,8 +229,9 @@ r ∈ {1} [eva:final-states] Values at end of function imprecise_bts_1671: b ∈ {0} - c ∈ {{ garbled mix of &{b; ee} (origin: Misaligned {bitfield.i:70}) }} - ee ∈ {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} + c ∈ + {{ garbled mix of &{b; ee} (origin: Misaligned read {bitfield.i:70}) }} + ee ∈ {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} [eva:final-states] Values at end of function logic: y.v0_3 ∈ [--..--] .v4 ∈ {0} @@ -280,8 +281,9 @@ G ∈ {1} H ∈ {0} b ∈ {0} - c ∈ {{ garbled mix of &{b; ee} (origin: Misaligned {bitfield.i:70}) }} - ee ∈ {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} + c ∈ + {{ garbled mix of &{b; ee} (origin: Misaligned read {bitfield.i:70}) }} + ee ∈ {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} y.v0_3 ∈ [--..--] .v4 ∈ {0} .v5_31 ∈ [--..--] diff --git a/tests/value/oracle/label.res.oracle b/tests/value/oracle/label.res.oracle index 6a5cb87b4b44d709668bdb9cbec106ab20f35a5d..4b44fa1adfa728e27f6f9d97a39125ec045b12c2 100644 --- a/tests/value/oracle/label.res.oracle +++ b/tests/value/oracle/label.res.oracle @@ -22,7 +22,7 @@ a ∈ {{ &d + {4} }} b ∈ {1; 2} i ∈ {4} - p ∈ {{ garbled mix of &{a; b} (origin: Misaligned {label.i:18}) }} + p ∈ {{ garbled mix of &{a; b} (origin: Misaligned read {label.i:18}) }} q ∈ {{ &a }} [from] Computing for function main [from] Done for function main diff --git a/tests/value/oracle/not_ct_array_arg.res.oracle b/tests/value/oracle/not_ct_array_arg.res.oracle index bc4b35bcb5822c058be586eea8fc6709cfdad55d..560745bc9b332a6c91f73d247be11f3fdde05bd8 100644 --- a/tests/value/oracle/not_ct_array_arg.res.oracle +++ b/tests/value/oracle/not_ct_array_arg.res.oracle @@ -35,10 +35,11 @@ tc ∈ {{ NULL ; &S_tc[0] }} S_tc[0..1][0..9] ∈ [--..--] S_tb[bits 0 to 31] ∈ - {{ garbled mix of &{tb} (origin: Misaligned {not_ct_array_arg.i:12}) }} + {{ garbled mix of &{tb} + (origin: Misaligned write {not_ct_array_arg.i:12}) }} [bits 32 to ..] ∈ {{ garbled mix of &{tb} - (origin: Misaligned {not_ct_array_arg.i:12}) }} or UNINITIALIZED + (origin: Misaligned write {not_ct_array_arg.i:12}) }} or UNINITIALIZED ==END OF DUMP== [eva:alarm] not_ct_array_arg.i:14: Warning: out of bounds write. assert \valid(&(*(tc + 1))[1]); @@ -56,10 +57,11 @@ [1][1] ∈ {3} [1][2..9] ∈ [--..--] S_tb[bits 0 to 31] ∈ - {{ garbled mix of &{tb} (origin: Misaligned {not_ct_array_arg.i:12}) }} + {{ garbled mix of &{tb} + (origin: Misaligned write {not_ct_array_arg.i:12}) }} [bits 32 to ..] ∈ {{ garbled mix of &{tb} - (origin: Misaligned {not_ct_array_arg.i:12}) }} or UNINITIALIZED + (origin: Misaligned write {not_ct_array_arg.i:12}) }} or UNINITIALIZED [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== diff --git a/tests/value/oracle/origin.0.res.oracle b/tests/value/oracle/origin.0.res.oracle index a0c837faa9e45d2e9593b57280248b8b6eab5d90..e93befd14488bc1553a17bdd7359fd79315a146c 100644 --- a/tests/value/oracle/origin.0.res.oracle +++ b/tests/value/oracle/origin.0.res.oracle @@ -146,7 +146,7 @@ Assigning imprecise value to qm2 because of misaligned read of addresses. [eva] origin.i:55: Frama_C_show_each: - {{ garbled mix of &{a; b} (origin: Misaligned {origin.i:54}) }} + {{ garbled mix of &{a; b} (origin: Misaligned read {origin.i:54}) }} [eva:alarm] origin.i:56: Warning: out of bounds write. assert \valid(qm2); [eva:alarm] origin.i:56: Warning: pointer downcast. assert (unsigned int)(&a) ≤ 2147483647; @@ -228,9 +228,9 @@ pa2 ∈ {{ garbled mix of &{ta2} (origin: Arithmetic {origin.i:19}) }} qa2 ∈ {{ &ta2 + [0..36] ; &tta2 + [0..36] }} ta2[0..9] ∈ - {{ garbled mix of &{aa2} (origin: Misaligned {origin.i:21}) }} + {{ garbled mix of &{aa2} (origin: Misaligned write {origin.i:21}) }} tta2[0..9] ∈ - {{ garbled mix of &{aa2} (origin: Misaligned {origin.i:21}) }} + {{ garbled mix of &{aa2} (origin: Misaligned write {origin.i:21}) }} [eva:final-states] Values at end of function origin_arithmetic_3: pa3 ∈ {{ &ta3 + [0..36] }} ta3[0..9] ∈ [--..--] @@ -269,10 +269,10 @@ {{ garbled mix of &{b} (origin: Merge {origin.i:106}) }} ta1[0..9] ∈ {0} ta2[0..9] ∈ - {{ garbled mix of &{aa2} (origin: Misaligned {origin.i:21}) }} + {{ garbled mix of &{aa2} (origin: Misaligned write {origin.i:21}) }} ta3[0..9] ∈ [--..--] tta2[0..9] ∈ - {{ garbled mix of &{aa2} (origin: Misaligned {origin.i:21}) }} + {{ garbled mix of &{aa2} (origin: Misaligned write {origin.i:21}) }} l1 ∈ [--..--] l2 ∈ [--..--] l3 ∈ [--..--] diff --git a/tests/value/oracle/origin.1.res.oracle b/tests/value/oracle/origin.1.res.oracle index 4ca39e2f9666e88e958c97026512fbabd8a99cb5..f9c473570c4ed0ed91b4da38d351db512e6bfbf2 100644 --- a/tests/value/oracle/origin.1.res.oracle +++ b/tests/value/oracle/origin.1.res.oracle @@ -83,7 +83,7 @@ r.c ∈ [--..--] .[bits 8 to 15] ∈ UNINITIALIZED .i ∈ [--..--] - .p ∈ {{ garbled mix of &{x} (origin: Misaligned {origin.i:126}) }} + .p ∈ {{ garbled mix of &{x} (origin: Misaligned read {origin.i:126}) }} .t[0][bits 0 to 7] ∈ {{ garbled mix of &{y} (origin: Merge {origin.i:129}) }} .t[0][bits 8 to 15]# ∈ {{ NULL ; (? *)&y }}%32, bits 24 to 31 diff --git a/tests/value/oracle/period.res.oracle b/tests/value/oracle/period.res.oracle index e949e737f124893354288c4ed3865a65d6396b74..3f7cc6e99f50ff733afed56c83c82de26a529a36 100644 --- a/tests/value/oracle/period.res.oracle +++ b/tests/value/oracle/period.res.oracle @@ -103,7 +103,8 @@ [scope:rm_asserts] removing 1 assertion(s) [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: - g[0..9] ∈ {{ garbled mix of &{vg} (origin: Misaligned {period.c:55}) }} + g[0..9] ∈ + {{ garbled mix of &{vg} (origin: Misaligned write {period.c:55}) }} Frama_C_periodic_t_320[0] ∈ {1} [1..3] ∈ {0} [4] ∈ {24} diff --git a/tests/value/oracle_equality/addition.res.oracle b/tests/value/oracle_equality/addition.res.oracle index 4527d4b279a58e63549f59ca9aef3f2765335771..5a0da48b045e46f9201b4058cfc0010bef15e6cc 100644 --- a/tests/value/oracle_equality/addition.res.oracle +++ b/tests/value/oracle_equality/addition.res.oracle @@ -13,16 +13,16 @@ > addition.i:59: misaligned read of addresses > (read 1 times, propagated 2 times) garbled mix of &{p1} > [scope:rm_asserts] removing 7 assertion(s) -163c161 -< p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:61}) }} +165c163 +< {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:61}) }} --- -> p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:59}) }} -357,360d354 +> {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:59}) }} +359,362d356 < [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; -366c360,364 +368c362,366 < [scope:rm_asserts] removing 9 assertion(s) --- > [eva:garbled-mix:summary] Warning: @@ -30,7 +30,7 @@ > addition.i:59: misaligned read of addresses > (read 1 times, propagated 2 times) garbled mix of &{p1} > [scope:rm_asserts] removing 7 assertion(s) -389c387 -< p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:61}) }} +393c391 +< {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:61}) }} --- -> p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:59}) }} +> {{ garbled mix of &{p1} (origin: Misaligned read {addition.i:59}) }} diff --git a/tests/value/oracle_equality/bitfield.res.oracle b/tests/value/oracle_equality/bitfield.res.oracle index cfff35a117cceb9cdbac66aca878b2a19735854b..d8fa5662f8993ea18aae6c740069a2253c9740e2 100644 --- a/tests/value/oracle_equality/bitfield.res.oracle +++ b/tests/value/oracle_equality/bitfield.res.oracle @@ -1,7 +1,7 @@ 137a138,140 > [eva] bitfield.i:71: > Frama_C_show_each: -> {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} +> {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} 213c216 < (read 5 times, propagated 7 times) garbled mix of &{b; ee} --- diff --git a/tests/value/oracle_gauges/bitfield.res.oracle b/tests/value/oracle_gauges/bitfield.res.oracle index e84586701d0d94c7fe0b6eeef82d99fb3522fe2c..619b7b85a2389c7c7816e21f58c56851130dcdb0 100644 --- a/tests/value/oracle_gauges/bitfield.res.oracle +++ b/tests/value/oracle_gauges/bitfield.res.oracle @@ -1,19 +1,19 @@ 137a138,152 > [eva] bitfield.i:71: > Frama_C_show_each: -> {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} +> {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} > [eva] bitfield.i:73: > Frama_C_show_each: -> {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} +> {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} > [eva] computing for function leaf <- imprecise_bts_1671 <- main. > Called from bitfield.i:70. > [eva] Done for function leaf > [eva] bitfield.i:71: > Frama_C_show_each: -> {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} +> {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} > [eva] bitfield.i:73: > Frama_C_show_each: -> {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} +> {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} 213c228 < (read 5 times, propagated 7 times) garbled mix of &{b; ee} --- diff --git a/tests/value/oracle_octagon/bitfield.res.oracle b/tests/value/oracle_octagon/bitfield.res.oracle index cfff35a117cceb9cdbac66aca878b2a19735854b..d8fa5662f8993ea18aae6c740069a2253c9740e2 100644 --- a/tests/value/oracle_octagon/bitfield.res.oracle +++ b/tests/value/oracle_octagon/bitfield.res.oracle @@ -1,7 +1,7 @@ 137a138,140 > [eva] bitfield.i:71: > Frama_C_show_each: -> {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} +> {{ garbled mix of &{b} (origin: Misaligned read {bitfield.i:70}) }} 213c216 < (read 5 times, propagated 7 times) garbled mix of &{b; ee} ---