Merge from mainline (163495:164578).
[official-gcc/graphite-test-results.git] / gcc / testsuite / g++.dg / ext / attr-ifunc-2.C
blobe205a2a6a8d5d531a15b65bc536d900e0ef4c202
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 struct Klassier : Klass
33 int main ()
35   Klassier obj;
36   
37   return obj.magic () != 0;