===================================================================
@@ -1,3 +1,18 @@
+2011-06-07 Nicola Pero <nicola.pero@meta-innovation.com>
+ Iain Sandoe <iains@gcc.gnu.org>
+
+ * objc-obj-c++-shared/runtime.h (protocol_getMethodDescription):
+ Added code to deal with the case when [Protocol
+ -descriptionForInstanceMethod:] or [Protocol
+ -descriptionForClassMethod:] returns NULL.
+
+2011-06-07 Nicola Pero <nicola.pero@meta-innovation.com>
+ Iain Sandoe <iains@gcc.gnu.org>
+
+ * objc-obj-c++-shared/TestsuiteObject.h ([-free]): Return 'id'.
+ * objc-obj-c++-shared/TestsuiteObject.m ([-free]): Return 'id'.
+ Added cast.
+
2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
gcc/testsuite:
===================================================================
@@ -35,7 +35,7 @@ along with GCC; see the file COPYING3. If not see
+ (id) new;
+ (id) alloc;
- (id) init;
-- (void) free;
+- (id) free;
/* Auxiliary methods. */
+ (Class) class;
===================================================================
@@ -93,14 +93,16 @@ struct objc_method_description protocol_getMethodD
struct objc_method_description result;
if (instanceMethod)
- {
- tmp = [protocol descriptionForInstanceMethod: selector];
- result = *tmp;
- }
+ tmp = [protocol descriptionForInstanceMethod: selector];
else
+ tmp = [protocol descriptionForClassMethod: selector];
+
+ if (tmp)
+ result = *tmp;
+ else
{
- tmp = [protocol descriptionForClassMethod: selector];
- result = *tmp;
+ result.name = (SEL)0;
+ result.types = (char *)0;
}
return result;
===================================================================
@@ -41,9 +41,14 @@ along with GCC; see the file COPYING3. If not see
{
return self;
}
-- (void) free
+/* We return 'id' to have the same signature as [Object -free] in
+ older runtimes and avoid warnings about conflicting signatures. */
+- (id) free
{
- object_dispose (self);
+ /* Cast 'self' to 'id' because the NeXT runtime in darwin8 (Apple
+ Mac OS X 10.4) declares object_dispose to take an "Object *"
+ argument. */
+ return object_dispose ((id)self);
}
+ (Class) class
{