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