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