Newer
Older

Julien Signoles
committed
/* Generated by Frama-C */
/*@ ensures \at(A,Post) ≡ 3; */
void __gen_e_acsl_f(void);
/*@ ensures \at(A,Post) ≡ 3; */

Julien Signoles
committed
{
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_at_3;
__e_acsl_mpz_t __gen_e_acsl_at_2;
__e_acsl_mpz_t __gen_e_acsl_at;
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_A_4;
__gmpz_init_set_si(__gen_e_acsl_A_4,(long)A);
Kostyantyn Vorobyov
committed
__gmpz_init_set(__gen_e_acsl_at,
(__e_acsl_mpz_struct const *)(__gen_e_acsl_A_4));
__gmpz_clear(__gen_e_acsl_A_4);
}
{
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_A;
__gmpz_init_set_si(__gen_e_acsl_A,(long)A);
Kostyantyn Vorobyov
committed
__gmpz_init_set(__gen_e_acsl_at,
(__e_acsl_mpz_struct const *)(__gen_e_acsl_A));
__gmpz_clear(__gen_e_acsl_A);
}
F:
__gmpz_init_set(__gen_e_acsl_at_3,
Kostyantyn Vorobyov
committed
(__e_acsl_mpz_struct const *)(__gen_e_acsl_at));
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_A_2;
__gmpz_init_set_si(__gen_e_acsl_A_2,(long)A);
__gmpz_init_set(__gen_e_acsl_at_2,
Kostyantyn Vorobyov
committed
(__e_acsl_mpz_struct const *)(__gen_e_acsl_A_2));
__gmpz_clear(__gen_e_acsl_A_2);
}
A = 2;
/*@ assert \at(A,Pre) ≡ 0; */

Julien Signoles
committed
{
{
__e_acsl_mpz_t __gen_e_acsl_;
int __gen_e_acsl_eq;
__gmpz_init_set_si(__gen_e_acsl_,0L);
__gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_at),
(__e_acsl_mpz_struct const *)(__gen_e_acsl_));
__e_acsl_assert(__gen_e_acsl_eq == 0,(char *)"Assertion",(char *)"f",
(char *)"\\at(A,Pre) == 0",11);
__gmpz_clear(__gen_e_acsl_);
}

Julien Signoles
committed
}
/*@ assert \at(A,F) ≡ 1; */

Julien Signoles
committed
{
{
__e_acsl_mpz_t __gen_e_acsl__2;
int __gen_e_acsl_eq_2;
__gmpz_init_set_si(__gen_e_acsl__2,1L);
__gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_at_2),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
__e_acsl_assert(__gen_e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"f",
(char *)"\\at(A,F) == 1",12);
__gmpz_clear(__gen_e_acsl__2);
}

Julien Signoles
committed
}
/*@ assert \at(A,Here) ≡ 2; */

Julien Signoles
committed
{
{
__e_acsl_mpz_t __gen_e_acsl_A_3;
__e_acsl_mpz_t __gen_e_acsl__3;
int __gen_e_acsl_eq_3;
__gmpz_init_set_si(__gen_e_acsl_A_3,(long)A);
__gmpz_init_set_si(__gen_e_acsl__3,2L);
__gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_A_3),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__3));
__e_acsl_assert(__gen_e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"f",
(char *)"\\at(A,Here) == 2",13);
__gmpz_clear(__gen_e_acsl_A_3);
__gmpz_clear(__gen_e_acsl__3);
}

Julien Signoles
committed
}
/*@ assert \at(\at(A,Pre),F) ≡ 0; */

Julien Signoles
committed
{
{
__e_acsl_mpz_t __gen_e_acsl__4;
int __gen_e_acsl_eq_4;
__gmpz_init_set_si(__gen_e_acsl__4,0L);
__gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
__e_acsl_assert(__gen_e_acsl_eq_4 == 0,(char *)"Assertion",(char *)"f",
(char *)"\\at(\\at(A,Pre),F) == 0",14);
__gmpz_clear(__gen_e_acsl__4);
}

Julien Signoles
committed
}
__gmpz_clear(__gen_e_acsl_at);
__gmpz_clear(__gen_e_acsl_at_2);
__gmpz_clear(__gen_e_acsl_at_3);

