/* Generated by Frama-C */
#include "pthread.h"
#include "sched.h"
#include "signal.h"
#include "stddef.h"
#include "stdint.h"
#include "stdio.h"
#include "time.h"
char *__gen_e_acsl_literal_string_3;
char *__gen_e_acsl_literal_string;
char *__gen_e_acsl_literal_string_2;
char *__gen_e_acsl_literal_string_4;
char *__gen_e_acsl_literal_string_5;
extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;

struct ST {
   char *str ;
   int num ;
};
int _F;

char *_A[2] = {(char *)"XX", (char *)"YY"};
char *_B = (char *)"ZZ";
char *_C;
int _D[2] = {44, 88};
int _E = 44;
int _F = 9;
struct ST _G[2] =
  {{.str = (char *)"First", .num = 99}, {.str = (char *)"Second", .num = 147}};
void __e_acsl_globals_init(void)
{
  static char __e_acsl_already_run = 0;
  if (! __e_acsl_already_run) {
    __e_acsl_already_run = 1;
    __gen_e_acsl_literal_string_3 = "ZZ";
    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_3,sizeof("ZZ"));
    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_3);
    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_3);
    __gen_e_acsl_literal_string = "YY";
    __e_acsl_store_block((void *)__gen_e_acsl_literal_string,sizeof("YY"));
    __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
    __gen_e_acsl_literal_string_2 = "XX";
    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_2,sizeof("XX"));
    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_2);
    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_2);
    __gen_e_acsl_literal_string_4 = "Second";
    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_4,
                         sizeof("Second"));
    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_4);
    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_4);
    __gen_e_acsl_literal_string_5 = "First";
    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_5,
                         sizeof("First"));
    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_5);
    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_5);
    __e_acsl_store_block((void *)(_G),32UL);
    __e_acsl_full_init((void *)(& _G));
    __e_acsl_store_block((void *)(& _E),4UL);
    __e_acsl_full_init((void *)(& _E));
    __e_acsl_store_block((void *)(_D),8UL);
    __e_acsl_full_init((void *)(& _D));
    __e_acsl_store_block((void *)(& _C),8UL);
    __e_acsl_full_init((void *)(& _C));
    __e_acsl_store_block((void *)(& _B),8UL);
    __e_acsl_full_init((void *)(& _B));
    __e_acsl_store_block((void *)(_A),16UL);
    __e_acsl_full_init((void *)(& _A));
    __e_acsl_store_block((void *)(& _F),4UL);
    __e_acsl_full_init((void *)(& _F));
  }
  return;
}

void __e_acsl_globals_clean(void)
{
  __e_acsl_delete_block((void *)(_G));
  __e_acsl_delete_block((void *)(& _E));
  __e_acsl_delete_block((void *)(_D));
  __e_acsl_delete_block((void *)(& _C));
  __e_acsl_delete_block((void *)(& _B));
  __e_acsl_delete_block((void *)(_A));
  __e_acsl_delete_block((void *)(& _F));
  return;
}

