/* StdCCorpse3.c */

typedef struct {int i, j, k;} tuple;

tuple gt1;
static double gd1;

static tuple gt2;
double gd2;

tuple Proc1(c1, s1, li1, f1, d1)
char c1;
short int s1;
long int li1;
float f1;
double d1;
{
char lc1;
short int ls1;
long int lli1;
float lf1;
double ld1;
tuple lt;
lc1 = c1;
ls1 = s1;
lli1 = li1;
lf1 = f1;
ld1 = d1;
lt.i = lc1;
lt.j = ls1;
lt.k = lli1;
if (c1 == s1) {
	s1 = c1*2;
	if (s1 == li1) {
		int x;
		x = li1 + c1;
		lt.i = x;
		}
	}
return lt;
}

tuple ProcR1(c1, s1, li1, f1, d1)
register char c1;
register short int s1;
register long int li1;
register float f1;
register double d1;
{
register char lc1;
register short int ls1;
register long int lli1;
register float lf1;
register double ld1;
register tuple lt;
lc1 = c1;
ls1 = s1;
lli1 = li1;
lf1 = f1;
ld1 = d1;
lt.i = lc1;
lt.j = ls1;
lt.k = lli1;
if (c1 == s1) {
	s1 = c1*2;
	if (s1 == li1) {
		register int x;
		x = li1 + c1;
		lt.i = x;
		}
	}
return lt;
}

tuple *Proc2(i2a, t2, i2b)
int i2a, i2b;
tuple t2;
{
gt1 = t2;
return &gt1;
}

tuple *ProcR2(i2a, t2, i2b)
register int i2a, i2b;
register tuple t2;
{
gt1 = t2;
return &gt1;
}

int Proc3(t3a, t3b)
tuple t3a, *t3b;
{
int i;
tuple *lt3b;
int j;
lt3b = t3b;
i = lt3b->i;
j = lt3b->j;
return t3a.i + i*j;
}

extern void StdCCorpse3Test () {
	Proc1();
	ProcR1();
	Proc2();
	ProcR2();
	Proc3();
	}