73 lines
1.0 KiB
C
73 lines
1.0 KiB
C
// breaks because of the fat local array in foo
|
|
|
|
#ifdef __65816__
|
|
#else
|
|
#define long short
|
|
#define int short
|
|
#endif
|
|
|
|
long baz1 (void *a)
|
|
{
|
|
static long l;
|
|
return l++;
|
|
}
|
|
|
|
int baz2 (const char *a)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int baz3 (int i)
|
|
{
|
|
if (!i)
|
|
abort ();
|
|
return 1;
|
|
}
|
|
|
|
void **bar;
|
|
|
|
int foo (void *a, long b, int c)
|
|
{
|
|
int d = 0, e, f = 0, i;
|
|
char g[256];
|
|
void **h;
|
|
|
|
g[0] = '\n';
|
|
g[1] = 0;
|
|
|
|
while (baz1 (a) < b) {
|
|
if (g[0] != ' ' && g[0] != '\t') {
|
|
f = 1;
|
|
e = 0;
|
|
if (!d && baz2 (g) == 0) {
|
|
if ((c & 0x10) == 0)
|
|
continue;
|
|
e = d = 1;
|
|
}
|
|
if (!((c & 0x10) && (c & 0x4000) && e) && (c & 2))
|
|
continue;
|
|
if ((c & 0x2000) && baz2 (g) == 0)
|
|
continue;
|
|
if ((c & 0x1408) && baz2 (g) == 0)
|
|
continue;
|
|
if ((c & 0x200) && baz2 (g) == 0)
|
|
continue;
|
|
if (c & 0x80) {
|
|
for (h = bar, i = 0; h; h = (void **)*h, i++)
|
|
if (baz3 (i))
|
|
break;
|
|
}
|
|
f = 0;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int main ()
|
|
{
|
|
void *n = 0;
|
|
bar = &n;
|
|
foo (&n, 1, 0xc811);
|
|
exit (0);
|
|
}
|