diff options
Diffstat (limited to 'test/SemaObjC/comptypes-2.m')
-rw-r--r-- | test/SemaObjC/comptypes-2.m | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/SemaObjC/comptypes-2.m b/test/SemaObjC/comptypes-2.m new file mode 100644 index 0000000..c24b67b --- /dev/null +++ b/test/SemaObjC/comptypes-2.m @@ -0,0 +1,37 @@ +// RUN: clang-cc -fsyntax-only -verify %s + +#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; +} |