diff --git a/src/plugins/e-acsl/src/analyses/logic_normalizer.ml b/src/plugins/e-acsl/src/analyses/logic_normalizer.ml index f98b3485092d29c6659b6a6a989cfe64ffb99acc..52a296b94c20e44c20b56ae1cf8e293a4ee427a3 100644 --- a/src/plugins/e-acsl/src/analyses/logic_normalizer.ml +++ b/src/plugins/e-acsl/src/analyses/logic_normalizer.ml @@ -90,7 +90,8 @@ let preprocess_pred ~loc p = ~loc (llabel, Logic_utils.mk_logic_AddrOf ~loc tlv lty) in - (* need to store a copy, to avoid p to appear in its own preprocessed form (otherwise it loops) *) + (* need to store a copy, to avoid p to appear in its own preprocessed + form (otherwise it loops) *) let p_copy = match p.pred_content with | Pvalid_read _ -> Logic_const.pvalid_read ~loc (llabel, t) @@ -100,17 +101,6 @@ let preprocess_pred ~loc p = Some (Lscope.PoT_pred (Logic_const.pand ~loc (init, p_copy))) | _ -> None end - | Papp(li, labels, args) -> - (* Simply use the implementation of Tapp(li, labels, args). To achieve this, - we create a clone of [li] for which the type is transformed from [None] - (type of predicates) to [Some boolean] (typed as a term). *) - let prj = Project.current () in - let o = object inherit Visitor.frama_c_copy prj end in - let li = Visitor.visitFramacLogicInfo o li in - let lty = Logic_const.boolean_type in - li.l_type <- Some lty; - let tapp = Logic_const.term ~loc (Tapp(li, labels, args)) lty in - Some (Lscope.PoT_term tapp) | _ -> None let preprocess_term ~loc t = diff --git a/src/plugins/e-acsl/src/analyses/typing.ml b/src/plugins/e-acsl/src/analyses/typing.ml index 3910a72214b8b54afff5763973715792e3d3e2c9..0234137c76103a4d35bc3c5a38a8d975d1b90162 100644 --- a/src/plugins/e-acsl/src/analyses/typing.ml +++ b/src/plugins/e-acsl/src/analyses/typing.ml @@ -879,7 +879,7 @@ and type_predicate ?(lenv=[]) p = begin let guards, goal = Error.retrieve_preprocessing - "quantified predicate" + "preprocessing of quantified predicate" Bound_variables.get_preprocessed_quantifier p in diff --git a/src/plugins/e-acsl/src/code_generator/logic_functions.ml b/src/plugins/e-acsl/src/code_generator/logic_functions.ml index f81c8701aad1a93b61e4ff08f0ce7e38d9b4d10e..fe81e164e286babf865fd97aca574a98d6f576e2 100644 --- a/src/plugins/e-acsl/src/code_generator/logic_functions.ml +++ b/src/plugins/e-acsl/src/code_generator/logic_functions.ml @@ -332,8 +332,12 @@ let add_generated_functions globals = (* Generate (and memoize) the function body and create the call to the generated function. *) -let function_to_exp ~loc fname env kf t li params_ty args = - let ret_ty = Typing.get_typ ~lenv:(Env.Local_vars.get env) t in +let function_to_exp ~loc ?tapp fname env kf li params_ty args = + let ret_ty = + match tapp with + | Some tapp -> Typing.get_typ ~lenv:(Env.Local_vars.get env) tapp + | None -> (Cil_types.TInt (IInt, [])) + in let gen tbl = let vi, kf, gen_body = generate_kf fname ~loc env ret_ty params_ty li in Typing.Function_params_ty.Hashtbl.add tbl params_ty kf; @@ -387,11 +391,11 @@ let function_to_exp ~loc fname env kf t li params_ty args = ~name:li.l_var_info.lv_name env kf - (Some t) + tapp ret_ty (fun vi _ -> [ Cil.mkStmtOneInstr ~valid_sid:true (mkcall vi) ]) -let raise_errors l = function +let raise_errors = function | LBnone -> Error.not_yet "logic functions or predicates with no definition nor reads clause" @@ -399,59 +403,51 @@ let raise_errors l = function Error.not_yet "logic functions or predicates performing read accesses" | LBinductive _ -> Error.not_yet "inductive logic functions" | LBterm _ - | LBpred _ -> - match l with - | [] -> () - | _::_ -> Error.not_yet "logic functions or predicates with labels" + | LBpred _ -> () -let tapp_to_exp ~adata kf env ?eargs tapp = - match tapp.term_node with - | Tapp(li, l, targs) -> - let loc = tapp.term_loc in +let app_to_exp ~adata ~loc ?tapp kf env ?eargs + ((li, targs) : logic_info * term list) = let fname = li.l_var_info.lv_name in (* build the varinfo (as an expression) which stores the result of the function call. *) let _, e, adata, env = if Builtins.mem li.l_var_info.lv_name then - match l with - | _::_ -> Error.not_yet "E-ACSL built-in functions with labels" - | [] -> - (* E-ACSL built-in function call *) - let args, adata, env = - match eargs with - | None -> - List.fold_right - (fun targ (l, adata, env) -> - let e, adata, env = !term_to_exp_ref ~adata kf env targ in - e :: l, adata, env) - targs - ([], adata, env) - | Some eargs -> - if List.compare_lengths targs eargs != 0 then - Options.fatal - "[Tapp] unexpected number of arguments when calling %s" - fname; - eargs, adata, env - in - let vi, e, env = - Env.new_var - ~loc - ~name:(fname ^ "_app") - env - kf - (Some tapp) - (Misc.cty (Option.get li.l_type)) - (fun vi _ -> - [ Smart_stmt.rtl_call ~loc - ~result:(Cil.var vi) - ~prefix:"" - fname - args ]) - in - vi, e, adata, env + (* E-ACSL built-in function call *) + let args, adata, env = + match eargs with + | None -> + List.fold_right + (fun targ (l, adata, env) -> + let e, adata, env = !term_to_exp_ref ~adata kf env targ in + e :: l, adata, env) + targs + ([], adata, env) + | Some eargs -> + if List.compare_lengths targs eargs != 0 then + Options.fatal + "[Tapp] unexpected number of arguments when calling %s" + fname; + eargs, adata, env + in + let vi, e, env = + Env.new_var + ~loc + ~name:(fname ^ "_app") + env + kf + tapp + (Misc.cty (Option.get li.l_type)) + (fun vi _ -> + [ Smart_stmt.rtl_call ~loc + ~result:(Cil.var vi) + ~prefix:"" + fname + args ]) + in + vi, e, adata, env else begin - raise_errors l li.l_body; + raise_errors li.l_body; (* build the arguments and compute the integer_ty of the parameters *) let params_ty, args, adata, env = let eargs, adata, env = @@ -504,16 +500,123 @@ let tapp_to_exp ~adata kf env ?eargs tapp = Varname.get ~scope:Varname.Global (Functions.RTL.mk_gen_name fname) in let vi, e, env = - function_to_exp ~loc gen_fname env kf tapp li params_ty args + function_to_exp ~loc ?tapp gen_fname env kf li params_ty args in vi, e, adata, env end in e, adata, env - | _ -> - Options.fatal - "tapp_to_exp called with '%a' instead of Tapp term" - Printer.pp_term tapp + +(* let tapp_to_exp ~adata kf env ?eargs tapp = *) +(* match tapp.term_node with *) +(* | Tapp(li, l, targs) -> *) +(* let loc = tapp.term_loc in *) +(* let fname = li.l_var_info.lv_name in *) +(* (\* build the varinfo (as an expression) which stores the result of the *) +(* function call. *\) *) +(* let _, e, adata, env = *) +(* if Builtins.mem li.l_var_info.lv_name then *) +(* match l with *) +(* | _::_ -> Error.not_yet "E-ACSL built-in functions with labels" *) +(* | [] -> *) +(* (\* E-ACSL built-in function call *\) *) +(* let args, adata, env = *) +(* match eargs with *) +(* | None -> *) +(* List.fold_right *) +(* (fun targ (l, adata, env) -> *) +(* let e, adata, env = !term_to_exp_ref ~adata kf env targ in *) +(* e :: l, adata, env) *) +(* targs *) +(* ([], adata, env) *) +(* | Some eargs -> *) +(* if List.compare_lengths targs eargs != 0 then *) +(* Options.fatal *) +(* "[Tapp] unexpected number of arguments when calling %s" *) +(* fname; *) +(* eargs, adata, env *) +(* in *) +(* let vi, e, env = *) +(* Env.new_var *) +(* ~loc *) +(* ~name:(fname ^ "_app") *) +(* env *) +(* kf *) +(* (Some tapp) *) +(* (Misc.cty (Option.get li.l_type)) *) +(* (fun vi _ -> *) +(* [ Smart_stmt.rtl_call ~loc *) +(* ~result:(Cil.var vi) *) +(* ~prefix:"" *) +(* fname *) +(* args ]) *) +(* in *) +(* vi, e, adata, env *) +(* else *) +(* begin *) +(* raise_errors l li.l_body; *) +(* (\* build the arguments and compute the integer_ty of the parameters *\) *) +(* let params_ty, args, adata, env = *) +(* let eargs, adata, env = *) +(* match eargs with *) +(* | None -> *) +(* List.fold_right *) +(* (fun targ (eargs, adata, env) -> *) +(* let e, adata, env = !term_to_exp_ref ~adata kf env targ in *) +(* e :: eargs, adata, env) *) +(* targs *) +(* ([], adata, env) *) +(* | Some eargs -> *) +(* if List.compare_lengths targs eargs != 0 then *) +(* Options.fatal *) +(* "[Tapp] unexpected number of arguments when calling %s" *) +(* fname; *) +(* eargs, adata, env *) +(* in *) +(* try *) +(* List.fold_right2 *) +(* (fun targ earg (params_ty, args, adata, env) -> *) +(* let param_ty = *) +(* Typing.get_number_ty *) +(* ~lenv:(Env.Local_vars.get env) *) +(* targ *) +(* in *) +(* let e, env = *) +(* try *) +(* let ty = Typing.typ_of_number_ty param_ty in *) +(* Typed_number.add_cast *) +(* ~loc *) +(* env *) +(* kf *) +(* (Some ty) *) +(* Typed_number.C_number *) +(* (Some targ) *) +(* earg *) +(* with Typing.Not_a_number -> *) +(* earg, env *) +(* in *) +(* param_ty :: params_ty, e :: args, adata, env) *) +(* targs eargs *) +(* ([], [], adata ,env) *) +(* with Invalid_argument _ -> *) +(* Options.fatal *) +(* "[Tapp] unexpected number of arguments when calling %s" *) +(* fname *) +(* in *) +(* let gen_fname = *) +(* Varname.get ~scope:Varname.Global (Functions.RTL.mk_gen_name fname) *) +(* in *) +(* let vi, e, env = *) +(* function_to_exp ~loc ~tapp gen_fname env kf li params_ty args *) +(* in *) +(* vi, e, adata, env *) +(* end *) +(* in *) +(* e, adata, env *) +(* | _ -> *) +(* Options.fatal *) +(* "tapp_to_exp called with '%a' instead of Tapp term" *) +(* Printer.pp_term tapp *) (* Local Variables: diff --git a/src/plugins/e-acsl/src/code_generator/logic_functions.mli b/src/plugins/e-acsl/src/code_generator/logic_functions.mli index e5f646c360bb21f73d839f74ec629f8d1388744e..39f5e71b5740afca5268e636ec0419f210608b25 100644 --- a/src/plugins/e-acsl/src/code_generator/logic_functions.mli +++ b/src/plugins/e-acsl/src/code_generator/logic_functions.mli @@ -36,12 +36,14 @@ open Cil_types val reset: unit -> unit -val tapp_to_exp: +val app_to_exp: adata:Assert.t -> + loc:location -> + ?tapp:term -> kernel_function -> Env.t -> ?eargs:exp list -> - term -> + logic_info * term list -> exp * Assert.t * Env.t (** Translate a Tapp term to an expression. If the optional argument [eargs] is provided, then these expressions are used as arguments of the fonction. *) diff --git a/src/plugins/e-acsl/src/code_generator/loops.ml b/src/plugins/e-acsl/src/code_generator/loops.ml index ff6d18098da8cfc67cd21c7a7b23dbb286de01e4..28f9cc13914766a32aa85b68c6a78811ce9a9f49 100644 --- a/src/plugins/e-acsl/src/code_generator/loops.ml +++ b/src/plugins/e-acsl/src/code_generator/loops.ml @@ -109,12 +109,14 @@ let handle_annotations env kf stmt = Typing.type_term ~use_gmp_opt:true tapp; let e, _, env = !term_to_exp_ref ~adata:Assert.no_data kf env t in let e_tapp, _, env = - Logic_functions.tapp_to_exp + Logic_functions.app_to_exp ~adata:Assert.no_data + ~loc + ~tapp kf env ~eargs:[e_old; e] - tapp + (measure, [t_old; t]) in let msg = Format.asprintf diff --git a/src/plugins/e-acsl/src/code_generator/quantif.ml b/src/plugins/e-acsl/src/code_generator/quantif.ml index d569c5df9ee9c84e8e3a789109d9c7231926d57e..144703164492ce26c48c770b51f8150ffbcd3981 100644 --- a/src/plugins/e-acsl/src/code_generator/quantif.ml +++ b/src/plugins/e-acsl/src/code_generator/quantif.ml @@ -68,7 +68,7 @@ let convert kf env loc ~is_forall quantif = (* guarded quantification over integers (or a subtype of integer) *) let bound_vars, goal = Error.retrieve_preprocessing - "quantified predicate" + "preprocessing of quantified predicate" Bound_variables.get_preprocessed_quantifier quantif in diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index d11f6481ab8bec7bd4cb0ccab07050fbdff2d617..2f359ead172364cac0338a8343d3666b8f251c7b 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -767,12 +767,13 @@ and context_insensitive_term_to_exp ~adata kf env t = | Tapp(li, _, _) when li.l_body = LBnone && li.l_var_info.lv_name = "\\numof" -> assert false - | Tapp(_, [], _) -> - let e, adata, env = Logic_functions.tapp_to_exp ~adata kf env t in + | Tapp(li, [], args) -> + let e, adata, env = + Logic_functions.app_to_exp ~adata ~loc ~tapp:t kf env (li, args) in let adata, env = Assert.register_term ~loc kf env t e adata in e, adata, env, Typed_number.C_number, "app" | Tapp(_, _ :: _, _) -> - Env.not_yet env "logic functions or predicates with labels" + Env.not_yet env "logic functions with labels" | Tlambda(_, lt) -> let exp, adata, env = term_to_exp ~adata kf env lt in exp, adata, env, Typed_number.C_number, "" @@ -1039,7 +1040,12 @@ and predicate_content_to_exp ~adata ?name kf env p = match p.pred_content with | Pfalse -> Cil.zero ~loc, adata, env | Ptrue -> Cil.one ~loc, adata, env - | Papp _ -> Options.fatal "Reached applied predicate: %a" Printer.pp_predicate p; + | Papp (_, _::_,_) -> Env.not_yet env "predicates with labels" + | Papp (li, [], args) -> + let e, adata, env = + Logic_functions.app_to_exp ~adata ~loc kf env (li, args) in + let adata, env = Assert.register_pred ~loc kf env p e adata in + e, adata, env | Pdangling _ -> Env.not_yet env "\\dangling" | Pobject_pointer _ -> Env.not_yet env "\\object_pointer" | Pvalid_function _ -> Env.not_yet env "\\valid_function" diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle index 6aebd3583d94ca969621b0130e324f1f8aec2d6b..2538bb41a7aef9b61b6c37e3e05f4eaefa7d9f45 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle @@ -1,7 +1,6 @@ [e-acsl] beginning translation. [e-acsl] FRAMAC_SHARE/libc/string.h:379: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:388: Warning: E-ACSL construct `logic functions or predicates performing read accesses' diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle index 785bb4d1a1e21157ee06063aaaac742b0d19d976..878f304364d4a5a2a67a7f26c024cdfb692e14a1 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle @@ -6,12 +6,10 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdio.h:150: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdio.h:151: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdio.h:149: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle index 3367e2acfe62389f490071eedf4a433b181cc886..455bfd43413ff0193be76f0b37f94cdfa2afc6f3 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle +++ b/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle @@ -19,16 +19,13 @@ [e-acsl] FRAMAC_SHARE/libc/string.h:484: Warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:484: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:488: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:495: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:484: Warning: Some assumes clauses could not be translated. @@ -39,8 +36,7 @@ [e-acsl] FRAMAC_SHARE/libc/string.h:491: Warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:493: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:493: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcpy.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcpy.res.oracle index 3e8329fdab9843ee60527c5553ba99d3fd33d7d0..247fe7037ee8d8b4c19af56b986307549d5473f8 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/strcpy.res.oracle +++ b/src/plugins/e-acsl/tests/builtin/oracle/strcpy.res.oracle @@ -14,16 +14,13 @@ [e-acsl] FRAMAC_SHARE/libc/string.h:484: Warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:484: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:488: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:495: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:484: Warning: Some assumes clauses could not be translated. @@ -34,8 +31,7 @@ [e-acsl] FRAMAC_SHARE/libc/string.h:491: Warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:493: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:493: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strlen.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strlen.res.oracle index 63fa3d663a20e3ea37390b3ff59807ccabe20f05..96325fbbbf3c10a63062b0076067e5fd1e6d8547 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/strlen.res.oracle +++ b/src/plugins/e-acsl/tests/builtin/oracle/strlen.res.oracle @@ -17,16 +17,13 @@ [e-acsl] FRAMAC_SHARE/libc/string.h:484: Warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:484: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:488: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:495: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:484: Warning: Some assumes clauses could not be translated. @@ -37,8 +34,7 @@ [e-acsl] FRAMAC_SHARE/libc/string.h:491: Warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:493: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:493: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. diff --git a/src/plugins/e-acsl/tests/examples/oracle/functions_contiki.res.oracle b/src/plugins/e-acsl/tests/examples/oracle/functions_contiki.res.oracle index ae9a44dd2551efdcf148715845d54bd6aaed774a..2327ee08af4c360fa7edbcefdb921c527b678be7 100644 --- a/src/plugins/e-acsl/tests/examples/oracle/functions_contiki.res.oracle +++ b/src/plugins/e-acsl/tests/examples/oracle/functions_contiki.res.oracle @@ -1,7 +1,6 @@ [e-acsl] beginning translation. [e-acsl] tests/examples/functions_contiki.c:27: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `logic functions with labels' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/examples/functions_contiki.c:27: Warning: diff --git a/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle b/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle index 2b791e3541a23ef13830317b9ea07bbe17a1835d..0af10b1ad0589e04d7261412d8ef3fc45b457f14 100644 --- a/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle @@ -21,8 +21,7 @@ the generated program may miss memory instrumentation if there are memory-related annotations. [e-acsl] FRAMAC_SHARE/libc/string.h:367: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:368: Warning: E-ACSL construct `logic functions or predicates performing read accesses' @@ -40,8 +39,7 @@ is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:173: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:176: Warning: E-ACSL construct `user-defined logic type' is not yet supported. @@ -59,9 +57,8 @@ E-ACSL construct `logic functions or predicates performing read accesses' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/__fc_string_axiomatic.h:281: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. +[e-acsl] FRAMAC_SHARE/libc/string.h:180: Warning: + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:181: Warning: E-ACSL construct @@ -71,8 +68,7 @@ is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:141: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:141: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. diff --git a/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle index e66ace13b42b0c23943de0125ef7c106870e94e9..e927713310d2c53cf43bf6358a130d86e65b9137 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle +++ b/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle @@ -6,12 +6,10 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdio.h:150: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdio.h:151: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdio.h:149: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. diff --git a/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle index 234a0c3eb0ee7ec3bb6181e7a8d94a4d3878cbc0..2c1a720d90b85e102387507a174c1c39a27e5240 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle +++ b/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle @@ -1,7 +1,6 @@ [e-acsl] beginning translation. [e-acsl] FRAMAC_SHARE/libc/string.h:131: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:131: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. @@ -10,12 +9,10 @@ E-ACSL construct `user-defined logic type' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:120: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:121: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:120: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. @@ -25,12 +22,10 @@ is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:95: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:96: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:95: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. diff --git a/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle index 92c864736fb000c03417c43e377e3d1ef73988b7..377b65dcf61dd653c06589d75be4ffd0aab9529d 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle +++ b/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle @@ -1,19 +1,15 @@ [e-acsl] beginning translation. [e-acsl] FRAMAC_SHARE/libc/string.h:439: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:440: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:445: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:453: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:446: Warning: E-ACSL construct `logic functions or predicates performing read accesses' @@ -44,12 +40,10 @@ is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:424: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:425: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:426: Warning: E-ACSL construct `logic functions or predicates performing read accesses' @@ -71,8 +65,7 @@ is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:379: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:388: Warning: E-ACSL construct `logic functions or predicates performing read accesses' @@ -97,8 +90,7 @@ is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:367: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:368: Warning: E-ACSL construct `logic functions or predicates performing read accesses' diff --git a/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle index cf4f531b3ee983c209330fb353666577caa839c6..7ee1d9449abb35b1d4500ca2d6340ff7cc6f83ff 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle @@ -3,8 +3,7 @@ the generated program may miss memory instrumentation if there are memory-related annotations. [e-acsl] FRAMAC_SHARE/libc/string.h:141: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:141: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. diff --git a/src/plugins/e-acsl/tests/memory/oracle/memalign.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/memalign.res.oracle index 362b90a9aa1066abdeab79981edb2bd136cff44a..d57b82d4e506da7776ddb3bfb43bfb7febfd40a7 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/memalign.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/memalign.res.oracle @@ -5,12 +5,10 @@ [e-acsl] FRAMAC_SHARE/libc/stdlib.h:665: Warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:675: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:682: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:665: Warning: Some assumes clauses could not be translated. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle index 7936c2eba8e8ddf4880fffdd44b734ce70929b3d..945052964a5ac5bf8ba77080f4728c7be8407b09 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle @@ -3,8 +3,7 @@ the generated program may miss memory instrumentation if there are memory-related annotations. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:486: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:485: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle index 322634c9ecbdd994890c2c5dc7be36316aa80871..c5ea5bf43129ede55019f8a712cc291af94b9239 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle @@ -1,7 +1,6 @@ [e-acsl] beginning translation. [e-acsl] FRAMAC_SHARE/libc/string.h:131: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:131: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. @@ -10,12 +9,10 @@ E-ACSL construct `user-defined logic type' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:95: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:96: Warning: - E-ACSL construct `logic functions or predicates with labels' - is not yet supported. + E-ACSL construct `predicates with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:95: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported.