blob: cad6f2da69af8c2e6cf9e2753e481bbbe1c46ebf [file] [log] [blame]
/* { dg-do compile } */
/* { dg-require-effective-target lp64 } */
/* { dg-options "-mpatch-functions-for-instrumentation -mno-patch-functions-main-always" } */
/* Even complicated functions shouldn't get patched if they have the
never_patch_for_instrumentation attribute. */
/* { dg-final { scan-assembler-not ".byte\t0xeb,0x09(.*).byte\t0x90" } } */
/* { dg-final { scan-assembler-not "ret(.*).byte\t0x90(.*).byte\t0x90" } } */
__attribute__ ((never_patch_for_instrumentation))
int foo () {
volatile unsigned x = 0;
volatile unsigned y = 1;
x += y;
x *= y;
while (++x)
foo ();
return y;
}
int main ()
{
int x = 0;
return 0;
}