/* Generated by Frama-C */
#include "stddef.h"
#include "stdio.h"
struct msgA {
   int type ;
   int a[2] ;
};
struct msgB {
   int type ;
   double x ;
};
struct __anonstruct_T_1 {
   int type ;
};
union msg {
   struct __anonstruct_T_1 T ;
   struct msgA A ;
   struct msgB B ;
};
void read_sensor_4(unsigned int *m)
{
  __e_acsl_store_block((void *)(& m),(size_t)8);
  __e_acsl_initialize((void *)m,sizeof(unsigned int));
  *m = (unsigned int)0;
  __e_acsl_delete_block((void *)(& m));
  return;
}

int main(void)
{
  int __retres;
  unsigned char buf[sizeof(union msg)];
  int i;
  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
  __e_acsl_store_block((void *)(buf),(size_t)16);
  i = 0;
  while ((unsigned long)i < sizeof(buf) / (unsigned long)4) {
    read_sensor_4((unsigned int *)(buf) + i);
    i ++;
  }
  {
    int __gen_e_acsl_initialized;
    __gen_e_acsl_initialized = __e_acsl_initialized((void *)(buf),
                                                    sizeof(union msg));
    __e_acsl_assert(__gen_e_acsl_initialized,"Assertion","main",
                    "\\initialized((union msg *)((unsigned char *)buf))",
                    "tests/bts/bts1304.i",23);
  }
  /*@ assert \initialized((union msg *)((unsigned char *)buf)); */ ;
  __retres = 0;
  __e_acsl_delete_block((void *)(buf));
  __e_acsl_memory_clean();
  return __retres;
}


