diff --git a/src/kernel_services/abstract_interp/origin.ml b/src/kernel_services/abstract_interp/origin.ml index fb933d6a9ec59f05f1e0053a2635a198095286ac..43c783b2d54858680544ee538a36f4d8b63d72ac 100644 --- a/src/kernel_services/abstract_interp/origin.ml +++ b/src/kernel_services/abstract_interp/origin.ml @@ -94,6 +94,16 @@ let pretty_as_reason fmt org = if not (is_unknown org) then Format.fprintf fmt " because of %a" pretty org +let descr = function + | Unknown -> "unknown origin" + | Well -> "well in initial state" + | Origin { kind } -> + match kind with + | Misalign_read -> "misaligned read of addresses" + | Leaf -> "assigns clause on addresses" + | Merge -> "imprecise merge of addresses" + | Arith -> "arithmetic operation on addresses" + let join t1 t2 = if t1 == t2 then t1 else match t1, t2 with @@ -121,9 +131,10 @@ module History = State_builder.Hashtbl (Hashtbl) (History_Data) (History_Info) let clear () = Id.reset (); History.clear () let register_write bases t = - if not (is_unknown t) then + if is_unknown t then false else let change (w, r, b) = w+1, r, Base.SetLattice.join b bases in - ignore (History.memo ~change (fun _ -> 1, 0, bases) t) + let count, _, _ = History.memo ~change (fun _ -> 1, 0, bases) t in + count < 2 && is_current t let register_read bases t = if not (is_unknown t || is_current t) then @@ -144,15 +155,9 @@ let pretty_origin fmt origin = match origin with | Unknown -> Format.fprintf fmt "Unknown origin" | Well -> Format.fprintf fmt "Initial state" - | Origin { kind; loc; } -> - let kind = - match kind with - | Misalign_read -> "misaligned read of addresses" - | Leaf -> "interpretation of assigns clause" - | Merge -> "imprecise merge of addresses" - | Arith -> "arithmetic operation on addresses" - in - Format.fprintf fmt "%a: %s" Cil_datatype.Location.pretty loc kind + | Origin { loc } -> + Format.fprintf fmt "%a: %s" + Cil_datatype.Location.pretty loc (descr origin) let pretty_history fmt = let list = get_history () in diff --git a/src/kernel_services/abstract_interp/origin.mli b/src/kernel_services/abstract_interp/origin.mli index 8aa75691e3705745cad49fc25fe57bfe4ac9bda9..5cf9f85698374cc848950d7abd8af4813e72fd49 100644 --- a/src/kernel_services/abstract_interp/origin.mli +++ b/src/kernel_services/abstract_interp/origin.mli @@ -47,12 +47,17 @@ val pretty_as_reason: Format.formatter -> t -> unit (** Pretty-print [because of <origin>] if the origin is not {!Unknown}, or nothing otherwise *) +val descr: t -> string + val join: t -> t -> t val is_included: t -> t -> bool (** Records the write of an imprecise value of the given bases, - with the given origin. *) -val register_write: Base.SetLattice.t -> t -> unit + with the given origin. + Returns [true] if the given origin has never been written before, + and if it is related to the current location — in which case a warning + should be emitted. *) +val register_write: Base.SetLattice.t -> t -> bool (** Records the read of an imprecise value of the given bases, with the given origin. *) diff --git a/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle b/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle index 7cfe3e4ea5cf0dc4afe4fc3594f5fc056a737886..47e5fcec857fbf529aa684071565deb0082297fb 100644 --- a/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle +++ b/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle @@ -1,14 +1,8 @@ [kernel] Parsing exceptional.i (no preprocessing) [eva] Analyzing a complete application starting at main [eva:garbled-mix:write] exceptional.i:5: - Assigning imprecise value to __retres. - The imprecision originates from Arithmetic {exceptional.i:5} -[eva:garbled-mix:write] exceptional.i:5: - Assigning imprecise value to \result<gm>. - The imprecision originates from Arithmetic {exceptional.i:5} -[eva:garbled-mix:write] exceptional.i:16: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {exceptional.i:5} + Assigning imprecise value to __retres + because of arithmetic operation on addresses. [eva:alarm] exceptional.i:17: Warning: accessing uninitialized left-value. assert \initialized(p); [eva:alarm] exceptional.i:17: Warning: diff --git a/src/plugins/eva/domains/cvalue/cvalue_transfer.ml b/src/plugins/eva/domains/cvalue/cvalue_transfer.ml index 3f979f64eee7dcf4b8b564eef4827775fde806ff..08f2e3d48be45da60c0ae9459b7afc2b39e005a6 100644 --- a/src/plugins/eva/domains/cvalue/cvalue_transfer.ml +++ b/src/plugins/eva/domains/cvalue/cvalue_transfer.ml @@ -36,47 +36,31 @@ let unbottomize = function (* Garbled mix warnings *) (* ---------------------------------------------------------------------- *) -(* When computing the result of [lv = exp], warn if the evaluation of [exp] - results in an imprecision. [loc_lv] is the location pointed to by [lv]. - [exp_val] is the part of the evaluation of [exp] that is imprecise. *) -let warn_right_exp_imprecision lv loc_lv exp_val = - match exp_val with - | Locations.Location_Bytes.Top (topparam, origin) -> - Origin.register_write topparam origin; - Self.warning ~wkey:Self.wkey_garbled_mix_write ~once:true ~current:true - "@[<v>@[Assigning imprecise value to %a%t.@]%a%t@]" - Printer.pp_lval lv - (fun fmt -> match lv with - | (Mem _, _) -> - Format.fprintf fmt "@ (pointing to %a)" - (Locations.pretty_english ~prefix:false) loc_lv - | (Var _, _) -> ()) - (fun fmt org -> - if not (Origin.is_unknown origin) then - Format.fprintf fmt - "@ @[The imprecision@ originates@ from@ %a@]" - Origin.pretty org) - origin - Eva_utils.pp_callstack - | Locations.Location_Bytes.Map _ -> () - -let offsetmap_contains_imprecision offs = - let exception Got_imprecise of Cvalue.V.t in - try - Cvalue.V_Offsetmap.iter_on_values - (fun v -> - match Cvalue.V_Or_Uninitialized.get_v v with - | Locations.Location_Bytes.Map _ -> () - | Locations.Location_Bytes.Top _ as v -> raise (Got_imprecise v) - ) offs; - None - with Got_imprecise v -> Some v +let warn_imprecise_value lval value = + match value with + | Locations.Location_Bytes.Top (bases, origin) -> + if Origin.register_write bases origin then + Self.warning ~wkey:Self.wkey_garbled_mix_write ~once:true ~current:true + "@[Assigning imprecise value to %a@ because of %s.@]%t" + Printer.pp_lval lval (Origin.descr origin) + Eva_utils.pp_callstack + | _ -> () + +let warn_imprecise_location loc = + match loc.Locations.loc with + | Locations.Location_Bits.Top (Base.SetLattice.Top, orig) -> + Self.fatal ~current:true + "@[writing at a completely unknown address@ because of %s.@]@\nAborting." + (Origin.descr orig) + | _ -> () -let warn_right_imprecision lval loc offsetmap = - match offsetmap_contains_imprecision offsetmap with - | Some v -> warn_right_exp_imprecision lval loc v - | None -> () +let warn_imprecise_write lval loc value = + warn_imprecise_location loc; + warn_imprecise_value lval value +let warn_imprecise_offsm_write lval offsm = + let warn v = warn_imprecise_value lval (Cvalue.V_Or_Uninitialized.get_v v) in + Cvalue.V_Offsetmap.iter_on_values warn offsm (* ---------------------------------------------------------------------- *) (* Assumptions *) @@ -136,26 +120,15 @@ let update valuation t = let write_abstract_value state (lval, loc, typ) assigned_value = let {v; initialized; escaping} = assigned_value in let value = unbottomize v in - warn_right_exp_imprecision lval loc value; let value = if Cil.typeHasQualifier "volatile" typ then Cvalue_forward.make_volatile value else value in - match loc.Locations.loc with - | Locations.Location_Bits.Top (Base.SetLattice.Top, orig) -> - Self.result - "State before degeneration:@\n======%a@\n=======" - Cvalue.Model.pretty state; - Self.fatal ~current:true - "writing at a completely unknown address@[%a@].@\nAborting." - Origin.pretty_as_reason orig - | _ -> - let exact = Locations.cardinal_zero_or_one loc in - let value = - Cvalue.V_Or_Uninitialized.make ~initialized ~escaping value in - (* let value = Cvalue.V_Or_Uninitialized.initialized value in *) - add_indeterminate_binding ~exact state loc value + warn_imprecise_write lval loc value; + let exact = Locations.cardinal_zero_or_one loc in + let value = Cvalue.V_Or_Uninitialized.make ~initialized ~escaping value in + Cvalue.Model.add_indeterminate_binding ~exact state loc value; exception Do_assign_imprecise_copy @@ -183,7 +156,7 @@ let copy_one_loc state left_lv right_lv = in if not (Eval_typ.offsetmap_matches_type left_typ offsetmap) then raise Do_assign_imprecise_copy; - warn_right_imprecision left_lval left_loc offsetmap; + warn_imprecise_offsm_write left_lval offsetmap; `Value (paste_offsetmap ~exact:true ~from:offsetmap ~dst_loc:left_loc.Locations.loc ~size state) @@ -243,6 +216,7 @@ let actualize_formals state arguments = let offsm = Cvalue_offsetmap.offsetmap_of_assignment state arg.concrete arg.avalue in + warn_imprecise_offsm_write (Cil.var arg.formal) offsm; Cvalue.Model.add_base (Base.of_varinfo arg.formal) offsm state in List.fold_left treat_one_formal state arguments diff --git a/src/plugins/eva/engine/transfer_specification.ml b/src/plugins/eva/engine/transfer_specification.ml index 8f9c92b08ecbbdee659d82b99ae0d8e0eb8ea08f..eda7c02d067e4e93673eeda97269043ee84ae50f 100644 --- a/src/plugins/eva/engine/transfer_specification.ml +++ b/src/plugins/eva/engine/transfer_specification.ml @@ -314,12 +314,12 @@ module Make begin match cvalue with | Top (bases, origin) -> - Origin.register_write bases origin; - Self.warning ~current:true ~once:true - ~wkey:Self.wkey_garbled_mix_assigns - "The specification of function %a has generated a garbled mix \ - for %a." - Kernel_function.pretty kf pp_assign_clause (Assign, assign) + if Origin.register_write bases origin then + Self.warning ~current:true ~once:true + ~wkey:Self.wkey_garbled_mix_assigns + "@[The specification of function %a@ has generated \ + a garbled mix of addresses@ for %a.@]" + Kernel_function.pretty kf pp_assign_clause (Assign, assign) | _ -> () end in 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 c46681a1dfb4df684a4d7739e3782d316a48a598..d8fbec93f6a55d50d7bd4c804afc9b29b796c593 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 @@ -5,9 +5,6 @@ out of bounds read. assert \valid_read(list); [eva:alarm] sum_with_unspecified_sequence.c:14: Warning: out of bounds read. assert \valid_read((int *)*list); -[eva:garbled-mix:write] sum_with_unspecified_sequence.c:14: - Assigning imprecise value to tmp_unroll_5. - The imprecision originates from Well [eva:alarm] sum_with_unspecified_sequence.c:14: Warning: signed overflow. assert -2147483648 ≤ ret + tmp_unroll_5; @@ -16,25 +13,16 @@ signed overflow. assert ret + tmp_unroll_5 ≤ 2147483647; (tmp_unroll_5 from vararg) -[eva:garbled-mix:write] sum_with_unspecified_sequence.c:14: - Assigning imprecise value to ret. - The imprecision originates from Well [eva:alarm] sum_with_unspecified_sequence.c:14: Warning: out of bounds read. assert \valid_read(list); [eva:alarm] sum_with_unspecified_sequence.c:14: Warning: out of bounds read. assert \valid_read((int *)*list); -[eva:garbled-mix:write] sum_with_unspecified_sequence.c:14: - Assigning imprecise value to tmp. - The imprecision originates from Well [eva:alarm] sum_with_unspecified_sequence.c:14: Warning: signed overflow. assert -2147483648 ≤ ret + tmp; (tmp from vararg) [eva:alarm] sum_with_unspecified_sequence.c:14: Warning: signed overflow. assert ret + tmp ≤ 2147483647; (tmp from vararg) -[eva:garbled-mix:write] sum_with_unspecified_sequence.c:17: - Assigning imprecise value to \result<sum>. - The imprecision originates from Well [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function sum: ret ∈ 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 c669384d558d9e53f391d5d674a38ab006c03d04..55f26985dfe052afb8beee70b695b23c87f304a6 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 @@ -20,8 +20,7 @@ Translating call to printf to a call to the specialized version printf_va_1. [eva] Analyzing a complete application starting at main [eva:garbled-mix:write] printf_garbled_mix.c:6: - Assigning imprecise value to b. - The imprecision originates from Arithmetic {printf_garbled_mix.c:6} + Assigning imprecise value to b because of arithmetic operation on addresses. [eva:alarm] printf_garbled_mix.c:7: Warning: pointer downcast. assert (unsigned long)b ≤ 2147483647; [eva] using specification for function printf_va_1 diff --git a/tests/builtins/oracle/alloc.0.res.oracle b/tests/builtins/oracle/alloc.0.res.oracle index 3ef4276dae84fa303cf368b3375377e8ac2e783b..7ce75e72f2118a378e84e5ca5e3a13f8e7e6ec51 100644 --- a/tests/builtins/oracle/alloc.0.res.oracle +++ b/tests/builtins/oracle/alloc.0.res.oracle @@ -39,8 +39,7 @@ [eva:alarm] alloc.c:26: Warning: signed overflow. assert -((int)q) ≤ 2147483647; [eva:garbled-mix:write] alloc.c:26: - Assigning imprecise value to r. - The imprecision originates from Arithmetic {alloc.c:26} + Assigning imprecise value to r because of arithmetic operation on addresses. [eva:alarm] alloc.c:27: Warning: out of bounds write. assert \valid(r); [eva:alarm] alloc.c:27: Warning: out of bounds read. assert \valid_read(r + 1); [eva] alloc.c:32: Call to builtin malloc diff --git a/tests/builtins/oracle/alloc.1.res.oracle b/tests/builtins/oracle/alloc.1.res.oracle index d2683593c4b609727030a1db6ff6813ea4a0f654..7633c770d7101f16479f5b2848e9463500ce44eb 100644 --- a/tests/builtins/oracle/alloc.1.res.oracle +++ b/tests/builtins/oracle/alloc.1.res.oracle @@ -22,8 +22,7 @@ [eva:alarm] alloc.c:51: Warning: signed overflow. assert -((int)q) ≤ 2147483647; [eva:garbled-mix:write] alloc.c:51: - Assigning imprecise value to r. - The imprecision originates from Arithmetic {alloc.c:51} + Assigning imprecise value to r because of arithmetic operation on addresses. [eva:alarm] alloc.c:54: Warning: out of bounds write. assert \valid(r); [eva:alarm] alloc.c:54: Warning: pointer downcast. assert (unsigned int)r ≤ 2147483647; diff --git a/tests/builtins/oracle/imprecise-malloc-free.res.oracle b/tests/builtins/oracle/imprecise-malloc-free.res.oracle index 2d02014061a0fa9b8a3b45c488f4446d6f17f178..7134efd0323fd61d6cebbd58fa02929b0c856620 100644 --- a/tests/builtins/oracle/imprecise-malloc-free.res.oracle +++ b/tests/builtins/oracle/imprecise-malloc-free.res.oracle @@ -13,10 +13,13 @@ [eva:alarm] imprecise-malloc-free.c:13: Warning: signed overflow. assert i + (int)((int)(&size2) >> 1) ≤ 2147483647; [eva:garbled-mix:write] imprecise-malloc-free.c:13: - Assigning imprecise value to size2. - The imprecision originates from Arithmetic {imprecise-malloc-free.c:13} + Assigning imprecise value to size2 + because of arithmetic operation on addresses. [eva:alarm] imprecise-malloc-free.c:14: Warning: pointer downcast. assert (unsigned int)(&i) ≤ 2147483647; +[eva:garbled-mix:write] imprecise-malloc-free.c:14: + Assigning imprecise value to size + because of arithmetic operation on addresses. [eva] imprecise-malloc-free.c:14: Call to builtin malloc [eva] imprecise-malloc-free.c:14: allocating variable __malloc_main_l14 [eva] imprecise-malloc-free.c:15: Call to builtin malloc @@ -44,12 +47,16 @@ pointer downcast. assert (unsigned int)(r + 3) ≤ 2147483647; [eva:alarm] imprecise-malloc-free.c:25: Warning: pointer downcast. assert (unsigned int)p ≤ 2147483647; +[eva:garbled-mix:write] imprecise-malloc-free.c:25: + Assigning imprecise value to p because of arithmetic operation on addresses. [eva] imprecise-malloc-free.c:25: Call to builtin free [eva:alarm] imprecise-malloc-free.c:25: Warning: function free: precondition 'freeable' got status unknown. [eva:malloc] imprecise-malloc-free.c:25: weak free on bases: {__malloc_main_l14} [eva:alarm] imprecise-malloc-free.c:26: Warning: pointer downcast. assert (unsigned int)r ≤ 2147483647; +[eva:garbled-mix:write] imprecise-malloc-free.c:26: + Assigning imprecise value to p because of arithmetic operation on addresses. [eva] imprecise-malloc-free.c:26: Call to builtin free [eva:alarm] imprecise-malloc-free.c:26: Warning: function free: precondition 'freeable' got status unknown. diff --git a/tests/builtins/oracle/imprecise.res.oracle b/tests/builtins/oracle/imprecise.res.oracle index bc169708e5bc2c84ecf6d7b2538ebbd7611b688d..ec7cb60e6e250de7e3d20234f69876cd67fd2b20 100644 --- a/tests/builtins/oracle/imprecise.res.oracle +++ b/tests/builtins/oracle/imprecise.res.oracle @@ -51,8 +51,7 @@ [eva:alarm] imprecise.c:19: Warning: pointer downcast. assert (unsigned int)(&k) ≤ 2147483647; [eva:garbled-mix:write] imprecise.c:19: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {imprecise.c:19} + Assigning imprecise value to p because of arithmetic operation on addresses. [eva:alarm] imprecise.c:20: Warning: out of bounds write. assert \valid(p); [eva] imprecise.c:21: Frama_C_dump_each: @@ -121,8 +120,7 @@ [eva:alarm] imprecise.c:68: Warning: signed overflow. assert (int)*((char *)(&p)) + 0 ≤ 2147483647; [eva:garbled-mix:write] imprecise.c:68: - Assigning imprecise value to c3. - The imprecision originates from Misaligned {imprecise.c:68} + Assigning imprecise value to c3 because of misaligned read of addresses. [eva] Recording results for cast_address [from] Computing for function cast_address [from] Done for function cast_address diff --git a/tests/builtins/oracle/memcpy.res.oracle b/tests/builtins/oracle/memcpy.res.oracle index 33c2b065e84e1ebeca1dd761494c51b4ad737116..eada478d3483b4a57cb4a6abb30025c87ef5e96b 100644 --- a/tests/builtins/oracle/memcpy.res.oracle +++ b/tests/builtins/oracle/memcpy.res.oracle @@ -100,6 +100,9 @@ [eva] memcpy.c:85: function memcpy: precondition 'separation' got status valid. [eva:alarm] memcpy.c:87: Warning: pointer downcast. assert (unsigned int)((struct t1 *)t) ≤ 2147483647; +[eva:garbled-mix:write] memcpy.c:87: + Assigning imprecise value to src + because of arithmetic operation on addresses. [eva] memcpy.c:87: Call to builtin memcpy [eva] memcpy.c:87: function memcpy: precondition 'valid_dest' got status valid. [eva:alarm] memcpy.c:87: Warning: @@ -107,6 +110,9 @@ [eva] memcpy.c:87: function memcpy: precondition 'separation' got status valid. [eva:alarm] memcpy.c:89: Warning: pointer downcast. assert (unsigned int)(&v4) ≤ 2147483647; +[eva:garbled-mix:write] memcpy.c:89: + Assigning imprecise value to dest + because of arithmetic operation on addresses. [eva] memcpy.c:89: Call to builtin memcpy [eva:alarm] memcpy.c:89: Warning: function memcpy: precondition 'valid_dest' got status unknown. @@ -118,6 +124,9 @@ pointer downcast. assert (unsigned int)((struct t1 *)t) ≤ 2147483647; [eva:alarm] memcpy.c:91: Warning: pointer downcast. assert (unsigned int)(&v5) ≤ 2147483647; +[eva:garbled-mix:write] memcpy.c:91: + Assigning imprecise value to dest + because of arithmetic operation on addresses. [eva] memcpy.c:91: Call to builtin memcpy [eva:alarm] memcpy.c:91: Warning: function memcpy: precondition 'valid_dest' got status unknown. diff --git a/tests/builtins/oracle/memset.res.oracle b/tests/builtins/oracle/memset.res.oracle index a71515ecdbf65f033962389a94fb5e9028f811f4..5777e0557a9ffc796b54a09eb851df2b61f02dad 100644 --- a/tests/builtins/oracle/memset.res.oracle +++ b/tests/builtins/oracle/memset.res.oracle @@ -28,6 +28,8 @@ cannot evaluate ACSL term, unsupported ACSL construct: logic function memset [eva:alarm] memset.c:34: Warning: pointer downcast. assert (unsigned int)((int *)t2) ≤ 2147483647; +[eva:garbled-mix:write] memset.c:34: + Assigning imprecise value to s because of arithmetic operation on addresses. [eva] memset.c:34: Call to builtin memset [eva:alarm] memset.c:34: Warning: function memset: precondition 'valid_s' got status unknown. diff --git a/tests/builtins/oracle/strchr.res.oracle b/tests/builtins/oracle/strchr.res.oracle index e9cfcd8c7928de0aa61c8d1c8cf267de2e8dc1bd..ffbebfd90e0f629e11045f9b18f3ead6506ec7fd 100644 --- a/tests/builtins/oracle/strchr.res.oracle +++ b/tests/builtins/oracle/strchr.res.oracle @@ -640,6 +640,8 @@ [eva] Done for function strchr_unbounded [eva] computing for function strchr_invalid <- main. Called from strchr.c:561. +[eva:garbled-mix:write] strchr.c:536: + Assigning imprecise value to s because of arithmetic operation on addresses. [eva] strchr.c:536: Call to builtin strchr [eva:alarm] strchr.c:536: Warning: function strchr: precondition 'valid_string_s' got status unknown. @@ -659,8 +661,8 @@ [eva:alarm] strchr.c:541: Warning: pointer downcast. assert (unsigned int)(&x) ≤ 2147483647; [eva:garbled-mix:write] strchr.c:541: - Assigning imprecise value to garbled. - The imprecision originates from Arithmetic {strchr.c:541} + Assigning imprecise value to garbled + because of arithmetic operation on addresses. [eva:alarm] strchr.c:542: Warning: pointer downcast. assert (unsigned int)garbled ≤ 2147483647; [eva] strchr.c:542: Call to builtin strchr diff --git a/tests/builtins/oracle_equality/imprecise.res.oracle b/tests/builtins/oracle_equality/imprecise.res.oracle index eb4cf14573bb6394a0e018d936c72176c7b61f25..510c64aad8aaa51da0c6f9e5f58617e8b42eef36 100644 --- a/tests/builtins/oracle_equality/imprecise.res.oracle +++ b/tests/builtins/oracle_equality/imprecise.res.oracle @@ -1,13 +1,13 @@ -99a100,101 +98a99,100 > [kernel] imprecise.c:51: > imprecise size for variable v3 (abstract type 'struct u') -222a225,226 +220a223,224 > [kernel] imprecise.c:111: > more than 200(300) elements to enumerate. Approximating. -230a235,236 +228a233,234 > [kernel] imprecise.c:114: > more than 200(300) elements to enumerate. Approximating. -239,242d244 +237,240d242 < [kernel] imprecise.c:111: < more than 200(300) elements to enumerate. Approximating. < [kernel] imprecise.c:114: diff --git a/tests/builtins/oracle_octagon/imprecise.res.oracle b/tests/builtins/oracle_octagon/imprecise.res.oracle index 4001ea81170eeff5bdf55aedd0eeb81230413cab..9633a07ab0e31c0bef97b7be3027233c2a4bf0db 100644 --- a/tests/builtins/oracle_octagon/imprecise.res.oracle +++ b/tests/builtins/oracle_octagon/imprecise.res.oracle @@ -1,10 +1,10 @@ -222a223,224 +220a221,222 > [kernel] imprecise.c:111: > more than 200(300) elements to enumerate. Approximating. -230a233,234 +228a231,232 > [kernel] imprecise.c:114: > more than 200(300) elements to enumerate. Approximating. -239,242d242 +237,240d240 < [kernel] imprecise.c:111: < more than 200(300) elements to enumerate. Approximating. < [kernel] imprecise.c:114: diff --git a/tests/builtins/oracle_symblocs/imprecise.res.oracle b/tests/builtins/oracle_symblocs/imprecise.res.oracle index 4001ea81170eeff5bdf55aedd0eeb81230413cab..9633a07ab0e31c0bef97b7be3027233c2a4bf0db 100644 --- a/tests/builtins/oracle_symblocs/imprecise.res.oracle +++ b/tests/builtins/oracle_symblocs/imprecise.res.oracle @@ -1,10 +1,10 @@ -222a223,224 +220a221,222 > [kernel] imprecise.c:111: > more than 200(300) elements to enumerate. Approximating. -230a233,234 +228a231,232 > [kernel] imprecise.c:114: > more than 200(300) elements to enumerate. Approximating. -239,242d242 +237,240d240 < [kernel] imprecise.c:111: < more than 200(300) elements to enumerate. Approximating. < [kernel] imprecise.c:114: diff --git a/tests/float/oracle/builtins.res.oracle b/tests/float/oracle/builtins.res.oracle index 0de9a86128d5d8b7f0db04b759781353078ab46f..5039c250f6b7711f4c2d73630e0df5ae8926e78d 100644 --- a/tests/float/oracle/builtins.res.oracle +++ b/tests/float/oracle/builtins.res.oracle @@ -125,15 +125,14 @@ pointer downcast. assert (unsigned int)(&d) ≤ 2147483647; [eva:alarm] builtins.c:107: Warning: non-finite double value. assert \is_finite((double)((int)(&d))); +[eva:garbled-mix:write] builtins.c:107: + Assigning imprecise value to x because of arithmetic operation on addresses. [eva] builtins.c:107: Call to builtin log [eva:alarm] builtins.c:107: Warning: function log: precondition 'finite_arg' got status unknown. [eva:alarm] builtins.c:107: Warning: function log: precondition 'arg_positive' got status unknown. [eva] builtins.c:107: function Frama_C_log applied to address -[eva:garbled-mix:write] builtins.c:107: - Assigning imprecise value to l7. - The imprecision originates from Arithmetic {builtins.c:107} [eva:alarm] builtins.c:111: Warning: accessing uninitialized left-value. assert \initialized(&x); [eva] Recording results for main_log_exp diff --git a/tests/float/oracle/nonlin.0.res.oracle b/tests/float/oracle/nonlin.0.res.oracle index 3ba20ecccb33c4fff3665b5704762f6f99ecceee..04ffb0d077bb56f347f3db8d9e4dfaf8f22ff2d4 100644 --- a/tests/float/oracle/nonlin.0.res.oracle +++ b/tests/float/oracle/nonlin.0.res.oracle @@ -236,15 +236,12 @@ non-finite float value. assert \is_finite((float)((int)(&x_0 + (int)(&x_0)))); [eva:garbled-mix:write] nonlin.c:98: - Assigning imprecise value to a_0. - The imprecision originates from Arithmetic {nonlin.c:98} + Assigning imprecise value to a_0 + because of arithmetic operation on addresses. [eva:alarm] nonlin.c:99: Warning: non-finite float value. assert \is_finite(a_0); [eva:alarm] nonlin.c:99: Warning: non-finite float value. assert \is_finite(\add_float(a_0, a_0)); -[eva:garbled-mix:write] nonlin.c:99: - Assigning imprecise value to f. - The imprecision originates from Arithmetic {nonlin.c:98} [eva] Recording results for garbled [eva] Done for function garbled [eva] computing for function around_zeros <- main. diff --git a/tests/float/oracle/nonlin.1.res.oracle b/tests/float/oracle/nonlin.1.res.oracle index abf87dfd56f40b0b5f15055984806be4a1dd9a8f..54cd152e82f21b5e75ea73f7a715a804f8a72f45 100644 --- a/tests/float/oracle/nonlin.1.res.oracle +++ b/tests/float/oracle/nonlin.1.res.oracle @@ -255,15 +255,12 @@ non-finite float value. assert \is_finite((float)((int)(&x_0 + (int)(&x_0)))); [eva:garbled-mix:write] nonlin.c:98: - Assigning imprecise value to a_0. - The imprecision originates from Arithmetic {nonlin.c:98} + Assigning imprecise value to a_0 + because of arithmetic operation on addresses. [eva:alarm] nonlin.c:99: Warning: non-finite float value. assert \is_finite(a_0); [eva:alarm] nonlin.c:99: Warning: non-finite float value. assert \is_finite(\add_float(a_0, a_0)); -[eva:garbled-mix:write] nonlin.c:99: - Assigning imprecise value to f. - The imprecision originates from Arithmetic {nonlin.c:98} [eva] Recording results for garbled [eva] Done for function garbled [eva] computing for function around_zeros <- main. diff --git a/tests/float/oracle/nonlin.2.res.oracle b/tests/float/oracle/nonlin.2.res.oracle index be3781ef63b137fbda4ff7983167a55a0c3506f4..9ae60320eb162865fb9e2dfe8d15991d5b1056e9 100644 --- a/tests/float/oracle/nonlin.2.res.oracle +++ b/tests/float/oracle/nonlin.2.res.oracle @@ -242,11 +242,8 @@ [eva:alarm] nonlin.c:98: Warning: pointer downcast. assert (unsigned int)(&x_0 + (int)(&x_0)) ≤ 2147483647; [eva:garbled-mix:write] nonlin.c:98: - Assigning imprecise value to a_0. - The imprecision originates from Arithmetic {nonlin.c:98} -[eva:garbled-mix:write] nonlin.c:99: - Assigning imprecise value to f. - The imprecision originates from Arithmetic {nonlin.c:98} + Assigning imprecise value to a_0 + because of arithmetic operation on addresses. [eva] Recording results for garbled [eva] Done for function garbled [eva] computing for function around_zeros <- main. diff --git a/tests/float/oracle/nonlin.3.res.oracle b/tests/float/oracle/nonlin.3.res.oracle index 9dc49e265e73612ccec64e417c29496e01c76608..17b03c98f92314bff3fe61bb303196e9eefb2872 100644 --- a/tests/float/oracle/nonlin.3.res.oracle +++ b/tests/float/oracle/nonlin.3.res.oracle @@ -236,15 +236,12 @@ non-finite float value. assert \is_finite((float)((int)(&x_0 + (int)(&x_0)))); [eva:garbled-mix:write] nonlin.c:98: - Assigning imprecise value to a_0. - The imprecision originates from Arithmetic {nonlin.c:98} + Assigning imprecise value to a_0 + because of arithmetic operation on addresses. [eva:alarm] nonlin.c:99: Warning: non-finite float value. assert \is_finite(a_0); [eva:alarm] nonlin.c:99: Warning: non-finite float value. assert \is_finite(\add_float(a_0, a_0)); -[eva:garbled-mix:write] nonlin.c:99: - Assigning imprecise value to f. - The imprecision originates from Arithmetic {nonlin.c:98} [eva] Recording results for garbled [eva] Done for function garbled [eva] computing for function around_zeros <- main. diff --git a/tests/float/oracle/nonlin.4.res.oracle b/tests/float/oracle/nonlin.4.res.oracle index 84cee1a2044c5f85c0b3b24846705a722c95725c..33877fa4e0891cf6f0918b35f8dc656feda4c369 100644 --- a/tests/float/oracle/nonlin.4.res.oracle +++ b/tests/float/oracle/nonlin.4.res.oracle @@ -255,15 +255,12 @@ non-finite float value. assert \is_finite((float)((int)(&x_0 + (int)(&x_0)))); [eva:garbled-mix:write] nonlin.c:98: - Assigning imprecise value to a_0. - The imprecision originates from Arithmetic {nonlin.c:98} + Assigning imprecise value to a_0 + because of arithmetic operation on addresses. [eva:alarm] nonlin.c:99: Warning: non-finite float value. assert \is_finite(a_0); [eva:alarm] nonlin.c:99: Warning: non-finite float value. assert \is_finite(\add_float(a_0, a_0)); -[eva:garbled-mix:write] nonlin.c:99: - Assigning imprecise value to f. - The imprecision originates from Arithmetic {nonlin.c:98} [eva] Recording results for garbled [eva] Done for function garbled [eva] computing for function around_zeros <- main. diff --git a/tests/float/oracle/nonlin.5.res.oracle b/tests/float/oracle/nonlin.5.res.oracle index 00141d61eada6cb3661557df81f8703f1a17d6e1..66c509fd9b8fef46e8dd64ddeadb67f0bf563877 100644 --- a/tests/float/oracle/nonlin.5.res.oracle +++ b/tests/float/oracle/nonlin.5.res.oracle @@ -242,11 +242,8 @@ [eva:alarm] nonlin.c:98: Warning: pointer downcast. assert (unsigned int)(&x_0 + (int)(&x_0)) ≤ 2147483647; [eva:garbled-mix:write] nonlin.c:98: - Assigning imprecise value to a_0. - The imprecision originates from Arithmetic {nonlin.c:98} -[eva:garbled-mix:write] nonlin.c:99: - Assigning imprecise value to f. - The imprecision originates from Arithmetic {nonlin.c:98} + Assigning imprecise value to a_0 + because of arithmetic operation on addresses. [eva] Recording results for garbled [eva] Done for function garbled [eva] computing for function around_zeros <- main. diff --git a/tests/float/oracle_octagon/nonlin.1.res.oracle b/tests/float/oracle_octagon/nonlin.1.res.oracle index 47df4c6b3ec06d4d53cb840cd6daf42606770e89..6eefc1b9fe0c8e2bfb44c95f71f61bc9f761dcf4 100644 --- a/tests/float/oracle_octagon/nonlin.1.res.oracle +++ b/tests/float/oracle_octagon/nonlin.1.res.oracle @@ -1,5 +1,5 @@ -277a278,279 +274a275,276 > [eva:nonlin] nonlin.c:113: non-linear 'f + f', lv 'f' > [eva:nonlin] nonlin.c:113: subdividing on f -280d281 +277d278 < [eva:nonlin] nonlin.c:113: subdividing on f diff --git a/tests/float/oracle_octagon/nonlin.2.res.oracle b/tests/float/oracle_octagon/nonlin.2.res.oracle index 32ee5946f24c027cb7bf9fbb4f5475f1efd4b0a9..af64eb11946572bd8f9d116a6d6731adf1112bcb 100644 --- a/tests/float/oracle_octagon/nonlin.2.res.oracle +++ b/tests/float/oracle_octagon/nonlin.2.res.oracle @@ -1,5 +1,5 @@ -260a261,262 +257a258,259 > [eva:nonlin] nonlin.c:113: non-linear 'f + f', lv 'f' > [eva:nonlin] nonlin.c:113: subdividing on f -263d264 +260d261 < [eva:nonlin] nonlin.c:113: subdividing on f diff --git a/tests/float/oracle_octagon/nonlin.4.res.oracle b/tests/float/oracle_octagon/nonlin.4.res.oracle index 47df4c6b3ec06d4d53cb840cd6daf42606770e89..6eefc1b9fe0c8e2bfb44c95f71f61bc9f761dcf4 100644 --- a/tests/float/oracle_octagon/nonlin.4.res.oracle +++ b/tests/float/oracle_octagon/nonlin.4.res.oracle @@ -1,5 +1,5 @@ -277a278,279 +274a275,276 > [eva:nonlin] nonlin.c:113: non-linear 'f + f', lv 'f' > [eva:nonlin] nonlin.c:113: subdividing on f -280d281 +277d278 < [eva:nonlin] nonlin.c:113: subdividing on f diff --git a/tests/float/oracle_octagon/nonlin.5.res.oracle b/tests/float/oracle_octagon/nonlin.5.res.oracle index 32ee5946f24c027cb7bf9fbb4f5475f1efd4b0a9..af64eb11946572bd8f9d116a6d6731adf1112bcb 100644 --- a/tests/float/oracle_octagon/nonlin.5.res.oracle +++ b/tests/float/oracle_octagon/nonlin.5.res.oracle @@ -1,5 +1,5 @@ -260a261,262 +257a258,259 > [eva:nonlin] nonlin.c:113: non-linear 'f + f', lv 'f' > [eva:nonlin] nonlin.c:113: subdividing on f -263d264 +260d261 < [eva:nonlin] nonlin.c:113: subdividing on f diff --git a/tests/libc/oracle/spawn_h.res.oracle b/tests/libc/oracle/spawn_h.res.oracle index 01e765f74b0657f98adf4531504ffc36c9823a12..4b4c978087e9754cede4451980d1dae737d7f9d0 100644 --- a/tests/libc/oracle/spawn_h.res.oracle +++ b/tests/libc/oracle/spawn_h.res.oracle @@ -8,9 +8,6 @@ Called from spawn_h.c:36. [eva] using specification for function getopt [eva] Done for function getopt -[eva:garbled-mix:write] spawn_h.c:36: - Assigning imprecise value to opt. - The imprecision originates from Library function {spawn_h.c:36} [kernel:annot:missing-spec] spawn_h.c:43: Warning: Neither code nor specification for function posix_spawn_file_actions_init, generating default assigns. See -generated-spec-* options for more info @@ -148,6 +145,8 @@ [eva] Done for function exit [eva:alarm] spawn_h.c:82: Warning: out of bounds read. assert \valid_read(argv + optind); +[eva:garbled-mix:write] spawn_h.c:82: + Assigning imprecise value to file because of misaligned read of addresses. [kernel:annot:missing-spec] spawn_h.c:82: Warning: Neither code nor specification for function posix_spawnp, generating default assigns. See -generated-spec-* options for more info diff --git a/tests/value/oracle/addition.res.oracle b/tests/value/oracle/addition.res.oracle index cac259e96f2175dd68ab9ba81d78b1b0e2df7de3..1c7f73326fa47bb6b3b920c19f8baa452dde6daa 100644 --- a/tests/value/oracle/addition.res.oracle +++ b/tests/value/oracle/addition.res.oracle @@ -57,27 +57,23 @@ [eva:alarm] addition.i:34: Warning: signed overflow. assert &p2 - &p3 ≤ 2147483647; [eva:garbled-mix:write] addition.i:34: Warning: - Assigning imprecise value to p1. - The imprecision originates from Arithmetic {addition.i:34} + Assigning imprecise value to p1 because of arithmetic operation on addresses. [eva:alarm] addition.i:36: Warning: pointer downcast. assert (unsigned int)(&p1) ≤ 2147483647; [eva:garbled-mix:write] addition.i:36: Warning: - Assigning imprecise value to p2. - The imprecision originates from Arithmetic {addition.i:36} + Assigning imprecise value to p2 because of arithmetic operation on addresses. [eva:alarm] addition.i:38: Warning: pointer downcast. assert (unsigned int)(&p1) ≤ 127; [eva:alarm] addition.i:38: Warning: pointer downcast. assert (unsigned int)(&t[(char)(&p1)]) ≤ 2147483647; [eva:garbled-mix:write] addition.i:38: Warning: - Assigning imprecise value to p3. - The imprecision originates from Arithmetic {addition.i:38} + Assigning imprecise value to p3 because of arithmetic operation on addresses. [eva:alarm] addition.i:40: Warning: pointer downcast. assert (unsigned int)(&p1) ≤ 127; [eva:alarm] addition.i:40: Warning: pointer downcast. assert (unsigned int)(&tt[(char)(&p1)].a) ≤ 2147483647; [eva:garbled-mix:write] addition.i:40: Warning: - Assigning imprecise value to p4. - The imprecision originates from Arithmetic {addition.i:40} + Assigning imprecise value to p4 because of arithmetic operation on addresses. [eva:alarm] addition.i:42: Warning: pointer downcast. assert (unsigned int)(&p1) ≤ 127; [eva:alarm] addition.i:42: Warning: @@ -86,24 +82,21 @@ pointer downcast. assert (unsigned int)(&ttt[(char)(&p1)][(char)(&p2)]) ≤ 2147483647; [eva:garbled-mix:write] addition.i:42: Warning: - Assigning imprecise value to p5. - The imprecision originates from Arithmetic {addition.i:42} + Assigning imprecise value to p5 because of arithmetic operation on addresses. [eva:alarm] addition.i:44: Warning: pointer downcast. assert (unsigned int)(&p1) ≤ 127; [eva:alarm] addition.i:44: Warning: pointer downcast. assert (unsigned int)(&ttt[(char)(&p1)][u2]) ≤ 2147483647; [eva:garbled-mix:write] addition.i:44: Warning: - Assigning imprecise value to p6. - The imprecision originates from Arithmetic {addition.i:44} + Assigning imprecise value to p6 because of arithmetic operation on addresses. [eva:alarm] addition.i:46: Warning: pointer downcast. assert (unsigned int)(&p2) ≤ 127; [eva:alarm] addition.i:46: Warning: pointer downcast. assert (unsigned int)(&ttt[u2][(char)(&p2)]) ≤ 2147483647; [eva:garbled-mix:write] addition.i:46: Warning: - Assigning imprecise value to p7. - The imprecision originates from Arithmetic {addition.i:46} + Assigning imprecise value to p7 because of arithmetic operation on addresses. [eva:alarm] addition.i:48: Warning: pointer comparison. assert \pointer_comparable((void *)(&p1 + 1), (void *)(&p2)); @@ -114,34 +107,31 @@ [eva:alarm] addition.i:50: Warning: signed overflow. assert (int)(&p1) / 2 ≤ 2147483647; [eva:garbled-mix:write] addition.i:50: Warning: - Assigning imprecise value to p9. - The imprecision originates from Arithmetic {addition.i:50} + Assigning imprecise value to p9 because of arithmetic operation on addresses. [eva:alarm] addition.i:52: Warning: pointer downcast. assert (unsigned int)(&p1) ≤ 2147483647; [eva:garbled-mix:write] addition.i:52: Warning: - Assigning imprecise value to p10. - The imprecision originates from Arithmetic {addition.i:52} + Assigning imprecise value to p10 + because of arithmetic operation on addresses. [eva:alarm] addition.i:56: Warning: pointer downcast. assert (unsigned int)(&p1) ≤ 2147483647; [eva:alarm] addition.i:56: Warning: pointer downcast. assert (unsigned int)(&p2) ≤ 2147483647; [eva:garbled-mix:write] addition.i:56: Warning: - Assigning imprecise value to p12. - The imprecision originates from Arithmetic {addition.i:56} + Assigning imprecise value to p12 + because of arithmetic operation on addresses. [eva:alarm] addition.i:59: Warning: signed overflow. assert -2147483648 ≤ (int)*((char *)(&q1)) + 2; [eva:alarm] addition.i:59: Warning: signed overflow. assert (int)*((char *)(&q1)) + 2 ≤ 2147483647; [eva:garbled-mix:write] addition.i:59: Warning: - Assigning imprecise value to p13. - The imprecision originates from Misaligned {addition.i:59} + Assigning imprecise value to p13 because of misaligned read of addresses. [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; [eva:garbled-mix:write] addition.i:61: Warning: - Assigning imprecise value to p14. - The imprecision originates from Misaligned {addition.i:61} + Assigning imprecise value to p14 because of misaligned read of addresses. [eva:alarm] addition.i:66: Warning: out of bounds read. assert \valid_read(*((int **)45)); [eva] addition.i:87: Frama_C_show_each_1: [-10..15] diff --git a/tests/value/oracle/arith_pointer.res.oracle b/tests/value/oracle/arith_pointer.res.oracle index c2b913baa6d38552337372466542bae6d0cdb9a9..d8c8908c4b6586ae2f6baa6b01cca727b28032c3 100644 --- a/tests/value/oracle/arith_pointer.res.oracle +++ b/tests/value/oracle/arith_pointer.res.oracle @@ -25,17 +25,13 @@ [eva:alarm] arith_pointer.c:54: Warning: pointer downcast. assert (unsigned int)(&x) ≤ 2147483647; [eva:garbled-mix:write] arith_pointer.c:54: - Assigning imprecise value to p1. - The imprecision originates from Arithmetic {arith_pointer.c:54} + Assigning imprecise value to p1 because of arithmetic operation on addresses. [eva:alarm] arith_pointer.c:56: Warning: pointer subtraction. assert \base_addr(p2) ≡ \base_addr(p1); [eva:alarm] arith_pointer.c:56: Warning: signed overflow. assert -2147483648 ≤ p2 - p1; [eva:alarm] arith_pointer.c:56: Warning: signed overflow. assert p2 - p1 ≤ 2147483647; -[eva:garbled-mix:write] arith_pointer.c:56: - Assigning imprecise value to d. - The imprecision originates from Arithmetic {arith_pointer.c:54} [eva] arith_pointer.c:57: Frama_C_show_each: {{ garbled mix of &{x} (origin: Arithmetic {arith_pointer.c:54}) }} @@ -117,8 +113,7 @@ [eva:alarm] arith_pointer.c:30: Warning: signed overflow. assert p1 - p2 ≤ 2147483647; [eva:garbled-mix:write] arith_pointer.c:30: - Assigning imprecise value to d. - The imprecision originates from Arithmetic {arith_pointer.c:30} + Assigning imprecise value to d because of arithmetic operation on addresses. [eva] arith_pointer.c:31: Frama_C_show_each: {{ garbled mix of &{x; y} (origin: Arithmetic {arith_pointer.c:30}) }} @@ -129,8 +124,7 @@ [eva:alarm] arith_pointer.c:49: Warning: signed overflow. assert p2 - p1 ≤ 2147483647; [eva:garbled-mix:write] arith_pointer.c:49: - Assigning imprecise value to d. - The imprecision originates from Arithmetic {arith_pointer.c:49} + Assigning imprecise value to d because of arithmetic operation on addresses. [eva] arith_pointer.c:50: Frama_C_show_each: {{ garbled mix of &{x; y} (origin: Arithmetic {arith_pointer.c:49}) }} @@ -139,8 +133,7 @@ [eva:alarm] arith_pointer.c:51: Warning: signed overflow. assert p2 - p2 ≤ 2147483647; [eva:garbled-mix:write] arith_pointer.c:51: - Assigning imprecise value to d. - The imprecision originates from Arithmetic {arith_pointer.c:51} + Assigning imprecise value to d because of arithmetic operation on addresses. [eva] arith_pointer.c:52: Frama_C_show_each: {{ garbled mix of &{x; y} (origin: Arithmetic {arith_pointer.c:51}) }} diff --git a/tests/value/oracle/assigns.res.oracle b/tests/value/oracle/assigns.res.oracle index 744d7aab558ef0bcada92ce5326773be1186e880..110f45908bae6a5907c06fea0ab8efd97a7332c5 100644 --- a/tests/value/oracle/assigns.res.oracle +++ b/tests/value/oracle/assigns.res.oracle @@ -50,6 +50,9 @@ signed overflow. assert -2147483648 ≤ 2 * (int)(&T); [eva:alarm] assigns.i:51: Warning: signed overflow. assert 2 * (int)(&T) ≤ 2147483647; +[eva:garbled-mix:write] assigns.i:51: + Assigning imprecise value to len + because of arithmetic operation on addresses. [eva] computing for function g <- main1 <- main. Called from assigns.i:51. [eva] using specification for function g @@ -60,6 +63,8 @@ signed overflow. assert -2147483648 ≤ 2 * (int)(&t3); [eva:alarm] assigns.i:52: Warning: signed overflow. assert 2 * (int)(&t3) ≤ 2147483647; +[eva:garbled-mix:write] assigns.i:52: + Assigning imprecise value to p because of arithmetic operation on addresses. [eva] computing for function h <- main1 <- main. Called from assigns.i:52. [eva] using specification for function h diff --git a/tests/value/oracle/backward_add_ptr.res.oracle b/tests/value/oracle/backward_add_ptr.res.oracle index d55109dbd308d126b923440c8325fa80ab08a693..35d0fce388bc2f9a9d8e16c79392d358cc71385b 100644 --- a/tests/value/oracle/backward_add_ptr.res.oracle +++ b/tests/value/oracle/backward_add_ptr.res.oracle @@ -40,16 +40,10 @@ [eva] computing for function gm <- main3 <- main. Called from backward_add_ptr.c:75. [eva:garbled-mix:write] backward_add_ptr.c:68: Warning: - Assigning imprecise value to __retres. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} -[eva:garbled-mix:write] backward_add_ptr.c:68: Warning: - Assigning imprecise value to \result<gm>. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} + Assigning imprecise value to __retres + because of arithmetic operation on addresses. [eva] Recording results for gm [eva] Done for function gm -[eva:garbled-mix:write] backward_add_ptr.c:75: Warning: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} [eva:alarm] backward_add_ptr.c:81: Warning: out of bounds read. assert \valid_read(p + (uintptr_t)q); [eva] backward_add_ptr.c:82: @@ -62,18 +56,12 @@ {{ NULL + {0; 1; 2; 3} ; &a + [-4294967295..3] }}, {{ NULL + [0..4294967295] ; &b }} [eva] backward_add_ptr.c:91: Reusing old results for call to gm -[eva:garbled-mix:write] backward_add_ptr.c:91: Warning: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} [eva:alarm] backward_add_ptr.c:96: Warning: out of bounds read. assert \valid_read(p + (uintptr_t)q); [eva] computing for function gm <- main3 <- main. Called from backward_add_ptr.c:100. [eva] Recording results for gm [eva] Done for function gm -[eva:garbled-mix:write] backward_add_ptr.c:100: Warning: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} [eva:alarm] backward_add_ptr.c:106: Warning: out of bounds read. assert \valid_read(p + (uintptr_t)q); [eva] backward_add_ptr.c:107: @@ -82,9 +70,6 @@ (origin: Arithmetic {backward_add_ptr.c:68}) }}, {{ NULL + [0..4294967295] ; &b }} [eva] backward_add_ptr.c:110: Reusing old results for call to gm -[eva:garbled-mix:write] backward_add_ptr.c:110: Warning: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} [eva:alarm] backward_add_ptr.c:115: Warning: out of bounds read. assert \valid_read((char *)p + (uintptr_t)q); [eva] backward_add_ptr.c:116: Frama_C_show_each_GM_only_c: {0}, {{ &c }} @@ -94,9 +79,6 @@ Frama_C_show_each_GM_only_b: {{ &b + [-17179869180..0],0%4 }}, [0..4294967295] [eva] backward_add_ptr.c:125: Reusing old results for call to gm -[eva:garbled-mix:write] backward_add_ptr.c:125: Warning: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} [eva:alarm] backward_add_ptr.c:130: Warning: out of bounds read. assert \valid_read((char *)p + (uintptr_t)q); [eva:alarm] backward_add_ptr.c:136: Warning: @@ -114,19 +96,10 @@ Called from backward_add_ptr.c:145. [eva] Recording results for gm [eva] Done for function gm -[eva:garbled-mix:write] backward_add_ptr.c:145: Warning: - Assigning imprecise value to tmp_0. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} -[eva:garbled-mix:write] backward_add_ptr.c:145: Warning: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} [eva] computing for function gm <- main4 <- main. Called from backward_add_ptr.c:146. [eva] Recording results for gm [eva] Done for function gm -[eva:garbled-mix:write] backward_add_ptr.c:146: Warning: - Assigning imprecise value to q. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} [eva:alarm] backward_add_ptr.c:150: Warning: out of bounds read. assert \valid_read(p + (uintptr_t)q); [eva] backward_add_ptr.c:151: @@ -143,16 +116,10 @@ (origin: Arithmetic {backward_add_ptr.c:68}) }}, [0..4294967295] [eva] backward_add_ptr.c:160: Reusing old results for call to gm -[eva:garbled-mix:write] backward_add_ptr.c:160: Warning: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} [eva] computing for function gm <- main4 <- main. Called from backward_add_ptr.c:161. [eva] Recording results for gm [eva] Done for function gm -[eva:garbled-mix:write] backward_add_ptr.c:161: Warning: - Assigning imprecise value to q. - The imprecision originates from Arithmetic {backward_add_ptr.c:68} [eva:alarm] backward_add_ptr.c:165: Warning: out of bounds read. assert \valid_read((char *)p + (uintptr_t)q); [eva] backward_add_ptr.c:166: diff --git a/tests/value/oracle/behaviors1.res.oracle b/tests/value/oracle/behaviors1.res.oracle index 980bd317335a3fc4d47b65acd11b2e391f2e1c3b..c434339fdecb7a85c1faef91c8aaa1b4215613e3 100644 --- a/tests/value/oracle/behaviors1.res.oracle +++ b/tests/value/oracle/behaviors1.res.oracle @@ -306,21 +306,9 @@ Called from behaviors1.i:473. [eva] using specification for function f [eva] Done for function f -[eva:garbled-mix:write] behaviors1.i:473: - Assigning imprecise value to tmp. - The imprecision originates from Library function {behaviors1.i:473} -[eva:garbled-mix:write] behaviors1.i:473: - Assigning imprecise value to p1. - The imprecision originates from Library function {behaviors1.i:473} [eva] computing for function f <- test_assigns <- main. Called from behaviors1.i:474. [eva] Done for function f -[eva:garbled-mix:write] behaviors1.i:474: - Assigning imprecise value to tmp_0. - The imprecision originates from Library function {behaviors1.i:474} -[eva:garbled-mix:write] behaviors1.i:474: - Assigning imprecise value to p2. - The imprecision originates from Library function {behaviors1.i:474} [eva] computing for function f <- test_assigns <- main. Called from behaviors1.i:475. [eva] Done for function f diff --git a/tests/value/oracle/bitfield.res.oracle b/tests/value/oracle/bitfield.res.oracle index 45acf78958063456e7bd3d636503dc555b6f337a..3b980d881cf63089d57219cca678788e03fa5090 100644 --- a/tests/value/oracle/bitfield.res.oracle +++ b/tests/value/oracle/bitfield.res.oracle @@ -31,8 +31,8 @@ [eva:alarm] bitfield.i:123: Warning: pointer downcast. assert (unsigned int)(&v) ≤ 2147483647; [eva:garbled-mix:write] bitfield.i:123: - Assigning imprecise value to v.c. - The imprecision originates from Arithmetic {bitfield.i:123} + Assigning imprecise value to v.c + because of arithmetic operation on addresses. [eva:alarm] bitfield.i:124: Warning: pointer downcast. assert (unsigned int)(&v + 1) ≤ 2147483647; [eva:alarm] bitfield.i:125: Warning: @@ -83,8 +83,8 @@ [eva:alarm] bitfield.i:130: Warning: pointer downcast. assert (unsigned int)(&v + 1) ≤ 2147483647; [eva:garbled-mix:write] bitfield.i:130: - Assigning imprecise value to h.c. - The imprecision originates from Arithmetic {bitfield.i:130} + Assigning imprecise value to h.c + because of arithmetic operation on addresses. [eva] computing for function return_8 <- main_old <- main. Called from bitfield.i:133. [eva] Recording results for return_8 @@ -115,9 +115,6 @@ .bitf ∈ {0} .[bits 65 to 95] ∈ {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} -[eva:garbled-mix:write] bitfield.i:74: - Assigning imprecise value to c. - The imprecision originates from Misaligned {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. diff --git a/tests/value/oracle/bitwise_pointer.0.res.oracle b/tests/value/oracle/bitwise_pointer.0.res.oracle index c45fec9776b8c8ee44359a0cbb5211514ab29f2e..aa3a3f4a6a294519cff95e18f53878fc7c85bdc7 100644 --- a/tests/value/oracle/bitwise_pointer.0.res.oracle +++ b/tests/value/oracle/bitwise_pointer.0.res.oracle @@ -32,15 +32,13 @@ [eva:alarm] bitwise_pointer.i:18: Warning: pointer downcast. assert (unsigned int)(&t[7]) ≤ 2147483647; [eva:garbled-mix:write] bitwise_pointer.i:18: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {bitwise_pointer.i:18} + Assigning imprecise value to p because of arithmetic operation on addresses. [eva:alarm] bitwise_pointer.i:19: Warning: out of bounds write. assert \valid(p); [eva:alarm] bitwise_pointer.i:22: Warning: pointer downcast. assert (unsigned int)(&t1[mask]) ≤ 2147483647; [eva:garbled-mix:write] bitwise_pointer.i:22: - Assigning imprecise value to p1. - The imprecision originates from Arithmetic {bitwise_pointer.i:22} + Assigning imprecise value to p1 because of arithmetic operation on addresses. [eva:alarm] bitwise_pointer.i:23: Warning: out of bounds write. assert \valid(p1); [eva] Recording results for main diff --git a/tests/value/oracle/bitwise_pointer.1.res.oracle b/tests/value/oracle/bitwise_pointer.1.res.oracle index c45fec9776b8c8ee44359a0cbb5211514ab29f2e..aa3a3f4a6a294519cff95e18f53878fc7c85bdc7 100644 --- a/tests/value/oracle/bitwise_pointer.1.res.oracle +++ b/tests/value/oracle/bitwise_pointer.1.res.oracle @@ -32,15 +32,13 @@ [eva:alarm] bitwise_pointer.i:18: Warning: pointer downcast. assert (unsigned int)(&t[7]) ≤ 2147483647; [eva:garbled-mix:write] bitwise_pointer.i:18: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {bitwise_pointer.i:18} + Assigning imprecise value to p because of arithmetic operation on addresses. [eva:alarm] bitwise_pointer.i:19: Warning: out of bounds write. assert \valid(p); [eva:alarm] bitwise_pointer.i:22: Warning: pointer downcast. assert (unsigned int)(&t1[mask]) ≤ 2147483647; [eva:garbled-mix:write] bitwise_pointer.i:22: - Assigning imprecise value to p1. - The imprecision originates from Arithmetic {bitwise_pointer.i:22} + Assigning imprecise value to p1 because of arithmetic operation on addresses. [eva:alarm] bitwise_pointer.i:23: Warning: out of bounds write. assert \valid(p1); [eva] Recording results for main diff --git a/tests/value/oracle/context_free.res.oracle b/tests/value/oracle/context_free.res.oracle index ded8a88ce5e55edf2670cfc8359f746cb22b25e7..ffee5073affe361f3df6aa1b3baa894953b95853 100644 --- a/tests/value/oracle/context_free.res.oracle +++ b/tests/value/oracle/context_free.res.oracle @@ -77,26 +77,11 @@ [eva:initial-state] creating variable S_1_S_vvv with imprecise size (type void) [eva:initial-state] creating variable S_vv with imprecise size (type void) [eva:alarm] context_free.i:46: Warning: out of bounds write. assert \valid(p); -[eva:garbled-mix:write] context_free.i:51: - Assigning imprecise value to vv. - The imprecision originates from Well [eva:alarm] context_free.i:52: Warning: out of bounds write. assert \valid(vvv); -[eva:garbled-mix:write] context_free.i:52: - Assigning imprecise value to *vvv (pointing to S_vvv with offsets {0}). - The imprecision originates from Well -[eva:garbled-mix:write] context_free.i:54: - Assigning imprecise value to uu.u1. - The imprecision originates from Well [eva:alarm] context_free.i:56: Warning: out of bounds write. assert \valid(ta + 1); -[eva:garbled-mix:write] context_free.i:58: - Assigning imprecise value to pvoid. - The imprecision originates from Well [eva:alarm] context_free.i:59: Warning: out of bounds write. assert \valid(pvoid); -[eva:garbled-mix:write] context_free.i:60: - Assigning imprecise value to pvoid. - The imprecision originates from Well [eva:alarm] context_free.i:61: Warning: out of bounds write. assert \valid(pvoid); [eva:alarm] context_free.i:61: Warning: diff --git a/tests/value/oracle/conversion.res.oracle b/tests/value/oracle/conversion.res.oracle index a5eac26eb5864977bc397b24838f33c695313822..8e34af8ffa8cd0bbe61d85a13d38a00d5badd442 100644 --- a/tests/value/oracle/conversion.res.oracle +++ b/tests/value/oracle/conversion.res.oracle @@ -163,8 +163,7 @@ [eva:alarm] conversion.i:39: Warning: non-finite float value. assert \is_finite(*((float *)(&x))); [eva:garbled-mix:write] conversion.i:39: - Assigning imprecise value to f. - The imprecision originates from Arithmetic {conversion.i:39} + Assigning imprecise value to f because of arithmetic operation on addresses. [eva] conversion.i:40: Frama_C_dump_each: # cvalue: diff --git a/tests/value/oracle/degeneration2.res.oracle b/tests/value/oracle/degeneration2.res.oracle index b8f35c91cf1d94287e82e88c045e04502e9214ed..de456405cd98bad14e79ef22e9aa5c1c924883e3 100644 --- a/tests/value/oracle/degeneration2.res.oracle +++ b/tests/value/oracle/degeneration2.res.oracle @@ -13,8 +13,7 @@ [eva:alarm] degeneration2.i:14: Warning: signed overflow. assert -((int)A) ≤ 2147483647; [eva:garbled-mix:write] degeneration2.i:14: - Assigning imprecise value to A. - The imprecision originates from Arithmetic {degeneration2.i:14} + Assigning imprecise value to A because of arithmetic operation on addresses. [eva:alarm] degeneration2.i:17: Warning: accessing uninitialized left-value. assert \initialized((int *)A); [eva:alarm] degeneration2.i:17: Warning: diff --git a/tests/value/oracle/deps_mixed.res.oracle b/tests/value/oracle/deps_mixed.res.oracle index 446d6ada2d274f86c552e0abac55ffbbe73eef09..c1b9017883b5e17ab37579df0ddf684097d9acc4 100644 --- a/tests/value/oracle/deps_mixed.res.oracle +++ b/tests/value/oracle/deps_mixed.res.oracle @@ -33,11 +33,8 @@ [eva:alarm] deps_mixed.i:24: Warning: pointer downcast. assert (unsigned int)(p + (int)q) ≤ 2147483647; [eva:garbled-mix:write] deps_mixed.i:24: - Assigning imprecise value to __retres. - The imprecision originates from Arithmetic {deps_mixed.i:24} -[eva:garbled-mix:write] deps_mixed.i:24: - Assigning imprecise value to \result<main>. - The imprecision originates from Arithmetic {deps_mixed.i:24} + Assigning imprecise value to __retres + because of arithmetic operation on addresses. [eva] Recording results for main [eva] Done for function main [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/div.0.res.oracle b/tests/value/oracle/div.0.res.oracle index 28621d9706abb4ce92bdb0c1b6c61043fe28fccc..5595ff6926a98d1312568297b44dd166c8d063ce 100644 --- a/tests/value/oracle/div.0.res.oracle +++ b/tests/value/oracle/div.0.res.oracle @@ -38,8 +38,7 @@ [eva:alarm] div.i:33: Warning: signed overflow. assert (int)(&Z2) / Z2 ≤ 2147483647; [eva:garbled-mix:write] div.i:33: - Assigning imprecise value to b. - The imprecision originates from Arithmetic {div.i:33} + Assigning imprecise value to b because of arithmetic operation on addresses. [eva:alarm] div.i:34: Warning: pointer downcast. assert (unsigned int)(&X + 2) ≤ 2147483647; [eva:alarm] div.i:34: Warning: division by zero. assert (int)(&X + 2) ≢ 0; @@ -48,8 +47,7 @@ [eva:alarm] div.i:34: Warning: signed overflow. assert 100 / (int)(&X + 2) ≤ 2147483647; [eva:garbled-mix:write] div.i:34: - Assigning imprecise value to d2. - The imprecision originates from Arithmetic {div.i:34} + Assigning imprecise value to d2 because of arithmetic operation on addresses. [eva:alarm] div.i:35: Warning: pointer downcast. assert (unsigned int)(&X + 1) ≤ 2147483647; [eva:alarm] div.i:35: Warning: @@ -57,8 +55,7 @@ [eva:alarm] div.i:35: Warning: signed overflow. assert 100 / (int)(&X + 1) ≤ 2147483647; [eva:garbled-mix:write] div.i:35: - Assigning imprecise value to d1. - The imprecision originates from Arithmetic {div.i:35} + Assigning imprecise value to d1 because of arithmetic operation on addresses. [eva:alarm] div.i:36: Warning: pointer downcast. assert (unsigned int)(&X) ≤ 2147483647; [eva:alarm] div.i:36: Warning: @@ -66,8 +63,7 @@ [eva:alarm] div.i:36: Warning: signed overflow. assert 100 / (int)(&X) ≤ 2147483647; [eva:garbled-mix:write] div.i:36: - Assigning imprecise value to d0. - The imprecision originates from Arithmetic {div.i:36} + Assigning imprecise value to d0 because of arithmetic operation on addresses. [eva:alarm] div.i:37: Warning: pointer downcast. assert (unsigned int)(&X) ≤ 2147483647; [eva:alarm] div.i:37: Warning: @@ -75,8 +71,7 @@ [eva:alarm] div.i:37: Warning: signed overflow. assert -((int)(&X)) ≤ 2147483647; [eva:garbled-mix:write] div.i:37: - Assigning imprecise value to e. - The imprecision originates from Arithmetic {div.i:37} + Assigning imprecise value to e because of arithmetic operation on addresses. [eva] Recording results for main [eva] Done for function main [scope:rm_asserts] removing 2 assertion(s) diff --git a/tests/value/oracle/div.1.res.oracle b/tests/value/oracle/div.1.res.oracle index 6eabca0d307bcee7d1a03dad4795ec22a4f54530..d2a683468cbd53aa220ad3eab5454b1ab977ed7c 100644 --- a/tests/value/oracle/div.1.res.oracle +++ b/tests/value/oracle/div.1.res.oracle @@ -60,8 +60,7 @@ [eva:alarm] div.i:33: Warning: signed overflow. assert (int)(&Z2) / Z2 ≤ 2147483647; [eva:garbled-mix:write] div.i:33: - Assigning imprecise value to b. - The imprecision originates from Arithmetic {div.i:33} + Assigning imprecise value to b because of arithmetic operation on addresses. [eva:alarm] div.i:34: Warning: assertion 'rte,pointer_downcast' got status unknown. [eva:alarm] div.i:34: Warning: @@ -74,8 +73,7 @@ [eva:alarm] div.i:34: Warning: signed overflow. assert 100 / (int)(&X + 2) ≤ 2147483647; [eva:garbled-mix:write] div.i:34: - Assigning imprecise value to d2. - The imprecision originates from Arithmetic {div.i:34} + Assigning imprecise value to d2 because of arithmetic operation on addresses. [eva:alarm] div.i:35: Warning: assertion 'rte,pointer_downcast' got status unknown. [eva] div.i:35: assertion 'rte,division_by_zero' got status valid. @@ -86,8 +84,7 @@ [eva:alarm] div.i:35: Warning: signed overflow. assert 100 / (int)(&X + 1) ≤ 2147483647; [eva:garbled-mix:write] div.i:35: - Assigning imprecise value to d1. - The imprecision originates from Arithmetic {div.i:35} + Assigning imprecise value to d1 because of arithmetic operation on addresses. [eva:alarm] div.i:36: Warning: assertion 'rte,pointer_downcast' got status unknown. [eva] div.i:36: assertion 'rte,division_by_zero' got status valid. @@ -98,8 +95,7 @@ [eva:alarm] div.i:36: Warning: signed overflow. assert 100 / (int)(&X) ≤ 2147483647; [eva:garbled-mix:write] div.i:36: - Assigning imprecise value to d0. - The imprecision originates from Arithmetic {div.i:36} + Assigning imprecise value to d0 because of arithmetic operation on addresses. [eva:alarm] div.i:37: Warning: assertion 'rte,pointer_downcast' got status unknown. [eva:alarm] div.i:37: Warning: @@ -111,8 +107,7 @@ [eva:alarm] div.i:37: Warning: signed overflow. assert -((int)(&X)) ≤ 2147483647; [eva:garbled-mix:write] div.i:37: - Assigning imprecise value to e. - The imprecision originates from Arithmetic {div.i:37} + Assigning imprecise value to e because of arithmetic operation on addresses. [eva] Recording results for main [eva] Done for function main [eva] div.i:22: assertion 'rte,signed_overflow' got final status valid. diff --git a/tests/value/oracle/downcast.4.res.oracle b/tests/value/oracle/downcast.4.res.oracle index aaae6f3d0b6996f66845a397c8e56dceb80aa583..5417bdf0ee0768eba91482a4a276e95abf21b4e5 100644 --- a/tests/value/oracle/downcast.4.res.oracle +++ b/tests/value/oracle/downcast.4.res.oracle @@ -46,11 +46,9 @@ [eva] computing for function main6_val_warn_converted_signed <- main. Called from downcast.i:161. [eva:garbled-mix:write] downcast.i:96: - Assigning imprecise value to y. - The imprecision originates from Arithmetic {downcast.i:96} + Assigning imprecise value to y because of arithmetic operation on addresses. [eva:garbled-mix:write] downcast.i:97: - Assigning imprecise value to z. - The imprecision originates from Arithmetic {downcast.i:97} + Assigning imprecise value to z because of arithmetic operation on addresses. [eva] Recording results for main6_val_warn_converted_signed [eva] Done for function main6_val_warn_converted_signed [eva] computing for function main7_signed_upcast <- main. diff --git a/tests/value/oracle/empty_struct.6.res.oracle b/tests/value/oracle/empty_struct.6.res.oracle index c67a99bfed4c23f7e2f3276860441cc21fd2ad5f..88263f19b58274baed0cb0b4ce28206a3abe4b8a 100644 --- a/tests/value/oracle/empty_struct.6.res.oracle +++ b/tests/value/oracle/empty_struct.6.res.oracle @@ -9,9 +9,6 @@ Called from empty_struct.c:99. [eva] using specification for function f [eva] Done for function f -[eva:garbled-mix:write] empty_struct.c:99: - Assigning imprecise value to r. - The imprecision originates from Library function {empty_struct.c:99} [kernel:annot:missing-spec] empty_struct.c:100: Warning: Neither code nor specification for function g, generating default assigns. See -generated-spec-* options for more info diff --git a/tests/value/oracle/eval_separated.res.oracle b/tests/value/oracle/eval_separated.res.oracle index 899ef89f2cc0386e2732a8e9c87eb7b835dcd3a1..de147cad6d37b70214fd95bc61ec7c25842b6875 100644 --- a/tests/value/oracle/eval_separated.res.oracle +++ b/tests/value/oracle/eval_separated.res.oracle @@ -18,8 +18,7 @@ [eva:alarm] eval_separated.c:11: Warning: signed overflow. assert (int)(&q) + (int)(&q) ≤ 2147483647; [eva:garbled-mix:write] eval_separated.c:11: - Assigning imprecise value to q. - The imprecision originates from Arithmetic {eval_separated.c:11} + Assigning imprecise value to q because of arithmetic operation on addresses. [eva:alarm] eval_separated.c:12: Warning: pointer downcast. assert (unsigned int)(&r) ≤ 2147483647; [eva:alarm] eval_separated.c:12: Warning: @@ -27,8 +26,7 @@ [eva:alarm] eval_separated.c:12: Warning: signed overflow. assert (int)(&r) + (int)(&r) ≤ 2147483647; [eva:garbled-mix:write] eval_separated.c:12: - Assigning imprecise value to r. - The imprecision originates from Arithmetic {eval_separated.c:12} + Assigning imprecise value to r because of arithmetic operation on addresses. [eva:alarm] eval_separated.c:13: Warning: assertion got status unknown. [eva:alarm] eval_separated.c:14: Warning: assertion got status unknown. [eva:alarm] eval_separated.c:15: Warning: assertion got status unknown. diff --git a/tests/value/oracle/gauges.res.oracle b/tests/value/oracle/gauges.res.oracle index 050ed73c53ad6db810ce0e3f0b9c795c17b33450..ce2c46bcca8652340104e25017c95045abc3dad6 100644 --- a/tests/value/oracle/gauges.res.oracle +++ b/tests/value/oracle/gauges.res.oracle @@ -235,11 +235,7 @@ [eva:alarm] gauges.c:188: Warning: signed overflow. assert (int)p + (int)q ≤ 2147483647; [eva:garbled-mix:write] gauges.c:188: - Assigning imprecise value to z. - The imprecision originates from Arithmetic {gauges.c:188} -[eva:garbled-mix:write] gauges.c:189: - Assigning imprecise value to r. - The imprecision originates from Arithmetic {gauges.c:188} + Assigning imprecise value to z because of arithmetic operation on addresses. [eva:alarm] gauges.c:190: Warning: out of bounds write. assert \valid(r); [eva:alarm] gauges.c:192: Warning: out of bounds write. assert \valid(p); [eva:alarm] gauges.c:193: Warning: out of bounds write. assert \valid(q); diff --git a/tests/value/oracle/imprecise_invalid_write.res.oracle b/tests/value/oracle/imprecise_invalid_write.res.oracle index 3edbb6d07b05abbb8a627315a7e04d341fcd40ee..3b45112de2a37cad0bd4d80efe85f58d07634ff4 100644 --- a/tests/value/oracle/imprecise_invalid_write.res.oracle +++ b/tests/value/oracle/imprecise_invalid_write.res.oracle @@ -24,8 +24,7 @@ [eva:alarm] imprecise_invalid_write.i:9: Warning: pointer downcast. assert (unsigned int)(&main1) ≤ 2147483647; [eva:garbled-mix:write] imprecise_invalid_write.i:9: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {imprecise_invalid_write.i:9} + Assigning imprecise value to p because of arithmetic operation on addresses. [eva:alarm] imprecise_invalid_write.i:10: Warning: out of bounds write. assert \valid((int *)p); [kernel] imprecise_invalid_write.i:10: Warning: @@ -37,8 +36,7 @@ [eva:alarm] imprecise_invalid_write.i:16: Warning: pointer downcast. assert (unsigned int)s ≤ 2147483647; [eva:garbled-mix:write] imprecise_invalid_write.i:16: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {imprecise_invalid_write.i:16} + Assigning imprecise value to p because of arithmetic operation on addresses. [eva:alarm] imprecise_invalid_write.i:17: Warning: out of bounds write. assert \valid(p); [kernel] imprecise_invalid_write.i:17: Warning: diff --git a/tests/value/oracle/initialized.res.oracle b/tests/value/oracle/initialized.res.oracle index d7b4af3ec6e4bc9398250cf52ce0acc4a026ff7e..1e822fd04fadadcd9e7fc2f60b1057b75e3cb553 100644 --- a/tests/value/oracle/initialized.res.oracle +++ b/tests/value/oracle/initialized.res.oracle @@ -73,11 +73,8 @@ [eva:alarm] initialized.c:50: Warning: signed overflow. assert (int)(&b4) + (int)(&b4) ≤ 2147483647; [eva:garbled-mix:write] initialized.c:50: - Assigning imprecise value to t[6]. - The imprecision originates from Arithmetic {initialized.c:50} -[eva:garbled-mix:write] initialized.c:51: - Assigning imprecise value to t[7]. - The imprecision originates from Arithmetic {initialized.c:50} + Assigning imprecise value to t[6] + because of arithmetic operation on addresses. [eva] initialized.c:63: Frama_C_dump_each: # cvalue: diff --git a/tests/value/oracle/label.res.oracle b/tests/value/oracle/label.res.oracle index 7634f9cc0083b4c837f6a2435f8269b29c667ea5..6a5cb87b4b44d709668bdb9cbec106ab20f35a5d 100644 --- a/tests/value/oracle/label.res.oracle +++ b/tests/value/oracle/label.res.oracle @@ -14,20 +14,7 @@ pointer downcast. assert (unsigned int)(&d + 1) ≤ 2147483647; [eva:garbled-mix:write] label.i:18: Assigning imprecise value to *((char *)(& p) + i) - (pointing to p with offsets {0}). - The imprecision originates from Misaligned {label.i:18} -[eva:garbled-mix:write] label.i:18: - Assigning imprecise value to *((char *)(& p) + i) - (pointing to p with offsets {0; 8}). - The imprecision originates from Misaligned {label.i:18} -[eva:garbled-mix:write] label.i:18: - Assigning imprecise value to *((char *)(& p) + i) - (pointing to p with offsets {0; 8; 16}). - The imprecision originates from Misaligned {label.i:18} -[eva:garbled-mix:write] label.i:18: - Assigning imprecise value to *((char *)(& p) + i) - (pointing to p with offsets {0; 8; 16; 24}). - The imprecision originates from Misaligned {label.i:18} + because of misaligned read of addresses. [eva] Recording results for main [eva] Done for function main [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/leaf.res.oracle b/tests/value/oracle/leaf.res.oracle index 7ccd5e0302a676eb3ee7293c6683d039208b0eca..d966184b444f1e6e55c2678426d0e103d88c926c 100644 --- a/tests/value/oracle/leaf.res.oracle +++ b/tests/value/oracle/leaf.res.oracle @@ -40,9 +40,6 @@ Called from leaf.i:50. [eva] using specification for function f_int_star_int [eva] Done for function f_int_star_int -[eva:garbled-mix:write] leaf.i:50: - Assigning imprecise value to p. - The imprecision originates from Library function {leaf.i:50} [eva] leaf.i:51: Frama_C_show_each_F: [-2147483648..2147483647] [eva:alarm] leaf.i:52: Warning: out of bounds write. assert \valid(p); [eva] leaf.i:53: Frama_C_show_each_F: {5} @@ -50,9 +47,6 @@ Called from leaf.i:55. [eva] using specification for function f_int_star_int_star_int [eva] Done for function f_int_star_int_star_int -[eva:garbled-mix:write] leaf.i:55: - Assigning imprecise value to pp. - The imprecision originates from Library function {leaf.i:55} [eva] leaf.i:56: Frama_C_show_each_G: {{ &g }} [eva] leaf.i:57: Frama_C_show_each_F: {5} [eva] leaf.i:59: Frama_C_show_each_G: {{ &g }} @@ -92,9 +86,6 @@ Called from leaf.i:68. [eva] using specification for function f_st_star_cint_st_star_cint [eva] Done for function f_st_star_cint_st_star_cint -[eva:garbled-mix:write] leaf.i:68: - Assigning imprecise value to st_star_cint_1. - The imprecision originates from Library function {leaf.i:68} [kernel:annot:missing-spec] leaf.i:69: Warning: Neither code nor specification for function f_st_star_int_st_star_int, generating default assigns. See -generated-spec-* options for more info @@ -102,9 +93,6 @@ Called from leaf.i:69. [eva] using specification for function f_st_star_int_st_star_int [eva] Done for function f_st_star_int_st_star_int -[eva:garbled-mix:write] leaf.i:69: - Assigning imprecise value to st_star_int_1. - The imprecision originates from Library function {leaf.i:69} [kernel:annot:missing-spec] leaf.i:70: Warning: Neither code nor specification for function f_st_tab3_int_st_tab3_int, generating default assigns. See -generated-spec-* options for more info diff --git a/tests/value/oracle/leaf2.res.oracle b/tests/value/oracle/leaf2.res.oracle index 3f486d154c0c0f64d200520942925f611f485b1d..5de89a4124f3730f3cb7fca1093681bd40c29c3a 100644 --- a/tests/value/oracle/leaf2.res.oracle +++ b/tests/value/oracle/leaf2.res.oracle @@ -15,14 +15,8 @@ Called from leaf2.i:6. [eva] using specification for function f [eva] Done for function f -[eva:garbled-mix:write] leaf2.i:6: - Assigning imprecise value to G. - The imprecision originates from Library function {leaf2.i:6} [eva:alarm] leaf2.i:7: Warning: signed overflow. assert -2147483648 ≤ G + 1; [eva:alarm] leaf2.i:7: Warning: signed overflow. assert G + 1 ≤ 2147483647; -[eva:garbled-mix:write] leaf2.i:7: - Assigning imprecise value to G. - The imprecision originates from Library function {leaf2.i:6} [eva] Recording results for main [eva] Done for function main [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/library.res.oracle b/tests/value/oracle/library.res.oracle index 3a3a113d63804454659655d9caeb4b00194905de..01756f25fda5661297a36cda69ec139a857140c8 100644 --- a/tests/value/oracle/library.res.oracle +++ b/tests/value/oracle/library.res.oracle @@ -87,9 +87,6 @@ Called from library.i:31. [eva] using specification for function f_star_int [eva] Done for function f_star_int -[eva:garbled-mix:write] library.i:31: - Assigning imprecise value to G1. - The imprecision originates from Library function {library.i:31} [eva:alarm] library.i:32: Warning: out of bounds write. assert \valid(G1); [eva:alarm] library.i:33: Warning: out of bounds read. assert \valid_read(G); [eva:alarm] library.i:33: Warning: out of bounds read. assert \valid_read(*G); @@ -113,9 +110,6 @@ Called from library.i:41. [eva] using specification for function i [eva] Done for function i -[eva:garbled-mix:write] library.i:41: - Assigning imprecise value to pf. - The imprecision originates from Library function {library.i:41} [eva:alarm] library.i:42: Warning: out of bounds read. assert \valid_read(pf); [eva:alarm] library.i:42: Warning: non-finite float value. assert \is_finite(*pf); @@ -129,9 +123,6 @@ Called from library.i:45. [eva] using specification for function k [eva] Done for function k -[eva:garbled-mix:write] library.i:45: - Assigning imprecise value to pd. - The imprecision originates from Library function {library.i:45} [eva:alarm] library.i:46: Warning: out of bounds write. assert \valid(pd); [eva] Recording results for main [eva] Done for function main diff --git a/tests/value/oracle/logic.res.oracle b/tests/value/oracle/logic.res.oracle index f88f05e9117129bb86b043b56223a54f5c3c6475..cc514176b48a155bf2b67d375b61cbad018df839 100644 --- a/tests/value/oracle/logic.res.oracle +++ b/tests/value/oracle/logic.res.oracle @@ -416,9 +416,6 @@ [eva] computing for function abs <- int_abs <- main. Called from logic.c:411. [eva] Done for function abs -[eva:garbled-mix:write] logic.c:411: - Assigning imprecise value to x_0. - The imprecision originates from Library function {logic.c:411} [eva] logic.c:412: Frama_C_show_each_gm: {{ garbled mix of &{x_0} (origin: Library function {logic.c:411}) }} diff --git a/tests/value/oracle/logic_ptr_cast.res.oracle b/tests/value/oracle/logic_ptr_cast.res.oracle index 2cc7cbd033fd40684cf2d7c55f957e8a43fb8e41..8c23da7de9a82c9380add324962fc335b475540e 100644 --- a/tests/value/oracle/logic_ptr_cast.res.oracle +++ b/tests/value/oracle/logic_ptr_cast.res.oracle @@ -6,8 +6,7 @@ p ∈ {0} t[0..89] ∈ {0} [eva:garbled-mix:write] logic_ptr_cast.i:8: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {logic_ptr_cast.i:8} + Assigning imprecise value to p because of arithmetic operation on addresses. [eva:alarm] logic_ptr_cast.i:9: Warning: assertion got status unknown. [eva] logic_ptr_cast.i:14: Frama_C_show_each: {{ &t + {0; 1; 2; 3; 4; 5; 6; 7} }} diff --git a/tests/value/oracle/origin.0.res.oracle b/tests/value/oracle/origin.0.res.oracle index 21313b3be754e82c6d4c9570db9f1ae65208e409..463ecd82baa00bef9d69d4a929427c293e46f394 100644 --- a/tests/value/oracle/origin.0.res.oracle +++ b/tests/value/oracle/origin.0.res.oracle @@ -61,8 +61,8 @@ [eva:alarm] origin.i:14: Warning: signed overflow. assert -((int)((int *)ta1)) ≤ 2147483647; [eva:garbled-mix:write] origin.i:14: - Assigning imprecise value to pa1. - The imprecision originates from Arithmetic {origin.i:14} + Assigning imprecise value to pa1 + because of arithmetic operation on addresses. [eva:alarm] origin.i:15: Warning: out of bounds write. assert \valid(pa1); [eva] Recording results for origin_arithmetic_1 [eva] Done for function origin_arithmetic_1 @@ -75,11 +75,8 @@ [eva:alarm] origin.i:19: Warning: signed overflow. assert -((int)((int *)ta2)) ≤ 2147483647; [eva:garbled-mix:write] origin.i:19: - Assigning imprecise value to pa2. - The imprecision originates from Arithmetic {origin.i:19} -[eva:garbled-mix:write] origin.i:20: - Assigning imprecise value to qa2. - The imprecision originates from Arithmetic {origin.i:19} + Assigning imprecise value to pa2 + because of arithmetic operation on addresses. [eva:alarm] origin.i:20: Warning: pointer downcast. assert (unsigned int)((int *)tta2) ≤ 2147483647; [eva:alarm] origin.i:20: Warning: @@ -87,8 +84,8 @@ [eva:alarm] origin.i:20: Warning: signed overflow. assert -((int)((int *)tta2)) ≤ 2147483647; [eva:garbled-mix:write] origin.i:20: - Assigning imprecise value to qa2. - The imprecision originates from Arithmetic {origin.i:20} + Assigning imprecise value to qa2 + because of arithmetic operation on addresses. [eva:alarm] origin.i:21: Warning: out of bounds write. assert \valid(qa2); [eva:alarm] origin.i:21: Warning: pointer downcast. assert (unsigned int)(&aa2) ≤ 2147483647; @@ -103,8 +100,8 @@ [eva:alarm] origin.i:25: Warning: signed overflow. assert -((int)((int *)ta3)) ≤ 2147483647; [eva:garbled-mix:write] origin.i:25: - Assigning imprecise value to pa3. - The imprecision originates from Arithmetic {origin.i:25} + Assigning imprecise value to pa3 + because of arithmetic operation on addresses. [eva:alarm] origin.i:26: Warning: out of bounds write. assert \valid(pa3); [eva] Recording results for origin_arithmetic_3 [eva] Done for function origin_arithmetic_3 @@ -132,23 +129,18 @@ Called from origin.i:100. [eva] using specification for function gp [eva] Done for function gp -[eva:garbled-mix:write] origin.i:100: - Assigning imprecise value to pl. - The imprecision originates from Library function {origin.i:100} [eva:alarm] origin.i:101: Warning: out of bounds read. assert \valid_read(pl); [eva] computing for function origin_misalign_1 <- main. Called from origin.i:102. [eva:garbled-mix:write] origin.i:48: - Assigning imprecise value to pm1. - The imprecision originates from Misaligned {origin.i:48} + Assigning imprecise value to pm1 because of misaligned read of addresses. [eva:alarm] origin.i:49: Warning: out of bounds write. assert \valid(pm1); [eva] Recording results for origin_misalign_1 [eva] Done for function origin_misalign_1 [eva] computing for function origin_misalign_2 <- main. Called from origin.i:103. [eva:garbled-mix:write] origin.i:54: - Assigning imprecise value to qm2. - The imprecision originates from Misaligned {origin.i:54} + 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}) }} @@ -184,8 +176,8 @@ [eva:alarm] origin.i:85: Warning: signed overflow. assert -((int)(&arg)) ≤ 2147483647; [eva:garbled-mix:write] origin.i:85: - Assigning imprecise value to esc3. - The imprecision originates from Arithmetic {origin.i:85} + Assigning imprecise value to esc3 + because of arithmetic operation on addresses. [eva:alarm] origin.i:87: Warning: pointer downcast. assert (unsigned int)(&local1) ≤ 2147483647; [eva:alarm] origin.i:88: Warning: diff --git a/tests/value/oracle/origin.1.res.oracle b/tests/value/oracle/origin.1.res.oracle index 2d7eae48a93c4432e4dac6e0f18275b4fdc43432..23f2017157dd55ca36d768e50a104ca4b1bff071 100644 --- a/tests/value/oracle/origin.1.res.oracle +++ b/tests/value/oracle/origin.1.res.oracle @@ -60,11 +60,9 @@ [eva] using specification for function f [eva] Done for function f [eva:garbled-mix:write] origin.i:126: - Assigning imprecise value to r.p. - The imprecision originates from Misaligned {origin.i:126} + Assigning imprecise value to r.p because of misaligned read of addresses. [eva:garbled-mix:write] origin.i:129: - Assigning imprecise value to r.t[0]. - The imprecision originates from Merge {origin.i:129} + Assigning imprecise value to r.t[0] because of imprecise merge of addresses. [eva:alarm] origin.i:130: Warning: pointer downcast. assert (unsigned int)(&x) ≤ 2147483647; [eva:alarm] origin.i:130: Warning: @@ -72,11 +70,8 @@ [eva:alarm] origin.i:130: Warning: signed overflow. assert -((int)(&x)) ≤ 2147483647; [eva:garbled-mix:write] origin.i:130: - Assigning imprecise value to r.t[1]. - The imprecision originates from Arithmetic {origin.i:130} -[eva:garbled-mix:write] origin.i:131: - Assigning imprecise value to \result<origin>. - The imprecision originates from Misaligned {origin.i:126} + Assigning imprecise value to r.t[1] + because of arithmetic operation on addresses. [eva] Recording results for origin [eva] Done for function origin [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/period.res.oracle b/tests/value/oracle/period.res.oracle index cca040e6158d8cb00ae2ab1bb22e787b08bec17a..bae921f2c83017e3d0a579fd5e57968d107db2cc 100644 --- a/tests/value/oracle/period.res.oracle +++ b/tests/value/oracle/period.res.oracle @@ -83,14 +83,12 @@ [eva:alarm] period.c:51: Warning: pointer downcast. assert (unsigned int)(&g) ≤ 2147483647; [eva:garbled-mix:write] period.c:51: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {period.c:51} + Assigning imprecise value to p because of arithmetic operation on addresses. [eva:alarm] period.c:52: Warning: out of bounds write. assert \valid(p); [eva:alarm] period.c:53: Warning: pointer downcast. assert (unsigned int)(&g) ≤ 2147483647; [eva:garbled-mix:write] period.c:53: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {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); [eva:alarm] period.c:55: Warning: pointer downcast. assert (unsigned int)(&vg) ≤ 2147483647; diff --git a/tests/value/oracle/reduce_by_valid.res.oracle b/tests/value/oracle/reduce_by_valid.res.oracle index dcea93719575ad63fc979a58b76af32c6ed72407..f74f2e91178601fd3731ee7c6db79b7e5c836b99 100644 --- a/tests/value/oracle/reduce_by_valid.res.oracle +++ b/tests/value/oracle/reduce_by_valid.res.oracle @@ -146,9 +146,6 @@ Called from reduce_by_valid.i:272. [eva] using specification for function garbled_mix [eva] Done for function garbled_mix -[eva:garbled-mix:write] reduce_by_valid.i:272: - Assigning imprecise value to p. - The imprecision originates from Library function {reduce_by_valid.i:272} [eva] reduce_by_valid.i:273: Frama_C_show_each_gm: {{ garbled mix of &{x; a} @@ -171,9 +168,6 @@ [eva] computing for function garbled_mix <- main12 <- main. Called from reduce_by_valid.i:290. [eva] Done for function garbled_mix -[eva:garbled-mix:write] reduce_by_valid.i:290: - Assigning imprecise value to r. - The imprecision originates from Library function {reduce_by_valid.i:290} [eva:alarm] reduce_by_valid.i:291: Warning: assertion got status unknown. [eva] Recording results for main12 [eva] Done for function main12 diff --git a/tests/value/oracle/shift.0.res.oracle b/tests/value/oracle/shift.0.res.oracle index 562d983b174befd7c03e21242eff3454dc89f7eb..0303ded6de4929bc22a0eae3ef2230863830238f 100644 --- a/tests/value/oracle/shift.0.res.oracle +++ b/tests/value/oracle/shift.0.res.oracle @@ -42,8 +42,7 @@ [eva:alarm] shift.i:52: Warning: unsigned overflow. assert (unsigned long)((char *)t) << 8 ≤ 4294967295; [eva:garbled-mix:write] shift.i:52: - Assigning imprecise value to r. - The imprecision originates from Arithmetic {shift.i:52} + Assigning imprecise value to r because of arithmetic operation on addresses. [eva:alarm] shift.i:53: Warning: pointer downcast. assert (unsigned int)((char *)t) ≤ 2147483647; [eva:alarm] shift.i:53: Warning: @@ -58,9 +57,6 @@ [eva:alarm] shift.i:53: Warning: signed overflow. assert (long)r + (long)((long)((char *)t) << 8) ≤ 2147483647; -[eva:garbled-mix:write] shift.i:53: - Assigning imprecise value to r. - The imprecision originates from Arithmetic {shift.i:52} [eva:alarm] shift.i:58: Warning: unsigned overflow. assert 2U << 31 ≤ 4294967295; [eva] Recording results for main diff --git a/tests/value/oracle/shift.1.res.oracle b/tests/value/oracle/shift.1.res.oracle index 72a6309593ae7fc0b0ddc681de9f5b4444f2f062..2caaba30888d19cb802a92693305b2cb39762f6a 100644 --- a/tests/value/oracle/shift.1.res.oracle +++ b/tests/value/oracle/shift.1.res.oracle @@ -36,8 +36,7 @@ [eva] shift.i:48: Frama_C_show_each: {{ "ua:%u\nub:%u\n" }}, {1401}, {1073741074} [eva:garbled-mix:write] shift.i:52: - Assigning imprecise value to r. - The imprecision originates from Arithmetic {shift.i:52} + Assigning imprecise value to r because of arithmetic operation on addresses. [eva:alarm] shift.i:53: Warning: pointer downcast. assert (unsigned int)((char *)t) ≤ 2147483647; [eva:alarm] shift.i:53: Warning: @@ -50,9 +49,6 @@ [eva:alarm] shift.i:53: Warning: signed overflow. assert (long)r + (long)((long)((char *)t) << 8) ≤ 2147483647; -[eva:garbled-mix:write] shift.i:53: - Assigning imprecise value to r. - The imprecision originates from Arithmetic {shift.i:52} [eva] Recording results for main [eva] Done for function main [eva] shift.i:35: assertion 'Eva,shift' got final status invalid. diff --git a/tests/value/oracle/sizeof.res.oracle b/tests/value/oracle/sizeof.res.oracle index e9b64cb2ded5b0d9df7a1b6e5661cfc40e6f782e..9efb1b55c2d57c801e5e056dee0d78d42f817408 100644 --- a/tests/value/oracle/sizeof.res.oracle +++ b/tests/value/oracle/sizeof.res.oracle @@ -21,8 +21,7 @@ [eva:alarm] sizeof.i:32: Warning: pointer downcast. assert (unsigned int)(&s1) ≤ 2147483647; [eva:garbled-mix:write] sizeof.i:32: - Assigning imprecise value to p. - The imprecision originates from Arithmetic {sizeof.i:32} + Assigning imprecise value to p because of arithmetic operation on addresses. [eva:alarm] sizeof.i:33: Warning: accessing out of bounds index. assert (unsigned int)(sizeof(int [10]) - (unsigned int)i) < 10; diff --git a/tests/value/oracle/struct3.res.oracle b/tests/value/oracle/struct3.res.oracle index 2ab398ecfda2225ff7f334606d192913e00d704a..795a309294796edcca100322d47c6aa0466208fb 100644 --- a/tests/value/oracle/struct3.res.oracle +++ b/tests/value/oracle/struct3.res.oracle @@ -24,8 +24,8 @@ [eva:alarm] struct3.i:46: Warning: pointer downcast. assert (unsigned int)(s2.c + (int)s2.c) ≤ 2147483647; [eva:garbled-mix:write] struct3.i:46: Warning: - Assigning imprecise value to s2.a. - The imprecision originates from Arithmetic {struct3.i:46} + Assigning imprecise value to s2.a + because of arithmetic operation on addresses. [eva] Recording results for main [eva] Done for function main [eva] struct3.i:42: assertion 'Eva,index_bound' got final status invalid. diff --git a/tests/value/oracle/va_list2.0.res.oracle b/tests/value/oracle/va_list2.0.res.oracle index 619211814b41de75cdd428ff271735802110dfd5..49e0e8774567b880a14053405a6e14e7c690d7b5 100644 --- a/tests/value/oracle/va_list2.0.res.oracle +++ b/tests/value/oracle/va_list2.0.res.oracle @@ -13,12 +13,6 @@ out of bounds read. assert \valid_read(args); [eva:alarm] va_list2.c:15: Warning: out of bounds read. assert \valid_read((int *)*args); -[eva:garbled-mix:write] va_list2.c:15: - Assigning imprecise value to tmp. - The imprecision originates from Well -[eva:garbled-mix:write] va_list2.c:15: - Assigning imprecise value to i. - The imprecision originates from Well [eva] va_list2.c:16: Frama_C_show_each_i: {{ garbled mix of &{S_0_S___va_params} (origin: Well) }} [eva:alarm] va_list2.c:20: Warning: @@ -27,15 +21,9 @@ out of bounds read. assert \valid_read((float *)*args); [eva:alarm] va_list2.c:20: Warning: non-finite float value. assert \is_finite(*((float *)*args)); -[eva:garbled-mix:write] va_list2.c:20: - Assigning imprecise value to tmp_0. - The imprecision originates from Well [eva:alarm] va_list2.c:20: Warning: non-finite float value. assert \is_finite(tmp_0); (tmp_0 from vararg) -[eva:garbled-mix:write] va_list2.c:20: - Assigning imprecise value to f. - The imprecision originates from Well [eva] va_list2.c:21: Frama_C_show_each_f: {{ garbled mix of &{S_0_S___va_params} (origin: Well) }} [eva] va_list2.c:12: starting to merge loop iterations diff --git a/tests/value/oracle_apron/backward_add_ptr.res.oracle b/tests/value/oracle_apron/backward_add_ptr.res.oracle index bb1de4dbb864285a682d25c0502c0c4081b82f4c..ef19a912e467e231b3a3b3f3b80a52bb43737247 100644 --- a/tests/value/oracle_apron/backward_add_ptr.res.oracle +++ b/tests/value/oracle_apron/backward_add_ptr.res.oracle @@ -1,32 +1,32 @@ -64c64,67 +58c58,61 < [eva] backward_add_ptr.c:91: Reusing old results for call to gm --- > [eva] computing for function gm <- main3 <- main. > Called from backward_add_ptr.c:91. > [eva] Recording results for gm > [eva] Done for function gm -84c87,90 +72c75,78 < [eva] backward_add_ptr.c:110: Reusing old results for call to gm --- > [eva] computing for function gm <- main3 <- main. > Called from backward_add_ptr.c:110. > [eva] Recording results for gm > [eva] Done for function gm -96c102,105 +81c87,90 < [eva] backward_add_ptr.c:125: Reusing old results for call to gm --- > [eva] computing for function gm <- main3 <- main. > Called from backward_add_ptr.c:125. > [eva] Recording results for gm > [eva] Done for function gm -145c154,157 +118c127,130 < [eva] backward_add_ptr.c:160: Reusing old results for call to gm --- > [eva] computing for function gm <- main4 <- main. > Called from backward_add_ptr.c:160. > [eva] Recording results for gm > [eva] Done for function gm -187c199 +154c166 < (propagated 20 times, read 86 times) garbled mix of bases {a; b; a; b; c} --- > (propagated 28 times, read 90 times) garbled mix of bases {a; b; a; b; c} diff --git a/tests/value/oracle_apron/gauges.res.oracle b/tests/value/oracle_apron/gauges.res.oracle index f92d9c4624085811acfa7d68741f16f06a0b61c4..3829c4158e264ac75da7160ef40f37f47f4f8a8a 100644 --- a/tests/value/oracle_apron/gauges.res.oracle +++ b/tests/value/oracle_apron/gauges.res.oracle @@ -17,48 +17,48 @@ < [eva:alarm] gauges.c:99: Warning: signed overflow. assert c + 1 ≤ 2147483647; 175d171 < [eva:alarm] gauges.c:140: Warning: signed overflow. assert j + 1 ≤ 2147483647; -285,286d280 +281,282d276 < [eva:alarm] gauges.c:220: Warning: < signed overflow. assert -2147483648 ≤ n - 1; -300,302c294 +296,298c290 < [eva:alarm] gauges.c:240: Warning: signed overflow. assert j + 1 ≤ 2147483647; < [eva] gauges.c:242: < Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..2147483647] --- > [eva] gauges.c:242: Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..46] -308,310c300 +304,306c296 < [eva:alarm] gauges.c:251: Warning: signed overflow. assert j + 1 ≤ 2147483647; < [eva] gauges.c:254: < Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..2147483647] --- > [eva] gauges.c:254: Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..49] -316d305 +312d301 < [eva:alarm] gauges.c:263: Warning: signed overflow. assert j + 1 ≤ 2147483647; -318c307 +314c303 < Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..2147483647] --- > Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..65] -324d312 +320d308 < [eva:alarm] gauges.c:274: Warning: signed overflow. assert j + 1 ≤ 2147483647; -326c314 +322c310 < Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..2147483647] --- > Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..70] -334d321 +330d317 < [eva:alarm] gauges.c:293: Warning: signed overflow. assert j + 1 ≤ 2147483647; -336c323 +332c319 < Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647] --- > Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..598] -778c765 +774c761 < n ∈ [-2147483648..99] --- > n ∈ [-2147483547..99] -781c768 +777c764 < i ∈ [0..2147483647] --- > i ∈ [10..2147483647] -817c804 +813c800 < 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 03d182adfb81dd998ef8839447b2aa8c18b1e813..fe592057b7b43420c1d46e1bd52ac8c79a47bac6 100644 --- a/tests/value/oracle_equality/addition.res.oracle +++ b/tests/value/oracle_equality/addition.res.oracle @@ -1,38 +1,42 @@ -138,141d137 +129,134d128 < [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; -144c140 -< The imprecision originates from Misaligned {addition.i:61} ---- -> The imprecision originates from Misaligned {addition.i:59} -154,157c150,151 +< [eva:garbled-mix:write] addition.i:61: Warning: +< Assigning imprecise value to p14 because of misaligned read of addresses. +144,146c138 < (propagated 1 times, read 1 times) garbled mix of bases {p1} < addition.i:61: misaligned read of addresses < (propagated 1 times, read 1 times) garbled mix of bases {p1} +--- +> (propagated 2 times, read 2 times) garbled mix of bases {p1} +167c159,161 < [scope:rm_asserts] removing 9 assertion(s) --- > (propagated 2 times, read 2 times) garbled mix of bases {p1} > [scope:rm_asserts] removing 7 assertion(s) -179c173 +189c183 < p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:61}) }} --- > p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:59}) }} -373,376d366 +383,386d376 < [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; -385,388c375,376 +395,397c385 < (propagated 1 times, read 1 times) garbled mix of bases {p1} < addition.i:61: misaligned read of addresses < (propagated 1 times, read 1 times) garbled mix of bases {p1} +--- +> (propagated 2 times, read 2 times) garbled mix of bases {p1} +418c406,408 < [scope:rm_asserts] removing 9 assertion(s) --- > (propagated 2 times, read 2 times) garbled mix of bases {p1} > [scope:rm_asserts] removing 7 assertion(s) -411c399 +441c431 < p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:61}) }} --- > p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:59}) }} diff --git a/tests/value/oracle_equality/backward_add_ptr.res.oracle b/tests/value/oracle_equality/backward_add_ptr.res.oracle index 7c9150e449e866e7d5fb7b5e3aaec59dc29d1289..38834abac9b8f039c5f0b3972dcb5d0f4e393e21 100644 --- a/tests/value/oracle_equality/backward_add_ptr.res.oracle +++ b/tests/value/oracle_equality/backward_add_ptr.res.oracle @@ -2,28 +2,28 @@ < [eva] backward_add_ptr.c:26: Frama_C_show_each_only_a: {0; 1}, {{ &a }}, {0} --- > [eva] backward_add_ptr.c:26: Frama_C_show_each_only_a: {0}, {{ &a }}, {0} -84c84,87 +72c72,75 < [eva] backward_add_ptr.c:110: Reusing old results for call to gm --- > [eva] computing for function gm <- main3 <- main. > Called from backward_add_ptr.c:110. > [eva] Recording results for gm > [eva] Done for function gm -96c99,102 +81c84,87 < [eva] backward_add_ptr.c:125: Reusing old results for call to gm --- > [eva] computing for function gm <- main3 <- main. > Called from backward_add_ptr.c:125. > [eva] Recording results for gm > [eva] Done for function gm -145c151,154 +118c124,127 < [eva] backward_add_ptr.c:160: Reusing old results for call to gm --- > [eva] computing for function gm <- main4 <- main. > Called from backward_add_ptr.c:160. > [eva] Recording results for gm > [eva] Done for function gm -187c196 +154c163 < (propagated 20 times, read 86 times) garbled mix of bases {a; b; a; b; c} --- > (propagated 26 times, read 94 times) garbled mix of bases {a; b; a; b; c} diff --git a/tests/value/oracle_equality/bitfield.res.oracle b/tests/value/oracle_equality/bitfield.res.oracle index 9886a5a3b66d5f82e84afc4a5a3b268b67994a12..46eace6fb725925449aeaf5c01f6ed18b2bd7a09 100644 --- a/tests/value/oracle_equality/bitfield.res.oracle +++ b/tests/value/oracle_equality/bitfield.res.oracle @@ -1,4 +1,4 @@ -137a138,140 +134a135,137 > [eva] bitfield.i:71: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} diff --git a/tests/value/oracle_equality/bitwise_pointer.0.res.oracle b/tests/value/oracle_equality/bitwise_pointer.0.res.oracle index f04f7077977a5a61ea7d346c6ff6f90a2e4237e4..0b286b812681ed3e8f9d9d2f5b2797ec78fa9df4 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 @@ -62c62 +60c60 < x ∈ [0..9] --- > x ∈ {5} -75c75 +73c73 < 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 f04f7077977a5a61ea7d346c6ff6f90a2e4237e4..0b286b812681ed3e8f9d9d2f5b2797ec78fa9df4 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 @@ -62c62 +60c60 < x ∈ [0..9] --- > x ∈ {5} -75c75 +73c73 < x1 ∈ [0..9] --- > x1 ∈ {5} diff --git a/tests/value/oracle_equality/imprecise_invalid_write.res.oracle b/tests/value/oracle_equality/imprecise_invalid_write.res.oracle index bb982e73d80195bfc94798bd4ae7791b502f93ef..1306d9d6c575eaba355d3aa332df2ba32c5ef554 100644 --- a/tests/value/oracle_equality/imprecise_invalid_write.res.oracle +++ b/tests/value/oracle_equality/imprecise_invalid_write.res.oracle @@ -1,3 +1,3 @@ -28a29,30 +27a28,29 > [kernel] imprecise_invalid_write.i:9: > imprecise size for variable main1 (Undefined sizeof on a function.) diff --git a/tests/value/oracle_equality/library.res.oracle b/tests/value/oracle_equality/library.res.oracle index 60b76d8270d110e07713fc18e2042192a380e59e..7ce2a4b0636c541b94a46f6ac3100e7660b079b8 100644 --- a/tests/value/oracle_equality/library.res.oracle +++ b/tests/value/oracle_equality/library.res.oracle @@ -1,4 +1,4 @@ -124,127d123 +118,121d117 < [eva:alarm] library.i:44: Warning: < non-finite float value. assert \is_finite(*pf); < [eva:alarm] library.i:44: Warning: diff --git a/tests/value/oracle_equality/origin.0.res.oracle b/tests/value/oracle_equality/origin.0.res.oracle index fca55cdcd1617b76c6bd48031be44f3befefd3c2..abe35687d18afa5ad7b79629a2d8594868b20ce1 100644 --- a/tests/value/oracle_equality/origin.0.res.oracle +++ b/tests/value/oracle_equality/origin.0.res.oracle @@ -1,9 +1,9 @@ -237,238c237 +229,230c229 < 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} }} -272,273c271 +264,265c263 < 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 315304aca0443b62c2263315e5e8e4a5b70abc99..72c7991e2b3468da18583defce107fc497b4bb5a 100644 --- a/tests/value/oracle_equality/period.res.oracle +++ b/tests/value/oracle_equality/period.res.oracle @@ -1,9 +1,8 @@ -89,94d88 +88,92d87 < [eva:alarm] period.c:53: Warning: < pointer downcast. assert (unsigned int)(&g) ≤ 2147483647; < [eva:garbled-mix:write] period.c:53: -< Assigning imprecise value to p. -< The imprecision originates from Arithmetic {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); -99d92 +97d91 < [scope:rm_asserts] removing 1 assertion(s) diff --git a/tests/value/oracle_gauges/bitfield.res.oracle b/tests/value/oracle_gauges/bitfield.res.oracle index e0125a5db691f59d2cacd6f04887d761975891e2..c47829e652e4b743152bbfca46d27650bab2fc3e 100644 --- a/tests/value/oracle_gauges/bitfield.res.oracle +++ b/tests/value/oracle_gauges/bitfield.res.oracle @@ -1,4 +1,4 @@ -137a138,152 +134a135,149 > [eva] bitfield.i:71: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} diff --git a/tests/value/oracle_gauges/gauges.res.oracle b/tests/value/oracle_gauges/gauges.res.oracle index 89bba971700e381aecb42f0a87e0010a27a5a7d7..1c645040cca978977f74a4d24ffac408484a6416 100644 --- a/tests/value/oracle_gauges/gauges.res.oracle +++ b/tests/value/oracle_gauges/gauges.res.oracle @@ -54,82 +54,82 @@ --- > [eva] gauges.c:172: Frama_C_show_each: [2147483647..4294967294] > [eva] gauges.c:172: Frama_C_show_each: [2147483647..4294967294] -244,245d225 +240,241d221 < [eva:alarm] gauges.c:192: Warning: out of bounds write. assert \valid(p); < [eva:alarm] gauges.c:193: Warning: out of bounds write. assert \valid(q); -253,258d232 +249,254d228 < [eva:alarm] gauges.c:202: Warning: < out of bounds read. assert \valid_read(tmp); < (tmp from A++) < [eva:alarm] gauges.c:202: Warning: < out of bounds read. assert \valid_read(tmp_0); < (tmp_0 from B++) -285,286d258 +281,282d254 < [eva:alarm] gauges.c:220: Warning: < signed overflow. assert -2147483648 ≤ n - 1; -300,302c272 +296,298c268 < [eva:alarm] gauges.c:240: Warning: signed overflow. assert j + 1 ≤ 2147483647; < [eva] gauges.c:242: < Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..2147483647] --- > [eva] gauges.c:242: Frama_C_show_each: {47; 48}, {6} -308,310c278 +304,306c274 < [eva:alarm] gauges.c:251: Warning: signed overflow. assert j + 1 ≤ 2147483647; < [eva] gauges.c:254: < Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..2147483647] --- > [eva] gauges.c:254: Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, {6; 7} -316,318c284 +312,314c280 < [eva:alarm] gauges.c:263: Warning: signed overflow. assert j + 1 ≤ 2147483647; < [eva] gauges.c:265: < Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..2147483647] --- > [eva] gauges.c:265: Frama_C_show_each: {-58; -57}, {9} -324d289 +320d285 < [eva:alarm] gauges.c:274: Warning: signed overflow. assert j + 1 ≤ 2147483647; -326c291 +322c287 < Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..2147483647] --- > Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, {9; 10} -334d298 +330d294 < [eva:alarm] gauges.c:293: Warning: signed overflow. assert j + 1 ≤ 2147483647; -336c300 +332c296 < Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647] --- > Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [99..119] -398a363,366 +394a359,362 > # gauges: > V: [{[ p -> {{ &x }} > i -> {1} ]}] > s398: λ(0) -458a427,430 +454a423,426 > # gauges: > V: [{[ i -> {1} ]}] > s398: λ([0 .. 1]) > {[ i -> {1} ]} -517a490,493 +513a486,489 > # gauges: > V: [{[ i -> {1} ]}] > s398: λ([0 .. 2]) > {[ i -> {1} ]} -576a553,556 +572a549,552 > # gauges: > V: [{[ i -> {1} ]}] > s398: λ([0 .. 10]) > {[ i -> {1} ]} -641a622,626 +637a618,622 > # gauges: > V: [{[ p -> {{ &a }} > i -> {2} ]}] > s412: λ(0) > s411: λ(0) -702a688,692 +698a684,688 > # gauges: > V: [{[ i -> {2} ]}] > s412: λ(0) > s411: λ([0 .. 1]) > {[ i -> {0} ]} -704a695,822 +700a691,818 > [eva] gauges.c:325: > Frama_C_dump_each: > # cvalue: @@ -258,51 +258,51 @@ > s411: λ([0 .. +oo]) > {[ i -> {0} ]} > ==END OF DUMP== -712a831,832 +708a827,828 > [eva] gauges.c:343: Call to builtin malloc > [eva] gauges.c:343: Call to builtin malloc -765,766c885,886 +761,762c881,882 < A ∈ {{ &A + [0..--],0%4 }} < B ∈ {{ &B + [0..--],0%4 }} --- > A ∈ {{ &A + [0..36],0%4 }} > B ∈ {{ &B + [0..36],0%4 }} -778c898 +774c894 < n ∈ [-2147483648..99] --- > n ∈ [-2147483547..99] -784c904 +780c900 < i ∈ {45; 46; 47; 48; 49; 50; 51} --- > i ∈ {45; 46; 47; 48} -790c910 +786c906 < i ∈ {-59; -58; -57; -56; -55; -54; -53} --- > i ∈ {-58; -57; -56; -55; -54; -53} -810c930 +806c926 < p ∈ {{ &u + [0..--],0%4 }} --- > p ∈ {{ &u + [0..400],0%4 }} -812c932 +808c928 < k ∈ [0..2147483647] --- > k ∈ [0..390] -817c937 +813c933 < i ∈ [0..2147483647] --- > i ∈ [0..21] -828,829c948,950 +824,825c944,946 < [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] }} -840c961 +836c957 < p ∈ {{ &T + [--..396],0%4 }} --- > p ∈ {{ &T + [-4..396],0%4 }} -845,849c966 +841,845c962 < n ∈ {0} < arr[0] ∈ {0} < [1] ∈ {-1} @@ -310,19 +310,19 @@ < p ∈ {{ &arr + [12..--],0%4 }} --- > NON TERMINATING FUNCTION -952a1070 +948a1066 > [from] Non-terminating function main8_aux (no dependencies) -975,976c1093,1094 +971,972c1089,1090 < 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] -1020c1138 +1016c1134 < NO EFFECTS --- > NON TERMINATING - NO EFFECTS -1054c1172 +1050c1168 < 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 028514ddc800f41a22034f68671bf0c604ea9734..80fc106a63e0bc09c6ccf89c3f85ddb2cca12acd 100644 --- a/tests/value/oracle_gauges/va_list2.0.res.oracle +++ b/tests/value/oracle_gauges/va_list2.0.res.oracle @@ -1,4 +1,4 @@ -48a49,60 +36a37,48 > [eva] va_list2.c:16: > Frama_C_show_each_i: > {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }} diff --git a/tests/value/oracle_octagon/bitfield.res.oracle b/tests/value/oracle_octagon/bitfield.res.oracle index 9886a5a3b66d5f82e84afc4a5a3b268b67994a12..46eace6fb725925449aeaf5c01f6ed18b2bd7a09 100644 --- a/tests/value/oracle_octagon/bitfield.res.oracle +++ b/tests/value/oracle_octagon/bitfield.res.oracle @@ -1,4 +1,4 @@ -137a138,140 +134a135,137 > [eva] bitfield.i:71: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} diff --git a/tests/value/oracle_octagon/gauges.res.oracle b/tests/value/oracle_octagon/gauges.res.oracle index a5e47e28258fe4726d31ff83cb80079321750697..5b5cc28292675e05f4c652053a6c451c8d8744d1 100644 --- a/tests/value/oracle_octagon/gauges.res.oracle +++ b/tests/value/oracle_octagon/gauges.res.oracle @@ -1,17 +1,17 @@ -259,260d258 +255,256d254 < [eva:alarm] gauges.c:201: Warning: < signed overflow. assert -2147483648 ≤ numNonZero - 1; -282,286d279 +278,282d275 < [eva] gauges.c:218: Frama_C_show_each: < [eva] gauges.c:218: Frama_C_show_each: < [eva] gauges.c:218: Frama_C_show_each: < [eva:alarm] gauges.c:220: Warning: < signed overflow. assert -2147483648 ≤ n - 1; -767c760 +763c756 < numNonZero ∈ [-2147483648..8] --- > numNonZero ∈ {-1} -778c771 +774c767 < 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 f04f7077977a5a61ea7d346c6ff6f90a2e4237e4..0b286b812681ed3e8f9d9d2f5b2797ec78fa9df4 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 @@ -62c62 +60c60 < x ∈ [0..9] --- > x ∈ {5} -75c75 +73c73 < 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 f04f7077977a5a61ea7d346c6ff6f90a2e4237e4..0b286b812681ed3e8f9d9d2f5b2797ec78fa9df4 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 @@ -62c62 +60c60 < x ∈ [0..9] --- > x ∈ {5} -75c75 +73c73 < x1 ∈ [0..9] --- > x1 ∈ {5} diff --git a/tests/value/oracle_symblocs/library.res.oracle b/tests/value/oracle_symblocs/library.res.oracle index 60b76d8270d110e07713fc18e2042192a380e59e..7ce2a4b0636c541b94a46f6ac3100e7660b079b8 100644 --- a/tests/value/oracle_symblocs/library.res.oracle +++ b/tests/value/oracle_symblocs/library.res.oracle @@ -1,4 +1,4 @@ -124,127d123 +118,121d117 < [eva:alarm] library.i:44: Warning: < non-finite float value. assert \is_finite(*pf); < [eva:alarm] library.i:44: Warning: