/* Generated by CIL v. 1.3.5 */
/* print_CIL_Input is false */

#define CCURED_SPLIT_ARGUMENTS
// #define CCURED_ALLOW_PARTIAL_ELEMENTS_IN_SEQUENCE
// #define CCURED_LOG_NON_POINTERS
#define CCURED_USE_STRINGS
// #define CCURED_FAIL_IS_TERSE
// #define CCURED_ALWAYS_STOP_ON_ERROR
// Include the definition of the checkers
#define CCURED
#define CCURED_POST
#include "ccuredcheck.h"
struct printf_arguments {
   int i ;
   double d ;
   char * __ROSTRING  s ;
   long long ll ;
};
typedef unsigned int size_t;
struct __ccured_va_list;
struct scanf_format {
   int *p_int ;
   double *p_double ;
   long *p_long ;
   unsigned int *p_uint ;
   unsigned long *p_ulong ;
   char *p_char ;
   short *p_short ;
   long long *p_longlong ;
   unsigned long long *p_ulonglong ;
};
struct __ccured_va_list {
   int next ;
};
/* compiler builtin: 
   unsigned long GCC_STDARG_START(void) ;  */
extern void __ccuredInit(void) ;
extern  __attribute__((__noreturn__)) void abort_deepcopy(char *errmsg ) ;
extern int puts(char const   *__s ) ;
extern void __ccured_va_start_vs(struct __ccured_va_list * , unsigned long  ) ;
extern void __ccured_va_end_vs(struct __ccured_va_list * ) ;
extern int __ccured_vsnprintf_ssvs(char *buffer , int size , char const   *format ,
                                   struct __ccured_va_list *args ) ;
struct __ccured_va_localinfo {
   int next ;
   int count ;
   int tags[32] ;
   void *nextp ;
};
void __ccured_va_init_vs(struct __ccured_va_list *vainfo ) ;
struct meta_fseqp_char {
   void *_e ;
}   ;
__inline static int ( __CCUREDFORMAT(3) __CCUREDVARARG(struct printf_arguments )  /*1*/vsnprintf_wrapper_fsvs)(char * __FSEQ  buf ,
                                                                                                               void *buf_e ,
                                                                                                               size_t n ,
                                                                                                               char const   * __NULLTERM  format ,
                                                                                                               struct __ccured_va_list *ap ) ;
__inline static int /*2*/puts_wrapper(char *s ) ;
void myprintf(int level , char const   * __NULLTERM  fmt  , ...) ;
void myprintf(int level , char const   * __NULLTERM  fmt  , ...) 
{ struct __ccured_va_list *ap ;
  char ( __FSEQ  msgbuf)[2048] ;
  unsigned long tmp ;
  struct __ccured_va_localinfo ap__vainfo6 ;
  unsigned long __cil_tmp8 ;
  char * __FSEQ  __cil_tmp9 ;
  void *__cil_tmp9_e11 ;

  {
  ap__vainfo6.nextp = (void *)0;
  ap = (struct __ccured_va_list *)0;
  ap = (struct __ccured_va_list *)(& ap__vainfo6);
  __ccured_va_init_vs((struct __ccured_va_list *)ap);
  __cil_tmp8 = GCC_STDARG_START(fmt);
  tmp = __cil_tmp8;
  __ccured_va_start_vs((struct __ccured_va_list *)ap, tmp);
  __cil_tmp9 = (char */* __FSEQ  */)((char */* __FSEQ __restrict  */)(msgbuf));
  __cil_tmp9_e11 = msgbuf + 2048;
  /*1*/vsnprintf_wrapper_fsvs(__cil_tmp9, __cil_tmp9_e11, sizeof(msgbuf), (char const   */* __NULLTERM  */)((char const   */* __restrict __NULLTERM  */)fmt),
                              (struct __ccured_va_list *)ap);
  /*2*/puts_wrapper((char *)((char const   *)(msgbuf)));
  __ccured_va_end_vs((struct __ccured_va_list *)ap);
  return;
}
}
extern int __ccured_va_count ;
extern int __ccured_va_tags[32] ;
static char __string1[19]  = 
  {      'H',      'e',      'l',      'l', 
        'o',      ',',      ' ',      '%', 
        's',      '!',      ' ',      '2', 
        '+',      '2',      '=',      '%', 
        'd',      '\n',      '\000'};
