diff options
-rw-r--r-- | test/Sema/objc-comptypes-2.m | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/Sema/objc-comptypes-2.m b/test/Sema/objc-comptypes-2.m new file mode 100644 index 0000000000..3a60bed5f3 --- /dev/null +++ b/test/Sema/objc-comptypes-2.m @@ -0,0 +1,36 @@ +// RUN: clang -fsyntax-only -verify %s + +#include <objc/objc.h> + +@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; +} |