diff --git a/src/plugins/e-acsl/src/libraries/analyses_datatype.ml b/src/plugins/e-acsl/src/libraries/analyses_datatype.ml index e3d1f599319d187431b2c7d54111caab3242d2b2..d6a548d80f8f3c82fbf5542d05b6e8e0542acb2e 100644 --- a/src/plugins/e-acsl/src/libraries/analyses_datatype.ml +++ b/src/plugins/e-acsl/src/libraries/analyses_datatype.ml @@ -56,7 +56,7 @@ module Pred_or_term = List.fold_left (fun reprs t -> PoT_term t :: reprs) [] - Term.reprs + Misc.Id_term.reprs in List.fold_left (fun reprs p -> PoT_pred p :: reprs) @@ -65,18 +65,19 @@ module Pred_or_term = include Datatype.Undefined - let compare pot1 pot2 = - match pot1, pot2 with - | PoT_pred _, PoT_term _ -> -1 - | PoT_term _, PoT_pred _ -> 1 - | PoT_pred p1, PoT_pred p2 -> PredicateStructEq.compare p1 p2 - | PoT_term t1, PoT_term t2 -> Term.compare t1 t2 + let compare _ _ = + (* see [Misc.Id_term.compare] *) + Kernel.fatal "Pred_or_term: comparison undefined (and undefinable)" - let equal = Datatype.from_compare + let equal pot1 pot2 = + match pot1, pot2 with + | PoT_pred p1, PoT_pred p2 -> PredicateStructEq.equal p1 p2 + | PoT_term t1, PoT_term t2 -> Misc.Id_term.equal t1 t2 + | _ -> false let hash = function | PoT_pred p -> 7 * PredicateStructEq.hash p - | PoT_term t -> 97 * Term.hash t + | PoT_term t -> 97 * Misc.Id_term.hash t let pretty fmt = function | PoT_pred p -> Printer.pp_predicate fmt p @@ -151,11 +152,10 @@ let basic_pp_kinstr fmt kinstr = (** Basic comparison for two [kinstr], i.e. two [Kstmt] are always equal regardless of the statement value (contrary to [Cil_datatype.Kinstr.compare] where two [Kstmt] are compared with their included statement's [sid]). *) -let basic_kinstr_compare kinstr1 kinstr2 = +let basic_kinstr_equal kinstr1 kinstr2 = match kinstr1, kinstr2 with - | Kglobal, Kglobal | Kstmt _, Kstmt _ -> 0 - | Kglobal, _ -> 1 - | _, Kglobal -> -1 + | Kglobal, Kglobal | Kstmt _, Kstmt _ -> true + | _ -> false (** Basic hash function for a [kinstr], i.e. contrary to [Cil_datatype.Kinstr.hash] the statement of the [Kstmt] is not considered @@ -195,39 +195,20 @@ module At_data = struct include Datatype.Undefined - let compare - { kf = kf1; - kinstr = kinstr1; - lscope = lscope1; - pot = pot1; - label = label1 } - { kf = kf2; - kinstr = kinstr2; - lscope = lscope2; - pot = pot2; - label = label2 } - = - let cmp = Kf.compare kf1 kf2 in - let cmp = - if cmp = 0 then - basic_kinstr_compare kinstr1 kinstr2 - else cmp - in - let cmp = - if cmp = 0 then Lscope.D.compare lscope1 lscope2 - else cmp - in - let cmp = - if cmp = 0 then Pred_or_term.compare pot1 pot2 - else cmp - in - if cmp = 0 then - let elabel1 = Ext_logic_label.get kinstr1 label1 in - let elabel2 = Ext_logic_label.get kinstr2 label2 in - Ext_logic_label.compare elabel1 elabel2 - else cmp - - let equal = Datatype.from_compare + let compare _ _ = + (* see [Misc.Id_term.compare] *) + Kernel.fatal "At_data: comparison undefined (and undefinable)" + + let equal + {kf = kf1; kinstr = kinstr1; lscope = ls1; pot = pot1; label = l1} + {kf = kf2; kinstr = kinstr2; lscope = ls2; pot = pot2; label = l2} = + Kf.equal kf1 kf2 && + basic_kinstr_equal kinstr1 kinstr2 && + Lscope.D.equal ls1 ls2 && + Pred_or_term.equal pot1 pot2 && + let elabel1 = Ext_logic_label.get kinstr1 l1 in + let elabel2 = Ext_logic_label.get kinstr2 l2 in + Ext_logic_label.equal elabel1 elabel2 let hash { kf; kinstr; lscope; pot; label } = let elabel = Ext_logic_label.get kinstr label in diff --git a/src/plugins/e-acsl/src/libraries/analyses_datatype.mli b/src/plugins/e-acsl/src/libraries/analyses_datatype.mli index 444219dfc2f390c8d5bc874b373e4577df1100ec..59849829d9a67c32d0d86cffcf0f1c711674c002 100644 --- a/src/plugins/e-acsl/src/libraries/analyses_datatype.mli +++ b/src/plugins/e-acsl/src/libraries/analyses_datatype.mli @@ -28,6 +28,10 @@ open Cil_datatype module Annotation_kind: Datatype.S with type t = annotation_kind +(** Predicate or term. Note that the notion of egality for predicates is + structural but for terms it is physical (using [Misc.Id_term]). That means + that comparison is undefined and that [Map] and [Set] cannot be used. See + [Misc.Id_term] for more information. *) module Pred_or_term: Datatype.S_with_collections with type t = pred_or_term module At_data: sig diff --git a/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle index 422529ed4132579b993634938b304577bfc29d2a..c1c0d8c809403a9d280978b637eb79fc82e9ef3f 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle @@ -11,6 +11,12 @@ [eva:alarm] at.i:77: Warning: assertion got status unknown. [eva:alarm] at.i:78: Warning: assertion got status unknown. [eva:alarm] at.i:79: Warning: assertion got status unknown. +[eva:alarm] at.i:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] at.i:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] at.i:39: Warning: function __e_acsl_assert_register_ulong: precondition data->values == \null || \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle index b45b4d727ceb341debedf941fc93c446accf8d72..dcb1f8a7a9557f5fb4b3252b13d5a637471b1d13 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle @@ -1,3 +1,7 @@ +[kernel:CERT:MSC:37] functions.c:122: Warning: + Body of function f5 falls-through. Adding a return statement +[kernel:CERT:MSC:37] functions.c:126: Warning: + Body of function test_f5 falls-through. Adding a return statement [e-acsl] beginning translation. [e-acsl] functions.c:81: Warning: E-ACSL construct `function application' is not yet supported. diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_at.c b/src/plugins/e-acsl/tests/arith/oracle/gen_at.c index 6c066086426c41ccfe9d811bfc6b45a1cc1c64ec..f869913749cff6fb6e59c8ffe43152312b6e9825 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_at.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_at.c @@ -18,26 +18,30 @@ void __gen_e_acsl_f(void); void f(void) { + int __gen_e_acsl_at_6; + int __gen_e_acsl_at_5; int __gen_e_acsl_at_4; int __gen_e_acsl_at_3; int __gen_e_acsl_at_2; int __gen_e_acsl_at; __gen_e_acsl_at = A; + __gen_e_acsl_at_2 = A; + __gen_e_acsl_at_3 = A; A = 1; - F: __gen_e_acsl_at_2 = A; - __gen_e_acsl_at_3 = __gen_e_acsl_at; + F: __gen_e_acsl_at_4 = A; + __gen_e_acsl_at_5 = __gen_e_acsl_at_2; A = 2; { __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\at(A,Pre)",0, - __gen_e_acsl_at); + __gen_e_acsl_at_3); __gen_e_acsl_assert_data.blocking = 1; __gen_e_acsl_assert_data.kind = "Assertion"; __gen_e_acsl_assert_data.pred_txt = "\\at(A,Pre) == 0"; __gen_e_acsl_assert_data.file = "at.i"; __gen_e_acsl_assert_data.fct = "f"; __gen_e_acsl_assert_data.line = 16; - __e_acsl_assert(__gen_e_acsl_at == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert(__gen_e_acsl_at_3 == 0,& __gen_e_acsl_assert_data); __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \at(A,Pre) == 0; */ ; @@ -45,14 +49,14 @@ void f(void) __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\at(A,F)",0, - __gen_e_acsl_at_2); + __gen_e_acsl_at_4); __gen_e_acsl_assert_data_2.blocking = 1; __gen_e_acsl_assert_data_2.kind = "Assertion"; __gen_e_acsl_assert_data_2.pred_txt = "\\at(A,F) == 1"; __gen_e_acsl_assert_data_2.file = "at.i"; __gen_e_acsl_assert_data_2.fct = "f"; __gen_e_acsl_assert_data_2.line = 17; - __e_acsl_assert(__gen_e_acsl_at_2 == 1,& __gen_e_acsl_assert_data_2); + __e_acsl_assert(__gen_e_acsl_at_4 == 1,& __gen_e_acsl_assert_data_2); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \at(A,F) == 1; */ ; @@ -74,21 +78,21 @@ void f(void) __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, - "\\at(\\at(A,Pre),F)",0,__gen_e_acsl_at_3); + "\\at(\\at(A,Pre),F)",0,__gen_e_acsl_at_5); __gen_e_acsl_assert_data_4.blocking = 1; __gen_e_acsl_assert_data_4.kind = "Assertion"; __gen_e_acsl_assert_data_4.pred_txt = "\\at(\\at(A,Pre),F) == 0"; __gen_e_acsl_assert_data_4.file = "at.i"; __gen_e_acsl_assert_data_4.fct = "f"; __gen_e_acsl_assert_data_4.line = 19; - __e_acsl_assert(__gen_e_acsl_at_3 == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert(__gen_e_acsl_at_5 == 0,& __gen_e_acsl_assert_data_4); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \at(\at(A,Pre),F) == 0; */ ; A = 3; { { - __gen_e_acsl_at_4 = A; + __gen_e_acsl_at_6 = A; __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"A",0,A); @@ -122,14 +126,14 @@ void f(void) __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"\\old(A)",0, - __gen_e_acsl_at_4); + __gen_e_acsl_at_6); __gen_e_acsl_assert_data_7.blocking = 1; __gen_e_acsl_assert_data_7.kind = "Postcondition"; __gen_e_acsl_assert_data_7.pred_txt = "\\old(A) == 3"; __gen_e_acsl_assert_data_7.file = "at.i"; __gen_e_acsl_assert_data_7.fct = "f"; __gen_e_acsl_assert_data_7.line = 23; - __e_acsl_assert(__gen_e_acsl_at_4 == 3,& __gen_e_acsl_assert_data_7); + __e_acsl_assert(__gen_e_acsl_at_6 == 3,& __gen_e_acsl_assert_data_7); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = {.values = (void *)0}; @@ -148,6 +152,8 @@ void f(void) void g(int *p, int *q) { + int __gen_e_acsl_at_5; + int __gen_e_acsl_at_4; int __gen_e_acsl_at_3; int __gen_e_acsl_at_2; int __gen_e_acsl_at; @@ -162,6 +168,8 @@ void g(int *p, int *q) L1: { int __gen_e_acsl_valid_read; + int __gen_e_acsl_valid_read_2; + int __gen_e_acsl_valid_read_3; __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)q,sizeof(int), (void *)q,(void *)(& q)); @@ -173,88 +181,100 @@ void g(int *p, int *q) __gen_e_acsl_assert_data.pred_txt = "\\valid_read(q)"; __gen_e_acsl_assert_data.file = "at.i"; __gen_e_acsl_assert_data.fct = "g"; - __gen_e_acsl_assert_data.line = 39; + __gen_e_acsl_assert_data.line = 43; __gen_e_acsl_assert_data.name = "mem_access"; __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data); __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gen_e_acsl_at = *q; - __e_acsl_initialize((void *)p,sizeof(int)); - } - *p = 2; - __e_acsl_initialize((void *)(p + 1),sizeof(int)); - *(p + 1) = 3; - __e_acsl_initialize((void *)q,sizeof(int)); - *q = 1; - L2: - { - int __gen_e_acsl_valid_read_2; __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = {.values = (void *)0}; - __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at), - sizeof(int),(void *)p, - (void *)(& p)); - __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p); - __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, - "__gen_e_acsl_at",0,__gen_e_acsl_at); + __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)q,sizeof(int), + (void *)q,(void *)(& q)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",(void *)q); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, "sizeof(int)",0,sizeof(int)); __gen_e_acsl_assert_data_2.blocking = 1; __gen_e_acsl_assert_data_2.kind = "RTE"; - __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(p + __gen_e_acsl_at)"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(q)"; __gen_e_acsl_assert_data_2.file = "at.i"; __gen_e_acsl_assert_data_2.fct = "g"; - __gen_e_acsl_assert_data_2.line = 39; + __gen_e_acsl_assert_data_2.line = 41; __gen_e_acsl_assert_data_2.name = "mem_access"; __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_2); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); - __gen_e_acsl_at_2 = *(p + __gen_e_acsl_at); - } - A = 4; - { + __gen_e_acsl_at_2 = *q; __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = {.values = (void *)0}; - __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, - "\\at(*(p + \\at(*q,L1)),L2)",0, - __gen_e_acsl_at_2); + __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)q,sizeof(int), + (void *)q,(void *)(& q)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_assert_data_3.blocking = 1; - __gen_e_acsl_assert_data_3.kind = "Assertion"; - __gen_e_acsl_assert_data_3.pred_txt = "\\at(*(p + \\at(*q,L1)),L2) == 2"; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(q)"; __gen_e_acsl_assert_data_3.file = "at.i"; __gen_e_acsl_assert_data_3.fct = "g"; __gen_e_acsl_assert_data_3.line = 39; - __e_acsl_assert(__gen_e_acsl_at_2 == 2,& __gen_e_acsl_assert_data_3); + __gen_e_acsl_assert_data_3.name = "mem_access"; + __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_3); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __gen_e_acsl_at_3 = *q; + __e_acsl_initialize((void *)p,sizeof(int)); } - /*@ assert \at(*(p + \at(*q,L1)),L2) == 2; */ ; - L3: + *p = 2; + __e_acsl_initialize((void *)(p + 1),sizeof(int)); + *(p + 1) = 3; + __e_acsl_initialize((void *)q,sizeof(int)); + *q = 1; + L2: { - int __gen_e_acsl_valid_read_3; int __gen_e_acsl_valid_read_4; __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = {.values = (void *)0}; - __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at), + __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at_3), sizeof(int),(void *)p, (void *)(& p)); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",(void *)p); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, - "__gen_e_acsl_at",0,__gen_e_acsl_at); + "__gen_e_acsl_at_3",0,__gen_e_acsl_at_3); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, "sizeof(int)",0,sizeof(int)); __gen_e_acsl_assert_data_4.blocking = 1; __gen_e_acsl_assert_data_4.kind = "RTE"; - __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(p + __gen_e_acsl_at)"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(p + __gen_e_acsl_at_3)"; __gen_e_acsl_assert_data_4.file = "at.i"; __gen_e_acsl_assert_data_4.fct = "g"; - __gen_e_acsl_assert_data_4.line = 43; + __gen_e_acsl_assert_data_4.line = 39; __gen_e_acsl_assert_data_4.name = "mem_access"; - __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_4); + __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_4); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); - __gen_e_acsl_at_3 = *(p + __gen_e_acsl_at); + __gen_e_acsl_at_4 = *(p + __gen_e_acsl_at_3); + } + A = 4; + { __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\at(*(p + \\at(*q,L1)),L2)",0, + __gen_e_acsl_at_4); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\at(*(p + \\at(*q,L1)),L2) == 2"; + __gen_e_acsl_assert_data_5.file = "at.i"; + __gen_e_acsl_assert_data_5.fct = "g"; + __gen_e_acsl_assert_data_5.line = 39; + __e_acsl_assert(__gen_e_acsl_at_4 == 2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert \at(*(p + \at(*q,L1)),L2) == 2; */ ; + L3: + { + int __gen_e_acsl_valid_read_5; + int __gen_e_acsl_valid_read_6; __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = {.values = (void *)0}; - __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at), + __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at), sizeof(int),(void *)p, (void *)(& p)); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"p",(void *)p); @@ -267,38 +287,61 @@ void g(int *p, int *q) __gen_e_acsl_assert_data_6.pred_txt = "\\valid_read(p + __gen_e_acsl_at)"; __gen_e_acsl_assert_data_6.file = "at.i"; __gen_e_acsl_assert_data_6.fct = "g"; - __gen_e_acsl_assert_data_6.line = 41; + __gen_e_acsl_assert_data_6.line = 43; __gen_e_acsl_assert_data_6.name = "mem_access"; - __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_6); + __e_acsl_assert(__gen_e_acsl_valid_read_5,& __gen_e_acsl_assert_data_6); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); - __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, - "*(p + \\at(*q,L1))",0, - *(p + __gen_e_acsl_at)); - __gen_e_acsl_assert_data_5.blocking = 1; - __gen_e_acsl_assert_data_5.kind = "Assertion"; - __gen_e_acsl_assert_data_5.pred_txt = "\\at(*(p + \\at(*q,L1)),Here) == 2"; - __gen_e_acsl_assert_data_5.file = "at.i"; - __gen_e_acsl_assert_data_5.fct = "g"; - __gen_e_acsl_assert_data_5.line = 41; - __e_acsl_assert(*(p + __gen_e_acsl_at) == 2,& __gen_e_acsl_assert_data_5); - __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); - } - /*@ assert \at(*(p + \at(*q,L1)),Here) == 2; */ ; - { + __gen_e_acsl_at_5 = *(p + __gen_e_acsl_at); __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at_2), + sizeof(int),(void *)p, + (void *)(& p)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"p",(void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "__gen_e_acsl_at_2",0,__gen_e_acsl_at_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int)",0,sizeof(int)); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "\\valid_read(p + __gen_e_acsl_at_2)"; + __gen_e_acsl_assert_data_8.file = "at.i"; + __gen_e_acsl_assert_data_8.fct = "g"; + __gen_e_acsl_assert_data_8.line = 41; + __gen_e_acsl_assert_data_8.name = "mem_access"; + __e_acsl_assert(__gen_e_acsl_valid_read_6,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, - "\\at(*(p + \\at(*q,L1)),L3)",0, - __gen_e_acsl_at_3); + "*(p + \\at(*q,L1))",0, + *(p + __gen_e_acsl_at_2)); __gen_e_acsl_assert_data_7.blocking = 1; __gen_e_acsl_assert_data_7.kind = "Assertion"; - __gen_e_acsl_assert_data_7.pred_txt = "\\at(*(p + \\at(*q,L1)),L3) == 2"; + __gen_e_acsl_assert_data_7.pred_txt = "\\at(*(p + \\at(*q,L1)),Here) == 2"; __gen_e_acsl_assert_data_7.file = "at.i"; __gen_e_acsl_assert_data_7.fct = "g"; - __gen_e_acsl_assert_data_7.line = 43; - __e_acsl_assert(__gen_e_acsl_at_3 == 2,& __gen_e_acsl_assert_data_7); + __gen_e_acsl_assert_data_7.line = 41; + __e_acsl_assert(*(p + __gen_e_acsl_at_2) == 2, + & __gen_e_acsl_assert_data_7); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } + /*@ assert \at(*(p + \at(*q,L1)),Here) == 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\at(*(p + \\at(*q,L1)),L3)",0, + __gen_e_acsl_at_5); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\at(*(p + \\at(*q,L1)),L3) == 2"; + __gen_e_acsl_assert_data_9.file = "at.i"; + __gen_e_acsl_assert_data_9.fct = "g"; + __gen_e_acsl_assert_data_9.line = 43; + __e_acsl_assert(__gen_e_acsl_at_5 == 2,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + } /*@ assert \at(*(p + \at(*q,L1)),L3) == 2; */ ; __e_acsl_delete_block((void *)(& q)); __e_acsl_delete_block((void *)(& p)); @@ -362,8 +405,9 @@ void i(void) int main(void) { - long __gen_e_acsl_at_2; - int __gen_e_acsl_at; + long __gen_e_acsl_at_3; + int __gen_e_acsl_at_2; + long __gen_e_acsl_at; int __retres; int x; int t[2]; @@ -374,8 +418,9 @@ int main(void) x = __gen_e_acsl_h(0); L: { - __gen_e_acsl_at = x; - __gen_e_acsl_at_2 = x + 1L; + __gen_e_acsl_at = (long)x; + __gen_e_acsl_at_2 = x; + __gen_e_acsl_at_3 = x + 1L; __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); __gen_e_acsl_assert_data.blocking = 1; @@ -397,14 +442,14 @@ int main(void) __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\at(x,L)",0, - __gen_e_acsl_at); + __gen_e_acsl_at_2); __gen_e_acsl_assert_data_2.blocking = 1; __gen_e_acsl_assert_data_2.kind = "Assertion"; __gen_e_acsl_assert_data_2.pred_txt = "\\at(x,L) == 0"; __gen_e_acsl_assert_data_2.file = "at.i"; __gen_e_acsl_assert_data_2.fct = "main"; __gen_e_acsl_assert_data_2.line = 77; - __e_acsl_assert(__gen_e_acsl_at == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert(__gen_e_acsl_at_2 == 0,& __gen_e_acsl_assert_data_2); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \at(x,L) == 0; */ ; @@ -412,30 +457,29 @@ int main(void) __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = {.values = (void *)0}; __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_3, - "\\at(x + 1,L)",0,__gen_e_acsl_at_2); + "\\at(x + 1,L)",0,__gen_e_acsl_at_3); __gen_e_acsl_assert_data_3.blocking = 1; __gen_e_acsl_assert_data_3.kind = "Assertion"; __gen_e_acsl_assert_data_3.pred_txt = "\\at(x + 1,L) == 1"; __gen_e_acsl_assert_data_3.file = "at.i"; __gen_e_acsl_assert_data_3.fct = "main"; __gen_e_acsl_assert_data_3.line = 78; - __e_acsl_assert(__gen_e_acsl_at_2 == 1L,& __gen_e_acsl_assert_data_3); + __e_acsl_assert(__gen_e_acsl_at_3 == 1L,& __gen_e_acsl_assert_data_3); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \at(x + 1,L) == 1; */ ; { __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = {.values = (void *)0}; - __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\at(x,L)",0, - __gen_e_acsl_at); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_4,"\\at(x,L)",0, + __gen_e_acsl_at); __gen_e_acsl_assert_data_4.blocking = 1; __gen_e_acsl_assert_data_4.kind = "Assertion"; __gen_e_acsl_assert_data_4.pred_txt = "\\at(x,L) + 1 == 1"; __gen_e_acsl_assert_data_4.file = "at.i"; __gen_e_acsl_assert_data_4.fct = "main"; __gen_e_acsl_assert_data_4.line = 79; - __e_acsl_assert((long)__gen_e_acsl_at + 1L == 1L, - & __gen_e_acsl_assert_data_4); + __e_acsl_assert(__gen_e_acsl_at + 1L == 1L,& __gen_e_acsl_assert_data_4); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \at(x,L) + 1 == 1; */ ; @@ -484,11 +528,13 @@ int __gen_e_acsl_h(int x) */ void __gen_e_acsl_f(void) { + int __gen_e_acsl_at_3; int __gen_e_acsl_at_2; int __gen_e_acsl_at; { __gen_e_acsl_at = A; __gen_e_acsl_at_2 = A; + __gen_e_acsl_at_3 = A; __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"A",0,A); __gen_e_acsl_assert_data.blocking = 1; @@ -501,15 +547,14 @@ void __gen_e_acsl_f(void) __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = {.values = (void *)0}; - __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\at(A,Pre)", - 0,__gen_e_acsl_at_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"A",0,A); __gen_e_acsl_assert_data_2.blocking = 1; __gen_e_acsl_assert_data_2.kind = "Precondition"; __gen_e_acsl_assert_data_2.pred_txt = "\\at(A,Pre) == 0"; __gen_e_acsl_assert_data_2.file = "at.i"; __gen_e_acsl_assert_data_2.fct = "f"; __gen_e_acsl_assert_data_2.line = 9; - __e_acsl_assert(__gen_e_acsl_at_2 == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert(A == 0,& __gen_e_acsl_assert_data_2); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } f(); @@ -518,10 +563,10 @@ void __gen_e_acsl_f(void) __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\at(A,Pre)", - 0,__gen_e_acsl_at_2); + 0,__gen_e_acsl_at_3); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\old(A)",0, - __gen_e_acsl_at); - if (__gen_e_acsl_at_2 == __gen_e_acsl_at) { + __gen_e_acsl_at_2); + if (__gen_e_acsl_at_3 == __gen_e_acsl_at_2) { __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\old(A)",0, __gen_e_acsl_at); __gen_e_acsl_and = __gen_e_acsl_at == 0; diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c b/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c index 9f9358add8a131caac5f6a515f64a5a15ecf2a75..490dff8e59b38f16b30b4401ed5d7866fac82e67 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c @@ -613,6 +613,128 @@ void test_f4(void) return; } +/*@ behavior a: + ensures 1 == -\old(j); + + behavior b: + ensures 2 == \old(j); */ +int __gen_e_acsl_f5(long j); + +int f5(long j) +{ + int __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\false"; + __gen_e_acsl_assert_data.file = "functions.c"; + __gen_e_acsl_assert_data.fct = "f5"; + __gen_e_acsl_assert_data.line = 122; + __gen_e_acsl_assert_data.name = "missing_return"; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + } + /*@ assert missing_return: \false; */ ; + __retres = 0; + return __retres; +} + +int test_f5(void) +{ + int __retres; + __gen_e_acsl_f5((long)1); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\false"; + __gen_e_acsl_assert_data.file = "functions.c"; + __gen_e_acsl_assert_data.fct = "test_f5"; + __gen_e_acsl_assert_data.line = 126; + __gen_e_acsl_assert_data.name = "missing_return"; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + } + /*@ assert missing_return: \false; */ ; + __retres = 0; + return __retres; +} + +/*@ behavior a: + ensures 1 == -\old(j); + + behavior b: + ensures 2 == \old(j); */ +int __gen_e_acsl_f5(long j) +{ + __e_acsl_contract_t *__gen_e_acsl_contract; + __e_acsl_mpz_t __gen_e_acsl_at_2; + long __gen_e_acsl_at; + int __retres; + { + __e_acsl_mpz_t __gen_e_acsl_j; + __gen_e_acsl_at = j; + __gmpz_init_set_si(__gen_e_acsl_j,j); + __gmpz_init_set(__gen_e_acsl_at_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_j)); + __gen_e_acsl_contract = __e_acsl_contract_init(2UL); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,0UL,1); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,1UL,1); + __gmpz_clear(__gen_e_acsl_j); + } + __retres = f5(j); + { + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,0UL); + if (__gen_e_acsl_assumes_value) { + __e_acsl_mpz_t __gen_e_acsl_; + __e_acsl_mpz_t __gen_e_acsl_neg; + int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __gmpz_init_set_si(__gen_e_acsl_,1L); + __gmpz_init(__gen_e_acsl_neg); + __gmpz_neg(__gen_e_acsl_neg, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_2)); + __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_), + (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg)); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"\\old(j)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_2)); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "1 == -\\old(j)"; + __gen_e_acsl_assert_data.file = "functions.c"; + __gen_e_acsl_assert_data.fct = "f5"; + __gen_e_acsl_assert_data.line = 118; + __gen_e_acsl_assert_data.name = "a"; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __gmpz_clear(__gen_e_acsl_); + __gmpz_clear(__gen_e_acsl_neg); + } + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,1UL); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"\\old(j)", + 0,__gen_e_acsl_at); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "2 == \\old(j)"; + __gen_e_acsl_assert_data_2.file = "functions.c"; + __gen_e_acsl_assert_data_2.fct = "f5"; + __gen_e_acsl_assert_data_2.line = 120; + __gen_e_acsl_assert_data_2.name = "b"; + __e_acsl_assert(2L == __gen_e_acsl_at,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + __e_acsl_contract_clean(__gen_e_acsl_contract); + __gmpz_clear(__gen_e_acsl_at_2); + return __retres; + } +} + /*@ requires k_pred(x); */ void __gen_e_acsl_k(int x) { diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c index e85da85a4b1381606d700317bcae52f1e401da71..f67fbe8bd183ba14e1360edd8f20bd6fc8a42478 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c @@ -96,6 +96,9 @@ int main(void) void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) { __e_acsl_contract_t *__gen_e_acsl_contract; + float *__gen_e_acsl_at_6; + float *__gen_e_acsl_at_5; + float *__gen_e_acsl_at_4; float *__gen_e_acsl_at_3; float *__gen_e_acsl_at_2; float *__gen_e_acsl_at; @@ -107,8 +110,11 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __e_acsl_store_block((void *)(& Mwmin),8UL); __e_acsl_store_block((void *)(& Mtmin_in),8UL); __gen_e_acsl_at = Mtmin_in; - __gen_e_acsl_at_2 = Mwmin; - __gen_e_acsl_at_3 = Mtmin_out; + __gen_e_acsl_at_2 = Mtmin_in; + __gen_e_acsl_at_3 = Mtmin_in; + __gen_e_acsl_at_4 = Mwmin; + __gen_e_acsl_at_5 = Mwmin; + __gen_e_acsl_at_6 = Mtmin_out; __gen_e_acsl_contract = __e_acsl_contract_init(1UL); __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_valid = __e_acsl_valid((void *)Mtmin_in,sizeof(float), @@ -181,17 +187,18 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) {.values = (void *)0}; __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = {.values = (void *)0}; - __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__gen_e_acsl_at, + __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__gen_e_acsl_at_3, sizeof(float), - (void *)__gen_e_acsl_at, - (void *)(& __gen_e_acsl_at)); + (void *)__gen_e_acsl_at_3, + (void *)(& __gen_e_acsl_at_3)); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, - "__gen_e_acsl_at",(void *)__gen_e_acsl_at); + "__gen_e_acsl_at_3", + (void *)__gen_e_acsl_at_3); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, "sizeof(float)",0,sizeof(float)); __gen_e_acsl_assert_data_5.blocking = 1; __gen_e_acsl_assert_data_5.kind = "RTE"; - __gen_e_acsl_assert_data_5.pred_txt = "\\valid_read(__gen_e_acsl_at)"; + __gen_e_acsl_assert_data_5.pred_txt = "\\valid_read(__gen_e_acsl_at_3)"; __gen_e_acsl_assert_data_5.file = "bts1307.i"; __gen_e_acsl_assert_data_5.fct = "bar"; __gen_e_acsl_assert_data_5.line = 26; @@ -200,36 +207,36 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = {.values = (void *)0}; - __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)__gen_e_acsl_at_3, + __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)__gen_e_acsl_at_6, sizeof(float), - (void *)__gen_e_acsl_at_3, - (void *)(& __gen_e_acsl_at_3)); + (void *)__gen_e_acsl_at_6, + (void *)(& __gen_e_acsl_at_6)); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, - "__gen_e_acsl_at_3", - (void *)__gen_e_acsl_at_3); + "__gen_e_acsl_at_6", + (void *)__gen_e_acsl_at_6); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, "sizeof(float)",0,sizeof(float)); __gen_e_acsl_assert_data_6.blocking = 1; __gen_e_acsl_assert_data_6.kind = "RTE"; - __gen_e_acsl_assert_data_6.pred_txt = "\\valid_read(__gen_e_acsl_at_3)"; + __gen_e_acsl_assert_data_6.pred_txt = "\\valid_read(__gen_e_acsl_at_6)"; __gen_e_acsl_assert_data_6.file = "bts1307.i"; __gen_e_acsl_assert_data_6.fct = "bar"; __gen_e_acsl_assert_data_6.line = 26; __gen_e_acsl_assert_data_6.name = "mem_access"; __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_6); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); - if (*__gen_e_acsl_at_3 == *__gen_e_acsl_at) { + if (*__gen_e_acsl_at_6 == *__gen_e_acsl_at_3) { __e_acsl_mpq_t __gen_e_acsl_; __e_acsl_mpq_t __gen_e_acsl__2; __e_acsl_mpq_t __gen_e_acsl__3; __e_acsl_mpq_t __gen_e_acsl_mul; int __gen_e_acsl_lt; __gmpq_init(__gen_e_acsl_); - __gmpq_set_d(__gen_e_acsl_,(double)*__gen_e_acsl_at); + __gmpq_set_d(__gen_e_acsl_,(double)*__gen_e_acsl_at_2); __gmpq_init(__gen_e_acsl__2); __gmpq_set_str(__gen_e_acsl__2,"085/100",10); __gmpq_init(__gen_e_acsl__3); - __gmpq_set_d(__gen_e_acsl__3,(double)*__gen_e_acsl_at_2); + __gmpq_set_d(__gen_e_acsl__3,(double)*__gen_e_acsl_at_5); __gmpq_init(__gen_e_acsl_mul); __gmpq_mul(__gen_e_acsl_mul, (__e_acsl_mpq_struct const *)(__gen_e_acsl__2), @@ -279,7 +286,7 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __gmpq_init(__gen_e_acsl__4); __gmpq_set_str(__gen_e_acsl__4,"085/100",10); __gmpq_init(__gen_e_acsl__5); - __gmpq_set_d(__gen_e_acsl__5,(double)*__gen_e_acsl_at_2); + __gmpq_set_d(__gen_e_acsl__5,(double)*__gen_e_acsl_at_4); __gmpq_init(__gen_e_acsl_mul_2); __gmpq_mul(__gen_e_acsl_mul_2, (__e_acsl_mpq_struct const *)(__gen_e_acsl__4), @@ -289,7 +296,7 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __gen_e_acsl_ne = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_mul_2), (__e_acsl_mpq_struct const *)(__gen_e_acsl__6)); __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, - "*\\old(Mwmin)",*__gen_e_acsl_at_2); + "*\\old(Mwmin)",*__gen_e_acsl_at_4); __gen_e_acsl_if = __gen_e_acsl_ne != 0; __gmpq_clear(__gen_e_acsl__4); __gmpq_clear(__gen_e_acsl__5); @@ -297,13 +304,13 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __gmpq_clear(__gen_e_acsl__6); } __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, - "*\\old(Mtmin_out)",*__gen_e_acsl_at_3); + "*\\old(Mtmin_out)",*__gen_e_acsl_at_6); __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, - "*\\old(Mtmin_in)",*__gen_e_acsl_at); + "*\\old(Mtmin_in)",*__gen_e_acsl_at_3); __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, - "*\\old(Mtmin_in)",*__gen_e_acsl_at); + "*\\old(Mtmin_in)",*__gen_e_acsl_at_2); __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, - "*\\old(Mwmin)",*__gen_e_acsl_at_2); + "*\\old(Mwmin)",*__gen_e_acsl_at_5); __gen_e_acsl_assert_data_4.blocking = 1; __gen_e_acsl_assert_data_4.kind = "Postcondition"; __gen_e_acsl_assert_data_4.pred_txt = "*\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85 * *\\old(Mwmin)?\n *\\old(Mtmin_in) != 0.:\n 0.85 * *\\old(Mwmin) != 0."; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c index 8e484ee47ec4cd7a3330c0f58ebd3b89f29d5d1e..e0bb405377cf09009ebedf1983e392a11cecb843 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c @@ -57,12 +57,20 @@ int main(void) void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, int *AverageAccel) { - int *__gen_e_acsl_at_2; + int *__gen_e_acsl_at_6; + ArrayInt *__gen_e_acsl_at_5; + ArrayInt *__gen_e_acsl_at_4; + ArrayInt *__gen_e_acsl_at_3; + ArrayInt *__gen_e_acsl_at_2; ArrayInt *__gen_e_acsl_at; __e_acsl_store_block((void *)(& AverageAccel),8UL); __e_acsl_store_block((void *)(& Accel),8UL); __gen_e_acsl_at = Accel; - __gen_e_acsl_at_2 = AverageAccel; + __gen_e_acsl_at_2 = Accel; + __gen_e_acsl_at_3 = Accel; + __gen_e_acsl_at_4 = Accel; + __gen_e_acsl_at_5 = Accel; + __gen_e_acsl_at_6 = AverageAccel; atp_NORMAL_computeAverageAccel(Accel,AverageAccel); { int __gen_e_acsl_valid_read; @@ -94,18 +102,18 @@ void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = {.values = (void *)0}; - __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at)[1]), + __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_2)[1]), sizeof(int), - (void *)(*__gen_e_acsl_at), + (void *)(*__gen_e_acsl_at_2), (void *)0); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, - "&(*__gen_e_acsl_at)[1]", - (void *)(& (*__gen_e_acsl_at)[1])); + "&(*__gen_e_acsl_at_2)[1]", + (void *)(& (*__gen_e_acsl_at_2)[1])); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, "sizeof(int)",0,sizeof(int)); __gen_e_acsl_assert_data_3.blocking = 1; __gen_e_acsl_assert_data_3.kind = "RTE"; - __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(&(*__gen_e_acsl_at)[1])"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(&(*__gen_e_acsl_at_2)[1])"; __gen_e_acsl_assert_data_3.file = "bts1326.i"; __gen_e_acsl_assert_data_3.fct = "atp_NORMAL_computeAverageAccel"; __gen_e_acsl_assert_data_3.line = 8; @@ -114,18 +122,18 @@ void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = {.values = (void *)0}; - __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at)[2]), + __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_3)[2]), sizeof(int), - (void *)(*__gen_e_acsl_at), + (void *)(*__gen_e_acsl_at_3), (void *)0); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, - "&(*__gen_e_acsl_at)[2]", - (void *)(& (*__gen_e_acsl_at)[2])); + "&(*__gen_e_acsl_at_3)[2]", + (void *)(& (*__gen_e_acsl_at_3)[2])); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, "sizeof(int)",0,sizeof(int)); __gen_e_acsl_assert_data_4.blocking = 1; __gen_e_acsl_assert_data_4.kind = "RTE"; - __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(&(*__gen_e_acsl_at)[2])"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(&(*__gen_e_acsl_at_3)[2])"; __gen_e_acsl_assert_data_4.file = "bts1326.i"; __gen_e_acsl_assert_data_4.fct = "atp_NORMAL_computeAverageAccel"; __gen_e_acsl_assert_data_4.line = 8; @@ -134,18 +142,18 @@ void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = {.values = (void *)0}; - __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at)[3]), + __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_4)[3]), sizeof(int), - (void *)(*__gen_e_acsl_at), + (void *)(*__gen_e_acsl_at_4), (void *)0); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, - "&(*__gen_e_acsl_at)[3]", - (void *)(& (*__gen_e_acsl_at)[3])); + "&(*__gen_e_acsl_at_4)[3]", + (void *)(& (*__gen_e_acsl_at_4)[3])); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, "sizeof(int)",0,sizeof(int)); __gen_e_acsl_assert_data_5.blocking = 1; __gen_e_acsl_assert_data_5.kind = "RTE"; - __gen_e_acsl_assert_data_5.pred_txt = "\\valid_read(&(*__gen_e_acsl_at)[3])"; + __gen_e_acsl_assert_data_5.pred_txt = "\\valid_read(&(*__gen_e_acsl_at_4)[3])"; __gen_e_acsl_assert_data_5.file = "bts1326.i"; __gen_e_acsl_assert_data_5.fct = "atp_NORMAL_computeAverageAccel"; __gen_e_acsl_assert_data_5.line = 8; @@ -154,18 +162,18 @@ void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = {.values = (void *)0}; - __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at)[4]), + __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_5)[4]), sizeof(int), - (void *)(*__gen_e_acsl_at), + (void *)(*__gen_e_acsl_at_5), (void *)0); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, - "&(*__gen_e_acsl_at)[4]", - (void *)(& (*__gen_e_acsl_at)[4])); + "&(*__gen_e_acsl_at_5)[4]", + (void *)(& (*__gen_e_acsl_at_5)[4])); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, "sizeof(int)",0,sizeof(int)); __gen_e_acsl_assert_data_6.blocking = 1; __gen_e_acsl_assert_data_6.kind = "RTE"; - __gen_e_acsl_assert_data_6.pred_txt = "\\valid_read(&(*__gen_e_acsl_at)[4])"; + __gen_e_acsl_assert_data_6.pred_txt = "\\valid_read(&(*__gen_e_acsl_at_5)[4])"; __gen_e_acsl_assert_data_6.file = "bts1326.i"; __gen_e_acsl_assert_data_6.fct = "atp_NORMAL_computeAverageAccel"; __gen_e_acsl_assert_data_6.line = 8; @@ -174,18 +182,18 @@ void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = {.values = (void *)0}; - __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)__gen_e_acsl_at_2, + __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)__gen_e_acsl_at_6, sizeof(int), - (void *)__gen_e_acsl_at_2, - (void *)(& __gen_e_acsl_at_2)); + (void *)__gen_e_acsl_at_6, + (void *)(& __gen_e_acsl_at_6)); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, - "__gen_e_acsl_at_2", - (void *)__gen_e_acsl_at_2); + "__gen_e_acsl_at_6", + (void *)__gen_e_acsl_at_6); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, "sizeof(int)",0,sizeof(int)); __gen_e_acsl_assert_data_7.blocking = 1; __gen_e_acsl_assert_data_7.kind = "RTE"; - __gen_e_acsl_assert_data_7.pred_txt = "\\valid_read(__gen_e_acsl_at_2)"; + __gen_e_acsl_assert_data_7.pred_txt = "\\valid_read(__gen_e_acsl_at_6)"; __gen_e_acsl_assert_data_7.file = "bts1326.i"; __gen_e_acsl_assert_data_7.fct = "atp_NORMAL_computeAverageAccel"; __gen_e_acsl_assert_data_7.line = 8; @@ -193,19 +201,19 @@ void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, __e_acsl_assert(__gen_e_acsl_valid_read_6,& __gen_e_acsl_assert_data_7); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, - "*\\old(AverageAccel)",0,*__gen_e_acsl_at_2); + "*\\old(AverageAccel)",0,*__gen_e_acsl_at_6); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, "(*\\old(Accel))[4]",0, - (*__gen_e_acsl_at)[4]); + (*__gen_e_acsl_at_5)[4]); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, "(*\\old(Accel))[3]",0, - (*__gen_e_acsl_at)[3]); + (*__gen_e_acsl_at_4)[3]); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, "(*\\old(Accel))[2]",0, - (*__gen_e_acsl_at)[2]); + (*__gen_e_acsl_at_3)[2]); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, "(*\\old(Accel))[1]",0, - (*__gen_e_acsl_at)[1]); + (*__gen_e_acsl_at_2)[1]); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, "(*\\old(Accel))[0]",0, (*__gen_e_acsl_at)[0]); @@ -215,7 +223,7 @@ void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, __gen_e_acsl_assert_data.file = "bts1326.i"; __gen_e_acsl_assert_data.fct = "atp_NORMAL_computeAverageAccel"; __gen_e_acsl_assert_data.line = 8; - __e_acsl_assert(*__gen_e_acsl_at_2 == (int)((((((*__gen_e_acsl_at)[4] + (long)(*__gen_e_acsl_at)[3]) + (*__gen_e_acsl_at)[2]) + (*__gen_e_acsl_at)[1]) + (*__gen_e_acsl_at)[0]) / 5L), + __e_acsl_assert(*__gen_e_acsl_at_6 == (int)((((((*__gen_e_acsl_at_5)[4] + (long)(*__gen_e_acsl_at_4)[3]) + (*__gen_e_acsl_at_3)[2]) + (*__gen_e_acsl_at_2)[1]) + (*__gen_e_acsl_at)[0]) / 5L), & __gen_e_acsl_assert_data); __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __e_acsl_delete_block((void *)(& AverageAccel)); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c index e6397626eec5ed493b37b2127175735ac0c77c8c..6e05c2f6131c2059f99403a0199e8e14f392efbe 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c @@ -54,8 +54,10 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, size_t n) { __e_acsl_contract_t *__gen_e_acsl_contract; - __e_acsl_mpz_t __gen_e_acsl_at_3; - char const *__gen_e_acsl_at_2; + __e_acsl_mpz_t __gen_e_acsl_at_5; + char const *__gen_e_acsl_at_4; + char *__gen_e_acsl_at_3; + char *__gen_e_acsl_at_2; char *__gen_e_acsl_at; char *__retres; { @@ -88,9 +90,11 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __e_acsl_store_block((void *)(& src),8UL); __e_acsl_store_block((void *)(& dest),8UL); __gen_e_acsl_at = dest; - __gen_e_acsl_at_2 = src; + __gen_e_acsl_at_2 = dest; + __gen_e_acsl_at_3 = dest; + __gen_e_acsl_at_4 = src; __gmpz_init_set_ui(__gen_e_acsl_n,n); - __gmpz_init_set(__gen_e_acsl_at_3, + __gmpz_init_set(__gen_e_acsl_at_5, (__e_acsl_mpz_struct const *)(__gen_e_acsl_n)); __gen_e_acsl_contract = __e_acsl_contract_init(2UL); __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = @@ -273,7 +277,7 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\result", (void *)__retres); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(dest)", - (void *)__gen_e_acsl_at); + (void *)__gen_e_acsl_at_3); __gen_e_acsl_assert_data_6.blocking = 1; __gen_e_acsl_assert_data_6.kind = "Postcondition"; __gen_e_acsl_assert_data_6.pred_txt = "\\result == \\old(dest)"; @@ -281,14 +285,15 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __gen_e_acsl_assert_data_6.fct = "strncpy"; __gen_e_acsl_assert_data_6.line = 437; __gen_e_acsl_assert_data_6.name = "result_ptr"; - __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_6); + __e_acsl_assert(__retres == __gen_e_acsl_at_3, + & __gen_e_acsl_assert_data_6); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__14,1L); __gmpz_init(__gen_e_acsl_sub_7); __gmpz_sub(__gen_e_acsl_sub_7, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3), + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_5), (__e_acsl_mpz_struct const *)(__gen_e_acsl__14)); __gmpz_init_set_si(__gen_e_acsl__15,0L); __gmpz_init(__gen_e_acsl_sub_8); @@ -303,17 +308,17 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __gen_e_acsl_size_8 = 1UL * __gen_e_acsl__16; if (__gen_e_acsl_size_8 <= 0UL) __gen_e_acsl_if_8 = 0UL; else __gen_e_acsl_if_8 = __gen_e_acsl_size_8; - __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(__gen_e_acsl_at + + __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(__gen_e_acsl_at_2 + 1 * 0), __gen_e_acsl_if_8); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)", - (void *)__gen_e_acsl_at); + (void *)__gen_e_acsl_at_2); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)", 0,1); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)", 0,1); __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,"\\old(n)",0, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3)); + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_5)); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0, __gen_e_acsl_size_8); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0, @@ -338,7 +343,7 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __gmpz_clear(__gen_e_acsl__15); __gmpz_clear(__gen_e_acsl_sub_8); __gmpz_clear(__gen_e_acsl_add_4); - __gmpz_clear(__gen_e_acsl_at_3); + __gmpz_clear(__gen_e_acsl_at_5); return __retres; } } diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c index a235f02b21d675b3f6fdc259092829b4b98cbcea..f92bbb706d36669f2be8f6696f20b6de5315fb33 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c @@ -678,12 +678,14 @@ pid_t __gen_e_acsl_fork(void) pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) { __e_acsl_contract_t *__gen_e_acsl_contract; + int *__gen_e_acsl_at_2; int *__gen_e_acsl_at; pid_t __retres; { int __gen_e_acsl_assumes_value; __e_acsl_store_block((void *)(& stat_loc),8UL); __gen_e_acsl_at = stat_loc; + __gen_e_acsl_at_2 = stat_loc; __gen_e_acsl_contract = __e_acsl_contract_init(2UL); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,0UL, stat_loc == (int *)0); @@ -745,8 +747,9 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) __retres); if (__retres >= 0) { __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, - "\\old(stat_loc)",(void *)__gen_e_acsl_at); - __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __gen_e_acsl_and = __gen_e_acsl_at_2 != (int *)0; } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c index 22c523cc0e400b2f2d32a346ef8fafb958ff87f6..34b223989b6af19038935a1480037b00ca2df386 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c @@ -248,12 +248,14 @@ pid_t __gen_e_acsl_fork(void) pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) { __e_acsl_contract_t *__gen_e_acsl_contract; + int *__gen_e_acsl_at_2; int *__gen_e_acsl_at; pid_t __retres; { int __gen_e_acsl_assumes_value; __e_acsl_store_block((void *)(& stat_loc),8UL); __gen_e_acsl_at = stat_loc; + __gen_e_acsl_at_2 = stat_loc; __gen_e_acsl_contract = __e_acsl_contract_init(2UL); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,0UL, stat_loc == (int *)0); @@ -315,8 +317,9 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) __retres); if (__retres >= 0) { __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, - "\\old(stat_loc)",(void *)__gen_e_acsl_at); - __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __gen_e_acsl_and = __gen_e_acsl_at_2 != (int *)0; } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c index 08a859cae3870b75595d0c5de2dc1ed0efd8a12f..12582f8bbbcb1d14ca53dc4ea75a32af35ff6cf8 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c @@ -661,12 +661,14 @@ pid_t __gen_e_acsl_fork(void) pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) { __e_acsl_contract_t *__gen_e_acsl_contract; + int *__gen_e_acsl_at_2; int *__gen_e_acsl_at; pid_t __retres; { int __gen_e_acsl_assumes_value; __e_acsl_store_block((void *)(& stat_loc),8UL); __gen_e_acsl_at = stat_loc; + __gen_e_acsl_at_2 = stat_loc; __gen_e_acsl_contract = __e_acsl_contract_init(2UL); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,0UL, stat_loc == (int *)0); @@ -728,8 +730,9 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) __retres); if (__retres >= 0) { __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, - "\\old(stat_loc)",(void *)__gen_e_acsl_at); - __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __gen_e_acsl_and = __gen_e_acsl_at_2 != (int *)0; } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c index 72856675c7256d5ff38179c189fcb2ddcbc1675e..1ec8397bd9c73ab13b40420be2a072ab14b535dc 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c @@ -222,12 +222,14 @@ pid_t __gen_e_acsl_fork(void) pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) { __e_acsl_contract_t *__gen_e_acsl_contract; + int *__gen_e_acsl_at_2; int *__gen_e_acsl_at; pid_t __retres; { int __gen_e_acsl_assumes_value; __e_acsl_store_block((void *)(& stat_loc),8UL); __gen_e_acsl_at = stat_loc; + __gen_e_acsl_at_2 = stat_loc; __gen_e_acsl_contract = __e_acsl_contract_init(2UL); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,0UL, stat_loc == (int *)0); @@ -289,8 +291,9 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) __retres); if (__retres >= 0) { __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, - "\\old(stat_loc)",(void *)__gen_e_acsl_at); - __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __gen_e_acsl_and = __gen_e_acsl_at_2 != (int *)0; } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c index 3b8e64f41acc0ee9952ffd244849dc326049ee49..373c5d7a30c32a68abc02346380835d42632842a 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c @@ -229,11 +229,19 @@ int main(void) void __gen_e_acsl_o(void) { __e_acsl_contract_t *__gen_e_acsl_contract; + int __gen_e_acsl_at_5; + int __gen_e_acsl_at_4; + int __gen_e_acsl_at_3; + int __gen_e_acsl_at_2; int __gen_e_acsl_at; { int __gen_e_acsl_assumes_value; int __gen_e_acsl_active_bhvrs; __gen_e_acsl_at = Y; + __gen_e_acsl_at_2 = Y; + __gen_e_acsl_at_3 = Y; + __gen_e_acsl_at_4 = Y; + __gen_e_acsl_at_5 = Y; __gen_e_acsl_contract = __e_acsl_contract_init(4UL); __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); @@ -390,14 +398,14 @@ void __gen_e_acsl_o(void) {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"X",0,X); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"\\old(Y)",0, - __gen_e_acsl_at); + __gen_e_acsl_at_5); __gen_e_acsl_assert_data_12.blocking = 1; __gen_e_acsl_assert_data_12.kind = "Postcondition"; __gen_e_acsl_assert_data_12.pred_txt = "X == \\old(Y)"; __gen_e_acsl_assert_data_12.file = "function_contract.i"; __gen_e_acsl_assert_data_12.fct = "o"; __gen_e_acsl_assert_data_12.line = 94; - __e_acsl_assert(X == __gen_e_acsl_at,& __gen_e_acsl_assert_data_12); + __e_acsl_assert(X == __gen_e_acsl_at_5,& __gen_e_acsl_assert_data_12); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,0UL); @@ -406,7 +414,7 @@ void __gen_e_acsl_o(void) {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"X",0,X); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"\\old(Y)", - 0,__gen_e_acsl_at); + 0,__gen_e_acsl_at_4); __gen_e_acsl_assert_data_13.blocking = 1; __gen_e_acsl_assert_data_13.kind = "Postcondition"; __gen_e_acsl_assert_data_13.pred_txt = "X == \\old(Y)"; @@ -414,7 +422,7 @@ void __gen_e_acsl_o(void) __gen_e_acsl_assert_data_13.fct = "o"; __gen_e_acsl_assert_data_13.line = 99; __gen_e_acsl_assert_data_13.name = "neg"; - __e_acsl_assert(X == __gen_e_acsl_at,& __gen_e_acsl_assert_data_13); + __e_acsl_assert(X == __gen_e_acsl_at_4,& __gen_e_acsl_assert_data_13); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes @@ -424,7 +432,7 @@ void __gen_e_acsl_o(void) {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"X",0,X); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"\\old(Y)", - 0,__gen_e_acsl_at); + 0,__gen_e_acsl_at_3); __gen_e_acsl_assert_data_14.blocking = 1; __gen_e_acsl_assert_data_14.kind = "Postcondition"; __gen_e_acsl_assert_data_14.pred_txt = "X == \\old(Y)"; @@ -432,7 +440,7 @@ void __gen_e_acsl_o(void) __gen_e_acsl_assert_data_14.fct = "o"; __gen_e_acsl_assert_data_14.line = 104; __gen_e_acsl_assert_data_14.name = "pos"; - __e_acsl_assert(X == __gen_e_acsl_at,& __gen_e_acsl_assert_data_14); + __e_acsl_assert(X == __gen_e_acsl_at_3,& __gen_e_acsl_assert_data_14); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes @@ -442,7 +450,7 @@ void __gen_e_acsl_o(void) {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"X",0,X); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"\\old(Y)", - 0,__gen_e_acsl_at); + 0,__gen_e_acsl_at_2); __gen_e_acsl_assert_data_15.blocking = 1; __gen_e_acsl_assert_data_15.kind = "Postcondition"; __gen_e_acsl_assert_data_15.pred_txt = "X == \\old(Y)"; @@ -450,7 +458,7 @@ void __gen_e_acsl_o(void) __gen_e_acsl_assert_data_15.fct = "o"; __gen_e_acsl_assert_data_15.line = 109; __gen_e_acsl_assert_data_15.name = "odd"; - __e_acsl_assert(X == __gen_e_acsl_at,& __gen_e_acsl_assert_data_15); + __e_acsl_assert(X == __gen_e_acsl_at_2,& __gen_e_acsl_assert_data_15); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c index 0fdf520c053564fee249660efb0d726f42be6925..578c1350215e2912fa47560fd59ee61786c92d33 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c @@ -112,25 +112,27 @@ int __gen_e_acsl_g(int x) /*@ ensures \result == (int)(\old(x) - \old(x)); */ int __gen_e_acsl_f(int x) { - long __gen_e_acsl_at; + long __gen_e_acsl_at_2; + int __gen_e_acsl_at; int __retres; - __gen_e_acsl_at = (long)x; + __gen_e_acsl_at = x; + __gen_e_acsl_at_2 = (long)x; __retres = f(x); { __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, __retres); __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"\\old(x)",0, - __gen_e_acsl_at); - __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"\\old(x)",0, - __gen_e_acsl_at); + __gen_e_acsl_at_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\old(x)",0, + __gen_e_acsl_at); __gen_e_acsl_assert_data.blocking = 1; __gen_e_acsl_assert_data.kind = "Postcondition"; __gen_e_acsl_assert_data.pred_txt = "\\result == (int)(\\old(x) - \\old(x))"; __gen_e_acsl_assert_data.file = "result.i"; __gen_e_acsl_assert_data.fct = "f"; __gen_e_acsl_assert_data.line = 5; - __e_acsl_assert(__retres == (int)(__gen_e_acsl_at - __gen_e_acsl_at), + __e_acsl_assert(__retres == (int)(__gen_e_acsl_at_2 - __gen_e_acsl_at), & __gen_e_acsl_assert_data); __e_acsl_assert_clean(& __gen_e_acsl_assert_data); return __retres; diff --git a/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle index 8b89a531d8c6f7499c7c29b67f3416e881c3809a..c154bf096dd6e181a09a9350cf0c8e3b0ed7ab83 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle @@ -4,8 +4,8 @@ function __e_acsl_assert_register_long: precondition data->values == \null || \valid(data->values) got status unknown. [eva:alarm] result.i:5: Warning: - function __e_acsl_assert_register_long: precondition data->values == \null || - \valid(data->values) got status unknown. + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] result.i:13: Warning: function __e_acsl_assert_register_int: precondition data->values == \null || \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c b/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c index ed7d5351a40d9b0e83800814275cc156bb380ccf..d9fae2605f627267a48f805d6f16e740b5bbe420 100644 --- a/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c +++ b/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c @@ -156,12 +156,14 @@ pid_t __gen_e_acsl_fork(void) pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) { __e_acsl_contract_t *__gen_e_acsl_contract; + int *__gen_e_acsl_at_2; int *__gen_e_acsl_at; pid_t __retres; { int __gen_e_acsl_assumes_value; __e_acsl_store_block((void *)(& stat_loc),8UL); __gen_e_acsl_at = stat_loc; + __gen_e_acsl_at_2 = stat_loc; __gen_e_acsl_contract = __e_acsl_contract_init(2UL); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,0UL, stat_loc == (int *)0); @@ -223,8 +225,9 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) __retres); if (__retres >= 0) { __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, - "\\old(stat_loc)",(void *)__gen_e_acsl_at); - __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __gen_e_acsl_and = __gen_e_acsl_at_2 != (int *)0; } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; diff --git a/src/plugins/e-acsl/tests/libc/oracle/gen_str.c b/src/plugins/e-acsl/tests/libc/oracle/gen_str.c index e41ebd61ec3c6acf70f8a66e6dde2be3f68edbfb..6076da2825889a309e1dabd99c585fb4720a596c 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/gen_str.c +++ b/src/plugins/e-acsl/tests/libc/oracle/gen_str.c @@ -169,11 +169,15 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src, unsigned long __gen_e_acsl_strcat_dest_size; unsigned long __gen_e_acsl_strcat_src_size; __e_acsl_contract_t *__gen_e_acsl_contract; + char *__gen_e_acsl_at_3; + char *__gen_e_acsl_at_2; char *__gen_e_acsl_at; char *__retres; __e_acsl_store_block((void *)(& src),8UL); __e_acsl_store_block((void *)(& dest),8UL); __gen_e_acsl_at = dest; + __gen_e_acsl_at_2 = dest; + __gen_e_acsl_at_3 = dest; __gen_e_acsl_contract = __e_acsl_contract_init(2UL); __gen_e_acsl_strcat_src_size = __e_acsl_builtin_strlen(src); if (n < __gen_e_acsl_strcat_src_size) __gen_e_acsl_strcat_src_size = n; @@ -236,7 +240,7 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src, __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"\\result", (void *)__retres); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"\\old(dest)", - (void *)__gen_e_acsl_at); + (void *)__gen_e_acsl_at_3); __gen_e_acsl_assert_data_9.blocking = 1; __gen_e_acsl_assert_data_9.kind = "Postcondition"; __gen_e_acsl_assert_data_9.pred_txt = "\\result == \\old(dest)"; @@ -244,7 +248,8 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src, __gen_e_acsl_assert_data_9.fct = "strncat"; __gen_e_acsl_assert_data_9.line = 504; __gen_e_acsl_assert_data_9.name = "result_ptr"; - __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_9); + __e_acsl_assert(__retres == __gen_e_acsl_at_3, + & __gen_e_acsl_assert_data_9); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& src)); @@ -282,11 +287,17 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src) { unsigned long __gen_e_acsl_strcat_dest_size; unsigned long __gen_e_acsl_strcat_src_size; + char *__gen_e_acsl_at_4; + char *__gen_e_acsl_at_3; + char *__gen_e_acsl_at_2; char *__gen_e_acsl_at; char *__retres; __e_acsl_store_block((void *)(& src),8UL); __e_acsl_store_block((void *)(& dest),8UL); __gen_e_acsl_at = dest; + __gen_e_acsl_at_2 = dest; + __gen_e_acsl_at_3 = dest; + __gen_e_acsl_at_4 = dest; __gen_e_acsl_strcat_src_size = __e_acsl_builtin_strlen(src); __gen_e_acsl_strcat_dest_size = __e_acsl_builtin_strlen((char const *)dest); __retres = strcat(dest,src); @@ -386,8 +397,10 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, size_t n) { __e_acsl_contract_t *__gen_e_acsl_contract; - __e_acsl_mpz_t __gen_e_acsl_at_3; - char const *__gen_e_acsl_at_2; + __e_acsl_mpz_t __gen_e_acsl_at_5; + char const *__gen_e_acsl_at_4; + char *__gen_e_acsl_at_3; + char *__gen_e_acsl_at_2; char *__gen_e_acsl_at; char *__retres; { @@ -420,9 +433,11 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __e_acsl_store_block((void *)(& src),8UL); __e_acsl_store_block((void *)(& dest),8UL); __gen_e_acsl_at = dest; - __gen_e_acsl_at_2 = src; + __gen_e_acsl_at_2 = dest; + __gen_e_acsl_at_3 = dest; + __gen_e_acsl_at_4 = src; __gmpz_init_set_ui(__gen_e_acsl_n,n); - __gmpz_init_set(__gen_e_acsl_at_3, + __gmpz_init_set(__gen_e_acsl_at_5, (__e_acsl_mpz_struct const *)(__gen_e_acsl_n)); __gen_e_acsl_contract = __e_acsl_contract_init(2UL); __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = @@ -605,7 +620,7 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\result", (void *)__retres); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(dest)", - (void *)__gen_e_acsl_at); + (void *)__gen_e_acsl_at_3); __gen_e_acsl_assert_data_6.blocking = 1; __gen_e_acsl_assert_data_6.kind = "Postcondition"; __gen_e_acsl_assert_data_6.pred_txt = "\\result == \\old(dest)"; @@ -613,14 +628,15 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __gen_e_acsl_assert_data_6.fct = "strncpy"; __gen_e_acsl_assert_data_6.line = 437; __gen_e_acsl_assert_data_6.name = "result_ptr"; - __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_6); + __e_acsl_assert(__retres == __gen_e_acsl_at_3, + & __gen_e_acsl_assert_data_6); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__8,1L); __gmpz_init(__gen_e_acsl_sub_3); __gmpz_sub(__gen_e_acsl_sub_3, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3), + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_5), (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); __gmpz_init_set_si(__gen_e_acsl__9,0L); __gmpz_init(__gen_e_acsl_sub_4); @@ -635,17 +651,17 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __gen_e_acsl_size_6 = 1UL * __gen_e_acsl__10; if (__gen_e_acsl_size_6 <= 0UL) __gen_e_acsl_if_6 = 0UL; else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; - __gen_e_acsl_initialized = __e_acsl_initialized((void *)(__gen_e_acsl_at + + __gen_e_acsl_initialized = __e_acsl_initialized((void *)(__gen_e_acsl_at_2 + 1 * 0), __gen_e_acsl_if_6); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)", - (void *)__gen_e_acsl_at); + (void *)__gen_e_acsl_at_2); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)", 0,1); __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)", 0,1); __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,"\\old(n)",0, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3)); + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_5)); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0, __gen_e_acsl_size_6); __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0, @@ -670,7 +686,7 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __gmpz_clear(__gen_e_acsl__9); __gmpz_clear(__gen_e_acsl_sub_4); __gmpz_clear(__gen_e_acsl_add_2); - __gmpz_clear(__gen_e_acsl_at_3); + __gmpz_clear(__gen_e_acsl_at_5); return __retres; } } @@ -690,13 +706,15 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src) { unsigned long __gen_e_acsl_strcpy_src_size; - char const *__gen_e_acsl_at_2; + char const *__gen_e_acsl_at_3; + char *__gen_e_acsl_at_2; char *__gen_e_acsl_at; char *__retres; __e_acsl_store_block((void *)(& src),8UL); __e_acsl_store_block((void *)(& dest),8UL); __gen_e_acsl_at = dest; - __gen_e_acsl_at_2 = src; + __gen_e_acsl_at_2 = dest; + __gen_e_acsl_at_3 = src; __gen_e_acsl_strcpy_src_size = __e_acsl_builtin_strlen(src); __retres = strcpy(dest,src); { diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c b/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c index a7441e7b6a81ce5051ab1e0986b7a939cb251c96..74ca57c74855673e01f41a3142e5f0b8b72391c0 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c @@ -162,12 +162,16 @@ char *__gen_e_acsl_realpath(char const * restrict file_name, char * restrict resolved_name) { __e_acsl_contract_t *__gen_e_acsl_contract; + char *__gen_e_acsl_at_3; + char *__gen_e_acsl_at_2; char *__gen_e_acsl_at; char *__retres; { int __gen_e_acsl_or; __e_acsl_store_block((void *)(& resolved_name),8UL); __gen_e_acsl_at = resolved_name; + __gen_e_acsl_at_2 = resolved_name; + __gen_e_acsl_at_3 = resolved_name; __gen_e_acsl_contract = __e_acsl_contract_init(5UL); __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = {.values = (void *)0}; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c index 9144b3f24622922ec31f020dcc41bea85eccf996..a5755ea9452cd88a117645f197d4841d7d3c10e3 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c @@ -67,6 +67,7 @@ int main(void) struct list *__gen_e_acsl_f(struct list *l) { __e_acsl_contract_t *__gen_e_acsl_contract; + struct list *__gen_e_acsl_at_2; struct list *__gen_e_acsl_at; struct list *__retres; __e_acsl_store_block((void *)(& __retres),8UL); @@ -75,6 +76,7 @@ struct list *__gen_e_acsl_f(struct list *l) int __gen_e_acsl_or; __e_acsl_store_block((void *)(& l),8UL); __gen_e_acsl_at = l; + __gen_e_acsl_at_2 = l; __gen_e_acsl_contract = __e_acsl_contract_init(2UL); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,0UL, l == (struct list *)0); @@ -132,7 +134,7 @@ struct list *__gen_e_acsl_f(struct list *l) __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\result", (void *)__retres); __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\old(l)", - (void *)__gen_e_acsl_at); + (void *)__gen_e_acsl_at_2); __gen_e_acsl_assert_data_2.blocking = 1; __gen_e_acsl_assert_data_2.kind = "Postcondition"; __gen_e_acsl_assert_data_2.pred_txt = "\\result == \\old(l)"; @@ -140,7 +142,7 @@ struct list *__gen_e_acsl_f(struct list *l) __gen_e_acsl_assert_data_2.fct = "f"; __gen_e_acsl_assert_data_2.line = 15; __gen_e_acsl_assert_data_2.name = "B1"; - __e_acsl_assert(__retres == __gen_e_acsl_at, + __e_acsl_assert(__retres == __gen_e_acsl_at_2, & __gen_e_acsl_assert_data_2); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c index 37f8bf4b80130d318c5bc4c330c21b1b1ed6b1b6..88e6322dd66a98fd9333240ccfba691fe0ae4f71 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c @@ -162,6 +162,8 @@ char *__gen_e_acsl_realpath(char const * restrict file_name, char * restrict resolved_name) { __e_acsl_contract_t *__gen_e_acsl_contract; + char *__gen_e_acsl_at_3; + char *__gen_e_acsl_at_2; char *__gen_e_acsl_at; char *__retres; __e_acsl_store_block((void *)(& __retres),8UL); @@ -170,6 +172,8 @@ char *__gen_e_acsl_realpath(char const * restrict file_name, __e_acsl_store_block((void *)(& resolved_name),8UL); __e_acsl_temporal_pull_parameter((void *)(& resolved_name),1U,8UL); __gen_e_acsl_at = resolved_name; + __gen_e_acsl_at_2 = resolved_name; + __gen_e_acsl_at_3 = resolved_name; __gen_e_acsl_contract = __e_acsl_contract_init(5UL); __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = {.values = (void *)0};