/* { dg-do compile } */ /* { dg-options "-O2 -march=r2 -mcdx" } */ /* Check generation of R2 CDX callr.n, jmpr.n, ret.n instructions. */ typedef int (*F) (void); int x (F f) { f (); /* Note that the compiler might generate a return via pop.n or ldwm; the test below is to make sure that it doesn't generate a 32-bit return instruction. */ return 3; } int y (F f) { return f (); } /* { dg-final { scan-assembler "\tcallr\\.n\t.*" } } */ /* { dg-final { scan-assembler-not "\tret$" } } */ /* { dg-final { scan-assembler "\tjmpr\\.n\t.*" } } */