int main(int argc, char **argv)
{
  int __retres;
  __e_acsl_memory_init(& argc,& argv,8UL);
  __e_acsl_globals_init();
  {
    int __gen_e_acsl_valid;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char **)_A",
                                 (void *)(_A));
    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
                                   "sizeof(char *)",0,sizeof(char *));
    __gen_e_acsl_valid = __e_acsl_valid((void *)(_A),sizeof(char *),
                                        (void *)(_A),(void *)0);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
                                 "\\valid((char **)_A)",0,__gen_e_acsl_valid);
    __gen_e_acsl_assert_data.blocking = 1;
    __gen_e_acsl_assert_data.kind = "Assertion";
    __gen_e_acsl_assert_data.pred_txt = "\\valid((char **)_A)";
    __gen_e_acsl_assert_data.file = "compound_initializers.c";
    __gen_e_acsl_assert_data.fct = "main";
    __gen_e_acsl_assert_data.line = 23;
    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
  }
  /*@ assert \valid((char **)_A); */ ;
  {
    int __gen_e_acsl_initialized;
    int __gen_e_acsl_and;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
      {.values = (void *)0};
    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"(char **)_A",
                                 (void *)(_A));
    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
                                   "sizeof(char *)",0,sizeof(char *));
    __gen_e_acsl_initialized = __e_acsl_initialized((void *)(_A),
                                                    sizeof(char *));
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
                                 "\\initialized((char **)_A)",0,
                                 __gen_e_acsl_initialized);
    if (__gen_e_acsl_initialized) {
      int __gen_e_acsl_valid_read;
      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"_A[0]",
                                   (void *)_A[0]);
      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
                                     "sizeof(char)",0,sizeof(char));
      __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)_A[0],
                                                    sizeof(char),
                                                    (void *)_A[0],
                                                    (void *)(_A));
      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
                                   "\\valid_read(_A[0])",0,
                                   __gen_e_acsl_valid_read);
      __gen_e_acsl_and = __gen_e_acsl_valid_read;
    }
    else __gen_e_acsl_and = 0;
    __gen_e_acsl_assert_data_2.blocking = 1;
    __gen_e_acsl_assert_data_2.kind = "Assertion";
    __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(_A[0])";
    __gen_e_acsl_assert_data_2.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_2.fct = "main";
    __gen_e_acsl_assert_data_2.line = 24;
    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
  }
  /*@ assert \valid_read(_A[0]); */ ;
  {
    int __gen_e_acsl_initialized_2;
    int __gen_e_acsl_and_2;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
      {.values = (void *)0};
    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&_A[1]",
                                 (void *)(& _A[1]));
    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
                                   "sizeof(char *)",0,sizeof(char *));
    __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& _A[1]),
                                                      sizeof(char *));
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
                                 "\\initialized(&_A[1])",0,
                                 __gen_e_acsl_initialized_2);
    if (__gen_e_acsl_initialized_2) {
      int __gen_e_acsl_valid_read_2;
      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"_A[1]",
                                   (void *)_A[1]);
      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
                                     "sizeof(char)",0,sizeof(char));
      __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)_A[1],
                                                      sizeof(char),
                                                      (void *)_A[1],
                                                      (void *)(& _A[1]));
      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
                                   "\\valid_read(_A[1])",0,
                                   __gen_e_acsl_valid_read_2);
      __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_2;
    }
    else __gen_e_acsl_and_2 = 0;
    __gen_e_acsl_assert_data_3.blocking = 1;
    __gen_e_acsl_assert_data_3.kind = "Assertion";
    __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(_A[1])";
    __gen_e_acsl_assert_data_3.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_3.fct = "main";
    __gen_e_acsl_assert_data_3.line = 25;
    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
  }
  /*@ assert \valid_read(_A[1]); */ ;
  {
    int __gen_e_acsl_valid_read_3;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
      {.values = (void *)0};
    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"_B",
                                 (void *)_B);
    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
                                   "sizeof(char)",0,sizeof(char));
    __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)_B,sizeof(char),
                                                    (void *)_B,
                                                    (void *)(& _B));
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
                                 "\\valid_read(_B)",0,
                                 __gen_e_acsl_valid_read_3);
    __gen_e_acsl_assert_data_4.blocking = 1;
    __gen_e_acsl_assert_data_4.kind = "Assertion";
    __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(_B)";
    __gen_e_acsl_assert_data_4.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_4.fct = "main";
    __gen_e_acsl_assert_data_4.line = 26;
    __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_4);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
  }
  /*@ assert \valid_read(_B); */ ;
  {
    int __gen_e_acsl_valid_2;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
      {.values = (void *)0};
    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&_C",
                                 (void *)(& _C));
    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
                                   "sizeof(char *)",0,sizeof(char *));
    __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& _C),sizeof(char *),
                                          (void *)(& _C),(void *)0);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(&_C)",
                                 0,__gen_e_acsl_valid_2);
    __gen_e_acsl_assert_data_5.blocking = 1;
    __gen_e_acsl_assert_data_5.kind = "Assertion";
    __gen_e_acsl_assert_data_5.pred_txt = "\\valid(&_C)";
    __gen_e_acsl_assert_data_5.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_5.fct = "main";
    __gen_e_acsl_assert_data_5.line = 27;
    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_5);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
  }
  /*@ assert \valid(&_C); */ ;
  {
    int __gen_e_acsl_valid_3;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
      {.values = (void *)0};
    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"(int *)_D",
                                 (void *)(_D));
    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
                                   "sizeof(int)",0,sizeof(int));
    __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(_D),sizeof(int),
                                          (void *)(_D),(void *)0);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
                                 "\\valid((int *)_D)",0,__gen_e_acsl_valid_3);
    __gen_e_acsl_assert_data_6.blocking = 1;
    __gen_e_acsl_assert_data_6.kind = "Assertion";
    __gen_e_acsl_assert_data_6.pred_txt = "\\valid((int *)_D)";
    __gen_e_acsl_assert_data_6.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_6.fct = "main";
    __gen_e_acsl_assert_data_6.line = 28;
    __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_6);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
  }
  /*@ assert \valid((int *)_D); */ ;
  {
    int __gen_e_acsl_valid_4;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
      {.values = (void *)0};
    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&_E",
                                 (void *)(& _E));
    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
                                   "sizeof(int)",0,sizeof(int));
    __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(& _E),sizeof(int),
                                          (void *)(& _E),(void *)0);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"\\valid(&_E)",
                                 0,__gen_e_acsl_valid_4);
    __gen_e_acsl_assert_data_7.blocking = 1;
    __gen_e_acsl_assert_data_7.kind = "Assertion";
    __gen_e_acsl_assert_data_7.pred_txt = "\\valid(&_E)";
    __gen_e_acsl_assert_data_7.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_7.fct = "main";
    __gen_e_acsl_assert_data_7.line = 29;
    __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_7);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
  }
  /*@ assert \valid(&_E); */ ;
  {
    int __gen_e_acsl_valid_5;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
      {.values = (void *)0};
    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&_F",
                                 (void *)(& _F));
    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
                                   "sizeof(int)",0,sizeof(int));
    __gen_e_acsl_valid_5 = __e_acsl_valid((void *)(& _F),sizeof(int),
                                          (void *)(& _F),(void *)0);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"\\valid(&_F)",
                                 0,__gen_e_acsl_valid_5);
    __gen_e_acsl_assert_data_8.blocking = 1;
    __gen_e_acsl_assert_data_8.kind = "Assertion";
    __gen_e_acsl_assert_data_8.pred_txt = "\\valid(&_F)";
    __gen_e_acsl_assert_data_8.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_8.fct = "main";
    __gen_e_acsl_assert_data_8.line = 30;
    __e_acsl_assert(__gen_e_acsl_valid_5,& __gen_e_acsl_assert_data_8);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
  }
  /*@ assert \valid(&_F); */ ;
  {
    __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,"_E",0,_E);
    __gen_e_acsl_assert_data_9.blocking = 1;
    __gen_e_acsl_assert_data_9.kind = "Assertion";
    __gen_e_acsl_assert_data_9.pred_txt = "_E == 44";
    __gen_e_acsl_assert_data_9.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_9.fct = "main";
    __gen_e_acsl_assert_data_9.line = 31;
    __e_acsl_assert(_E == 44,& __gen_e_acsl_assert_data_9);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
  }
  /*@ assert _E == 44; */ ;
  {
    int __gen_e_acsl_valid_6;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
      {.values = (void *)0};
    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&_G",
                                 (void *)(& _G));
    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
                                   "sizeof(struct ST [2])",0,
                                   sizeof(struct ST [2]));
    __gen_e_acsl_valid_6 = __e_acsl_valid((void *)(& _G),
                                          sizeof(struct ST [2]),
                                          (void *)(& _G),(void *)0);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
                                 "\\valid(&_G)",0,__gen_e_acsl_valid_6);
    __gen_e_acsl_assert_data_10.blocking = 1;
    __gen_e_acsl_assert_data_10.kind = "Assertion";
    __gen_e_acsl_assert_data_10.pred_txt = "\\valid(&_G)";
    __gen_e_acsl_assert_data_10.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_10.fct = "main";
    __gen_e_acsl_assert_data_10.line = 32;
    __e_acsl_assert(__gen_e_acsl_valid_6,& __gen_e_acsl_assert_data_10);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
  }
  /*@ assert \valid(&_G); */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"_G[0].num",0,
                                 _G[0].num);
    __gen_e_acsl_assert_data_11.blocking = 1;
    __gen_e_acsl_assert_data_11.kind = "Assertion";
    __gen_e_acsl_assert_data_11.pred_txt = "_G[0].num == 99";
    __gen_e_acsl_assert_data_11.file = "compound_initializers.c";
    __gen_e_acsl_assert_data_11.fct = "main";
    __gen_e_acsl_assert_data_11.line = 33;
    __e_acsl_assert(_G[0].num == 99,& __gen_e_acsl_assert_data_11);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
  }
  /*@ assert _G[0].num == 99; */ ;
  __retres = 0;
  __e_acsl_globals_clean();
  __e_acsl_memory_clean();
  return __retres;
}


