struct  printf_arguments {
   int i ;
   double d ;
   char  *3s  &4;
   long long ll ;
};
union  int_or_ptr {
   int i ;
   int  * p ;
} __TAGGED  ;
struct  tagged_int_or_ptr {
   struct RTTI_ELEMENT  * __tag ;
   union int_or_ptr  __data ;
} __TAGGED  ;
 extern void __ccuredInit(void) ;
 extern void abort_deepcopy(char  * errmsg  ) ;
 static struct RTTI_ELEMENT  * /*1*/__CCURED_RTTITAGFOR(void  *27value  )  &28;
int main(void) ;
 int main(void) 
{ struct tagged_int_or_ptr  x ;
  int i ;

  {
  __ccuredAlwaysStopOnError = 0;
  __ccuredUseStrings = 1;
  __ccuredLogNonPointers = 0;
  __ccuredInit ();
  x.__tag = (struct RTTI_ELEMENT  * )__CCURED_RTTISTATICTAGFOR(sizeof(x.__data.i));
  x.__data.i = 5;
  __CCURED_RTTIUNIONCHECK(sizeof(x.__data.i));
  i = x.__data.i;
  __CCURED_RTTIUNIONCHECK(sizeof(x.__data.p));
  i = (*(x.__data.p));
  x.__tag = (struct RTTI_ELEMENT  * )/*1*/__CCURED_RTTITAGFOR (& i);
  x.__data.p = & i;
  __CCURED_RTTIUNIONCHECK(sizeof(x.__data.i));
  i = x.__data.i;
  __CCURED_RTTIUNIONCHECK(sizeof(x.__data.p));
  i = (*(x.__data.p));
  return (0);
}
}