/* { dg-do run } */ | |
/* { dg-options "-O2" } */ | |
extern void abort (void); | |
static int __attribute__((regparm(1))) | |
bar(void *arg) | |
{ | |
return arg != bar; | |
} | |
static int __attribute__((noinline,noclone,regparm(1))) | |
foo(int (__attribute__((regparm(1))) **bar)(void*)) | |
{ | |
return (*bar)(*bar); | |
} | |
int main() | |
{ | |
int (__attribute__((regparm(1))) *p)(void*) = bar; | |
if (foo(&p)) | |
abort(); | |
return 0; | |
} |