New tests
[official-gcc.git] / gcc / testsuite / objc / execute / object_is_class.m
bloba053434fb148b858ec0fdda6c94a0a20218eae9c
1 /* Contributed by Nicola Pero - Tue Jul  3 10:55:21 BST 2001 */
2 #include <objc/objc.h>
3 #include <objc/objc-api.h>
4 #include <objc/Object.h>
6 /* This test demonstrate a failure in object_is_class which was fixed */
8 /* Create a class whose instance variables mirror the struct used for
9    Class structures in the runtime ... yes we're feeling evil today */
10 @interface EvilClass : Object
12   Class super_class;
13   const char* name;
14   long version;
15   unsigned long info;    
17 @end
19 @implementation EvilClass
20 - (id) init
22   self = [super init];
23   /* The following one is used in the runtime to mark classes */
24   info = 0x1L;
25   return self;
27 @end
29 int main (void)
31   /* Create an object of our EvilClass */
32   EvilClass *evilObject = [EvilClass new];
33   
34   /* Now check that the object is not a class object */
35   if (object_is_class (evilObject))
36     {
37       printf ("object_is_class failed\n");
38       abort ();
39     }
41   return 0;