Skip to content
Snippets Groups Projects
Commit 144f42bb authored by Julien Signoles's avatar Julien Signoles
Browse files

[e-acsl] minor code+tests improvements

parent fc491ce5
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ int main(void) { ...@@ -7,7 +7,7 @@ int main(void) {
int x; int x;
/*@ assert 0 == 0; */ x = 0; /*@ assert 0 == 0; */ x = 0;
/*@ assert 0 != 1; */ /*@ assert 0 != 1; */
/*@ assert 0xfffffffffffffff == 0xfffffffffffffff; */ /*@ assert 1152921504606846975 == 0xfffffffffffffff; */
/* /\*@ assert 0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff; *\/ */ /* /\*@ assert 0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff; *\/ */
......
...@@ -593,14 +593,14 @@ int main(void) ...@@ -593,14 +593,14 @@ int main(void)
__gmpz_clear((__mpz_struct *)(e_acsl_5)); __gmpz_clear((__mpz_struct *)(e_acsl_5));
} }
/*@ assert 0xfffffffffffffff ≡ 0xfffffffffffffff; */ ; /*@ assert 1152921504606846975 ≡ 0xfffffffffffffff; */ ;
{ mpz_t e_acsl_7; mpz_t e_acsl_8; int e_acsl_9; { mpz_t e_acsl_7; mpz_t e_acsl_8; int e_acsl_9;
__gmpz_init_set_str((__mpz_struct *)(e_acsl_7),"1152921504606846975",10); __gmpz_init_set_str((__mpz_struct *)(e_acsl_7),"1152921504606846975",10);
__gmpz_init_set_str((__mpz_struct *)(e_acsl_8),"1152921504606846975",10); __gmpz_init_set_str((__mpz_struct *)(e_acsl_8),"1152921504606846975",10);
e_acsl_9 = __gmpz_cmp((__mpz_struct const *)(e_acsl_7), e_acsl_9 = __gmpz_cmp((__mpz_struct const *)(e_acsl_7),
(__mpz_struct const *)(e_acsl_8)); (__mpz_struct const *)(e_acsl_8));
if (! (e_acsl_9 == 0)) { if (! (e_acsl_9 == 0)) {
e_acsl_fail((char *)"(0xfffffffffffffff == 0xfffffffffffffff)"); e_acsl_fail((char *)"(1152921504606846975 == 0xfffffffffffffff)");
} __gmpz_clear((__mpz_struct *)(e_acsl_7)); } __gmpz_clear((__mpz_struct *)(e_acsl_7));
__gmpz_clear((__mpz_struct *)(e_acsl_8)); __gmpz_clear((__mpz_struct *)(e_acsl_8));
} }
......
...@@ -175,14 +175,14 @@ int main(void) ...@@ -175,14 +175,14 @@ int main(void)
mpz_clear((__mpz_struct *)(e_acsl_5)); mpz_clear((__mpz_struct *)(e_acsl_5));
} }
/*@ assert 0xfffffffffffffff ≡ 0xfffffffffffffff; */ ; /*@ assert 1152921504606846975 ≡ 0xfffffffffffffff; */ ;
{ mpz_t e_acsl_7; mpz_t e_acsl_8; int e_acsl_9; { mpz_t e_acsl_7; mpz_t e_acsl_8; int e_acsl_9;
mpz_init_set_str((__mpz_struct *)(e_acsl_7),"1152921504606846975",10); mpz_init_set_str((__mpz_struct *)(e_acsl_7),"1152921504606846975",10);
mpz_init_set_str((__mpz_struct *)(e_acsl_8),"1152921504606846975",10); mpz_init_set_str((__mpz_struct *)(e_acsl_8),"1152921504606846975",10);
e_acsl_9 = mpz_cmp((__mpz_struct const *)(e_acsl_7), e_acsl_9 = mpz_cmp((__mpz_struct const *)(e_acsl_7),
(__mpz_struct const *)(e_acsl_8)); (__mpz_struct const *)(e_acsl_8));
if (! (e_acsl_9 == 0)) { if (! (e_acsl_9 == 0)) {
e_acsl_fail((char *)"(0xfffffffffffffff == 0xfffffffffffffff)"); e_acsl_fail((char *)"(1152921504606846975 == 0xfffffffffffffff)");
} mpz_clear((__mpz_struct *)(e_acsl_7)); } mpz_clear((__mpz_struct *)(e_acsl_7));
mpz_clear((__mpz_struct *)(e_acsl_8)); mpz_clear((__mpz_struct *)(e_acsl_8));
} }
......
...@@ -230,14 +230,17 @@ end ...@@ -230,14 +230,17 @@ end
(* ************************************************************************** *) (* ************************************************************************** *)
let constant_to_exp ?(loc=Location.unknown) = function let constant_to_exp ?(loc=Location.unknown) = function
| CInt64(n, k, s) -> | CInt64(n,
(match k with (IBool | IChar | IUChar | IUInt | IUShort | IULong
| IBool | IChar | IUChar | IUInt | IUShort | IULong | ISChar | IShort | IInt | ILong as k),
| ISChar | IShort | IInt | ILong -> s) ->
kinteger64_repr ?loc k n s kinteger64_repr ?loc k n s
| ILongLong | IULongLong -> | CInt64(n, (ILongLong | IULongLong), _s) ->
mkString ?loc (Int64.to_string n)) (* cannot use the string [s] if any since we do not know the base in which
| CStr _ | CWStr _ | CChr _ | CReal _ | CEnum _ as c -> new_exp ?loc (Const c) it is written. Such a base is required by GMP. *)
mkString ?loc (Int64.to_string n)
| CStr _ | CWStr _ | CChr _ | CReal _ | CEnum _ as c ->
new_exp ?loc (Const c)
let tlval_to_lval = function let tlval_to_lval = function
| TVar { lv_origin = Some v }, TNoOffset -> Var v, NoOffset | TVar { lv_origin = Some v }, TNoOffset -> Var v, NoOffset
...@@ -536,7 +539,8 @@ class e_acsl_visitor prj generate = object (self) ...@@ -536,7 +539,8 @@ class e_acsl_visitor prj generate = object (self)
stmt stmt
Env.empty Env.empty
in in
if Env.is_empty env then DoChildren if Env.is_empty env then
DoChildren
else begin else begin
assert generate; assert generate;
let mk_block stmt = let mk_block stmt =
...@@ -548,7 +552,6 @@ class e_acsl_visitor prj generate = object (self) ...@@ -548,7 +552,6 @@ class e_acsl_visitor prj generate = object (self)
initializer Env.register_actions_queue self#get_filling_actions initializer Env.register_actions_queue self#get_filling_actions
end end
let do_visit ?(prj=Project.current ()) generate = let do_visit ?(prj=Project.current ()) generate =
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment