blob: 847a95ce6450122e09381f4c97c2ff62441c52c7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/* { 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);
}
|