Merge from mainline (163495:164578).
[official-gcc/graphite-test-results.git] / gcc / testsuite / g++.dg / ext / attr-ifunc-3.C
blobba65976b96495ada26562c7fb2ecceef713fca10
1 /* { dg-do run }  */
2 /* { dg-require-ifunc "" } */
3 /* { dg-options "-Wno-pmf-conversions" } */
5 #include <stdio.h>
7 struct Klass
9   int implementation ();
10   int magic ();
11   static void *resolver ();
14 int Klass::implementation (void)
16   printf ("'ere I am JH\n");
17   return 0;
20 void *Klass::resolver (void)
22   int (Klass::*pmf) () = &Klass::implementation;
23   
24   return (void *)(int (*)(Klass *))(((Klass *)0)->*pmf);
27 int Klass::magic (void) __attribute__ ((ifunc ("_ZN5Klass8resolverEv")));
29 int Foo (Klass &obj, int (Klass::*pmf) ())
31   return (obj.*pmf) ();
34 int main ()
36   Klass obj;
37   
38   return Foo (obj, &Klass::magic) != 0;