1/* Test simple ObjC types casts.  */
2/* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
3/* { dg-do compile } */
4
5#include <objc/objc.h>
6
7@protocol MyProtocol
8- (void) foo;
9@end
10
11@interface MyClass
12@end
13
14int main()
15{
16  id obj = nil;
17  id<MyProtocol> obj_p = nil;
18  MyClass *obj_c = nil;
19  Class obj_C = Nil;
20
21  /* All these casts should generate no warnings.  */
22
23  obj = (id)obj_p;
24  obj = (id)obj_c;
25  obj = (id)obj_C;
26  obj_c = (MyClass *)obj;
27  obj_c = (MyClass *)obj_p;
28  obj_c = (MyClass *)obj_C;
29  obj_p = (id<MyProtocol>)obj;
30  obj_p = (id<MyProtocol>)obj_c;
31  obj_p = (id<MyProtocol>)obj_C;
32  obj_C = (Class)obj;
33  obj_C = (Class)obj_p;
34  obj_C = (Class)obj_c;
35
36
37  return 0;
38}
39