/* { dg-do run } */ /* { dg-options "-O2" } */ typedef void (*fun) (void); void __attribute__ ((noipa)) f (fun x1) { register fun x2 asm ("x16"); int arr[5000]; int *volatile ptr = arr; asm ("mov %0, %1" : "=r" (x2) : "r" (x1)); x2 (); } void g (void) {} int main (void) { f (g); }