1/* { dg-do run }  */
2/* { dg-require-ifunc "" } */
3/* { dg-options "-Wno-pmf-conversions" } */
4
5#include <stdio.h>
6
7struct Klass
8{
9  int implementation ();
10  int magic ();
11  static void *resolver ();
12};
13
14int Klass::implementation (void)
15{
16  printf ("'ere I am JH\n");
17  return 0;
18}
19
20void *Klass::resolver (void)
21{
22  int (Klass::*pmf) () = &Klass::implementation;
23
24  return (void *)(int (*)(Klass *))(((Klass *)0)->*pmf);
25}
26
27int Klass::magic (void) __attribute__ ((ifunc ("_ZN5Klass8resolverEv")));
28
29int main ()
30{
31  Klass obj;
32
33  return obj.magic () != 0;
34}
35