diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index b97d05a8b643a0d9183d41161244be33380f5b82..f0d8d79fed92265e4e5cc29f3af504532eaa8808 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -40,13 +40,11 @@ let pp_param fmt = function (* -------------------------------------------------------------------------- *) open Cil_types -open Cil_datatype type zone = | Var of varinfo (* &x - the cell x *) | Ptr of varinfo (* p - the cell pointed by p *) | Arr of varinfo (* p+(..) - the cell and its neighbors pointed by p *) - | Term of term type partition = { globals : zone list ; (* [ &G , G[...], ... ] *) @@ -55,106 +53,6 @@ type partition = { assigned: identified_term list (* Must refer to pointed locations *) } -type clause = Valid of zone | Separated of zone list list - -(* -------------------------------------------------------------------------- *) - -let is_separated_true = function [] | [_] -> true | _ -> false - -(* -------------------------------------------------------------------------- *) -let pp_zone fmt = function - | Arr vi -> Format.fprintf fmt "%a+(..)" Varinfo.pretty vi - | Ptr vi -> Varinfo.pretty fmt vi - | Var vi -> Format.fprintf fmt "&%a" Varinfo.pretty vi - | Term t -> Format.fprintf fmt "%a" Cil_printer.pp_term t - -let pp_region fmt = function - | [] -> Format.pp_print_string fmt "\\empty" - | [z] -> pp_zone fmt z - | z::zs -> - Format.fprintf fmt "@[<hov 2>\\union(%a" pp_zone z ; - List.iter (fun z -> Format.fprintf fmt ",@,%a" pp_zone z) zs ; - Format.fprintf fmt ")@]" - -let pp_separation fmt = function - | [] | [_] -> Format.pp_print_string fmt "\\true" - | r::rs -> - Format.fprintf fmt "@[<hov 2>\\separated(%a" pp_region r ; - List.iter (fun r -> Format.fprintf fmt ",@,%a" pp_region r) rs ; - Format.fprintf fmt ")@]" - -let pp_clause fmt = function - | Separated sep -> Format.fprintf fmt "@ @[<hov 2>requires %a;@]" pp_separation sep - | Valid zone -> Format.fprintf fmt "@ @[<hov 2>requires \\valid(%a);@]" pp_zone zone - -(* -------------------------------------------------------------------------- *) -(* --- Memory Context --- *) -(* -------------------------------------------------------------------------- *) - -let rec ptr_of = function - | Ctype t -> Ctype (TPtr(t, [])) - | t when Logic_typing.is_set_type t -> - let t = Logic_typing.type_of_set_elem t in - Logic_const.make_set_type (ptr_of t) - | _ -> assert false - -let rec addr_of_lval ?loc term = - let typ = ptr_of term.term_type in - match term.term_node with - | TLval lv -> - Logic_utils.mk_logic_AddrOf ?loc lv typ - | TCastE (_, t) | TLogic_coerce (_, t) -> - addr_of_lval ?loc t - | Tif(c, t, e) -> - let t = addr_of_lval ?loc t in - let e = addr_of_lval ?loc e in - Logic_const.term ?loc (Tif(c, t, e)) typ - | Tat( _, _) -> - term - | Tunion l -> - let l = List.map (addr_of_lval ?loc) l in - Logic_const.term ?loc (Tunion l) typ - | Tinter l -> - let l = List.map (addr_of_lval ?loc) l in - Logic_const.term ?loc (Tinter l) typ - | Tcomprehension (t, qs, p) -> - let t = addr_of_lval ?loc t in - Logic_const.term ?loc (Tcomprehension (t,qs,p)) typ - | _ -> term - -let add_region r s = if r = [] then s else r::s - -let main_separation partition = - let separated = - List.rev @@ - add_region (List.rev partition.to_heap) @@ - add_region (List.rev partition.globals) @@ - List.map (fun z -> [z]) partition.context - in - Separated separated - -let assigns_separation partition = - if partition.globals = [] then [] - else - let assign_zone t = Term (addr_of_lval t.it_content) in - List.map - (fun t -> Separated ([[assign_zone t]] @ [ partition.globals ])) - partition.assigned - -let validity partition = - List.rev @@ List.map (fun z -> Valid z) partition.context - -let requires partition = - let ms = main_separation partition in - let ass_sep = assigns_separation partition in - let not_trivial_separation = function - | Separated s -> not (is_separated_true s) - | Valid _ -> false - in - let s = List.filter not_trivial_separation (ms :: ass_sep) in - let v = validity partition in - s @ v - (* -------------------------------------------------------------------------- *) (* --- Partition --- *) (* -------------------------------------------------------------------------- *) @@ -205,3 +103,189 @@ let assigned t w = { w with assigned = assigned } (* -------------------------------------------------------------------------- *) +(* ANNOTS *) +(* -------------------------------------------------------------------------- *) + +open Logic_const + + +let rec ptr_of = function + | Ctype t -> Ctype (TPtr(t, [])) + | t when Logic_typing.is_set_type t -> + let t = Logic_typing.type_of_set_elem t in + Logic_const.make_set_type (ptr_of t) + | _ -> assert false + +let rec addr_of_lval ?loc term = + let typ = ptr_of term.term_type in + match term.term_node with + | TLval lv -> + Logic_utils.mk_logic_AddrOf ?loc lv typ + | TCastE (_, t) | TLogic_coerce (_, t) -> + addr_of_lval ?loc t + | Tif(c, t, e) -> + let t = addr_of_lval ?loc t in + let e = addr_of_lval ?loc e in + Logic_const.term ?loc (Tif(c, t, e)) typ + | Tat( _, _) -> + term + | Tunion l -> + let l = List.map (addr_of_lval ?loc) l in + Logic_const.term ?loc (Tunion l) typ + | Tinter l -> + let l = List.map (addr_of_lval ?loc) l in + Logic_const.term ?loc (Tinter l) typ + | Tcomprehension (t, qs, p) -> + let t = addr_of_lval ?loc t in + Logic_const.term ?loc (Tcomprehension (t,qs,p)) typ + | _ -> term + +let type_of_zone = function + | Ptr vi -> vi.vtype + | Var vi -> TPtr(vi.vtype, []) + | Arr vi when Cil.isPointerType vi.vtype -> vi.vtype + | Arr vi -> TPtr(Cil.typeOf_array_elem vi.vtype, []) + +let zone_to_term ?(to_char=false) loc zone = + let typ = Ctype (type_of_zone zone) in + let lval vi = TVar (Cil.cvar_to_lvar vi), TNoOffset in + let loc_range ptr = + if not to_char then ptr + else + let pointed = + match typ with + | (Ctype (TPtr (t, []))) -> t + | _ -> assert false (* typ has been generated by type_of_zone *) + in + let len = Logic_utils.expr_to_term (Cil.sizeOf ~loc pointed) in + let last = term (TBinOp(MinusA, len, tinteger ~loc 1)) len.term_type in + let range = trange ~loc (Some (tinteger ~loc 0), Some last) in + let ptr = Logic_utils.mk_cast ~loc Cil.charPtrType ptr in + term ~loc (TBinOp(PlusPI, ptr, range)) ptr.term_type + in + match zone with + | Var vi -> loc_range (term ~loc (TAddrOf(lval vi)) typ) + | Ptr vi -> loc_range (term ~loc (TLval(lval vi)) typ) + | Arr vi -> + let ptr = + if Cil.isArrayType vi.vtype + then term ~loc (TStartOf (lval vi)) typ + else term ~loc (TLval(lval vi)) typ + in + let ptr = + if not to_char then ptr + else Logic_utils.mk_cast ~loc Cil.charPtrType ptr + in + let range = trange ~loc (None, None) in + term ~loc (TBinOp(PlusPI, ptr, range)) ptr.term_type + +let region_to_term loc = function + | [] -> term ~loc Tempty_set (Ctype Cil.charPtrType) + | [z] -> zone_to_term loc z + | x :: tl as l -> + let fst = type_of_zone x in + let tl = List.map type_of_zone tl in + let to_char = not (List.for_all (Cil_datatype.Typ.equal fst) tl) in + let set_typ = + make_set_type (Ctype (if to_char then Cil.charPtrType else fst)) + in + term ~loc (Tunion (List.map (zone_to_term ~to_char loc) l)) set_typ + +let separated_list ?loc = function + | [] | [ _ ] -> ptrue + | l -> pseparated ?loc l + +let separated_from_term loc assigned l = + separated_list ~loc (assigned :: List.map (region_to_term loc) l) + +let separated_from_addr loc assigned = + separated_from_term loc (addr_of_lval ~loc assigned.it_content) + +let valid_region loc r = + let t = region_to_term loc r in + pvalid ~loc (here_label, t) + +let global_zones partition = + List.map (fun z -> [z]) partition.globals + +let context_zones partition = + List.map (fun z -> [z]) partition.context + +let heap_zones partition = + let comp a b = Cil_datatype.Typ.compare (type_of_zone a) (type_of_zone b) in + List.sort comp partition.to_heap + +(* Note that this function does not return separated zone lists, but well-typed + zone lists. +*) +let heaps partition = + let rec partition_by_type t acc l = + match l, acc with + | [], _ -> + acc + | x :: l, [] -> + partition_by_type (type_of_zone x) [[x]] l + | x :: l, p :: acc' when Cil_datatype.Typ.equal t (type_of_zone x) -> + partition_by_type t ((x :: p) :: acc') l + | x :: l, acc -> + partition_by_type (type_of_zone x) ([x] :: acc) l + in + partition_by_type Cil.voidType [] (heap_zones partition) + +let main_separation loc globals context heaps = + match heaps, context with + | [], [] -> + (* In this case, separation is completely trivial *) + [ ptrue ] + | [], context -> + let zones = globals @ context in + [ separated_list ~loc (List.map (region_to_term loc) zones) ] + | heaps, context -> + let for_typed_heap h = + let zones = h :: globals @ context in + separated_list ~loc (List.map (region_to_term loc) zones) + in + List.map for_typed_heap heaps + +let clauses_of_partition loc p = + let globals = global_zones p in + let filter p = not (Logic_utils.is_trivially_true p) in + let main_sep = + main_separation loc globals (context_zones p) (heaps p) + in + let assigns_sep = + List.map (fun t -> separated_from_addr loc t globals) p.assigned + in + let context_validity = + List.map (valid_region loc) (context_zones p) + in + let reqs = main_sep @ assigns_sep @ context_validity in + let reqs = List.filter filter reqs in + let reqs = List.sort_uniq Logic_utils.compare_predicate reqs in + reqs, [] + +let emitter = + Emitter.(create "Wp.Hypotheses" [Funspec] ~correctness:[] ~tuning:[]) + +let get_behavior kf name partition = + let loc = Kernel_function.get_location kf in + let reqs,enss = clauses_of_partition loc partition in + let reqs = List.map Logic_const.new_predicate reqs in + let enss = List.map (fun p -> Normal, Logic_const.new_predicate p) enss in + match reqs,enss with + | [], [] -> None + | l1, l2 -> + Some { + b_name = name ; + b_requires = l1 ; + b_assumes = [] ; + b_post_cond = l2 ; + b_assigns = WritesAny ; + b_allocation = FreeAllocAny ; + b_extended = [] + } + +let add_behavior kf name partition = + match get_behavior kf name partition with + | None -> () + | Some bhv -> Annotations.add_behaviors emitter kf [bhv] diff --git a/src/plugins/wp/MemoryContext.mli b/src/plugins/wp/MemoryContext.mli index 96707953d647acacfa7c5e2a3faf8607aa52072e..45dc45afbea5c8020e85250c629b5a40aa6deea4 100644 --- a/src/plugins/wp/MemoryContext.mli +++ b/src/plugins/wp/MemoryContext.mli @@ -32,15 +32,5 @@ val empty : partition val set : varinfo -> param -> partition -> partition val assigned : identified_term -> partition -> partition -type zone - -type clause = - | Valid of zone - | Separated of zone list list - -(** Build the separation clause from a partition, - including the clauses related to the pointer validity *) -val requires : partition -> clause list - -val pp_zone : Format.formatter -> zone -> unit -val pp_clause : Format.formatter -> clause -> unit +val add_behavior : kernel_function -> string -> partition -> unit +val get_behavior : kernel_function -> string -> partition -> behavior option diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index bb54e4da62830925b1491204604eeed8fb21a66e..83a43cc7466ca4c15fa328dc64918301c4350c90 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -89,13 +89,11 @@ let wp_iter_model ?ip ?index job = Fmap.iter (fun kf ms -> Models.iter (fun m -> job kf m) ms) !pool end -let wp_print_memory_context kf m hyp fmt = +let wp_print_memory_context kf bhv fmt = begin let printer = new Printer.extensible_printer () in let pp_vdecl = printer#without_annot printer#vdecl in - Format.fprintf fmt - "@[<hv 0>@[<hv 3>/*@@@ behavior %s:" (WpContext.MODEL.id m) ; - List.iter (MemoryContext.pp_clause fmt) hyp ; + Format.fprintf fmt "@[<hv 0>@[<hv 3>/*@@@ %a" Cil_printer.pp_behavior bhv ; let vkf = Kernel_function.get_vi kf in Format.fprintf fmt "@ @]*/@]@\n@[<hov 2>%a;@]@\n" pp_vdecl vkf ; @@ -106,13 +104,16 @@ let wp_warn_memory_context () = wp_iter_model begin fun kf m -> let partition = WpContext.compute_hypotheses m kf in - let hyp = MemoryContext.requires partition in - if hyp <> [] then + let model = WpContext.MODEL.id m in + let hyp = MemoryContext.get_behavior kf model partition in + match hyp with + | None -> () + | Some bhv -> Wp_parameters.warning ~current:false "@[<hv 0>Memory model hypotheses for function '%s':@ %t@]" (Kernel_function.get_name kf) - (wp_print_memory_context kf m hyp) + (wp_print_memory_context kf bhv) end end diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle index 6d629988524ec0e2396fd74cb9392e73d645e99d..0c4bd8dfbdfced7b662260ad12ba7264848f940e 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle @@ -99,5 +99,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'job': - /*@ behavior typed: requires \separated(&p,b+(..)); */ + /*@ behavior typed: + requires \separated(b + (..), &p); */ void job(int n, int *b); diff --git a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle index 8f21ca532c0fe39f1713a5a780ff7e2cb2fa5f56..72d6142a7ae9a1b19088aa984720d20caba2956c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle @@ -1879,9 +1879,14 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'function': /*@ behavior typed: - requires \separated(x+(..), - \union(i8+(..),u8+(..),i16+(..),u16+(..),i32+(..),u32+(..), - i64+(..),u64+(..))); + requires \separated(i16 + (..), (char const *)x + (..)); + requires \separated(i32 + (..), (char const *)x + (..)); + requires \separated(i64 + (..), (char const *)x + (..)); + requires \separated(i8 + (..), (char const *)x + (..)); + requires \separated(u16 + (..), (char const *)x + (..)); + requires \separated(u32 + (..), (char const *)x + (..)); + requires \separated(u64 + (..), (char const *)x + (..)); + requires \separated(u8 + (..), (char const *)x + (..)); */ void function(signed char * /*[10]*/ i8, unsigned char * /*[10]*/ u8, short * /*[10]*/ i16, unsigned short * /*[10]*/ u16, diff --git a/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle index 1737e32302ff4c5e5d4697e084868bd3665b1c7c..76387c61d8110277aae032a327ba43d0482dcd2d 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle @@ -236,8 +236,10 @@ Prove: false. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'compare': - /*@ behavior typed: requires \separated(&p,q+(..)); */ + /*@ behavior typed: + requires \separated(q + (..), &p); */ void compare(int *q); [wp] Warning: Memory model hypotheses for function 'absurd': - /*@ behavior typed: requires \separated(&p,q+(..)); */ + /*@ behavior typed: + requires \separated(q + (..), &p); */ void absurd(int *q); diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle index 1c72369eadb0141c75c9fb022c8f36a4559cb1d7..a2e6ef5f8fb10702b95b325bc38065fbed816b49 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle @@ -21,5 +21,6 @@ job 6 3 9 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'job': - /*@ behavior typed: requires \separated(&p,b+(..)); */ + /*@ behavior typed: + requires \separated(b + (..), &p); */ void job(int n, int *b); diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle index 89b1b1b5b973e603935151a80fee6115eeaa1b79..992ef461134cea13948c5dedbddc13f9a9586ca7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle @@ -53,9 +53,14 @@ [wp] Warning: Memory model hypotheses for function 'function': /*@ behavior typed: - requires \separated(x+(..), - \union(i8+(..),u8+(..),i16+(..),u16+(..),i32+(..),u32+(..), - i64+(..),u64+(..))); + requires \separated(i16 + (..), (char const *)x + (..)); + requires \separated(i32 + (..), (char const *)x + (..)); + requires \separated(i64 + (..), (char const *)x + (..)); + requires \separated(i8 + (..), (char const *)x + (..)); + requires \separated(u16 + (..), (char const *)x + (..)); + requires \separated(u32 + (..), (char const *)x + (..)); + requires \separated(u64 + (..), (char const *)x + (..)); + requires \separated(u8 + (..), (char const *)x + (..)); */ void function(signed char * /*[10]*/ i8, unsigned char * /*[10]*/ u8, short * /*[10]*/ i16, unsigned short * /*[10]*/ u16, diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle index 310d71f125800a7127da749babf9e34cea6597e5..e84a81d12463b0848c3ced81c696018af2e7c9ea 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle @@ -28,5 +28,6 @@ absurd - - 2 0.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'absurd': - /*@ behavior typed_ref: requires \separated(&p,q+(..)); */ + /*@ behavior typed_ref: + requires \separated(q + (..), &p); */ void absurd(int *q); diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle index ee3c703ca332e470ac35ac0e4f6b09f71ac1fcb0..89712b41fe44ba795beedd5c8ff74aada4bbd6ae 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle @@ -28,5 +28,6 @@ absurd - - 2 0.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'absurd': - /*@ behavior typed: requires \separated(&p,q+(..)); */ + /*@ behavior typed: + requires \separated(q + (..), &p); */ void absurd(int *q); diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle index e99403ea34806bd70ca1033b498affc24920dfb1..d68634ce45e42d1d6383e979b2802686f9f35e38 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle @@ -54,5 +54,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f3': - /*@ behavior typed: requires \separated(&p->a,&p); */ + /*@ behavior typed: + requires \separated(&p->a, &p); */ void f3(void); diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle index 0054a9afc534ef9dabc91f05cfd5c7473c1f35d4..66651f78d70d24a450248991ff34bba6060340aa 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle @@ -67,5 +67,6 @@ Prove: global(L_two_24) != one_0. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'global_frame': - /*@ behavior typed: requires \separated(&zero,one); */ + /*@ behavior typed: + requires \separated(one, &zero); */ void global_frame(int *one, int arg); diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle index 3949d8d5a746ef39ce761d4744be2896bfa2b93e..6a0f4dd76d0f8d11199c80eb863465e4dd91ea24 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle @@ -48,8 +48,8 @@ Prove: global(L_two_24) != one_0. [wp] Warning: Memory model hypotheses for function 'global_frame': /*@ behavior typed_ref: - requires \separated(zero,one); - requires \valid(zero); - requires \valid(one); + requires \separated(one, zero); + requires \valid(one); + requires \valid(zero); */ void global_frame(int *one, int arg); diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle index 159f27542afda2730a180ae834b3358dee335bb2..f2b4509858e87d795d5087317472f3b6b6174b6a 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle @@ -17,5 +17,6 @@ g3 1 2 3 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f3': - /*@ behavior typed: requires \separated(&p->a,&p); */ + /*@ behavior typed: + requires \separated(&p->a, &p); */ void f3(void); diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle index 24788faf50d022b02cd79a79e3d0022ec3ce87f9..ebe06ce52f4bf7f8adad0f4454e1b0f5ca738179 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle @@ -19,5 +19,6 @@ global_frame 3 - 5 60.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'global_frame': - /*@ behavior typed: requires \separated(&zero,one); */ + /*@ behavior typed: + requires \separated(one, &zero); */ void global_frame(int *one, int arg); diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle index f560c0a026a581f5e35e055a63f695517f83361c..b8015e5f58f65ce93725f6d6744252ed19bea9ce 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle @@ -21,8 +21,8 @@ [wp] Warning: Memory model hypotheses for function 'global_frame': /*@ behavior typed_ref: - requires \separated(zero,one); - requires \valid(zero); - requires \valid(one); + requires \separated(one, zero); + requires \valid(one); + requires \valid(zero); */ void global_frame(int *one, int arg); diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle index d0d68abc9caadab4d4002d9a8bd206d5e529a233..83c3ad493cfc1a5e3131e07961343bbeb14d01fa 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle @@ -56,8 +56,8 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle index 8b40acb3f436b766feb9fef4bb8d7b960945d098..406c46f42e2f796ad88072d3521434155a127894 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle @@ -57,8 +57,8 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle index 56be9acc1dbb068d766b2e7c67dddfb01ae5a727..36e3c1f31d601958fd1d3f9360eeeb19f821fc04 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle @@ -48,9 +48,9 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); [wp] Running WP plugin... @@ -116,8 +116,8 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle index 0d2cb66d920886acaab8d67242ea56cb9bd5b2f9..0452368047241e014d978d731182384e49884b7b 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle @@ -49,9 +49,9 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); [wp] Running WP plugin... @@ -118,8 +118,8 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle index c9a461392e7cb29343481e9e0560a5021bf0beb2..60d04236d9a2c48f5ec6b80b0de6592c979b62f5 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle @@ -197,58 +197,59 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'global_alias': /*@ behavior typed: - requires \separated(g_alias,\union(&g_alias,global+(..))); + requires \separated(g_alias, &g_alias, (int *)global + (..)); */ void global_alias(void); [wp] Warning: Memory model hypotheses for function 'global_no_alias': - /*@ behavior typed: requires \separated(g_alias,&g_alias); */ + /*@ behavior typed: + requires \separated(g_alias, &g_alias); */ void global_no_alias(void); [wp] Warning: Memory model hypotheses for function 'formal_alias': - /*@ - behavior typed: - requires \separated(global+(..),f_alias); - requires \separated(f_alias,global+(..)); - */ + /*@ behavior typed: + requires \separated(f_alias, (int *)global + (..)); */ void formal_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'formal_alias_array': /*@ behavior typed: - requires \separated(global+(..),alias_array+(..)); - requires \separated(&(*alias_array)[0 .. 1],global+(..)); + requires \separated(&(*alias_array)[0 .. 1], (int *)global + (..)); + requires \separated(alias_array + (..), (int *)global + (..)); */ void formal_alias_array(int (*alias_array)[2]); [wp] Warning: Memory model hypotheses for function 'field_alias': /*@ behavior typed: - requires \separated(global+(..),x); - requires \separated(&x->x,global+(..)); + requires \separated(&x->x, (int *)global + (..)); + requires \separated(x, (int *)global + (..)); */ void field_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'field_range_alias': /*@ behavior typed: - requires \separated(global+(..),x+(..)); - requires \separated(&(x + (0 .. 3))->x,global+(..)); + requires \separated(&(x + (0 .. 3))->x, (int *)global + (..)); + requires \separated(x + (..), (int *)global + (..)); */ void field_range_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'set_alias': /*@ behavior typed: - requires \separated(\union(global+(..),&g_alias),f_alias); - requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); + requires \separated(f_alias, &g_alias, (int *)global + (..)); */ void set_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'comprehension_alias': /*@ behavior typed: - requires \separated({alias | int *alias; alias ≡ \at(g_alias,Pre)}, - \union(&g_alias,global+(..))); + requires + \separated( + {alias | int *alias; alias ≡ \at(g_alias,Pre)}, &g_alias, + (int *)global + (..) + ); */ void comprehension_alias(void); [wp] Warning: Memory model hypotheses for function 'union_alias': /*@ behavior typed: - requires \separated(\union(global+(..),&g_alias),f_alias); - requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); + requires \separated(f_alias, &g_alias, (int *)global + (..)); */ void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle index 4720ded827794cf0a147a1cf332f7122fbcdda2f..051a94929b453b37ea0317b9496dcb85fd2c334c 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle @@ -87,11 +87,14 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f': - /*@ behavior typed_ref: requires \valid(r); */ + /*@ behavior typed_ref: + requires \valid(r); */ void f(int *r); [wp] Warning: Memory model hypotheses for function 'wrong_without_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int wrong_without_ref(int *q); [wp] Warning: Memory model hypotheses for function 'pointer': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int pointer(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle index f9c9e2a5b35ffdd6194a574cde42c5a3620f522d..bb48a4672be4861c972fbcf9b7ba124c21dd3329 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle @@ -498,8 +498,10 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'ref_bd': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int ref_bd(int *q); [wp] Warning: Memory model hypotheses for function 'g': - /*@ behavior typed_ref: requires \valid(pg); */ + /*@ behavior typed_ref: + requires \valid(pg); */ int g(int *pg); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle index b128329870f278390c61503d8e3f1715cbc7695e..72989020ecec9747960fbc528524a8b097623523 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle @@ -464,14 +464,18 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(rp); */ + /*@ behavior typed_ref: + requires \valid(rp); */ void reset(int *rp); [wp] Warning: Memory model hypotheses for function 'incr': - /*@ behavior typed_ref: requires \valid(ip); */ + /*@ behavior typed_ref: + requires \valid(ip); */ void incr(int *ip); [wp] Warning: Memory model hypotheses for function 'load': - /*@ behavior typed_ref: requires \valid(lp); */ + /*@ behavior typed_ref: + requires \valid(lp); */ int load(int *lp); [wp] Warning: Memory model hypotheses for function 'call_param_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int call_param_ref(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle index 9845add669affa7de094d3deaa2df6b99eb3bdd4..181d3c1dad2dbe0491b867861f33163305f06fa5 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle @@ -212,14 +212,18 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(rp); */ + /*@ behavior typed_ref: + requires \valid(rp); */ void reset(int *rp); [wp] Warning: Memory model hypotheses for function 'incr': - /*@ behavior typed_ref: requires \valid(ip); */ + /*@ behavior typed_ref: + requires \valid(ip); */ void incr(int *ip); [wp] Warning: Memory model hypotheses for function 'load': - /*@ behavior typed_ref: requires \valid(lp); */ + /*@ behavior typed_ref: + requires \valid(lp); */ int load(int *lp); [wp] Warning: Memory model hypotheses for function 'call_param_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int call_param_ref(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle index f5c773ac7bd37ad8bbda40a9e46292e843806e23..3eef87eaec34b72a92be8b571d96c65ae88bad9e 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle @@ -143,11 +143,14 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'call_f2': - /*@ behavior typed_ref: requires \valid(ptr); */ + /*@ behavior typed_ref: + requires \valid(ptr); */ int call_f2(int *ptr, int y); [wp] Warning: Memory model hypotheses for function 'call_global': - /*@ behavior typed_ref: requires \valid(gl); */ + /*@ behavior typed_ref: + requires \valid(gl); */ int call_global(void); [wp] Warning: Memory model hypotheses for function 'write': - /*@ behavior typed_ref: requires \valid(pa); */ + /*@ behavior typed_ref: + requires \valid(pa); */ void write(int kb, int *pa); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle index 502ee3eec09baebe1be54ef63f03d068f95b5ca0..b68225c3d9a4ed808c1aff57020093559ee9a1d2 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle @@ -253,8 +253,12 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(p); */ + /*@ behavior typed_ref: + requires \valid(p); */ void reset(struct T *p); [wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': - /*@ behavior typed_ref: requires \separated(tps[9] + (0 .. 4),tps+(..)); */ + /*@ + behavior typed_ref: + requires \separated(tps[9] + (0 .. 4), (struct T **)tps + (..)); + */ void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle index 8cdc9f4d9d23e67d381f6cfc6d7affffcb8ad1c2..aba051f764c973108a81c2837ecffa832795710d 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle @@ -403,11 +403,15 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'load_1_5': - /*@ behavior typed_ref: requires \separated(reg_load+(..),lp+(..)); */ + /*@ + behavior typed_ref: + requires \separated(lp + (..), (int *)reg_load + (..)); + */ void load_1_5(int (*lp)[5]); [wp] Warning: Memory model hypotheses for function 'add_1_5': /*@ behavior typed_ref: - requires \separated(\union(reg_load+(..),reg_add+(..)),ap+(..)); + requires + \separated(ap + (..), (int *)reg_add + (..), (int *)reg_load + (..)); */ void add_1_5(int (*ap)[5]); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle index 25649f1ac968befd3f1858a7d2ba9d75962cf1fb..615dc3254262084acb538ce9500a8b32bcf76c6b 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle @@ -72,24 +72,24 @@ Prove: d != c. [wp] Warning: Memory model hypotheses for function 'f': /*@ behavior typed_ref: - requires \separated(c,d,\union(a+(..),b+(..))); - requires \valid(c); - requires \valid(d); + requires \separated({a + (..), b + (..)}, d, c); + requires \valid(c); + requires \valid(d); */ void f(int *a, int *b, int *c, int *d, int k); [wp] Warning: Memory model hypotheses for function 'h': /*@ behavior typed_ref: - requires \separated(c,d); - requires \valid(c); - requires \valid(d); + requires \separated(d, c); + requires \valid(c); + requires \valid(d); */ void h(int *c, int *d, int k); [wp] Warning: Memory model hypotheses for function 's': /*@ behavior typed_ref: - requires \separated(c,d); - requires \valid(c); - requires \valid(d); + requires \separated(d, c); + requires \valid(c); + requires \valid(d); */ void s(int **c, int **d, int k); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle index f524e017b1a1a3e6e4d9b95948c4b50947b67ff9..c189e0e008e622fecb804884743ceb6957539a0b 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle @@ -52,58 +52,59 @@ [wp] Warning: Memory model hypotheses for function 'global_alias': /*@ behavior typed: - requires \separated(g_alias,\union(&g_alias,global+(..))); + requires \separated(g_alias, &g_alias, (int *)global + (..)); */ void global_alias(void); [wp] Warning: Memory model hypotheses for function 'global_no_alias': - /*@ behavior typed: requires \separated(g_alias,&g_alias); */ + /*@ behavior typed: + requires \separated(g_alias, &g_alias); */ void global_no_alias(void); [wp] Warning: Memory model hypotheses for function 'formal_alias': - /*@ - behavior typed: - requires \separated(global+(..),f_alias); - requires \separated(f_alias,global+(..)); - */ + /*@ behavior typed: + requires \separated(f_alias, (int *)global + (..)); */ void formal_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'formal_alias_array': /*@ behavior typed: - requires \separated(global+(..),alias_array+(..)); - requires \separated(&(*alias_array)[0 .. 1],global+(..)); + requires \separated(&(*alias_array)[0 .. 1], (int *)global + (..)); + requires \separated(alias_array + (..), (int *)global + (..)); */ void formal_alias_array(int (*alias_array)[2]); [wp] Warning: Memory model hypotheses for function 'field_alias': /*@ behavior typed: - requires \separated(global+(..),x); - requires \separated(&x->x,global+(..)); + requires \separated(&x->x, (int *)global + (..)); + requires \separated(x, (int *)global + (..)); */ void field_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'field_range_alias': /*@ behavior typed: - requires \separated(global+(..),x+(..)); - requires \separated(&(x + (0 .. 3))->x,global+(..)); + requires \separated(&(x + (0 .. 3))->x, (int *)global + (..)); + requires \separated(x + (..), (int *)global + (..)); */ void field_range_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'set_alias': /*@ behavior typed: - requires \separated(\union(global+(..),&g_alias),f_alias); - requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); + requires \separated(f_alias, &g_alias, (int *)global + (..)); */ void set_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'comprehension_alias': /*@ behavior typed: - requires \separated({alias | int *alias; alias ≡ \at(g_alias,Pre)}, - \union(&g_alias,global+(..))); + requires + \separated( + {alias | int *alias; alias ≡ \at(g_alias,Pre)}, &g_alias, + (int *)global + (..) + ); */ void comprehension_alias(void); [wp] Warning: Memory model hypotheses for function 'union_alias': /*@ behavior typed: - requires \separated(\union(global+(..),&g_alias),f_alias); - requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); + requires \separated(f_alias, &g_alias, (int *)global + (..)); */ void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle index fabfc588e61698f7b7f50002bf66e59b6cde1fad..0d4681981ee83417394762d0437fc01738433cc2 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle @@ -28,11 +28,14 @@ global 2 - 2 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f': - /*@ behavior typed_ref: requires \valid(r); */ + /*@ behavior typed_ref: + requires \valid(r); */ void f(int *r); [wp] Warning: Memory model hypotheses for function 'wrong_without_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int wrong_without_ref(int *q); [wp] Warning: Memory model hypotheses for function 'pointer': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int pointer(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle index 0824c5c95dd32122016dcc53c980a5f21e6f38fe..179a92599507e1a11c4c79687ba0b471c8ef2c52 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle @@ -101,8 +101,10 @@ array_in_struct_param 2 - 2 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'ref_bd': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int ref_bd(int *q); [wp] Warning: Memory model hypotheses for function 'g': - /*@ behavior typed_ref: requires \valid(pg); */ + /*@ behavior typed_ref: + requires \valid(pg); */ int g(int *pg); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle index c472b2c06f3347455cd43b7941e613ac1558a80e..f2b9868fd88e56ba518ff919dae5f869d6f55307 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle @@ -51,14 +51,18 @@ call_param_ref 6 - 6 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(rp); */ + /*@ behavior typed_ref: + requires \valid(rp); */ void reset(int *rp); [wp] Warning: Memory model hypotheses for function 'incr': - /*@ behavior typed_ref: requires \valid(ip); */ + /*@ behavior typed_ref: + requires \valid(ip); */ void incr(int *ip); [wp] Warning: Memory model hypotheses for function 'load': - /*@ behavior typed_ref: requires \valid(lp); */ + /*@ behavior typed_ref: + requires \valid(lp); */ int load(int *lp); [wp] Warning: Memory model hypotheses for function 'call_param_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int call_param_ref(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle index 3996bedbab0c49a1ef56b6ee221173adfd897428..d23ba332da0642c03ac334a848c66f419b8ef0ea 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle @@ -51,14 +51,18 @@ call_param_ref 6 - 6 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(rp); */ + /*@ behavior typed_ref: + requires \valid(rp); */ void reset(int *rp); [wp] Warning: Memory model hypotheses for function 'incr': - /*@ behavior typed_ref: requires \valid(ip); */ + /*@ behavior typed_ref: + requires \valid(ip); */ void incr(int *ip); [wp] Warning: Memory model hypotheses for function 'load': - /*@ behavior typed_ref: requires \valid(lp); */ + /*@ behavior typed_ref: + requires \valid(lp); */ int load(int *lp); [wp] Warning: Memory model hypotheses for function 'call_param_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int call_param_ref(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle index 4ff3c1673ecaaf07a95846a27e9b3c0e78eab007..e4be92ac66b9066968792697b0dbc7a0ae389d0a 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle @@ -38,11 +38,14 @@ write 2 - 2 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'call_f2': - /*@ behavior typed_ref: requires \valid(ptr); */ + /*@ behavior typed_ref: + requires \valid(ptr); */ int call_f2(int *ptr, int y); [wp] Warning: Memory model hypotheses for function 'call_global': - /*@ behavior typed_ref: requires \valid(gl); */ + /*@ behavior typed_ref: + requires \valid(gl); */ int call_global(void); [wp] Warning: Memory model hypotheses for function 'write': - /*@ behavior typed_ref: requires \valid(pa); */ + /*@ behavior typed_ref: + requires \valid(pa); */ void write(int kb, int *pa); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle index d7fdaedb3bd8fcae019af39eefb28e9861c7175a..7f79d288a41728995d7839894ab6efbf79d9c765 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle @@ -51,8 +51,12 @@ call_array_in_struct_param 5 - 5 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(p); */ + /*@ behavior typed_ref: + requires \valid(p); */ void reset(struct T *p); [wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': - /*@ behavior typed_ref: requires \separated(tps[9] + (0 .. 4),tps+(..)); */ + /*@ + behavior typed_ref: + requires \separated(tps[9] + (0 .. 4), (struct T **)tps + (..)); + */ void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle index 72ab30d0d2f37fddb5c97a37a325cc0e5d441a49..cc9487f8d96988c74b747d72a8b83a316f3afd55 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle @@ -53,11 +53,15 @@ calls_on_array_dim_2 5 3 8 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'load_1_5': - /*@ behavior typed_ref: requires \separated(reg_load+(..),lp+(..)); */ + /*@ + behavior typed_ref: + requires \separated(lp + (..), (int *)reg_load + (..)); + */ void load_1_5(int (*lp)[5]); [wp] Warning: Memory model hypotheses for function 'add_1_5': /*@ behavior typed_ref: - requires \separated(\union(reg_load+(..),reg_add+(..)),ap+(..)); + requires + \separated(ap + (..), (int *)reg_add + (..), (int *)reg_load + (..)); */ void add_1_5(int (*ap)[5]); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle index b61a8f43c6af24e470d75344f190a40f41b4e534..82ba6e3fe6fe6e65f7e318bc97987d47325ebd56 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle @@ -26,24 +26,24 @@ [wp] Warning: Memory model hypotheses for function 'f': /*@ behavior typed_ref: - requires \separated(c,d,\union(a+(..),b+(..))); - requires \valid(c); - requires \valid(d); + requires \separated({a + (..), b + (..)}, d, c); + requires \valid(c); + requires \valid(d); */ void f(int *a, int *b, int *c, int *d, int k); [wp] Warning: Memory model hypotheses for function 'h': /*@ behavior typed_ref: - requires \separated(c,d); - requires \valid(c); - requires \valid(d); + requires \separated(d, c); + requires \valid(c); + requires \valid(d); */ void h(int *c, int *d, int k); [wp] Warning: Memory model hypotheses for function 's': /*@ behavior typed_ref: - requires \separated(c,d); - requires \valid(c); - requires \valid(d); + requires \separated(d, c); + requires \valid(c); + requires \valid(d); */ void s(int **c, int **d, int k); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle index f61e601b4d210a4a8afbea9a51402de2d1d963f1..6e4b15fb4d0a29aad67e97dc0a87dcddf8d33714 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle @@ -374,14 +374,18 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'guarded_call': - /*@ behavior typed: requires \separated(&X,p); */ + /*@ behavior typed: + requires \separated(p, &X); */ void guarded_call(struct S *p); [wp] Warning: Memory model hypotheses for function 'behavior': - /*@ behavior typed: requires \separated(&X1,p+(..)); */ + /*@ behavior typed: + requires \separated(p + (..), &X1); */ int behavior(int (*p)(void)); [wp] Warning: Memory model hypotheses for function 'some_behaviors': - /*@ behavior typed: requires \separated(&X1,p+(..)); */ + /*@ behavior typed: + requires \separated(p + (..), &X1); */ int some_behaviors(int (*p)(void)); [wp] Warning: Memory model hypotheses for function 'missing_context': - /*@ behavior typed: requires \separated(&X1,p); */ + /*@ behavior typed: + requires \separated(p, &X1); */ int missing_context(int (*p)(void)); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle index e522e7712891c7631d77bf7400632795b3bfd77d..c0547370f6fd1fd42458c7e2d7542f96ea29c8b0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle @@ -102,8 +102,10 @@ Prove: invalid(Malloc_0, shift_sint32(global(G_A_32), -5), 10). ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f1_ok': - /*@ behavior typed: requires \separated(p + (0 .. 9),&p); */ + /*@ behavior typed: + requires \separated(p + (0 .. 9), &p); */ void f1_ok(void); [wp] Warning: Memory model hypotheses for function 'f2_ok': - /*@ behavior typed: requires \separated(p + (10 .. 19),&p); */ + /*@ behavior typed: + requires \separated(p + (10 .. 19), &p); */ void f2_ok(void); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle index 9d7b81db6f6d44f2464af7aa0fc0575ebf7eea30..62a03745ae24323360affa779b605b010999835d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle @@ -68,51 +68,51 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f2_p_a': - /*@ behavior typed_caveat: requires \separated(p,&a); requires \valid(p); */ + /*@ behavior typed_caveat: + requires \separated(&a, p); + requires \valid(p); */ void f2_p_a(int *p); [wp] Warning: Memory model hypotheses for function 'f3_p_ab': - /*@ - behavior typed_caveat: - requires \separated(p,\union(&a,&b)); - requires \valid(p); - */ + /*@ behavior typed_caveat: + requires \separated(&b, &a, p); + requires \valid(p); */ void f3_p_ab(int *p); [wp] Warning: Memory model hypotheses for function 'f4_pq_ab': /*@ behavior typed_caveat: - requires \separated(p,q,\union(&a,&b)); - requires \valid(p); - requires \valid(q); + requires \separated(&b, &a, q, p); + requires \valid(p); + requires \valid(q); */ void f4_pq_ab(int *p, int *q); [wp] Warning: Memory model hypotheses for function 'f5_pq': /*@ behavior typed_caveat: - requires \separated(p,q); - requires \valid(p); - requires \valid(q); + requires \separated(q, p); + requires \valid(p); + requires \valid(q); */ void f5_pq(int *p, int *q); [wp] Warning: Memory model hypotheses for function 'f6_Pa': /*@ behavior typed_caveat: - requires \separated(p+(..),&a); - requires \valid(p+(..)); + requires \separated(&a, p + (..)); + requires \valid(p + (..)); */ void f6_Pa(int *p, int k); [wp] Warning: Memory model hypotheses for function 'f7_pq_ad': /*@ behavior typed_caveat: - requires \separated(p,q,\union(&a,&d)); - requires \valid(p); - requires \valid(q); + requires \separated(&d, &a, q, p); + requires \valid(p); + requires \valid(q); */ void f7_pq_ad(int *p, int *q); [wp] Warning: Memory model hypotheses for function 'f8_pq_a': /*@ behavior typed_caveat: - requires \separated(p,q,&a); - requires \valid(p); - requires \valid(q); + requires \separated(&a, q, p); + requires \valid(p); + requires \valid(q); */ void f8_pq_a(int *p, int *q); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle index 0c06a8becec85b905f2f501ec5d78ba93f9bd10c..8f8e6a453d9cb4d2e03ce0fdbad93c78c450de4d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle @@ -37,5 +37,6 @@ Prove: EqS1_st_v(w, w_1). ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'job_struct_assigns': - /*@ behavior typed: requires \separated(&sv,p); */ + /*@ behavior typed: + requires \separated(p, &sv); */ void job_struct_assigns(struct st_v *p); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle index 64cb1c399406456ed9e2ae41d46887120ed47026..129e94d6af2a3561d291ac217db596b83db08246 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle @@ -71,5 +71,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'job_struct_assigns': - /*@ behavior typed: requires \separated(&sv,p); */ + /*@ behavior typed: + requires \separated(p, &sv); */ void job_struct_assigns(struct st_v *p); diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle index c38d5c4f2132bec412e28f4880848457b2f7b423..a0f09e08be3c8acf22540e19f8ea9cf9d7298c7b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle @@ -69,14 +69,18 @@ no_call 4 - 4 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'guarded_call': - /*@ behavior typed: requires \separated(&X,p); */ + /*@ behavior typed: + requires \separated(p, &X); */ void guarded_call(struct S *p); [wp] Warning: Memory model hypotheses for function 'behavior': - /*@ behavior typed: requires \separated(&X1,p+(..)); */ + /*@ behavior typed: + requires \separated(p + (..), &X1); */ int behavior(int (*p)(void)); [wp] Warning: Memory model hypotheses for function 'some_behaviors': - /*@ behavior typed: requires \separated(&X1,p+(..)); */ + /*@ behavior typed: + requires \separated(p + (..), &X1); */ int some_behaviors(int (*p)(void)); [wp] Warning: Memory model hypotheses for function 'missing_context': - /*@ behavior typed: requires \separated(&X1,p); */ + /*@ behavior typed: + requires \separated(p, &X1); */ int missing_context(int (*p)(void)); diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle index 31cd7d9aaed823f36c18a8b88ca63c9e18e61f40..5222a717ce69ab4c9583dd47bf8802e0cb09858c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle @@ -29,8 +29,10 @@ f6_ko - - 2 0.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f1_ok': - /*@ behavior typed: requires \separated(p + (0 .. 9),&p); */ + /*@ behavior typed: + requires \separated(p + (0 .. 9), &p); */ void f1_ok(void); [wp] Warning: Memory model hypotheses for function 'f2_ok': - /*@ behavior typed: requires \separated(p + (10 .. 19),&p); */ + /*@ behavior typed: + requires \separated(p + (10 .. 19), &p); */ void f2_ok(void); diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle index 9976179a7121da8220bd6193dba9b4a47b1af624..43877a403428fbd5a0e8f4b71f516edf1102e3aa 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle @@ -12,5 +12,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'check': - /*@ behavior typed_ref: requires \valid(p); */ + /*@ behavior typed_ref: + requires \valid(p); */ void check(int x, int *p); diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle index cba638b02bb8c53145c8fb5181adf1fbdf1982b4..6759a580906bcb3c00bfd186e95f828ee34e92a7 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle @@ -30,8 +30,8 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'duplet': /*@ behavior typed_ref: - requires \separated(pi,pj,a+(..)); - requires \valid(pi); - requires \valid(pj); + requires \separated(a + (..), pj, pi); + requires \valid(pi); + requires \valid(pj); */ void duplet(int *a, int *pi, int *pj); diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle index 6413e9d7d3206f7ff6ac1464b9378c04dac005ce..62ec7355781e8b95e3a43a8d9f9c5a6bf5c14416 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle @@ -19,5 +19,6 @@ Prove: false. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f': - /*@ behavior typed_ref: requires \valid(written); */ + /*@ behavior typed_ref: + requires \valid(written); */ void f(unsigned int *written); diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle index 3dd0d642f5857395c7b9903264ace65995998a7c..a07757a5ff942b50e56944a40b1d00ca715240b7 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle @@ -119,9 +119,10 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed: - requires \separated(\union(&seq,&service_cpt,service_id+(..), - service_result+(..)),error); - requires \separated(error, - \union(service_result+(..),service_id+(..),&service_cpt,&seq)); + requires + \separated( + error, (int *)service_result + (..), (int *)service_id + (..), + &service_cpt, &seq + ); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle index d4109c976370521d7cc76a28e3f8f96a325a377e..c56fc78178c50807b4ed644139ec1d2a7ae4737d 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle @@ -44,8 +44,8 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'swap': /*@ behavior typed_ref: - requires \separated(a,b); - requires \valid(a); - requires \valid(b); + requires \separated(b, a); + requires \valid(a); + requires \valid(b); */ void swap(int *a, int *b); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle index 58761bdefa349443b64e729fa5e64f3ed17f288f..7e327b11a789f998a2e487876f530db99f3c476a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle @@ -16,5 +16,6 @@ f 1 - 2 50.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f': - /*@ behavior typed_ref: requires \valid(written); */ + /*@ behavior typed_ref: + requires \valid(written); */ void f(unsigned int *written); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle index 510cdf0e6515a3942cc18cdd34f16d5a71cdb40c..1928fc98220abc5021dbaacf7f624dc769aa08e1 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle @@ -33,9 +33,10 @@ [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed: - requires \separated(\union(&seq,&service_cpt,service_id+(..), - service_result+(..)),error); - requires \separated(error, - \union(service_result+(..),service_id+(..),&service_cpt,&seq)); + requires + \separated( + error, (int *)service_result + (..), (int *)service_id + (..), + &service_cpt, &seq + ); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle index 3f86181576795e8489a9f758ae342a2559a5301f..dbb2487bebbd74591dec9a919c67e11a771a55b6 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle @@ -29,10 +29,16 @@ [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed_ref: - requires \separated(error, - \union(&seq,&service_cpt,service_id+(..),service_result+(..))); - requires \separated(error, - \union(service_result+(..),service_id+(..),&service_cpt,&seq)); - requires \valid(error); + requires + \separated( + (int *)service_result + (..), (int *)service_id + (..), + &service_cpt, &seq, error + ); + requires + \separated( + error, (int *)service_result + (..), (int *)service_id + (..), + &service_cpt, &seq + ); + requires \valid(error); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle index ce020046acf9048667a7c9075e093f25b91b240e..6f039f366e4de88733fe8be43f46a2fa01f052a7 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle @@ -20,8 +20,8 @@ [wp] Warning: Memory model hypotheses for function 'swap': /*@ behavior typed_ref: - requires \separated(a,b); - requires \valid(a); - requires \valid(b); + requires \separated(b, a); + requires \valid(a); + requires \valid(b); */ void swap(int *a, int *b); diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle index bf3ddd5799774b1ac136def68852e3a87dd4d78e..99b18742b0ce42dcf50c680a4d704947e679b992 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle @@ -72,24 +72,24 @@ Prove: P_OBS(x_2, x_3, x_4). [wp] Warning: Memory model hypotheses for function 'implicit': /*@ behavior typed_caveat: - requires \separated(a,r); - requires \valid(a); - requires \valid(r); + requires \separated(r, a); + requires \valid(a); + requires \valid(r); */ void implicit(struct S *a, int *r); [wp] Warning: Memory model hypotheses for function 'explicit': /*@ behavior typed_caveat: - requires \separated(a,r); - requires \valid(a); - requires \valid(r); + requires \separated(r, a); + requires \valid(a); + requires \valid(r); */ void explicit(struct S *a, int *r); [wp] Warning: Memory model hypotheses for function 'observer': /*@ behavior typed_caveat: - requires \separated(a,r); - requires \valid(a); - requires \valid(r); + requires \separated(r, a); + requires \valid(a); + requires \valid(r); */ void observer(struct S *a, int *r); diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle index e1c317646d5c3668adc48bea4aed56cf81a2b64c..234508ea4f734905e15977f9d2696735782f27b5 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle @@ -101,8 +101,8 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed_caveat: - requires \separated(p,b+(..)); - requires \valid(p); - requires \valid(b+(..)); + requires \separated(b + (..), p); + requires \valid(b + (..)); + requires \valid(p); */ void job(struct S *p, int n, int *b); diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle index 514fab0cd9fcf83dc2cd37d5a5ff18e1057c975c..200b214f0ccfe0b3cc9a7e5f43a23baa60d71afa 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle @@ -156,5 +156,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_caveat: requires \valid(p+(..)); */ + /*@ behavior typed_caveat: + requires \valid(p + (..)); */ void reset(struct S *p); diff --git a/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle index a6c3906898ab2a46097521bb629c95a4baea45c2..504e20e6bd6202c3bf8cfb5b05d9ee181c31efb3 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle @@ -21,5 +21,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'foo': - /*@ behavior typed: requires \separated(&GLOBAL,a); */ + /*@ behavior typed: + requires \separated(a, &GLOBAL); */ void foo(int *a); diff --git a/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle index 33647c6dcb46b2e1befed2cb567b45d93b8caea2..5d5c635c06b555c2b2717dd33b44fa0d7aa12e51 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle @@ -21,5 +21,7 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'foo': - /*@ behavior typed_ref: requires \separated(a,&GLOBAL); requires \valid(a); */ + /*@ behavior typed_ref: + requires \separated(&GLOBAL, a); + requires \valid(a); */ void foo(int *a); diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle index f3a2767ec5c1975e6ce6eb91bc438810cf292e40..967d775c75e0b4c041e6d445983b911483b80f60 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle @@ -171,8 +171,8 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'memcpy_context_vars': /*@ behavior typed: - requires \separated(src,dst); - requires \valid(src); - requires \valid(dst); + requires \separated(dst, src); + requires \valid(dst); + requires \valid(src); */ void memcpy_context_vars(unsigned char *src, unsigned char *dst, int len); diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle index ec41c7f550d2d54273da0404d0e7bc613adf0a0d..5ce9a0dd10cada654d1d8f18025ebf09c6bbdb23 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle @@ -26,7 +26,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'f': /*@ behavior typed_caveat: - requires \separated(ptr,src); - requires \valid(ptr); + requires \separated(src, ptr); + requires \valid(ptr); */ void f(char *ptr, char const *src, unsigned int idx); diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle index c46a68ad13b89baae4c0d141b923caf8a188ee10..e5abfd8d02a9863e9e553f665cf5e186647ab75c 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle @@ -24,8 +24,8 @@ [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed_caveat: - requires \separated(p,b+(..)); - requires \valid(p); - requires \valid(b+(..)); + requires \separated(b + (..), p); + requires \valid(b + (..)); + requires \valid(p); */ void job(struct S *p, int n, int *b); diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle index cf2d2ab507e212d9026a3324ba1963b03dba4607..d985f8cbec7862bbf1d917c194ff5c9b438f2403 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle @@ -24,5 +24,6 @@ reset 7 5 12 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_caveat: requires \valid(p+(..)); */ + /*@ behavior typed_caveat: + requires \valid(p + (..)); */ void reset(struct S *p); diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle index e063c170d221248677920e5087360ea1b8fc5798..d3fa8c4754e5781ab40c05a476169ff82ffe5fa0 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle @@ -24,8 +24,8 @@ [wp] Warning: Memory model hypotheses for function 'memcpy_context_vars': /*@ behavior typed: - requires \separated(src,dst); - requires \valid(src); - requires \valid(dst); + requires \separated(dst, src); + requires \valid(dst); + requires \valid(src); */ void memcpy_context_vars(unsigned char *src, unsigned char *dst, int len);