URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [920302-1.c] - Rev 301
Go to most recent revision | Compare with Previous | Blame | View Log
short optab[5]; char buf[10]; execute (ip) register short *ip; { #ifndef NO_LABEL_VALUES register void *base = &&x; char *bp = buf; static void *tab[] = {&&x, &&y, &&z}; if (ip == 0) { int i; for (i = 0; i < 3; ++i) optab[i] = (short)(tab[i] - base); return; } x: *bp++='x'; goto *(base + *ip++); y: *bp++='y'; goto *(base + *ip++); z: *bp++='z'; *bp=0; return; #else strcpy (buf, "xyxyz"); #endif } short p[5]; main () { execute ((short *) 0); p[0] = optab[1]; p[1] = optab[0]; p[2] = optab[1]; p[3] = optab[2]; execute (&p); if (strcmp (buf, "xyxyz")) abort (); exit (0); }
Go to most recent revision | Compare with Previous | Blame | View Log