diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2007-12-20 22:53:29 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2007-12-20 22:53:29 +0000 |
commit | cfc8738b8a7aee250ed42794b65aefdf65a1e9b4 (patch) | |
tree | 86e0911a8cc004489014b2e2f853eaf7ec329a14 | |
parent | 0f01debd47b43c287f8f1135cd3f9679a5a3ab2e (diff) |
Another test for objective-c type comparison.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45271 91177308-0d34-0410-b5e6-96231b3b80d8
-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; +} |