static char __string2[6]  = {      'w',      'o',      'r',      'l', 
        'd',      '\000'};
int main(void) ;
int main(void) 
{ int __retres2 ;

  {
  __ccuredAlwaysStopOnError = 0;
  __ccuredUseStrings = 1;
  __ccuredLogNonPointers = 0;
  __ccuredInit();
  __ccured_va_tags[0] = 1 | (0 << 8);
  __ccured_va_count = 2;
  myprintf(0, (char const   */* __NULLTERM  */)(& __string1[0]), (char const   *)(& __string2[0]),
           4);
  __retres2 = 0;
  return (__retres2);
}
}
struct meta_fseqp_void {
   void *_e ;
}   ;
extern void /*3*/__write_at_least_f(void * __FSEQ  ptr_p , void *ptr_ms_e , unsigned int n ) ;
extern char */*4*/__stringof(char const   * __NULLTERM  ptr ) ;
__inline static int ( __CCUREDFORMAT(3) __CCUREDVARARG(struct printf_arguments )  /*1*/vsnprintf_wrapper_fsvs)(char * __FSEQ  buf ,
                                                                                                               void *buf_e ,
                                                                                                               size_t n ,
                                                                                                               char const   * __NULLTERM  format ,
                                                                                                               struct __ccured_va_list *ap ) ;
__inline static int ( __CCUREDFORMAT(3) __CCUREDVARARG(struct printf_arguments )  /*1*/vsnprintf_wrapper_fsvs)(char * __FSEQ  buf ,
                                                                                                               void *buf_e ,
                                                                                                               size_t n ,
                                                                                                               char const   * __NULLTERM  format ,
                                                                                                               struct __ccured_va_list *ap ) 
{ char *tmp ;
  void *tmp___0 ;
  int tmp___1 ;
  void * __FSEQ  __cil_tmp8 ;
  char *__cil_tmp9 ;
  void *__cil_tmp10 ;
  int __cil_tmp11 ;
  void *__cil_tmp8_e15 ;

  {
  tmp___0 = (void *)0;
  tmp = (char *)0;
  __cil_tmp8 = (void */* __FSEQ  */)buf;
  __cil_tmp8_e15 = buf_e;
  /*3*/__write_at_least_f(__cil_tmp8, __cil_tmp8_e15, n);
  __cil_tmp9 = /*4*/__stringof((char const   */* __NULLTERM  */)format);
  tmp = (char *)__cil_tmp9;
  if ((void */* __FSEQ  */)buf) {
    CHECK_FSEQ2SAFE(buf_e, (void *)((void */* __FSEQ  */)buf), sizeof(void ), sizeof(void ),
                    1, 0);
  }
  __cil_tmp10 = (void */* __FSEQ  */)buf;
  tmp___0 = (void *)__cil_tmp10;
  __cil_tmp11 = __ccured_vsnprintf_ssvs((char *)((char *)tmp___0), (int )n, (char const   *)((char const   *)tmp),
                                        (struct __ccured_va_list *)ap);
  tmp___1 = __cil_tmp11;
  return (tmp___1);
}
}
__inline static int /*2*/puts_wrapper(char *s ) ;
__inline static int /*2*/puts_wrapper(char *s ) 
{ void *tmp ;
  int tmp___0 ;
  void *__cil_tmp4 ;
  int __cil_tmp5 ;

  {
  tmp = (void *)0;

  if ((void *)((void *)s)) {
    CHECK_NULL((void *)((void *)((void *)s)));
  }
  __cil_tmp4 = (void *)((void *)s);
  tmp = (void *)__cil_tmp4;
  __cil_tmp5 = puts((char const   *)((char const   *)tmp));
  tmp___0 = __cil_tmp5;
  return (tmp___0);
}
}
