aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog15
-rw-r--r--gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h2
-rw-r--r--gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m9
-rw-r--r--gcc/testsuite/objc-obj-c++-shared/runtime.h14
4 files changed, 31 insertions, 9 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ba89a31..3b5ebcf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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 Xinliang David Li <davidxl@google.com>
* testsuite/gcc.dg/inline_2.c: New test.
diff --git a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
index b6acd91..66b68c8 100644
--- a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
+++ b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
@@ -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;
diff --git a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
index 1b033af..2068a91 100644
--- a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
+++ b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
@@ -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
{
diff --git a/gcc/testsuite/objc-obj-c++-shared/runtime.h b/gcc/testsuite/objc-obj-c++-shared/runtime.h
index bdc2bff..4d7d1c3 100644
--- a/gcc/testsuite/objc-obj-c++-shared/runtime.h
+++ b/gcc/testsuite/objc-obj-c++-shared/runtime.h
@@ -93,14 +93,16 @@ struct objc_method_description protocol_getMethodDescription (Protocol *protocol
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;