Julien Signoles
committed
return;
}
void g(int *p, int *q)
{
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_at_2;
__e_acsl_store_block((void *)(& p),(size_t)8);
__e_acsl_store_block((void *)(& q),(size_t)8);
__e_acsl_initialize((void *)p,sizeof(int));
__e_acsl_initialize((void *)(p + 1),sizeof(int));
__e_acsl_initialize((void *)q,sizeof(int));

Julien Signoles
committed
{
int __gen_e_acsl_valid_read_3;
__gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)q,sizeof(int));
__e_acsl_assert(__gen_e_acsl_valid_read_3,(char *)"RTE",(char *)"g",
(char *)"mem_access: \\valid_read(q)",28);

Julien Signoles
committed
}
{
int __gen_e_acsl_valid_read;
__gen_e_acsl_valid_read = __e_acsl_valid_read((void *)q,sizeof(int));
__e_acsl_assert(__gen_e_acsl_valid_read,(char *)"RTE",(char *)"g",
(char *)"mem_access: \\valid_read(q)",26);

Julien Signoles
committed
}
__e_acsl_initialize((void *)p,sizeof(int));
__e_acsl_initialize((void *)(p + 1),sizeof(int));
__e_acsl_initialize((void *)q,sizeof(int));

Julien Signoles
committed
{
int __gen_e_acsl_valid_read_2;
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_;
__gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at),
sizeof(int));
__e_acsl_assert(__gen_e_acsl_valid_read_2,(char *)"RTE",(char *)"g",
(char *)"mem_access: \\valid_read(p + __gen_e_acsl_at)",
26);
__gmpz_init_set_si(__gen_e_acsl_,(long)*(p + __gen_e_acsl_at));
__gmpz_init_set(__gen_e_acsl_at_2,
Kostyantyn Vorobyov
committed
(__e_acsl_mpz_struct const *)(__gen_e_acsl_));
__gmpz_clear(__gen_e_acsl_);

Julien Signoles
committed
}
/*@ assert \at(*(p + \at(*q,L1)),L2) ≡ 2; */

Julien Signoles
committed
{
{
__e_acsl_mpz_t __gen_e_acsl__2;
int __gen_e_acsl_eq;
__gmpz_init_set_si(__gen_e_acsl__2,2L);
__gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_at_2),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
__e_acsl_assert(__gen_e_acsl_eq == 0,(char *)"Assertion",(char *)"g",
(char *)"\\at(*(p + \\at(*q,L1)),L2) == 2",26);
__gmpz_clear(__gen_e_acsl__2);
}

Julien Signoles
committed
}
/*@ assert \at(*(p + \at(*q,L1)),Here) ≡ 2; */
{
__e_acsl_mpz_t __gen_e_acsl__3;
__e_acsl_mpz_t __gen_e_acsl__4;
int __gen_e_acsl_eq_2;
__gmpz_init_set_si(__gen_e_acsl__3,(long)*(p + __gen_e_acsl_at_3));
__gmpz_init_set_si(__gen_e_acsl__4,2L);
__gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__3),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
__e_acsl_assert(__gen_e_acsl_eq_2 == 0,(char *)"Assertion",
(char *)"g",
(char *)"\\at(*(p + \\at(*q,L1)),Here) == 2",28);
__gmpz_clear(__gen_e_acsl__3);
__gmpz_clear(__gen_e_acsl__4);
}
__e_acsl_delete_block((void *)(& p));
__e_acsl_delete_block((void *)(& q));
__gmpz_clear(__gen_e_acsl_at_2);
/*@ ensures \result ≡ \old(x); */
int __gen_e_acsl_h(int x);

