From ac07a61dda48ef1d9564d9a40d04f0e938bdd888 Mon Sep 17 00:00:00 2001 From: Nicola Pero Date: Tue, 7 Jun 2011 20:47:12 +0000 Subject: [PATCH] In gcc/testsuite/: 2011-06-07 Nicola Pero Iain Sandoe In gcc/testsuite/: 2011-06-07 Nicola Pero Iain Sandoe * 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 Iain Sandoe * objc-obj-c++-shared/TestsuiteObject.h ([-free]): Return 'id'. * objc-obj-c++-shared/TestsuiteObject.m ([-free]): Return 'id'. Added cast. Co-Authored-By: Iain Sandoe From-SVN: r174766 --- gcc/testsuite/ChangeLog | 15 +++++++++++++++ .../objc-obj-c++-shared/TestsuiteObject.h | 2 +- .../objc-obj-c++-shared/TestsuiteObject.m | 9 +++++++-- gcc/testsuite/objc-obj-c++-shared/runtime.h | 14 ++++++++------ 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ba89a31f9a8..3b5ebcf1cea 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,18 @@ +2011-06-07 Nicola Pero + Iain Sandoe + + * 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 + Iain Sandoe + + * 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 * 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 b6acd91f156..66b68c81ec9 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 1b033af3305..2068a916436 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 bdc2bff620f..4d7d1c30b96 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; -- 2.30.2