mirror of
https://github.com/nArnoSNES/tcc-65816.git
synced 2024-06-12 13:29:29 +00:00
32 lines
579 B
C
32 lines
579 B
C
typedef struct { char *addr; long type; } object;
|
|
|
|
object bar (object blah)
|
|
{
|
|
abort();
|
|
}
|
|
|
|
object foo (object x, object y)
|
|
{
|
|
object z = *(object*)(x.addr);
|
|
if (z.type & 64)
|
|
{
|
|
y = *(object*)(z.addr+sizeof(object));
|
|
z = *(object*)(z.addr);
|
|
if (z.type & 64)
|
|
y = bar(y);
|
|
}
|
|
return y;
|
|
}
|
|
|
|
int nil;
|
|
object cons1[2] = { {(char *) &nil, 0}, {(char *) &nil, 0} };
|
|
object cons2[2] = { {(char *) &cons1, 64}, {(char *) &nil, 0} };
|
|
|
|
main()
|
|
{
|
|
object x = {(char *) &cons2, 64};
|
|
object y = {(char *) &nil, 0};
|
|
object three = foo(x,y);
|
|
return 0;
|
|
}
|