| // RUN: %clang_cc1 -fsyntax-only -verify %s |
| // expected-no-diagnostics |
| |
| #define nil (void *)0; |
| #define Nil (void *)0; |
| |
| @protocol MyProtocol |
| - (void) foo; |
| @end |
| |
| @interface MyClass |
| @end |
| |
| int main() |
| { |
| id obj = nil; |
| id<MyProtocol> obj_p = nil; |
| MyClass *obj_c = nil; |
| Class obj_C = Nil; |
| |
| /* All these casts should generate no warnings. */ |
| |
| obj = (id)obj_p; |
| obj = (id)obj_c; |
| obj = (id)obj_C; |
| obj_c = (MyClass *)obj; |
| obj_c = (MyClass *)obj_p; |
| obj_c = (MyClass *)obj_C; |
| obj_p = (id<MyProtocol>)obj; |
| obj_p = (id<MyProtocol>)obj_c; |
| obj_p = (id<MyProtocol>)obj_C; |
| obj_C = (Class)obj; |
| obj_C = (Class)obj_p; |
| obj_C = (Class)obj_c; |
| |
| |
| return 0; |
| } |