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