1 /* { dg-do run } */ 2 /* { dg-options "-O2" } */ 3 4 extern void abort (void); 5 6 static int __attribute__((regparm(1))) bar(void * arg)7bar(void *arg) 8 { 9 return arg != bar; 10 } 11 12 static int __attribute__((noinline,noclone,regparm(1))) foo(int (** bar)(void *))13foo(int (__attribute__((regparm(1))) **bar)(void*)) 14 { 15 return (*bar)(*bar); 16 } 17 main()18int main() 19 { 20 int (__attribute__((regparm(1))) *p)(void*) = bar; 21 if (foo(&p)) 22 abort(); 23 return 0; 24 } 25