structprintf_arguments { int i ; double d ; char
*3s
&4; long long ll ; }; struct
parent { void
*6
*7vtbl
&8; int
*9f1
&10; };
typedef struct parent Parent; struct
child { void
*11
*12vtbl
&13; int
*14f2
&15; int f3 ; };
typedef struct child Child;
typedef int
*17( __NOUNROLL FOO_METHOD)(void
*18 , Parent
*19 );
typedef int
*20( __NOUNROLL BAR_METHOD)(void
*21 );
extern void __ccuredInit(void) ;
extern void abort_deepcopy(char * errmsg ) ;
/* #pragma ccured_extends("Schild","Sparent") */ int
*25foo_P(void
*26self_rtti
&29, Parent
*27x
&30)
&28;
int
*25foo_P(void
*26self_rtti
&29, Parent
*27x
&30) { Parent
*31self
&32; { self
= (
Parent
*33)self_rtti;
return (self->f1); } } int
*35bar_P(void
*36self_rtti
&38)
&37;
int
*35bar_P(void
*36self_rtti
&38) { Parent
*39self
&40; { self
= (
Parent
*41)self_rtti;
return (self->f1); } } int
*43foo_C(void
*44self_rtti
&47, Parent
*45x
&48)
&46;
int
*43foo_C(void
*44self_rtti
&47, Parent
*45x
&48) { Child
*49self
&50; { self
= (
Child
*51)self_rtti;
return (self->f2
+ self->f3); } }
void
*54vtbl_P[2
]55
&56 = { (
void
*59)((
FOO_METHOD
*60)(& foo_P )), (
void
*61)((
BAR_METHOD
*62)(& bar_P ))};
void
*63vtbl_C[2
]64
&65 = { (
void
*68)((
FOO_METHOD
*69)(& foo_C )), (
void
*70)((
BAR_METHOD
*71)(& bar_P ))};
int array[8
]72
&73; void ctor_P(Parent
*74p
&76)
&75;
void ctor_P(Parent
*74p
&76) { { p->vtbl
= (void
*78
*79)(vtbl_P ); p->f1 = array ; return; } } void ctor_C(Child
*81c
&83)
&82;
void ctor_C(Child
*81c
&83) { { c->vtbl
= (void
*85
*86)(vtbl_C ); c->f2 = array ; c->f3 = 5; return; } }
extern void
*89( /* missing proto */ pfoo1)()
&90; int main(void) ;
int main(void) { Parent p
&92; Child c
&93; Parent
*94pp
&95; Parent
*96pc
&97; Child
*98pc1
&99; FOO_METHOD
*100pfoo
&101; { __ccuredAlwaysStopOnError = 0; __ccuredUseStrings = 1; __ccuredLogNonPointers = 0; __ccuredInit (); pp
= & p; pc
= (
Parent
*102)(& c); ctor_P (
& p); ctor_C (
& c); pc1
= (
Child
*103)((
Child
*104)pc); pfoo = (
FOO_METHOD
*105)(*(pp->vtbl)); ((*pfoo))(
(
void
*107)pp,
pc); pfoo
= (
FOO_METHOD
*108)(*(pc->vtbl)); pfoo1 ((
void
*110)pc, pp); return (0); } }