URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [pr46685.c] - Rev 689
Compare with Previous | Blame | View Log
/* { dg-do compile } */ /* { dg-require-effective-target freorder } */ /* { dg-require-effective-target fpic } */ /* { dg-options "-O2 -freorder-blocks-and-partition -fpic" } */ __attribute__((noinline, noclone)) void bar (void *x) { asm volatile ("" : : "r" (x) : "memory"); } __attribute__((noinline, noclone)) void baz (void) { asm volatile ("" : : : "memory"); } __attribute__((noinline, noclone)) int foo (int x) { __label__ lab; if (__builtin_expect (x, 0)) { lab: baz (); return 2; } bar (&&lab); return 1; } int main (void) { int x, i; asm volatile ("" : "=r" (x) : "0" (0)); for (i = 0; i < 1000000; i++) foo (x); return 0; }