brintos

brintos / llvm-project-archived public Read only

0
0
Text · 673 B · 3589eba Raw
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