/* Generated by Frama-C */
#include "stdlib.h"
int main(void)
{
  int __retres;
  int a;
  int *p;
  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
  __e_acsl_store_block((void *)(& p),(size_t)8);
  __e_acsl_store_block((void *)(& a),(size_t)4);
  __e_acsl_full_init((void *)(& a));
  a = 10;
  goto lbl_1;
  lbl_2:
    /*@ assert \valid(p); */
    {
      {
        int __gen_e_acsl_initialized;
        int __gen_e_acsl_and;
        __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                        sizeof(int *));
        if (__gen_e_acsl_initialized) {
          int __gen_e_acsl_valid;
          __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int));
          __gen_e_acsl_and = __gen_e_acsl_valid;
        }
        else __gen_e_acsl_and = 0;
        __e_acsl_assert(__gen_e_acsl_and,(char *)"Assertion",(char *)"main",
                        (char *)"\\valid(p)",10);
      }
    }
    __retres = 0;
    goto return_label;
  lbl_1: __e_acsl_full_init((void *)(& p));
  p = & a;
  goto lbl_2;
  return_label:
    __e_acsl_delete_block((void *)(& p));
    __e_acsl_delete_block((void *)(& a));
    __e_acsl_memory_clean();
    return __retres;
}