PR target/83368
[official-gcc.git] / gcc / testsuite / objc.dg / comp-types-2.m
blob6e88df999b7ac6819be0f478cb569b266aa5977e
1 /* Test simple ObjC types casts.  */
2 /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
3 /* { dg-do compile } */
4 #include <objc/objc.h>
6 @protocol MyProtocol
7 - (void) foo;
8 @end
10 @interface MyClass
11 @end
13 int main()
15   id obj = nil;
16   id<MyProtocol> obj_p = nil;
17   MyClass *obj_c = nil;
18   Class obj_C = Nil;
20   /* All these casts should generate no warnings.  */
22   obj = (id)obj_p;
23   obj = (id)obj_c;
24   obj = (id)obj_C;
25   obj_c = (MyClass *)obj;
26   obj_c = (MyClass *)obj_p;
27   obj_c = (MyClass *)obj_C;
28   obj_p = (id<MyProtocol>)obj;
29   obj_p = (id<MyProtocol>)obj_c;
30   obj_p = (id<MyProtocol>)obj_C;
31   obj_C = (Class)obj;
32   obj_C = (Class)obj_p;
33   obj_C = (Class)obj_c;
34   
36   return 0;