1/* { dg-require-ifunc "" } */ 2 3static void *resolver () 4{ 5 return 0; 6} 7 8extern int magic (void) /* { dg-message "previous definition" } */ 9 __attribute__ ((ifunc ("resolver"))); 10extern int magic (void) /* { dg-error "redefinition" "" } */ 11 __attribute__ ((alias ("resolver"))); 12 13extern int spell (void) /* { dg-message "previous definition" } */ 14{ 15 return 0; 16} 17extern int spell (void) /* { dg-error "redefinition" "" } */ 18 __attribute__ ((ifunc ("resolver"))); 19 20extern int mantra (void) /* { dg-message "previous definition" } */ 21 __attribute__ ((alias ("resolver"))); 22extern int mantra (void) /* { dg-error "redefinition" "" } */ 23 __attribute__ ((ifunc ("resolver"))); 24 25extern int saying (void) /* { dg-error "weak .* cannot be defined" "" } */ 26 __attribute__ ((weak,ifunc ("resolver"))); 27extern int maxim (void) /* { dg-error "indirect function .* cannot be declared weak" "" } */ 28 __attribute__ ((ifunc ("resolver"),weak)); 29