URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [objc.dg/] [protocol-inheritance-2.m] - Rev 704
Compare with Previous | Blame | View Log
/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, November 2010. */ /* { dg-do compile } */ #include <objc/objc.h> /* Test standard warnings when a class conforms to a protocol but some methods are implemented in the superclass. Use -Wno-protocol to turn these off. */ @protocol MyProtocol - (int)method; @end @protocol MyProtocol2 - (int)method2; @end /* The superclass implements the method required by the protocol. */ @interface MyRootClass { Class isa; } - (int)method; @end @implementation MyRootClass - (int)method { return 23; } @end /* The subclass inherits the method (does not implement it directly) and unless -Wno-protocol is used, we emit a warning. */ @interface MySubClass : MyRootClass <MyProtocol> @end @implementation MySubClass @end /* { dg-warning "incomplete implementation of class .MySubClass." "" { target *-*-* } 39 } */ /* { dg-warning "method definition for .\\-method. not found" "" { target *-*-* } 39 } */ /* { dg-warning "class .MySubClass. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } 39 } */ /* The subclass instead does not inherit the method method2 (and does not implement it directly) so it does not conform to the protocol MyProtocol2. */ @interface MySubClass2 : MyRootClass <MyProtocol2> @end @implementation MySubClass2 @end /* Warnings here, below. */ /* { dg-warning "incomplete implementation of class .MySubClass2." "" { target *-*-* } 53 } */ /* { dg-warning "method definition for .\\-method2. not found" "" { target *-*-* } 53 } */ /* { dg-warning "class .MySubClass2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } 53 } */