39 lines
669 B
Objective-C
39 lines
669 B
Objective-C
// 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;
|
|
}
|