39 lines · plain
1// RUN: %clang_cc1 -fsyntax-only -verify %s2// expected-no-diagnostics3 4#define nil (void *)0;5#define Nil (void *)0;6 7@protocol MyProtocol8- (void) foo;9@end10 11@interface MyClass12@end13 14int main(void)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