1/* Test assignments and comparisons involving category protocols. */ 2/* Author: Nicola Pero <nicola@brainstorm.co.uk>. */ 3/* { dg-do compile } */ 4 5#include <objc/objc.h> 6 7@protocol MyProtocol 8- (void) method; 9@end 10 11@interface MyClass 12@end 13 14@interface MyClass (Addition) <MyProtocol> 15- (void) method; 16@end 17 18@interface MyOtherClass : MyClass 19@end 20 21int main() 22{ 23 id <MyProtocol> obj_p = nil; 24 MyClass *obj_cp = nil; 25 MyOtherClass *obj_cp2 = nil; 26 27 obj_cp = obj_p; /* { dg-warning "distinct Objective\\-C type" } */ 28 obj_cp2 = obj_p; /* { dg-warning "distinct Objective\\-C type" } */ 29 obj_p = obj_cp; /* Ok */ 30 obj_p = obj_cp2; /* Ok */ 31 32 if (obj_cp == obj_p) ; /* Ok */ 33 if (obj_cp2 == obj_p) ; /* Ok */ 34 if (obj_p == obj_cp) ; /* Ok */ 35 if (obj_p == obj_cp2) ; /* Ok */ 36 37 return 0; 38} 39