OSDN Git Service

2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / objc.dg / comp-types-6.m
1 /* Test assignments and comparisons involving category protocols.  */
2 /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
3 /* { dg-do compile } */
4 #include <objc/objc.h>
5
6 @protocol MyProtocol
7 - (void) method;
8 @end
9
10 @interface MyClass
11 @end
12
13 @interface MyClass (Addition) <MyProtocol>
14 - (void) method;
15 @end
16
17 @interface MyOtherClass : MyClass
18 @end
19
20 int main()
21 {
22   id <MyProtocol> obj_p = nil;
23   MyClass *obj_cp = nil;
24   MyOtherClass *obj_cp2 = nil;
25
26   obj_cp = obj_p;  /* { dg-warning "incompatible pointer type" } */
27   obj_cp2 = obj_p; /* { dg-warning "incompatible pointer type" } */
28   obj_p = obj_cp;  /* Ok */
29   obj_p = obj_cp2; /* Ok */
30
31   if (obj_cp == obj_p) ; /* Ok */
32   if (obj_cp2 == obj_p) ; /* Ok */
33   if (obj_p == obj_cp) ; /* Ok */
34   if (obj_p == obj_cp2) ; /* Ok */
35
36   return 0;
37 }