Julien Signoles
committed
/*@ ensures \result ≡ \old(x); */
int h(int x)
{
__e_acsl_store_block((void *)(& x),(size_t)4);
__e_acsl_delete_block((void *)(& x));

Julien Signoles
committed
return x;
}
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_at_2;
__e_acsl_mpz_t __gen_e_acsl_at;
int __retres;
int x;
int t[2];
__e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
__e_acsl_store_block((void *)(t),(size_t)8);
__e_acsl_store_block((void *)(& x),(size_t)4);
__e_acsl_full_init((void *)(& x));
x = __gen_e_acsl_h(0);
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_x_4;
__gmpz_init_set_si(__gen_e_acsl_x_4,(long)x);
__gmpz_init_set(__gen_e_acsl_at,
Kostyantyn Vorobyov
committed
(__e_acsl_mpz_struct const *)(__gen_e_acsl_x_4));
__gmpz_clear(__gen_e_acsl_x_4);
}
{
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_x_3;
__e_acsl_mpz_t __gen_e_acsl__3;
__e_acsl_mpz_t __gen_e_acsl_add;
__gmpz_init_set_si(__gen_e_acsl_x_3,(long)x);

Julien Signoles
committed
__gmpz_init_set_si(__gen_e_acsl__3,1L);
__gmpz_init(__gen_e_acsl_add);
Kostyantyn Vorobyov
committed
__gmpz_add(__gen_e_acsl_add,
(__e_acsl_mpz_struct const *)(__gen_e_acsl_x_3),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__3));
__gmpz_init_set(__gen_e_acsl_at_2,
Kostyantyn Vorobyov
committed
(__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
__gmpz_clear(__gen_e_acsl_x_3);
__gmpz_clear(__gen_e_acsl__3);
__gmpz_clear(__gen_e_acsl_add);
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_x_2;
__gmpz_init_set_si(__gen_e_acsl_x_2,(long)x);
__gmpz_init_set(__gen_e_acsl_at,
Kostyantyn Vorobyov
committed
(__e_acsl_mpz_struct const *)(__gen_e_acsl_x_2));
__gmpz_clear(__gen_e_acsl_x_2);
}
/*@ assert x ≡ 0; */
{
{
__e_acsl_mpz_t __gen_e_acsl_x;
__e_acsl_mpz_t __gen_e_acsl_;
int __gen_e_acsl_eq;
__gmpz_init_set_si(__gen_e_acsl_x,(long)x);
__gmpz_init_set_si(__gen_e_acsl_,0L);
__gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_x),
(__e_acsl_mpz_struct const *)(__gen_e_acsl_));
__e_acsl_assert(__gen_e_acsl_eq == 0,(char *)"Assertion",
(char *)"main",(char *)"x == 0",43);
__gmpz_clear(__gen_e_acsl_x);
__gmpz_clear(__gen_e_acsl_);
}
__e_acsl_full_init((void *)(& x));
__e_acsl_full_init((void *)(& x));
__gen_e_acsl_f();
/*@ assert \at(x,L) ≡ 0; */

Julien Signoles
committed
{
{
__e_acsl_mpz_t __gen_e_acsl__2;
int __gen_e_acsl_eq_2;
__gmpz_init_set_si(__gen_e_acsl__2,0L);
__gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_at),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
__e_acsl_assert(__gen_e_acsl_eq_2 == 0,(char *)"Assertion",
(char *)"main",(char *)"\\at(x,L) == 0",48);
__gmpz_clear(__gen_e_acsl__2);
}

Julien Signoles
committed
}
/*@ assert \at(x + 1,L) ≡ 1; */

