blob: 847a95ce6450122e09381f4c97c2ff62441c52c7 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-require-effective-target lp64 } */
/* -O2 forces a sibling call. */
/* { dg-options "-O2 -mpatch-functions-for-instrumentation" } */
/* { dg-final { scan-assembler ".byte\t0xeb,0x09(.*).byte\t0x90" } } */
/* Checks correct nop-bytes are generated just before a sibling call. */
/* { dg-final { scan-assembler ".byte\t0xeb,0x09(.*).byte\t0x90(.*)jmp" } } */
/* Not instrumented as function has no loop and is small. */
__attribute__ ((noinline))
int foo(int n)
{
int x = 0;
return n + 10;
}
__attribute__ ((noinline))
int bar(int n)
{
/* Dummy loop. */
while (--n)
n = n * 2;
return foo(n);
}