(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
attr-ifunc-3.c
       1  /* { dg-do run }  */
       2  /* { dg-require-ifunc "" } */
       3  /* { dg-options "" } */
       4  
       5  #include <stdio.h>
       6  
       7  static int __attribute__((noinline))
       8       implementation (void *ptr)
       9  {
      10    if (ptr)
      11      return ((int (*) (void *))ptr) (0);
      12    
      13    printf ("'ere I am JH\n");
      14    return 0;
      15  }
      16  
      17  static __typeof__ (implementation) *resolver (void)
      18  {
      19    return (void *)implementation;
      20  }
      21  
      22  extern int magic (void *) __attribute__ ((ifunc ("resolver")));
      23  
      24  int main ()
      25  {
      26    return magic ((void *)magic);
      27  }