diff --git a/src/plugins/e-acsl/env.ml b/src/plugins/e-acsl/env.ml index 1e911b3d17b18982c22e05affe1c513cbe9c45bd..7224d5519e39957161ade8c2d5719d564b076592 100644 --- a/src/plugins/e-acsl/env.ml +++ b/src/plugins/e-acsl/env.ml @@ -59,7 +59,7 @@ type t = env_stack: local_env list; init_env: local_env; var_mapping: Varinfo.t Logic_var.Map.t; (* bind logic var to C var *) - loop_invariants: predicate named list list; + loop_invariants: predicate list list; (* list of loop invariants for each currently visited loops *) cpt: int; (* counter used when generating variables *) } diff --git a/src/plugins/e-acsl/env.mli b/src/plugins/e-acsl/env.mli index f1d5f2c452fb46cceac152df003a2cb60c545f20..51d40665385a737a24d99e6e8d560ecd6bbf46c4 100644 --- a/src/plugins/e-acsl/env.mli +++ b/src/plugins/e-acsl/env.mli @@ -66,7 +66,7 @@ module Logic_binding: sig val remove: t -> logic_var -> t end -val add_assert: t -> stmt -> predicate named -> unit +val add_assert: t -> stmt -> predicate -> unit (** [add_assert env s p] associates the assertion [p] to the statement [s] in the environment [env]. *) @@ -119,8 +119,8 @@ val set_annotation_kind: t -> Misc.annotation_kind -> t (* ************************************************************************** *) val push_loop: t -> t -val add_loop_invariant: t -> predicate named -> t -val pop_loop: t -> predicate named list * t +val add_loop_invariant: t -> predicate -> t +val pop_loop: t -> predicate list * t (* ************************************************************************** *) (** {2 RTEs} *) diff --git a/src/plugins/e-acsl/main.ml b/src/plugins/e-acsl/main.ml index b4fa6ede3c3d899359027f4a782727de87d15806..a3871f06a64cd2914f885513318126cbdc97f8e3 100644 --- a/src/plugins/e-acsl/main.ml +++ b/src/plugins/e-acsl/main.ml @@ -191,7 +191,7 @@ let predicate_to_exp = ~journalize:false "predicate_to_exp" (Datatype.func2 - Kernel_function.ty Cil_datatype.Predicate_named.ty Cil_datatype.Exp.ty) + Kernel_function.ty Cil_datatype.Predicate.ty Cil_datatype.Exp.ty) Translate.predicate_to_exp let add_e_acsl_library _files = diff --git a/src/plugins/e-acsl/misc.ml b/src/plugins/e-acsl/misc.ml index 1b32c106fcf84a3578fe2b482d2d52337dfd9808..1704470ba4b6d46a6d8329d5623fd311e74e8afd 100644 --- a/src/plugins/e-acsl/misc.ml +++ b/src/plugins/e-acsl/misc.ml @@ -145,10 +145,10 @@ let mk_gen_name name = (* Build a C conditional doing a runtime assertion check. *) let mk_e_acsl_guard ?(reverse=false) kind kf e p = - let loc = p.loc in + let loc = p.pred_loc in let msg = Kernel.Unicode.without_unicode - (Format.asprintf "%a@?" Printer.pp_predicate_named) p + (Format.asprintf "%a@?" Printer.pp_predicate) p in let line = (fst loc).Lexing.pos_lnum in let e = diff --git a/src/plugins/e-acsl/misc.mli b/src/plugins/e-acsl/misc.mli index 261a76633610ea1570ec2befb97857b35d2095f7..dbc11e59db77a31e3d42e65d56d078a7605c1836 100644 --- a/src/plugins/e-acsl/misc.mli +++ b/src/plugins/e-acsl/misc.mli @@ -46,7 +46,7 @@ type annotation_kind = | RTE val mk_e_acsl_guard: - ?reverse:bool -> annotation_kind -> kernel_function -> exp -> predicate named + ?reverse:bool -> annotation_kind -> kernel_function -> exp -> predicate -> stmt val mk_block: Project.t -> stmt -> block -> stmt diff --git a/src/plugins/e-acsl/mmodel_analysis.ml b/src/plugins/e-acsl/mmodel_analysis.ml index 760834c8209a42aab7dcd261db423ed328cff3ea..117b3cf5b33b179c66c26c0929b3ad01e015529f 100644 --- a/src/plugins/e-acsl/mmodel_analysis.ml +++ b/src/plugins/e-acsl/mmodel_analysis.ml @@ -309,7 +309,7 @@ module rec Transfer let register_object kf state_ref = object inherit Visitor.frama_c_inplace - method !vpredicate = function + method !vpredicate_node = function | Pvalid(_, t) | Pvalid_read(_, t) | Pvalid_function t | Pinitialized(_, t) | Pfreeable(_, t) -> (* Options.feedback "REGISTER %a" Cil.d_term t;*) diff --git a/src/plugins/e-acsl/quantif.ml b/src/plugins/e-acsl/quantif.ml index 71ab22990c6307f86fb67cb63675c3c736a7235b..f26cb8fa5f1069e757cab8767ebfc5a128e5970f 100644 --- a/src/plugins/e-acsl/quantif.ml +++ b/src/plugins/e-acsl/quantif.ml @@ -24,8 +24,8 @@ open Cil_types open Cil open Cil_datatype -let named_predicate_to_exp_ref - : (kernel_function -> Env.t -> predicate named -> exp * Env.t) ref +let predicate_to_exp_ref + : (kernel_function -> Env.t -> predicate -> exp * Env.t) ref = Extlib.mk_fun "named_predicate_to_exp_ref" let term_to_exp_ref @@ -37,7 +37,7 @@ let compute_quantif_guards quantif bounded_vars hyps = let msg1 = Format.asprintf msg pp x in let msg2 = Format.asprintf "@[ in quantification@ %a@]" - Printer.pp_predicate_named quantif + Printer.pp_predicate quantif in Error.untypable (msg1 ^ msg2) in @@ -58,8 +58,8 @@ let compute_quantif_guards quantif bounded_vars hyps = else error "@[invalid binder %a@]" Printer.pp_term t | _ -> error "@[invalid binder %a@]" Printer.pp_term t in - let rec parse acc vars p = match p.content with - | Pand(p, { content = Prel((Rlt | Rle) as r, t1, t2) }) -> + let rec parse acc vars p = match p.pred_content with + | Pand(p, { pred_content = Prel((Rlt | Rle) as r, t1, t2) }) -> (* && is left-associative in the AST *) let acc, partial, vars = parse acc vars p in (match partial with @@ -82,7 +82,7 @@ let compute_quantif_guards quantif bounded_vars hyps = | Prel((Rlt | Rle) as r, t1, t2) -> (* left-most predicate: the searched variable is [t2] *) left_term acc vars (t1, r) t2 - | _ -> error "@[invalid guard %a@]" Printer.pp_predicate_named p + | _ -> error "@[invalid guard %a@]" Printer.pp_predicate p in let acc, partial, vars = parse [] bounded_vars hyps in (match partial with @@ -100,7 +100,7 @@ let compute_quantif_guards quantif bounded_vars hyps = List.iter (fun v -> Format.fprintf fmt "@[%a @]" Printer.pp_logic_var v) vars) - Printer.pp_predicate_named quantif + Printer.pp_predicate quantif in Error.untypable msg); List.rev acc @@ -119,7 +119,7 @@ let convert kf env loc is_forall p bounded_vars hyps goal = if is_forall then o, z, (fun x -> x) else z, o, (fun e -> new_exp ~loc:e.eloc (UnOp(LNot, e, intType))) in - let named_predicate_to_exp = !named_predicate_to_exp_ref in + let named_predicate_to_exp = !predicate_to_exp_ref in let term_to_exp = !term_to_exp_ref in (* universal quantification over integers (or a subtype of integer) *) let guards = compute_quantif_guards p bounded_vars hyps in @@ -281,12 +281,12 @@ let convert kf env loc is_forall p bounded_vars hyps goal = res, env let quantif_to_exp kf env p = - let loc = p.loc in - match p.content with - | Pforall(bounded_vars, { content = Pimplies(hyps, goal) }) -> + let loc = p.pred_loc in + match p.pred_content with + | Pforall(bounded_vars, { pred_content = Pimplies(hyps, goal) }) -> convert kf env loc true p bounded_vars hyps goal | Pforall _ -> Error.not_yet "unguarded \\forall quantification" - | Pexists(bounded_vars, { content = Pand(hyps, goal) }) -> + | Pexists(bounded_vars, { pred_content = Pand(hyps, goal) }) -> convert kf env loc false p bounded_vars hyps goal | Pexists _ -> Error.not_yet "unguarded \\exists quantification" | _ -> assert false diff --git a/src/plugins/e-acsl/quantif.mli b/src/plugins/e-acsl/quantif.mli index e1cb26309d32ca157739e6d69d9f4251493d8715..873579909f499b4b8671d75d3c39b3ad529513c0 100644 --- a/src/plugins/e-acsl/quantif.mli +++ b/src/plugins/e-acsl/quantif.mli @@ -24,15 +24,15 @@ open Cil_types -val quantif_to_exp: kernel_function -> Env.t -> predicate named -> exp * Env.t +val quantif_to_exp: kernel_function -> Env.t -> predicate -> exp * Env.t (** The given predicate must be a quantification. *) (* ***********************************************************************) (** {2 Forward references} *) (* ***********************************************************************) -val named_predicate_to_exp_ref: - (kernel_function -> Env.t -> predicate named -> exp * Env.t) ref +val predicate_to_exp_ref: + (kernel_function -> Env.t -> predicate -> exp * Env.t) ref val term_to_exp_ref: (kernel_function -> Env.t -> term -> exp * Env.t) ref diff --git a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevator_test/CSRV14/main.o b/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevator_test/CSRV14/main.o deleted file mode 100755 index 41692ff84e80669df0633240871ef9484128465d..0000000000000000000000000000000000000000 Binary files a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevator_test/CSRV14/main.o and /dev/null differ diff --git a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/cabin.o b/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/cabin.o deleted file mode 100755 index 7ef4b421ba573c31d17f4838e2a1a4c496b7cd2e..0000000000000000000000000000000000000000 Binary files a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/cabin.o and /dev/null differ diff --git a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/door.o b/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/door.o deleted file mode 100755 index 07cc21e7226302faf0db09e9d52b851171012680..0000000000000000000000000000000000000000 Binary files a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/door.o and /dev/null differ diff --git a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/elevator.o b/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/elevator.o deleted file mode 100755 index 2e58d11072effaf2debbfa9048618b2a1d9f5023..0000000000000000000000000000000000000000 Binary files a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/elevator.o and /dev/null differ diff --git a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/ext_call.o b/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/ext_call.o deleted file mode 100755 index 08a427d2d19bf02c9a4cff84adc6099c209d908a..0000000000000000000000000000000000000000 Binary files a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/ext_call.o and /dev/null differ diff --git a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/rendering.o b/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/rendering.o deleted file mode 100755 index 3849778e6b1899979ba67ec3e5e2c7c2a30514c5..0000000000000000000000000000000000000000 Binary files a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/rendering.o and /dev/null differ diff --git a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/testing.o b/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/testing.o deleted file mode 100755 index b168888c608f174a022e681f1032eda7d84d06e2..0000000000000000000000000000000000000000 Binary files a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/testing.o and /dev/null differ diff --git a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/transitions.o b/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/transitions.o deleted file mode 100755 index 0a7018777f678ae53443b4232b18ba249eec8a91..0000000000000000000000000000000000000000 Binary files a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/transitions.o and /dev/null differ diff --git a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/utils.o b/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/utils.o deleted file mode 100755 index 8f3f5088e0dae947f0fbb96d5f69d5ad79a92a6a..0000000000000000000000000000000000000000 Binary files a/src/plugins/e-acsl/tests/csrv14/Team3/Bench1/elevatorlib/CSRV14/src/utils.o and /dev/null differ diff --git a/src/plugins/e-acsl/translate.ml b/src/plugins/e-acsl/translate.ml index bcb73b373ca6c5f3394fd6ff59971d44b0fcadf7..4cb1ce8ed9a2197274f1b1d2c422825b88f6e596 100644 --- a/src/plugins/e-acsl/translate.ml +++ b/src/plugins/e-acsl/translate.ml @@ -607,8 +607,8 @@ and at_to_exp env t_opt label e = any) in the given environment. Also extend this environment which includes the generating constructs. *) and named_predicate_content_to_exp ?name kf env p = - let loc = p.loc in - match p.content with + let loc = p.pred_loc in + match p.pred_content with | Pfalse -> Cil.zero ~loc, env | Ptrue -> Cil.one ~loc, env | Papp _ -> not_yet env "logic function application" @@ -720,7 +720,7 @@ and named_predicate_to_exp ?name kf ?rte env p = let env = if rte then translate_rte kf env e else env in let cast = Typing.get_cast_of_predicate p in add_cast - ~loc:p.loc + ~loc:p.pred_loc ?name env cast @@ -758,7 +758,7 @@ and translate_rte kf env e = and translate_named_predicate kf env p = Options.feedback ~dkey ~level:3 "translating predicate %a" - Printer.pp_predicate_named p; + Printer.pp_predicate p; let rte = Env.generate_rte env in Typing.type_named_predicate ~must_clear:rte p; let e, env = named_predicate_to_exp kf ~rte env p in @@ -772,7 +772,7 @@ let named_predicate_to_exp ?name kf env p = let () = Quantif.term_to_exp_ref := term_to_exp; - Quantif.named_predicate_to_exp_ref := named_predicate_to_exp + Quantif.predicate_to_exp_ref := named_predicate_to_exp (* This function is used by Guillaume. However, it is correct to use it only in specific contexts. *) @@ -814,10 +814,10 @@ let term_to_exp typ t = let assumes_predicate bhv = List.fold_left - (fun acc p -> - Logic_const.pand - ~loc:p.ip_loc - (acc, Logic_const.unamed ~loc:p.ip_loc p.ip_content)) + (fun acc p -> + let loc = p.ip_content.pred_loc in + Logic_const.pand ~loc (acc, + Logic_const.unamed ~loc p.ip_content.pred_content)) Logic_const.ptrue bhv.b_assumes @@ -842,13 +842,14 @@ let translate_preconditions kf kinstr env behaviors = let assumes_pred = assumes_predicate b in List.fold_left (fun env p -> - let do_it env = - if must_translate (Property.ip_of_requires kf kinstr b p) then - let loc = p.ip_loc in - let p = - Logic_const.pimplies - ~loc - (assumes_pred, Logic_const.unamed ~loc p.ip_content) + let do_it env = + if must_translate (Property.ip_of_requires kf kinstr b p) then + let loc = p.ip_content.pred_loc in + let p = + Logic_const.pimplies + ~loc + (assumes_pred, + Logic_const.unamed ~loc p.ip_content.pred_content) in translate_named_predicate kf env p else @@ -881,13 +882,13 @@ let translate_postconditions kf kinstr env behaviors = let do_it env = match t with | Normal -> - let loc = p.ip_loc in + let loc = p.ip_content.pred_loc in let p = p.ip_content in let p = Logic_const.pimplies ~loc (Logic_const.pold ~loc assumes_pred, - Logic_const.unamed ~loc p) + Logic_const.unamed ~loc p.pred_content) in translate_named_predicate kf env p | Exits | Breaks | Continues | Returns -> diff --git a/src/plugins/e-acsl/translate.mli b/src/plugins/e-acsl/translate.mli index 3e858be410e6b9c483ac0a625d97828b36b11993..294b0cde138c37781f9f73f06cff206319fcc7ff 100644 --- a/src/plugins/e-acsl/translate.mli +++ b/src/plugins/e-acsl/translate.mli @@ -33,7 +33,7 @@ val translate_pre_code_annotation: val translate_post_code_annotation: kernel_function -> stmt -> Env.t -> code_annotation -> Env.t val translate_named_predicate: - kernel_function -> Env.t -> predicate named -> Env.t + kernel_function -> Env.t -> predicate -> Env.t val translate_rte_annots: (Format.formatter -> 'a -> unit) -> @@ -46,7 +46,7 @@ val translate_rte_annots: exception No_simple_translation of term val term_to_exp: typ option -> term -> exp -val predicate_to_exp: kernel_function -> predicate named -> exp +val predicate_to_exp: kernel_function -> predicate -> exp val set_original_project: Project.t -> unit diff --git a/src/plugins/e-acsl/typing.ml b/src/plugins/e-acsl/typing.ml index 7b7832024fc6384ec236fb7cffee767eb7e1227b..1475fe087f00b12769a368ff3265caa6b8d5e77a 100644 --- a/src/plugins/e-acsl/typing.ml +++ b/src/plugins/e-acsl/typing.ml @@ -28,7 +28,7 @@ open Cil_types let dkey = Options.dkey_typing let compute_quantif_guards_ref - : (predicate named -> logic_var list -> predicate named -> + : (predicate -> logic_var list -> predicate -> (term * relation * logic_var * relation * term) list) ref = Extlib.mk_fun "compute_quantif_guards_ref" @@ -443,10 +443,10 @@ and type_term_offset = function ignore (type_term ~force:true ~ctx:(size_t ()) t); type_term_offset toff -let rec type_predicate_named p = - Cil.CurrentLoc.set p.loc; +let rec type_predicate p = + Cil.CurrentLoc.set p.pred_loc; (* this pattern matching also follows the formal rules of the JFLA's paper *) - let op = match p.content with + let op = match p.pred_content with | Pfalse | Ptrue -> c_int | Papp _ -> Error.not_yet "logic function application" | Pseparated _ -> Error.not_yet "\\separated" @@ -471,22 +471,22 @@ let rec type_predicate_named p = | Pxor(p1, p2) | Pimplies(p1, p2) | Piff(p1, p2) -> - ignore (type_predicate_named p1); - ignore (type_predicate_named p2); + ignore (type_predicate p1); + ignore (type_predicate p2); c_int | Pnot p -> - ignore (type_predicate_named p); + ignore (type_predicate p); c_int | Pif(t, p1, p2) -> let ctx = mk_ctx ~force:true c_int in ignore (type_term ~force:true ~ctx t); - ignore (type_predicate_named p1); - ignore (type_predicate_named p2); + ignore (type_predicate p1); + ignore (type_predicate p2); c_int | Plet _ -> Error.not_yet "let _ = _ in _" - | Pforall(bounded_vars, { content = Pimplies(hyps, goal) }) - | Pexists(bounded_vars, { content = Pand(hyps, goal) }) -> + | Pforall(bounded_vars, { pred_content = Pimplies(hyps, goal) }) + | Pexists(bounded_vars, { pred_content = Pand(hyps, goal) }) -> let guards = !compute_quantif_guards_ref p bounded_vars hyps in List.iter (fun (t1, r1, x, r2, t2) -> @@ -525,7 +525,7 @@ let rec type_predicate_named p = ignore (type_term ~force:true ~ctx t2); Interval.Env.add x i) guards; - (type_predicate_named goal).ty + (type_predicate goal).ty | Pinitialized(_, t) | Pfreeable(_, t) @@ -538,7 +538,7 @@ let rec type_predicate_named p = | Pforall _ -> Error.not_yet "unguarded \\forall quantification" | Pexists _ -> Error.not_yet "unguarded \\exists quantification" - | Pat(p, _) -> (type_predicate_named p).ty + | Pat(p, _) -> (type_predicate p).ty | Pfresh _ -> Error.not_yet "\\fresh" | Psubtype _ -> Error.not_yet "subtyping relation" (* Jessie specific *) in @@ -551,12 +551,12 @@ let type_term ~force ?ctx t = let type_named_predicate ?(must_clear=true) p = Options.feedback ~dkey ~level:3 "typing predicate '%a'." - Printer.pp_predicate_named p; + Printer.pp_predicate p; if must_clear then begin Interval.Env.clear (); Memo.clear () end; - ignore (type_predicate_named p) + ignore (type_predicate p) (******************************************************************************) (** {2 Getters} *) @@ -564,7 +564,7 @@ let type_named_predicate ?(must_clear=true) p = let get_integer_ty t = (Memo.get t).ty let get_integer_op t = (Memo.get t).op -let get_integer_op_of_predicate p = (type_predicate_named p).op +let get_integer_op_of_predicate p = (type_predicate p).op (* {!typ_of_integer}, but handle the not-integer cases. *) let extract_typ t ty = @@ -593,7 +593,7 @@ let get_cast t = with Not_an_integer -> None let get_cast_of_predicate p = - let info = type_predicate_named p in + let info = type_predicate p in try Extlib.opt_map typ_of_integer_ty info.cast with Not_an_integer -> assert false diff --git a/src/plugins/e-acsl/typing.mli b/src/plugins/e-acsl/typing.mli index de5d764a9f708a94b57342f4d5951abbe29fa214..177e4f99acd6983fde71a8ce88124f73b24d5f27 100644 --- a/src/plugins/e-acsl/typing.mli +++ b/src/plugins/e-acsl/typing.mli @@ -86,7 +86,7 @@ val type_term: force:bool -> ?ctx:integer_ty -> term -> unit [force] is true, then the conversion to the given context is done even if -e-acsl-gmp-only is set. *) -val type_named_predicate: ?must_clear:bool -> predicate named -> unit +val type_named_predicate: ?must_clear:bool -> predicate -> unit (** Compute the type of each term of the given predicate. Set {!must_clear} to false in order to not reset the environment. *) @@ -107,7 +107,7 @@ val get_integer_op: term -> integer_ty It is meaningless to call this function over a non-arithmetical/logical operator. *) -val get_integer_op_of_predicate: predicate named -> integer_ty +val get_integer_op_of_predicate: predicate -> integer_ty (** @return the infered type for the top operation of the given predicate. *) val get_typ: term -> typ @@ -120,7 +120,7 @@ val get_op: term -> typ val get_cast: term -> typ option (** Get the type which the given term must be converted to (if any). *) -val get_cast_of_predicate: predicate named -> typ option +val get_cast_of_predicate: predicate -> typ option (** Like {!get_cast}, but for predicates. *) (******************************************************************************) @@ -128,7 +128,7 @@ val get_cast_of_predicate: predicate named -> typ option (******************************************************************************) val compute_quantif_guards_ref - : (predicate named -> logic_var list -> predicate named -> + : (predicate -> logic_var list -> predicate -> (term * relation * logic_var * relation * term) list) ref (** Forward reference. *) diff --git a/src/plugins/e-acsl/visit.ml b/src/plugins/e-acsl/visit.ml index a8eb4c67809ef712e843c756b2c818103fdf294b..76f6840b162814830308c023a5df791aa9c8120a 100644 --- a/src/plugins/e-acsl/visit.ml +++ b/src/plugins/e-acsl/visit.ml @@ -737,7 +737,7 @@ you must call function `%s' and `__e_acsl_memory_clean by yourself.@]" | _ -> ()); t) - method !vpredicate _ = + method !vpredicate_node _ = Cil.DoChildrenPost (function | Pat(_, StmtLabel s_ref) as p ->