2015-09-24 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / objc / execute / IMP.m
bloba2372cba7657654937c5b628a129d9447bbea171
1 /* Contributed by Nicola Pero - Fri Mar  9 19:39:15 CET 2001 */
3 #include <stdlib.h>
4 #include "../../objc-obj-c++-shared/runtime.h"
6 /* Test getting and calling the IMP of a method */
8 @interface TestClass
10   Class isa;
12 + (int) next: (int)a;
13 @end
15 @implementation TestClass
16 + (int) next: (int)a
18   return a + 1;
20 @end
22 int main (void)
24   Class class;
25   SEL selector;
26   int (* imp) (id, SEL, int);
27   
28   class = objc_getClass ("TestClass");
29   selector = @selector (next:);
30   imp = (int (*)(id, SEL, int))method_getImplementation
31     (class_getClassMethod (class, selector));
32   
33   if (imp (class, selector, 5) != 6)
34     {
35       abort ();
36     }
38   return 0;