int GI1 <TC> .HF1 <TF> (GI2 <TF> i2, long counter, long initial_stack, long current_stack) { if (counter > 0) { return(i2.HF2 <TC> (this, counter - 1, initial_stack, (long)&counter)); } return(check((long)&counter, current_stack)); }
int GI1 <TC> .GF1 <TF> (GI2 <TC> i2, int counter, long initial_stack, long current_stack) { int local; if (counter > 0) { return(i2.GF2 <TF> (this, counter - 1, initial_stack, (long)&local)); } return(check((long)&local, current_stack)); }