1 /* { dg-require-ifunc "" } */
3 static void *resolver ()
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")));
13 extern int spell (void) /* { dg-message "previous definition" } */
17 extern int spell (void) /* { dg-error "redefinition" "" } */
18 __attribute__ ((ifunc ("resolver")));
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")));
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
));