/* StdCCorpse4.c */
typedef struct label←t {
int val[14];
} label←t;
int Proc1(n)
int n;
{
label←t l;
register sum = 0;
int i;
l.val[0] = l.val[1] = 1;
for (i=2; i<14; i++) l.val[i] = l.val[i-1] + l.val[i-2];
for (i=0; i<n; i++) sum += l.val[i];
{
int ans = sum + sum/2;
sum += ans;
}
sum += 1;
return sum;
}
Proc2()
{
1;
}
int Proc3(i, c)
int i;
char c;
{
{
unsigned u;
u = i;
c += u;
}
{
int d;
d = c;
i += d;
}
return i;
}
int Proc4(i, c)
int i;
char c;
{
{
i += c;
}
{
c += i;
}
return i+c;
}
/* Test case 1 from John C. Wenn:ESCP10's message of 15 Jul 92 to Laurie Horton */
int an←int = 42;
float a←float = 3.14159;
char a←str[] = "a string!";
struct foo2←1 {
int* i;
float* f;
char* c;
};
struct foo2←1 a←foo2←1 = {&an←int, &a←float, a←str};
struct foo2←1 *p←foo2←1 = &a←foo2←1;
int depth←1←1 (f2)
struct foo2←1* f2;
{
*f2->i = *f2->i + 6;
return *f2->i;
}
struct foo←bar {int a, b;};
int update←1(x, index, y)
int x;
register int index;
int y;
{
int ix;
static int iy = 1;
int results = 4;
float other;
char none[20];
struct foo2←1 bletch;
typedef struct barf {int c, d;} barf;
barf b;
other = 4.5; ix = 12; iy = 31; other = 3.141592653;
none[0] = 'A'; none[1] = 'B'; none[2] = 'C'; none[3] = 'D'; none[4] = '\0';
bletch.i = &results;
bletch.f = &other;
bletch.c = none;
iy = depth←1←1(&bletch);
for (ix=0; ix<10; ++ix)
results += (ix + index);
return(results);
}
/* Test Case 2 */
struct foo2 {
int* i;
float* f;
char* c;
};
struct foo1 {
struct foo2* f2;
int i2;
};
struct foo2 a←foo2 = {&an←int, &a←float, a←str};
struct foo2 *p←foo2 = &a←foo2;
struct foo1 a←foo1 = {&a←foo2, 47};
struct foo1 *p←foo1 = &a←foo1;
int depth←3 (f2, f1, ch, i, pch, pi)
struct foo2 f2;
struct foo1* f1;
char ch;
int i;
char* pch;
int* pi;
{
*f1->f2->i = *f1->f2->i + 23;
*f2.i = *f2.i + 8;
*f2.f = *f2.f + 3.2;
return *f2.i;
}
int depth←2 (f2, f1, ch, i, pch, pi)
struct foo2 f2;
struct foo1* f1;
char ch;
int i;
char* pch;
int* pi;
{
*f2.i = *f2.i + 7;
depth←3(f2, f1, ch, i, pch, pi);
return *f2.i;
}
int depth←1 (f2, f1, ch, i, pch, pi)
struct foo2 f2;
struct foo1* f1;
char ch;
int i;
char* pch;
int* pi;
{
*f2.i = *f2.i + 6;
depth←2(f2, f1, ch, i, pch, pi);
return *f2.i;
}
int tinycall(ix)
int ix;
{
ix = ix + 23;
return ix - 5;
}
int update(index)
int index;
{
int ix, iy,
results = 4;
float other;
char none[20];
struct foo2 bletch;
struct foo1 blortch;
other = 4.5; ix = 12; iy = 31; other = 3.141592653;
none[0] = 'A'; none[1] = 'B'; none[2] = 'C'; none[3] = 'D'; none[4] = '\0';
bletch.i = &results;
bletch.f = &other;
bletch.c = none;
blortch.f2 = &bletch;
blortch.i2 = iy;
tinycall(4);
iy = depth←1(bletch, &blortch, none[0], ix, none, &results);
for (ix=0; ix<10; ++ix)
results += (ix + index);
return(results);
} /* update */