/* Verify -mpatch-functions-for-instrumentation works. */ | |
/* { dg-do run } */ | |
/* { dg-require-effective-target lp64 } */ | |
/* -O2 forces a sibling call for foo from bar. */ | |
/* { dg-options "-O2 -mpatch-functions-for-instrumentation --param function-patch-min-instructions=0" } */ | |
__attribute__ ((noinline)) | |
int foo() | |
{ | |
/* Dummy loop. */ | |
int x = 10; | |
int y = 100; | |
while (--x) | |
++y; | |
return y; | |
} | |
__attribute__ ((noinline)) | |
int bar() | |
{ | |
return foo(); | |
} | |
int main() | |
{ | |
bar(); | |
return 0; | |
} |