/* 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 ;
};
extern void __ccuredInit(void) ;
extern  __attribute__((__noreturn__)) void abort_deepcopy(char *errmsg ) ;
void *apply(void *(*f)(void * ) , void *arg ) ;
void *apply(void *(*f)(void * ) , void *arg ) 
{ void *tmp ;
  void *__cil_tmp4 ;

  {
  tmp = (void *)0;
  CHECK_NULL((void *)f);
  __cil_tmp4 = (*f)((void *)arg);
  tmp = (void *)__cil_tmp4;
  return ((void *)tmp);
}
}
int *deref(int **addr ) ;
int *deref(int **addr ) 
{ int *__retres2 ;

  {
  __retres2 = (int *)0;
  CHECK_NULL((void *)addr);
  __retres2 = (int *)*addr;
  return (__retres2);
}
}
int main(void) ;
int main(void) 
{ int *x ;
  int *res ;
  int *tmp ;
  int __retres4 ;
  void *__cil_tmp5 ;

  {
  tmp = (int *)0;
  res = (int *)0;
  x = (int *)0;
  __ccuredAlwaysStopOnError = 0;
  __ccuredUseStrings = 1;
  __ccuredLogNonPointers = 0;
  __ccuredInit();
  x = (int *)0;
  __cil_tmp5 = apply((void *(*)(void * ))((void *(*)(void * ))(& deref)), (void *)((void *)(& x)));
  tmp = (int *)__cil_tmp5;
  res = (int *)tmp;
  __retres4 = 0;
  return (__retres4);
}
}