Julien Signoles
committed
{
{
__e_acsl_mpz_t __gen_e_acsl__4;
int __gen_e_acsl_eq_3;
__gmpz_init_set_si(__gen_e_acsl__4,1L);
__gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_at_2),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
__e_acsl_assert(__gen_e_acsl_eq_3 == 0,(char *)"Assertion",
(char *)"main",(char *)"\\at(x + 1,L) == 1",49);
__gmpz_clear(__gen_e_acsl__4);
}

Julien Signoles
committed
}
/*@ assert \at(x,L) + 1 ≡ 1; */

Julien Signoles
committed
{
{
__e_acsl_mpz_t __gen_e_acsl__5;
__e_acsl_mpz_t __gen_e_acsl_add_2;
int __gen_e_acsl_eq_4;
__gmpz_init_set_si(__gen_e_acsl__5,1L);
__gmpz_init(__gen_e_acsl_add_2);
__gmpz_add(__gen_e_acsl_add_2,
(__e_acsl_mpz_struct const *)(__gen_e_acsl_at),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
__gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2),
(__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
__e_acsl_assert(__gen_e_acsl_eq_4 == 0,(char *)"Assertion",
(char *)"main",(char *)"\\at(x,L) + 1 == 1",50);
__gmpz_clear(__gen_e_acsl__5);
__gmpz_clear(__gen_e_acsl_add_2);
}

Julien Signoles
committed
}

Julien Signoles
committed
__retres = 0;
__gmpz_clear(__gen_e_acsl_at);
__gmpz_clear(__gen_e_acsl_at_2);
__e_acsl_delete_block((void *)(t));
__e_acsl_delete_block((void *)(& x));
__e_acsl_memory_clean();

Julien Signoles
committed
}
/*@ ensures \result ≡ \old(x); */
int __gen_e_acsl_h(int x)
{
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_at;
__e_acsl_store_block((void *)(& __retres),(size_t)4);
__e_acsl_store_block((void *)(& x),(size_t)4);
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_x;
__gmpz_init_set_si(__gen_e_acsl_x,(long)x);
Kostyantyn Vorobyov
committed
__gmpz_init_set(__gen_e_acsl_at,
(__e_acsl_mpz_struct const *)(__gen_e_acsl_x));
__gmpz_clear(__gen_e_acsl_x);
}
__retres = h(x);
{
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_result;
int __gen_e_acsl_eq;
__gmpz_init_set_si(__gen_e_acsl_result,(long)__retres);
Kostyantyn Vorobyov
committed
__gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_result),
(__e_acsl_mpz_struct const *)(__gen_e_acsl_at));
__e_acsl_assert(__gen_e_acsl_eq == 0,(char *)"Postcondition",(char *)"h",
(char *)"\\result == \\old(x)",35);
__e_acsl_delete_block((void *)(& x));
__gmpz_clear(__gen_e_acsl_result);
__gmpz_clear(__gen_e_acsl_at);
__e_acsl_delete_block((void *)(& __retres));
return __retres;
}
}
/*@ ensures \at(A,Post) ≡ 3; */
void __gen_e_acsl_f(void)
{
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_at;
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_;
int __gen_e_acsl_eq;
Kostyantyn Vorobyov
committed
__e_acsl_mpz_t __gen_e_acsl_A;
__gmpz_init_set_si(__gen_e_acsl_A,(long)A);
Kostyantyn Vorobyov
committed
__gmpz_init_set(__gen_e_acsl_at,
(__e_acsl_mpz_struct const *)(__gen_e_acsl_A));
__gmpz_clear(__gen_e_acsl_A);
}

Julien Signoles
committed
__gmpz_init_set_si(__gen_e_acsl_,3L);
Kostyantyn Vorobyov
committed
__gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_at),
(__e_acsl_mpz_struct const *)(__gen_e_acsl_));
__e_acsl_assert(__gen_e_acsl_eq == 0,(char *)"Postcondition",(char *)"f",
(char *)"\\at(A,Post) == 3",7);
__gmpz_clear(__gen_e_acsl_);
__gmpz_clear(__gen_e_acsl_at);
return;
}
}