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.target/] [i386/] [pr20204.c] - Rev 318
Compare with Previous | Blame | View Log
/* { dg-do run } */ /* { dg-options "-O2" } */ void *x (void *pdst, const void *psrc, unsigned int pn) { register void *return_dst = pdst; register unsigned char *dst = pdst; register unsigned const char *src = psrc; register int n __asm__ ("ebx") = pn; if (src < dst && dst < src + n) { src += n; dst += n; while (n--) *--dst = *--src; return return_dst; } while (n >= 16) n--; return return_dst; } extern void abort (); extern void exit (int); char xx[30] = "abc"; int main (void) { char yy[30] = "aab"; if (x (xx + 1, xx, 2) != xx + 1 || memcmp (xx, yy, sizeof (yy)) != 0) abort (); exit (0); }