URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [980223.c] - Rev 688
Compare with Previous | Blame | View Log
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; }