In gcc/testsuite/: 2011-06-06 Nicola Pero <nicola.pero@meta-innovation.com>
authorNicola Pero <nicola.pero@meta-innovation.com>
Mon, 6 Jun 2011 22:46:58 +0000 (22:46 +0000)
committerNicola Pero <nicola@gcc.gnu.org>
Mon, 6 Jun 2011 22:46:58 +0000 (22:46 +0000)
In gcc/testsuite/:
2011-06-06  Nicola Pero  <nicola.pero@meta-innovation.com>

Updated all testcases in the ObjC/ObjC++ testsuites to use the
Modern Objective-C runtime API.
* objc/execute/next_mapping.h: Removed.
* objc-obj-c++-shared/next-mapping.h: Removed.
* objc-obj-c++-shared/Object1.h: Removed.
* objc-obj-c++-shared/Object1.m: Removed.
* objc-obj-c++-shared/Object1.mm: Removed.
* objc-obj-c++-shared/Object1-implementation.h: Removed.
* objc-obj-c++-shared/Protocol1.h: Removed.
* objc-obj-c++-shared/objc-test-suite-types.h: Removed definition
of ProtoBool, IVAR_T and METHOD.
* objc-obj-c++-shared/runtime.h: New.
* objc-obj-c++-shared/TestsuiteObject.h: New.
* objc-obj-c++-shared/TestsuiteObject.m: New.

* objc/compile/trivial.m: Use TestsuiteObject instead of Object.
* objc/execute/IMP.m: Include ../../objc-obj-c++-shared/runtime.h.
Use the Modern Objective-C runtime API. ([TestClass -next:]): Made
it a class method.
* objc/execute/_cmd.m: Include
../../objc-obj-c++-shared/runtime.h.  Use the Modern Objective-C
runtime API.  ([TestClass +initialize]): Include this method also
with the GNU runtime.
* objc/execute/accessing_ivars.m: Use TestsuiteObject instead of
Object.  ([-setValue:]): Return void.
* objc/execute/bf-common.h: Do not include objc/objc-encoding.h
with the GNU runtime.  Include
../../objc-obj-c++-shared/runtime.h.  Do not define objc_get_class
for the NeXT runtime.  Use the existing print_ivars() and
compare_structures() implementations for the old NeXT runtime.
Added new implementations for the Modern GNU and NeXT runtimes.
Enable the testcase (and hence all the bf-* ones) for __OBJC2__ as
well.  (main): Use objc_getClass().  Use return instead of exit.
* objc/execute/bycopy-1.m: Include objc/objc.h instead of
../../objc-obj-c++-shared/Protocol1.h.  (main): Use return instead
of exit().
* objc/execute/bycopy-2.m: Include objc/objc.h instead of
../../objc-obj-c++-shared/Protocol1.h.  Use TestsuiteObject
instead of Object.  (main): Use return instead of exit().
* objc/execute/bycopy-3.m: Updated includes.  Use TestsuiteObject
instead of Object.  Removed prototype for exit().  (main): Use
return instead of exit().  Use the Modern Objective-C runtime API.
* objc/execute/cascading-1.m: Use TestsuiteObject instead of
Object.
* objc/execute/class-tests-1.h: Include
../../objc-obj-c++-shared/runtime.h.  Use the Modern Objective-C
runtime API.  (test_class_with_superclass): Do not call [Object
class].  There is no need to with the current libobjc.
* objc/execute/class-tests-2.h: Include
../../objc-obj-c++-shared/runtime.h.  Use the Modern Objective-C
runtime API.
* objc/execute/class-1.m: Do not include <objc/objc-api.h> and
../../objc-obj-c++-shared/next-mapping.h.
* objc/execute/class-2.m: Likewise.
* objc/execute/class-3.m: Likewise.
* objc/execute/class-4.m: Do not include <objc/objc-api.h> and
../../objc-obj-c++-shared/next-mapping.h.  ([RootClass
+initialize]): Include this method also with the GNU
runtime. (main): Use the Modern Objective-C runtime API.
* objc/execute/class-5.m: Likewise.
* objc/execute/class-6.m: Likewise.
* objc/execute/class-7.m: Likewise.
* objc/execute/class-8.m: Likewise.
* objc/execute/class-9.m: Likewise.
* objc/execute/class-10.m: Likewise.
* objc/execute/class-11.m: Likewise.
* objc/execute/class-12.m: Likewise.
* objc/execute/class-13.m: Likewise.
* objc/execute/class-14.m: Likewise.
* objc/execute/class_self-1.m ([TestClass +initialize]): Include
this method also with the GNU runtime.
* objc/execute/class_self-2.m: ([TestClass +initialize], [ClassA
+initialize]): Include this method also with the GNU runtime.
* objc/execute/compatibility_alias.m: Use TestsuiteObject instead
of Object.
* objc/execute/encode-1.m: Likewise.
* objc/execute/enumeration-1.m: Likewise.
* objc/execute/enumeration-2.m: Likewise.
* objc/execute/exceptions/catchall-1.m: Likewise.
* objc/execute/exceptions/finally-1.m: Likewise.
* objc/execute/exceptions/foward-1.m: Likewise.
* objc/execute/exceptions/local-variables-1.m: Likewise.
* objc/execute/exceptions/throw-nil.m: Likewise.
* objc/execute/exceptions/trivial.m: Likewise.
* objc/execute/exceptions/handler-1.m: Use TestsuiteObject instead
of Object. Include objc/runtime.h instead of objc/objc-api.h.
* objc/execute/exceptions/matcher-1.m: Likewise.
* objc/execute/formal_protocol-1.m: Use TestsuiteObject instead of
Object.
* objc/execute/formal_protocol-2.m: Likewise.
* objc/execute/formal_protocol-3.m: Likewise.
* objc/execute/formal_protocol-4.m: Likewise.
* objc/execute/formal_protocol-5.m: Include
../../objc-obj-c++-shared/runtime.h. (main): Always use
protocol_getName().
* objc/execute/formal_protocol-6.m: Likewise.
* objc/execute/formal_protocol-7.m: Use TestsuiteObject instead of
Object.  Include <objc/Protocol.h> instead of
../../objc-obj-c++-shared/Protocol1.h.
* objc/execute/function-message-1.m: Use TestsuiteObject intead of
Object.
* objc/execute/informal_protocol.m: Likewise.
* objc/execute/load-3.m: Likewise.
* objc/execute/many_args_method.m ([TestClass +initialize]):
Include this method with the GNU runtime as well.
* objc/execute/nested-3.m ([Test +initialize]): Likewise.
* objc/execute/nested-func-1.m: Use TestsuiteObject
instead of Object.
* objc/execute/nil_method-1.m: Likewise.
* objc/execute/no_clash.m: Likewise.
* objc/execute/np-1.m: Do not include
../../objc-obj-c++-shared/Protocol1.h.
(main): Use return instead of exit().
* objc/execute/np-2.m: Do not include
../../objc-obj-c++-shared/Protocol1.h.
([MyObject +initialize]): Include this method also with the GNU
runtime.  (main): Use return instead of exit().
* objc/execute/object_is_class.m: Include
../../objc-obj-c++-shared/runtime.h.  Use TestsuiteObject instead
of Object.  (main): Use the Modern Objective-C runtime API.
* objc/execute/object_is_meta_class.m: Likewise.
* objc/execute/private.m: Use TestsuiteObject instead of Object.
* objc/execute/protocol-isEqual-1.m: Include objc/Protocol.h
instead of ../objc-obj-c++-shared/Protocol1.h.  Include
../../objc-obj-c++-shared/runtime.h.  (main): Use the Modern
Objective-C runtime API.
* objc/execute/protocol-isEqual-2.m: Likewise.
* objc/execute/protocol-isEqual-3.m: Likewise.
* objc/execute/protocol-isEqual-4.m: Likewise.
* objc/execute/redefining_self.m ([TestClass +initialize]):
Include this method with the GNU runtime as well.
* objc/execute/root_methods.m: Include
../../objc-obj-c++-shared/runtime.h.  ([RootClass +initialize]):
Include this method with the GNU runtime as well.
(main): Use the Modern Objective-C runtime API.
* objc/execute/selector-1.m: Include
../../objc-obj-c++-shared/runtime.h.  Use TestsuiteObject instead
of Object.  (main): Use the Modern Objective-C runtime API.
* objc/execute/static-1.m ([Test +initialize]): Include this
method with the GNU runtime as well.
* objc/execute/static-2.m: Likewise.
* objc/execute/trivial.m: Use TestsuiteObject instead of Object.
* objc/execute/va_method.m: Do not include objc/objc-api.h.
([MathClass +initialize]): Include this method with the GNU
runtime as well.
* objc.dg/attributes/categ-attribute-1.m: Use TestsuiteObject
instead of Object.
* obj-c++.dg/attributes/categ-attribute-1.mm: Likewise.
* objc.dg/attributes/categ-attributes-2.m: Likewise.
* obj-c++.dg/attributes/categ-attributes-2.mm: Likewise.
* objc.dg/attributes/method-attribute-1.m: Likewise.
* obj-c++.dg/attributes/method-attribute-1.mm: Likewise.
* objc.dg/attributes/method-attribute-2.m: Likewise.
* obj-c++.dg/attributes/method-attribute-2.mm: Likewise.
* objc.dg/attributes/method-attribute-3.m: Likewise.
* obj-c++.dg/attributes/method-attribute-3.mm: Likewise.
* obj-c++.dg/basic.mm: Use TestsuiteObject instead of Object.
* objc.dg/bitfield-1.m: Use TestsuiteObject instead of Object.
* obj-c++.dg/bitfield-1.mm: Likewise.
* obj-c++.dg/bitfield-2.mm: Likewise
* objc.dg/bitfield-3.m: Likewise.
* obj-c++.dg/bitfield-4.mm: Likewise.
* objc.dg/bitfield-5.m: Likewise
* objc.dg/call-super-1.m: Likewise.
* objc.dg/call-super-2.m: Use TestsuiteObject instead of Object.
Use objc_getClass() instead of objc_get_class(), but for the GNU
runtime redefine objc_getClass as objc_get_class.  Include
../objc-obj-c++-shared/runtime.h.
* objc.dg/call-super-3.m: Use TestsuiteObject instead of Object.
* objc.dg/category-1.m: Use TestsuiteObject instead of Object.
Use the Modern Objective-C runtime API.
* objc.dg/class-protocol-1.m: Include
../objc-obj-c++-shared/runtime.h instead of objc/objc-api.h.
* obj-c++.dg/class-protocol-1.mm: Likewise.
* objc.dg/comp-types-8.m: Use TestsuiteObject instead of Object.
* objc.dg/comp-types-10.m: Likewise.
* objc.dg/comp-types-11.m: Likewise.
* objc.dg/comp-types-12.m: Likewise.
* obj-c++.dg/comp-types-9.mm: Likewise.
* obj-c++.dg/comp-types-11.mm: Likewise.
* obj-c++.dg/comp-types-12.mm: Likewise.
* obj-c++.dg/comp-types-13.mm: Likewise.
* obj-c++.dg/cxx-ivars-1.mm: Likewise.
* obj-c++.dg/cxx-ivars-2.mm: Likewise.
* obj-c++.dg/cxx-scope-1.mm: Likewise.
* obj-c++.dg/cxx-scope-2.mm: Likewise.
* objc.dg/defs.m: Use TestsuiteObject instead of Object.
* objc.dg/desig-init-1.m: Likewise.
* obj-c++.dg/defs.mm: Likewise.
* objc.dg/exceptions-2.m: Likewise.
* obj-c++.dg/except-1.mm: Likewise.
* obj-c++.dg/exceptions-2.mm: Likewise.
* objc.dg/encode-2.m: Use TestsuiteObject instead of Object.
Use the Modern Objective-C runtime API.
* objc.dg/encode-3.m: Use TestsuiteObject instead of Object.  Use
the Modern Objective-C runtime API.  Do not include
../objc-obj-c++-shared/objc-test-suite-types.h.  Define ProtoBool.
* objc.dg/encode-4.m: Use TestsuiteObject instead of Object.  Use
the Modern Objective-C runtime API except when using an older NeXT
runtime.
* objc.dg/encode-5.m: Use TestsuiteObject instead of Object.  Use
the Modern Objective-C runtime API.
* objc.dg/encode-7.m: Include objc/runtime.h instead of
objc/encoding.h.
* objc.dg/encode-7-next.m: Use TestsuiteObject instead of Object.
* objc.dg/encode-7-next-64bit.m: Updated include.
* objc.dg/encode-8.m: Include objc/runtime.h instead of
objc/encoding.h.
* obj-c++.dg/encode-4.mm: Use TestsuiteObject instead of Object.  Use
the Modern Objective-C runtime API.
* obj-c++.dg/encode-5.mm: Use TestsuiteObject instead of Object.
Use the Modern Objective-C runtime API.  Include objc/Protocol.h
instead of ../objc-obj-c++-shared/Protocol1.h.
* obj-c++.dg/encode-6.mm: Use TestsuiteObject instead of Object.  Use
the Modern Objective-C runtime API except when using an older NeXT
runtime.
* obj-c++.dg/encode-7.mm:  Use TestsuiteObject instead of Object.  Use
the Modern Objective-C runtime API.
* objc.dg/fix-and-continue-1.m: Use TestsuiteObject instead of
Object.
* obj-c++.dg/fix-and-continue-2.mm: Likewise.
* objc.dg/fix-and-continue-2.m: Likewise.
* objc.dg/foreach-1.m: Likewise.
* objc.dg/foreach-2.m: Likewise.
* objc.dg/foreach-3.m: Likewise.
* objc.dg/foreach-4.m: Likewise.
* objc.dg/foreach-5.m: Likewise.
* objc.dg/foreach-6.m: Likewise.
* objc.dg/foreach-7.m: Likewise.
* objc.dg/func-ptr-1.m:  Use TestsuiteObject instead of
Object.
* objc.dg/func-ptr-2.m: Likewise.
* objc.dg/fsf-package-0.m: Use TestsuiteObject instead of Object.
Do not include objc/objc-api.h.
* obj-c++.dg/fsf-package-0.mm: Likewise.
* objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c (switchfiles):
Include objc/runtime.h instead of objc/encoding.h.
* objc.dg/gnu-runtime-1.m: Updated to use TestsuiteObject instead
of Object.
* obj-c++.dg/gnu-runtime-1.mm: Likewise.
* objc.dg/gnu-runtime-3.m: Likewise.
* obj-c++.dg/gnu-runtime-3.mm: Likewise.
* objc.dg/headers.m: Include objc/runtime.h instead of
objc/encoding.h for the GNU runtime.  Include objc/objc-api.h only
for the NeXT runtime.
* objc.dg/isa-field-1.m: Use TestsuiteObject instead of Object.
* obj-c++.dg/isa-field-1.mm: Likewise.
* obj-c++.dg/ivar-list-semi.mm: Likewise.
* objc.dg/layout-1.m: Likewise.
* objc.dg/layout-2.m: Likewise.
* objc.dg/local-decl-2.m: Likewise.
* objc.dg/lookup-1.m: Use TestsuiteObject instead of
Object.  ([Container +elementForView:]): Use
class_conformsToProtocol().
* obj-c++.dg/lookup-2.mm: Likewise.
* obj-c++.dg/layout-1.mm: Use TestsuiteObject instead of Object.
* obj-c++.dg/local-decl-1.mm: Likewise.
* objc.dg/method-3.m: Likewise.
* objc.dg/method-4.m: Likewise.
* objc.dg/method-6.m: Include objc/Protocol.h instead of
../objc-obj-c++-shared/Protocol1.h.
* objc.dg/method-7.m: Use TestsuiteObject instead of Object.
* objc.dg/method-9.m: Likewise.
* objc.dg/method-10.m: Likewise.
* objc.dg/method-13.m ([Root +initialize]): Include this method
also for the GNU runtime.  (main): Use objc_getClass() also for
the GNU runtime.
* objc.dg/method-15.m: Use TestsuiteObject instead of Object.
* objc.dg/method-17.m: Likewise.
* objc.dg/method-19.m: Likewise.
* objc.dg/method-20b.m: Likewise.
* obj-c++.dg/method-2.mm: Likewise.
* obj-c++.dg/method-6.mm: Likewise.
* obj-c++.dg/method-10.mm: Likewise.
* obj-c++.dg/method-11.mm: Likewise.
* obj-c++.dg/method-12.mm: Include objc/Protocol.h instead of
../objc-obj-c++-shared/Protocol1.h.
* obj-c++.dg/method-13.mm: Use TestsuiteObject instead of Object.
* obj-c++.dg/method-15.mm: Likewise.
* obj-c++.dg/method-17.mm: Likewise.
* obj-c++.dg/method-19.mm: Updated includes.  ([Root
+initialize]): Include this method also for the GNU
runtime.  (main): Use objc_getClass() also for the GNU runtime.
* obj-c++.dg/method-21.mm: Use TestsuiteObject instead of Object.
* obj-c++.dg/method-22.mm: Likewise.
* obj-c++.dg/method-23.mm: Likewise.
* obj-c++.dg/no-extra-load.mm: Likewise.
* objc.dg/objc-fast-4.m: Likewise.
* objc.dg/objc-gc-4.m: Likewise.
* obj-c++.dg/objc-gc-3.mm: Likewise.
* objc.dg/pr18255.m: Include objc/runtime.h.  (main): Use
protocol_getMethodDescription() instead of [Protocol
-descriptionForInstanceMethod].
* objc.dg/pr23214.m ([Object(TS_CAT) -class]): Renamed to test.
Made it available with all runtimes.  (main): Call -test instead
of -class.
* objc.dg/pr45878.m ([Object -isEqual:]): Renamed to testIsEqual,
and put into a category.
* objc.dg/proto-lossage-2.m: Use TestsuiteObject instead of
Object.  Include objc/objc.h.
* obj-c++.dg/proto-lossage-2.mm: Likewise.
* objc.dg/proto-lossage-3.m: Updated includes.  (MyClass):
New. (main): Use protocol_getMethodDescription() instead
of [Protocol -descriptionForInstanceMethod] and [Protocol
-descriptionForClassMethod].
* obj-c++.dg/proto-lossage-3.mm: Likewise.
* objc.dg/proto-qual-1.m: Updated includes.  Use the Modern
Objective-C runtime API.
* obj-c++.dg/proto-qual-1.mm: Likewise.
* objc.dg/property/property-1.m: Use TestsuiteObject instead of
Object.
* obj-c++.dg/property/property-1.mm: Likewise.
* obj-c++.dg/qual-types-1.mm: Likewise.
* objc.dg/selector-2.m: Include objc/objc.h instead of
../objc-obj-c++-shared/Object1.h.
* obj-c++.dg/selector-2.mm: Likewise.
* obj-c++.dg/selector-5.mm: Likewise.
* obj-c++.dg/selector-6.mm: Likewise.
* objc.dg/set-not-used-1.m: Use TestsuiteObject instead of
Object.  Do not include objc/objc-api.h.
* obj-c++.dg/set-not-used-1.mm: Likewise.
* objc.dg/sizeof-1.m: Use TestsuiteObject instead of Object.
* objc.dg/stret-1.m: Likewise.
* objc.dg/stret-2.m: Likewise.
* obj-c++.dg/super-class-2.mm: Likewise.
* objc.dg/super-class-3.m: Likewise.
* objc.dg/super-class-4.m: Likewise.
* objc.dg/sync-2.m: Likewise.
* obj-c++.dg/sync-2.mm: Likewise.
* objc.dg/sync-1.m: Include objc/objc.h instead of
../objc-obj-c++-shared/Object1.h.
* objc.dg/special/unclaimed-category-1.h (TestClass): Always use
'Class' as the type of 'isa'.
* objc.dg/special/unclaimed-category-1.m: Use the Modern
Objective-C runtime API.  ([TestClass +initialize]): Include this
method with the GNU runtime as well.
* objc.dg/strings/strings-1.m: Updated includes.
* obj-c++.dg/strings/strings-1.mm: Likewise.
* obj-c++.dg/strings/const-str-12.mm: Updated to be identical to
objc.dg/strings/const-str-12b.m.
* obj-c++.dg/template-1.mm: Use TestsuiteObject intead of Object.
* obj-c++.dg/template-3.mm: Likewise.
* obj-c++.dg/template-4.mm: Likewise.
* objc.dg/threedotthree-abi-1.m: Updated includes.  Use Modern
Objective-C runtime API.
* obj-c++.dg/threedotthree-abi-1.mm: Likewise.
* objc.dg/try-catch-1.m: Use TestsuiteObject instead of Object.
* obj-c++.dg/try-catch-1.mm: Likewise.
* obj-c++.dg/try-catch-2.mm: Likewise.
* objc.dg/try-catch-3.m: Likewise.
* obj-c++.dg/try-catch-3.mm: Likewise.
* objc.dg/try-catch-6.m: Likewise.
* objc.dg/try-catch-7.m: Likewise.
* obj-c++.dg/try-catch-7.mm: Likewise.
* obj-c++.dg/try-catch-8.mm: Likewise.
* obj-c++.dg/try-catch-9.mm: Likewise.
* objc.dg/try-catch-10.m: Likewise.
* obj-c++.dg/try-catch-11.mm: Likewise.
* objc.dg/typedef-alias-1.m: Use TestsuiteObject instead of
Object.  Include objc/objc.h.
* obj-c++.dg/typedef-alias-1.mm: Likewise.
* objc.dg/type-size-2.m: Use the Modern Objective-C runtime API.
* objc.dg/torture/forward-1.m: Use TestsuiteObject intead of
Object.  Use Modern Objective-C runtime API.  Do not use
performv::.
* objc.dg/torture/trivial.m: Use TestsuiteObject intead of Object.
* obj-c++.dg/torture/trivial.mm: Likewise.
* objc.dg/torture/strings/const-str-10.m: Include objc/Object.h
instead of ../objc-obj-c++-shared/Object1.h.  Include
../objc-obj-c++-shared/runtime.h.
* obj-c++.dg/torture/strings/const-str-10.mm: Likewise.
* objc.dg/torture/strings/const-str-11.m: Likewise.
* obj-c++.dg/torture/strings/const-str-11.mm: Likewise.
* objc.dg/torture/strings/const-str-9.m: Likewise.
* obj-c++.dg/torture/strings/const-str-9.mm: Likewise.
* objc.dg/torture/strings/const-str-7.m: Use TestsuiteObject
instead of Object. Only add _FooClassReference if
__NEXT_RUNTIME__.
* obj-c++.dg/torture/strings/const-str-7.mm: Likewise.
* objc.dg/torture/strings/const-str-8.m: Likewise.
* obj-c++.dg/torture/strings/const-str-8.mm: Likewise.
* obj-c++.dg/torture/strings/string1.mm: Updated includes and
additional sources.
* objc.dg/torture/tls/thr-init-3.m: Use TestsuiteObject instead of
Object.
* obj-c++.dg/torture/tls/thr-init-3.mm: Likewise.
* objc.dg/va-meth-1.m: Use TestsuiteObject instead of Object.
* obj-c++.dg/va-meth-1.mm: Likewise.
* objc.dg/zero-link-1.m: Include objc/Object.h instead of
../objc-obj-c++-shared/Object1.h.
* objc.dg/zero-link-3.m: Likewise.

2011-06-06  Nicola Pero  <nicola.pero@meta-innovation.com>

* obj-c++.dg/try-catch-2.mm: Fixed unterminated comment.

From-SVN: r174727

264 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/obj-c++.dg/attributes/categ-attribute-1.mm
gcc/testsuite/obj-c++.dg/attributes/categ-attribute-2.mm
gcc/testsuite/obj-c++.dg/attributes/method-attribute-1.mm
gcc/testsuite/obj-c++.dg/attributes/method-attribute-2.mm
gcc/testsuite/obj-c++.dg/attributes/method-attribute-3.mm
gcc/testsuite/obj-c++.dg/basic.mm
gcc/testsuite/obj-c++.dg/bitfield-1.mm
gcc/testsuite/obj-c++.dg/bitfield-2.mm
gcc/testsuite/obj-c++.dg/bitfield-4.mm
gcc/testsuite/obj-c++.dg/class-protocol-1.mm
gcc/testsuite/obj-c++.dg/comp-types-11.mm
gcc/testsuite/obj-c++.dg/comp-types-12.mm
gcc/testsuite/obj-c++.dg/comp-types-13.mm
gcc/testsuite/obj-c++.dg/comp-types-9.mm
gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
gcc/testsuite/obj-c++.dg/cxx-scope-1.mm
gcc/testsuite/obj-c++.dg/cxx-scope-2.mm
gcc/testsuite/obj-c++.dg/defs.mm
gcc/testsuite/obj-c++.dg/encode-4.mm
gcc/testsuite/obj-c++.dg/encode-5.mm
gcc/testsuite/obj-c++.dg/encode-6.mm
gcc/testsuite/obj-c++.dg/encode-7.mm
gcc/testsuite/obj-c++.dg/except-1.mm
gcc/testsuite/obj-c++.dg/exceptions-2.mm
gcc/testsuite/obj-c++.dg/fix-and-continue-2.mm
gcc/testsuite/obj-c++.dg/fsf-package-0.m
gcc/testsuite/obj-c++.dg/gnu-runtime-1.mm
gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm
gcc/testsuite/obj-c++.dg/isa-field-1.mm
gcc/testsuite/obj-c++.dg/ivar-list-semi.mm
gcc/testsuite/obj-c++.dg/layout-1.mm
gcc/testsuite/obj-c++.dg/local-decl-1.mm
gcc/testsuite/obj-c++.dg/lookup-2.mm
gcc/testsuite/obj-c++.dg/method-10.mm
gcc/testsuite/obj-c++.dg/method-11.mm
gcc/testsuite/obj-c++.dg/method-12.mm
gcc/testsuite/obj-c++.dg/method-13.mm
gcc/testsuite/obj-c++.dg/method-15.mm
gcc/testsuite/obj-c++.dg/method-17.mm
gcc/testsuite/obj-c++.dg/method-19.mm
gcc/testsuite/obj-c++.dg/method-2.mm
gcc/testsuite/obj-c++.dg/method-21.mm
gcc/testsuite/obj-c++.dg/method-22.mm
gcc/testsuite/obj-c++.dg/method-23.mm
gcc/testsuite/obj-c++.dg/method-6.mm
gcc/testsuite/obj-c++.dg/no-extra-load.mm
gcc/testsuite/obj-c++.dg/objc-gc-3.mm
gcc/testsuite/obj-c++.dg/property/property-1.mm
gcc/testsuite/obj-c++.dg/proto-lossage-2.mm
gcc/testsuite/obj-c++.dg/proto-lossage-3.mm
gcc/testsuite/obj-c++.dg/proto-qual-1.mm
gcc/testsuite/obj-c++.dg/qual-types-1.mm
gcc/testsuite/obj-c++.dg/selector-2.mm
gcc/testsuite/obj-c++.dg/selector-5.mm
gcc/testsuite/obj-c++.dg/selector-6.mm
gcc/testsuite/obj-c++.dg/set-not-used-1.mm
gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
gcc/testsuite/obj-c++.dg/strings/strings-1.mm
gcc/testsuite/obj-c++.dg/super-class-2.mm
gcc/testsuite/obj-c++.dg/sync-2.mm
gcc/testsuite/obj-c++.dg/template-1.mm
gcc/testsuite/obj-c++.dg/template-3.mm
gcc/testsuite/obj-c++.dg/template-4.mm
gcc/testsuite/obj-c++.dg/threedotthree-abi-1.mm
gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
gcc/testsuite/obj-c++.dg/torture/strings/const-str-7.mm
gcc/testsuite/obj-c++.dg/torture/strings/const-str-8.mm
gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
gcc/testsuite/obj-c++.dg/torture/strings/string1.mm
gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm
gcc/testsuite/obj-c++.dg/torture/trivial.mm
gcc/testsuite/obj-c++.dg/try-catch-1.mm
gcc/testsuite/obj-c++.dg/try-catch-11.mm
gcc/testsuite/obj-c++.dg/try-catch-2.mm
gcc/testsuite/obj-c++.dg/try-catch-3.mm
gcc/testsuite/obj-c++.dg/try-catch-7.mm
gcc/testsuite/obj-c++.dg/try-catch-8.mm
gcc/testsuite/obj-c++.dg/try-catch-9.mm
gcc/testsuite/obj-c++.dg/typedef-alias-1.mm
gcc/testsuite/obj-c++.dg/va-meth-1.mm
gcc/testsuite/objc-obj-c++-shared/Object1-implementation.h [deleted file]
gcc/testsuite/objc-obj-c++-shared/Object1.h [deleted file]
gcc/testsuite/objc-obj-c++-shared/Object1.m [deleted file]
gcc/testsuite/objc-obj-c++-shared/Object1.mm [deleted file]
gcc/testsuite/objc-obj-c++-shared/Protocol1.h [deleted file]
gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h [new file with mode: 0644]
gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m [new file with mode: 0644]
gcc/testsuite/objc-obj-c++-shared/next-mapping.h [deleted file]
gcc/testsuite/objc-obj-c++-shared/objc-test-suite-types.h
gcc/testsuite/objc-obj-c++-shared/runtime.h [new file with mode: 0644]
gcc/testsuite/objc.dg/attributes/categ-attribute-1.m
gcc/testsuite/objc.dg/attributes/categ-attribute-2.m
gcc/testsuite/objc.dg/attributes/method-attribute-1.m
gcc/testsuite/objc.dg/attributes/method-attribute-2.m
gcc/testsuite/objc.dg/attributes/method-attribute-3.m
gcc/testsuite/objc.dg/bitfield-1.m
gcc/testsuite/objc.dg/bitfield-3.m
gcc/testsuite/objc.dg/bitfield-5.m
gcc/testsuite/objc.dg/call-super-1.m
gcc/testsuite/objc.dg/call-super-2.m
gcc/testsuite/objc.dg/call-super-3.m
gcc/testsuite/objc.dg/category-1.m
gcc/testsuite/objc.dg/class-protocol-1.m
gcc/testsuite/objc.dg/comp-types-10.m
gcc/testsuite/objc.dg/comp-types-11.m
gcc/testsuite/objc.dg/comp-types-12.m
gcc/testsuite/objc.dg/comp-types-8.m
gcc/testsuite/objc.dg/defs.m
gcc/testsuite/objc.dg/desig-init-1.m
gcc/testsuite/objc.dg/encode-2.m
gcc/testsuite/objc.dg/encode-3.m
gcc/testsuite/objc.dg/encode-4.m
gcc/testsuite/objc.dg/encode-5.m
gcc/testsuite/objc.dg/encode-7-next-64bit.m
gcc/testsuite/objc.dg/encode-7-next.m
gcc/testsuite/objc.dg/encode-7.m
gcc/testsuite/objc.dg/encode-8.m
gcc/testsuite/objc.dg/exceptions-2.m
gcc/testsuite/objc.dg/fix-and-continue-1.m
gcc/testsuite/objc.dg/fix-and-continue-2.m
gcc/testsuite/objc.dg/foreach-1.m
gcc/testsuite/objc.dg/foreach-2.m
gcc/testsuite/objc.dg/foreach-3.m
gcc/testsuite/objc.dg/foreach-4.m
gcc/testsuite/objc.dg/foreach-5.m
gcc/testsuite/objc.dg/foreach-6.m
gcc/testsuite/objc.dg/foreach-7.m
gcc/testsuite/objc.dg/fsf-package-0.m
gcc/testsuite/objc.dg/func-ptr-1.m
gcc/testsuite/objc.dg/func-ptr-2.m
gcc/testsuite/objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c
gcc/testsuite/objc.dg/gnu-runtime-1.m
gcc/testsuite/objc.dg/gnu-runtime-3.m
gcc/testsuite/objc.dg/headers.m
gcc/testsuite/objc.dg/isa-field-1.m
gcc/testsuite/objc.dg/layout-1.m
gcc/testsuite/objc.dg/layout-2.m
gcc/testsuite/objc.dg/local-decl-2.m
gcc/testsuite/objc.dg/lookup-1.m
gcc/testsuite/objc.dg/method-10.m
gcc/testsuite/objc.dg/method-13.m
gcc/testsuite/objc.dg/method-15.m
gcc/testsuite/objc.dg/method-17.m
gcc/testsuite/objc.dg/method-19.m
gcc/testsuite/objc.dg/method-20b.m
gcc/testsuite/objc.dg/method-3.m
gcc/testsuite/objc.dg/method-4.m
gcc/testsuite/objc.dg/method-6.m
gcc/testsuite/objc.dg/method-7.m
gcc/testsuite/objc.dg/method-9.m
gcc/testsuite/objc.dg/objc-fast-4.m
gcc/testsuite/objc.dg/objc-gc-4.m
gcc/testsuite/objc.dg/pr18255.m
gcc/testsuite/objc.dg/pr23214.m
gcc/testsuite/objc.dg/pr45878.m
gcc/testsuite/objc.dg/property/property-1.m
gcc/testsuite/objc.dg/proto-lossage-2.m
gcc/testsuite/objc.dg/proto-lossage-3.m
gcc/testsuite/objc.dg/proto-qual-1.m
gcc/testsuite/objc.dg/selector-2.m
gcc/testsuite/objc.dg/set-not-used-1.m
gcc/testsuite/objc.dg/sizeof-1.m
gcc/testsuite/objc.dg/special/unclaimed-category-1.h
gcc/testsuite/objc.dg/special/unclaimed-category-1.m
gcc/testsuite/objc.dg/stret-1.m
gcc/testsuite/objc.dg/stret-2.m
gcc/testsuite/objc.dg/strings/strings-1.m
gcc/testsuite/objc.dg/super-class-3.m
gcc/testsuite/objc.dg/super-class-4.m
gcc/testsuite/objc.dg/sync-1.m
gcc/testsuite/objc.dg/sync-2.m
gcc/testsuite/objc.dg/threedotthree-abi-1.m
gcc/testsuite/objc.dg/torture/forward-1.m
gcc/testsuite/objc.dg/torture/strings/const-str-10.m
gcc/testsuite/objc.dg/torture/strings/const-str-11.m
gcc/testsuite/objc.dg/torture/strings/const-str-7.m
gcc/testsuite/objc.dg/torture/strings/const-str-8.m
gcc/testsuite/objc.dg/torture/strings/const-str-9.m
gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
gcc/testsuite/objc.dg/torture/trivial.m
gcc/testsuite/objc.dg/try-catch-1.m
gcc/testsuite/objc.dg/try-catch-10.m
gcc/testsuite/objc.dg/try-catch-3.m
gcc/testsuite/objc.dg/try-catch-6.m
gcc/testsuite/objc.dg/try-catch-7.m
gcc/testsuite/objc.dg/type-size-2.m
gcc/testsuite/objc.dg/typedef-alias-1.m
gcc/testsuite/objc.dg/va-meth-1.m
gcc/testsuite/objc.dg/zero-link-1.m
gcc/testsuite/objc.dg/zero-link-3.m
gcc/testsuite/objc/compile/trivial.m
gcc/testsuite/objc/execute/IMP.m
gcc/testsuite/objc/execute/_cmd.m
gcc/testsuite/objc/execute/accessing_ivars.m
gcc/testsuite/objc/execute/bf-common.h
gcc/testsuite/objc/execute/bycopy-1.m
gcc/testsuite/objc/execute/bycopy-2.m
gcc/testsuite/objc/execute/bycopy-3.m
gcc/testsuite/objc/execute/cascading-1.m
gcc/testsuite/objc/execute/class-1.m
gcc/testsuite/objc/execute/class-10.m
gcc/testsuite/objc/execute/class-11.m
gcc/testsuite/objc/execute/class-12.m
gcc/testsuite/objc/execute/class-13.m
gcc/testsuite/objc/execute/class-14.m
gcc/testsuite/objc/execute/class-2.m
gcc/testsuite/objc/execute/class-3.m
gcc/testsuite/objc/execute/class-4.m
gcc/testsuite/objc/execute/class-5.m
gcc/testsuite/objc/execute/class-6.m
gcc/testsuite/objc/execute/class-7.m
gcc/testsuite/objc/execute/class-8.m
gcc/testsuite/objc/execute/class-9.m
gcc/testsuite/objc/execute/class-tests-1.h
gcc/testsuite/objc/execute/class-tests-2.h
gcc/testsuite/objc/execute/class_self-1.m
gcc/testsuite/objc/execute/class_self-2.m
gcc/testsuite/objc/execute/compatibility_alias.m
gcc/testsuite/objc/execute/encode-1.m
gcc/testsuite/objc/execute/enumeration-1.m
gcc/testsuite/objc/execute/enumeration-2.m
gcc/testsuite/objc/execute/exceptions/catchall-1.m
gcc/testsuite/objc/execute/exceptions/finally-1.m
gcc/testsuite/objc/execute/exceptions/foward-1.m
gcc/testsuite/objc/execute/exceptions/handler-1.m
gcc/testsuite/objc/execute/exceptions/local-variables-1.m
gcc/testsuite/objc/execute/exceptions/matcher-1.m
gcc/testsuite/objc/execute/exceptions/throw-nil.m
gcc/testsuite/objc/execute/exceptions/trivial.m
gcc/testsuite/objc/execute/formal_protocol-1.m
gcc/testsuite/objc/execute/formal_protocol-2.m
gcc/testsuite/objc/execute/formal_protocol-3.m
gcc/testsuite/objc/execute/formal_protocol-4.m
gcc/testsuite/objc/execute/formal_protocol-5.m
gcc/testsuite/objc/execute/formal_protocol-6.m
gcc/testsuite/objc/execute/formal_protocol-7.m
gcc/testsuite/objc/execute/function-message-1.m
gcc/testsuite/objc/execute/informal_protocol.m
gcc/testsuite/objc/execute/load-3.m
gcc/testsuite/objc/execute/many_args_method.m
gcc/testsuite/objc/execute/nested-3.m
gcc/testsuite/objc/execute/nested-func-1.m
gcc/testsuite/objc/execute/next_mapping.h [deleted file]
gcc/testsuite/objc/execute/nil_method-1.m
gcc/testsuite/objc/execute/no_clash.m
gcc/testsuite/objc/execute/np-1.m
gcc/testsuite/objc/execute/np-2.m
gcc/testsuite/objc/execute/object_is_class.m
gcc/testsuite/objc/execute/object_is_meta_class.m
gcc/testsuite/objc/execute/private.m
gcc/testsuite/objc/execute/protocol-isEqual-1.m
gcc/testsuite/objc/execute/protocol-isEqual-2.m
gcc/testsuite/objc/execute/protocol-isEqual-3.m
gcc/testsuite/objc/execute/protocol-isEqual-4.m
gcc/testsuite/objc/execute/redefining_self.m
gcc/testsuite/objc/execute/root_methods.m
gcc/testsuite/objc/execute/selector-1.m
gcc/testsuite/objc/execute/static-1.m
gcc/testsuite/objc/execute/static-2.m
gcc/testsuite/objc/execute/trivial.m
gcc/testsuite/objc/execute/va_method.m

index 889ba09d7006a02082a8c8adbacd7a68d2ae563b..14e98b12ab89c92e16103ab1aad861eb9ad26db1 100644 (file)
@@ -1,3 +1,401 @@
+2011-06-06  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Updated all testcases in the ObjC/ObjC++ testsuites to use the
+       Modern Objective-C runtime API.
+       * objc/execute/next_mapping.h: Removed.
+       * objc-obj-c++-shared/next-mapping.h: Removed.
+       * objc-obj-c++-shared/Object1.h: Removed.
+       * objc-obj-c++-shared/Object1.m: Removed.
+       * objc-obj-c++-shared/Object1.mm: Removed.
+       * objc-obj-c++-shared/Object1-implementation.h: Removed.
+       * objc-obj-c++-shared/Protocol1.h: Removed.
+       * objc-obj-c++-shared/objc-test-suite-types.h: Removed definition
+       of ProtoBool, IVAR_T and METHOD.
+       * objc-obj-c++-shared/runtime.h: New.
+       * objc-obj-c++-shared/TestsuiteObject.h: New.
+       * objc-obj-c++-shared/TestsuiteObject.m: New.
+       
+       * objc/compile/trivial.m: Use TestsuiteObject instead of Object.        
+       * objc/execute/IMP.m: Include ../../objc-obj-c++-shared/runtime.h.
+       Use the Modern Objective-C runtime API. ([TestClass -next:]): Made
+       it a class method.
+       * objc/execute/_cmd.m: Include
+       ../../objc-obj-c++-shared/runtime.h.  Use the Modern Objective-C
+       runtime API.  ([TestClass +initialize]): Include this method also
+       with the GNU runtime.
+       * objc/execute/accessing_ivars.m: Use TestsuiteObject instead of
+       Object.  ([-setValue:]): Return void.
+       * objc/execute/bf-common.h: Do not include objc/objc-encoding.h
+       with the GNU runtime.  Include
+       ../../objc-obj-c++-shared/runtime.h.  Do not define objc_get_class
+       for the NeXT runtime.  Use the existing print_ivars() and
+       compare_structures() implementations for the old NeXT runtime.
+       Added new implementations for the Modern GNU and NeXT runtimes.
+       Enable the testcase (and hence all the bf-* ones) for __OBJC2__ as
+       well.  (main): Use objc_getClass().  Use return instead of exit.
+       * objc/execute/bycopy-1.m: Include objc/objc.h instead of
+       ../../objc-obj-c++-shared/Protocol1.h.  (main): Use return instead
+       of exit().
+       * objc/execute/bycopy-2.m: Include objc/objc.h instead of
+       ../../objc-obj-c++-shared/Protocol1.h.  Use TestsuiteObject
+       instead of Object.  (main): Use return instead of exit().
+       * objc/execute/bycopy-3.m: Updated includes.  Use TestsuiteObject
+       instead of Object.  Removed prototype for exit().  (main): Use
+       return instead of exit().  Use the Modern Objective-C runtime API.
+       * objc/execute/cascading-1.m: Use TestsuiteObject instead of
+       Object.
+       * objc/execute/class-tests-1.h: Include
+       ../../objc-obj-c++-shared/runtime.h.  Use the Modern Objective-C
+       runtime API.  (test_class_with_superclass): Do not call [Object
+       class].  There is no need to with the current libobjc.
+       * objc/execute/class-tests-2.h: Include
+       ../../objc-obj-c++-shared/runtime.h.  Use the Modern Objective-C
+       runtime API.
+       * objc/execute/class-1.m: Do not include <objc/objc-api.h> and
+       ../../objc-obj-c++-shared/next-mapping.h.
+       * objc/execute/class-2.m: Likewise.
+       * objc/execute/class-3.m: Likewise.
+       * objc/execute/class-4.m: Do not include <objc/objc-api.h> and
+       ../../objc-obj-c++-shared/next-mapping.h.  ([RootClass
+       +initialize]): Include this method also with the GNU
+       runtime. (main): Use the Modern Objective-C runtime API.
+       * objc/execute/class-5.m: Likewise.
+       * objc/execute/class-6.m: Likewise.
+       * objc/execute/class-7.m: Likewise.
+       * objc/execute/class-8.m: Likewise.
+       * objc/execute/class-9.m: Likewise.
+       * objc/execute/class-10.m: Likewise.
+       * objc/execute/class-11.m: Likewise.
+       * objc/execute/class-12.m: Likewise.
+       * objc/execute/class-13.m: Likewise.
+       * objc/execute/class-14.m: Likewise.
+       * objc/execute/class_self-1.m ([TestClass +initialize]): Include
+       this method also with the GNU runtime.
+       * objc/execute/class_self-2.m: ([TestClass +initialize], [ClassA
+       +initialize]): Include this method also with the GNU runtime.
+       * objc/execute/compatibility_alias.m: Use TestsuiteObject instead
+       of Object.
+       * objc/execute/encode-1.m: Likewise.
+       * objc/execute/enumeration-1.m: Likewise.
+       * objc/execute/enumeration-2.m: Likewise.
+       * objc/execute/exceptions/catchall-1.m: Likewise.
+       * objc/execute/exceptions/finally-1.m: Likewise.
+       * objc/execute/exceptions/foward-1.m: Likewise.
+       * objc/execute/exceptions/local-variables-1.m: Likewise.        
+       * objc/execute/exceptions/throw-nil.m: Likewise.
+       * objc/execute/exceptions/trivial.m: Likewise.
+       * objc/execute/exceptions/handler-1.m: Use TestsuiteObject instead
+       of Object. Include objc/runtime.h instead of objc/objc-api.h.
+       * objc/execute/exceptions/matcher-1.m: Likewise.
+       * objc/execute/formal_protocol-1.m: Use TestsuiteObject instead of
+       Object.
+       * objc/execute/formal_protocol-2.m: Likewise.
+       * objc/execute/formal_protocol-3.m: Likewise.
+       * objc/execute/formal_protocol-4.m: Likewise.
+       * objc/execute/formal_protocol-5.m: Include
+       ../../objc-obj-c++-shared/runtime.h. (main): Always use
+       protocol_getName().
+       * objc/execute/formal_protocol-6.m: Likewise.
+       * objc/execute/formal_protocol-7.m: Use TestsuiteObject instead of
+       Object.  Include <objc/Protocol.h> instead of
+       ../../objc-obj-c++-shared/Protocol1.h.
+       * objc/execute/function-message-1.m: Use TestsuiteObject intead of
+       Object.
+       * objc/execute/informal_protocol.m: Likewise.
+       * objc/execute/load-3.m: Likewise.
+       * objc/execute/many_args_method.m ([TestClass +initialize]):
+       Include this method with the GNU runtime as well.
+       * objc/execute/nested-3.m ([Test +initialize]): Likewise.
+       * objc/execute/nested-func-1.m: Use TestsuiteObject
+       instead of Object.
+       * objc/execute/nil_method-1.m: Likewise.
+       * objc/execute/no_clash.m: Likewise.
+       * objc/execute/np-1.m: Do not include
+       ../../objc-obj-c++-shared/Protocol1.h.
+       (main): Use return instead of exit().
+       * objc/execute/np-2.m: Do not include
+       ../../objc-obj-c++-shared/Protocol1.h.
+       ([MyObject +initialize]): Include this method also with the GNU
+       runtime.  (main): Use return instead of exit().
+       * objc/execute/object_is_class.m: Include
+       ../../objc-obj-c++-shared/runtime.h.  Use TestsuiteObject instead
+       of Object.  (main): Use the Modern Objective-C runtime API.
+       * objc/execute/object_is_meta_class.m: Likewise.
+       * objc/execute/private.m: Use TestsuiteObject instead of Object.
+       * objc/execute/protocol-isEqual-1.m: Include objc/Protocol.h
+       instead of ../objc-obj-c++-shared/Protocol1.h.  Include
+       ../../objc-obj-c++-shared/runtime.h.  (main): Use the Modern
+       Objective-C runtime API.
+       * objc/execute/protocol-isEqual-2.m: Likewise.
+       * objc/execute/protocol-isEqual-3.m: Likewise.
+       * objc/execute/protocol-isEqual-4.m: Likewise.
+       * objc/execute/redefining_self.m ([TestClass +initialize]):
+       Include this method with the GNU runtime as well.
+       * objc/execute/root_methods.m: Include
+       ../../objc-obj-c++-shared/runtime.h.  ([RootClass +initialize]):
+       Include this method with the GNU runtime as well.
+       (main): Use the Modern Objective-C runtime API.
+       * objc/execute/selector-1.m: Include
+       ../../objc-obj-c++-shared/runtime.h.  Use TestsuiteObject instead
+       of Object.  (main): Use the Modern Objective-C runtime API.
+       * objc/execute/static-1.m ([Test +initialize]): Include this
+       method with the GNU runtime as well.
+       * objc/execute/static-2.m: Likewise.
+       * objc/execute/trivial.m: Use TestsuiteObject instead of Object.
+       * objc/execute/va_method.m: Do not include objc/objc-api.h.
+       ([MathClass +initialize]): Include this method with the GNU
+       runtime as well.
+       * objc.dg/attributes/categ-attribute-1.m: Use TestsuiteObject
+       instead of Object.
+       * obj-c++.dg/attributes/categ-attribute-1.mm: Likewise. 
+       * objc.dg/attributes/categ-attributes-2.m: Likewise.
+       * obj-c++.dg/attributes/categ-attributes-2.mm: Likewise.
+       * objc.dg/attributes/method-attribute-1.m: Likewise.
+       * obj-c++.dg/attributes/method-attribute-1.mm: Likewise.        
+       * objc.dg/attributes/method-attribute-2.m: Likewise.
+       * obj-c++.dg/attributes/method-attribute-2.mm: Likewise.        
+       * objc.dg/attributes/method-attribute-3.m: Likewise.
+       * obj-c++.dg/attributes/method-attribute-3.mm: Likewise.        
+       * obj-c++.dg/basic.mm: Use TestsuiteObject instead of Object.
+       * objc.dg/bitfield-1.m: Use TestsuiteObject instead of Object.
+       * obj-c++.dg/bitfield-1.mm: Likewise.
+       * obj-c++.dg/bitfield-2.mm: Likewise
+       * objc.dg/bitfield-3.m: Likewise.
+       * obj-c++.dg/bitfield-4.mm: Likewise.
+       * objc.dg/bitfield-5.m: Likewise
+       * objc.dg/call-super-1.m: Likewise.
+       * objc.dg/call-super-2.m: Use TestsuiteObject instead of Object.
+       Use objc_getClass() instead of objc_get_class(), but for the GNU
+       runtime redefine objc_getClass as objc_get_class.  Include
+       ../objc-obj-c++-shared/runtime.h.
+       * objc.dg/call-super-3.m: Use TestsuiteObject instead of Object.
+       * objc.dg/category-1.m: Use TestsuiteObject instead of Object.
+       Use the Modern Objective-C runtime API. 
+       * objc.dg/class-protocol-1.m: Include
+       ../objc-obj-c++-shared/runtime.h instead of objc/objc-api.h.
+       * obj-c++.dg/class-protocol-1.mm: Likewise.     
+       * objc.dg/comp-types-8.m: Use TestsuiteObject instead of Object.
+       * objc.dg/comp-types-10.m: Likewise.
+       * objc.dg/comp-types-11.m: Likewise.
+       * objc.dg/comp-types-12.m: Likewise.
+       * obj-c++.dg/comp-types-9.mm: Likewise.
+       * obj-c++.dg/comp-types-11.mm: Likewise.
+       * obj-c++.dg/comp-types-12.mm: Likewise.
+       * obj-c++.dg/comp-types-13.mm: Likewise.
+       * obj-c++.dg/cxx-ivars-1.mm: Likewise.
+       * obj-c++.dg/cxx-ivars-2.mm: Likewise.
+       * obj-c++.dg/cxx-scope-1.mm: Likewise.
+       * obj-c++.dg/cxx-scope-2.mm: Likewise.
+       * objc.dg/defs.m: Use TestsuiteObject instead of Object.
+       * objc.dg/desig-init-1.m: Likewise.
+       * obj-c++.dg/defs.mm: Likewise.
+       * objc.dg/exceptions-2.m: Likewise.
+       * obj-c++.dg/except-1.mm: Likewise.
+       * obj-c++.dg/exceptions-2.mm: Likewise.
+       * objc.dg/encode-2.m: Use TestsuiteObject instead of Object.
+       Use the Modern Objective-C runtime API.
+       * objc.dg/encode-3.m: Use TestsuiteObject instead of Object.  Use
+       the Modern Objective-C runtime API.  Do not include
+       ../objc-obj-c++-shared/objc-test-suite-types.h.  Define ProtoBool.
+       * objc.dg/encode-4.m: Use TestsuiteObject instead of Object.  Use
+       the Modern Objective-C runtime API except when using an older NeXT
+       runtime.
+       * objc.dg/encode-5.m: Use TestsuiteObject instead of Object.  Use
+       the Modern Objective-C runtime API.
+       * objc.dg/encode-7.m: Include objc/runtime.h instead of
+       objc/encoding.h.        
+       * objc.dg/encode-7-next.m: Use TestsuiteObject instead of Object.
+       * objc.dg/encode-7-next-64bit.m: Updated include.
+       * objc.dg/encode-8.m: Include objc/runtime.h instead of
+       objc/encoding.h.
+       * obj-c++.dg/encode-4.mm: Use TestsuiteObject instead of Object.  Use
+       the Modern Objective-C runtime API.
+       * obj-c++.dg/encode-5.mm: Use TestsuiteObject instead of Object.
+       Use the Modern Objective-C runtime API.  Include objc/Protocol.h
+       instead of ../objc-obj-c++-shared/Protocol1.h.
+       * obj-c++.dg/encode-6.mm: Use TestsuiteObject instead of Object.  Use
+       the Modern Objective-C runtime API except when using an older NeXT
+       runtime.
+       * obj-c++.dg/encode-7.mm:  Use TestsuiteObject instead of Object.  Use
+       the Modern Objective-C runtime API.     
+       * objc.dg/fix-and-continue-1.m: Use TestsuiteObject instead of
+       Object.
+       * obj-c++.dg/fix-and-continue-2.mm: Likewise.
+       * objc.dg/fix-and-continue-2.m: Likewise.
+       * objc.dg/foreach-1.m: Likewise.
+       * objc.dg/foreach-2.m: Likewise.
+       * objc.dg/foreach-3.m: Likewise.
+       * objc.dg/foreach-4.m: Likewise.
+       * objc.dg/foreach-5.m: Likewise.
+       * objc.dg/foreach-6.m: Likewise.
+       * objc.dg/foreach-7.m: Likewise.
+       * objc.dg/func-ptr-1.m:  Use TestsuiteObject instead of
+       Object.
+       * objc.dg/func-ptr-2.m: Likewise.
+       * objc.dg/fsf-package-0.m: Use TestsuiteObject instead of Object.
+       Do not include objc/objc-api.h.
+       * obj-c++.dg/fsf-package-0.mm: Likewise.
+       * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c (switchfiles):
+       Include objc/runtime.h instead of objc/encoding.h.      
+       * objc.dg/gnu-runtime-1.m: Updated to use TestsuiteObject instead
+       of Object.
+       * obj-c++.dg/gnu-runtime-1.mm: Likewise.
+       * objc.dg/gnu-runtime-3.m: Likewise.
+       * obj-c++.dg/gnu-runtime-3.mm: Likewise.
+       * objc.dg/headers.m: Include objc/runtime.h instead of
+       objc/encoding.h for the GNU runtime.  Include objc/objc-api.h only
+       for the NeXT runtime.
+       * objc.dg/isa-field-1.m: Use TestsuiteObject instead of Object.
+       * obj-c++.dg/isa-field-1.mm: Likewise.
+       * obj-c++.dg/ivar-list-semi.mm: Likewise.
+       * objc.dg/layout-1.m: Likewise.
+       * objc.dg/layout-2.m: Likewise.
+       * objc.dg/local-decl-2.m: Likewise.
+       * objc.dg/lookup-1.m: Use TestsuiteObject instead of
+       Object.  ([Container +elementForView:]): Use
+       class_conformsToProtocol().
+       * obj-c++.dg/lookup-2.mm: Likewise.
+       * obj-c++.dg/layout-1.mm: Use TestsuiteObject instead of Object.
+       * obj-c++.dg/local-decl-1.mm: Likewise.
+       * objc.dg/method-3.m: Likewise.
+       * objc.dg/method-4.m: Likewise.
+       * objc.dg/method-6.m: Include objc/Protocol.h instead of
+       ../objc-obj-c++-shared/Protocol1.h.
+       * objc.dg/method-7.m: Use TestsuiteObject instead of Object.
+       * objc.dg/method-9.m: Likewise.
+       * objc.dg/method-10.m: Likewise.
+       * objc.dg/method-13.m ([Root +initialize]): Include this method
+       also for the GNU runtime.  (main): Use objc_getClass() also for
+       the GNU runtime.
+       * objc.dg/method-15.m: Use TestsuiteObject instead of Object.
+       * objc.dg/method-17.m: Likewise.
+       * objc.dg/method-19.m: Likewise.
+       * objc.dg/method-20b.m: Likewise.
+       * obj-c++.dg/method-2.mm: Likewise.
+       * obj-c++.dg/method-6.mm: Likewise.
+       * obj-c++.dg/method-10.mm: Likewise.
+       * obj-c++.dg/method-11.mm: Likewise.
+       * obj-c++.dg/method-12.mm: Include objc/Protocol.h instead of
+       ../objc-obj-c++-shared/Protocol1.h.
+       * obj-c++.dg/method-13.mm: Use TestsuiteObject instead of Object.
+       * obj-c++.dg/method-15.mm: Likewise.
+       * obj-c++.dg/method-17.mm: Likewise.
+       * obj-c++.dg/method-19.mm: Updated includes.  ([Root
+       +initialize]): Include this method also for the GNU
+       runtime.  (main): Use objc_getClass() also for the GNU runtime.
+       * obj-c++.dg/method-21.mm: Use TestsuiteObject instead of Object.
+       * obj-c++.dg/method-22.mm: Likewise.
+       * obj-c++.dg/method-23.mm: Likewise.
+       * obj-c++.dg/no-extra-load.mm: Likewise.
+       * objc.dg/objc-fast-4.m: Likewise.
+       * objc.dg/objc-gc-4.m: Likewise.
+       * obj-c++.dg/objc-gc-3.mm: Likewise.
+       * objc.dg/pr18255.m: Include objc/runtime.h.  (main): Use
+       protocol_getMethodDescription() instead of [Protocol
+       -descriptionForInstanceMethod].
+       * objc.dg/pr23214.m ([Object(TS_CAT) -class]): Renamed to test.
+       Made it available with all runtimes.  (main): Call -test instead
+       of -class.
+       * objc.dg/pr45878.m ([Object -isEqual:]): Renamed to testIsEqual,
+       and put into a category.
+       * objc.dg/proto-lossage-2.m: Use TestsuiteObject instead of
+       Object.  Include objc/objc.h.
+       * obj-c++.dg/proto-lossage-2.mm: Likewise.
+       * objc.dg/proto-lossage-3.m: Updated includes.  (MyClass):
+       New. (main): Use protocol_getMethodDescription() instead
+       of [Protocol -descriptionForInstanceMethod] and [Protocol
+       -descriptionForClassMethod].
+       * obj-c++.dg/proto-lossage-3.mm: Likewise.
+       * objc.dg/proto-qual-1.m: Updated includes.  Use the Modern
+       Objective-C runtime API.
+       * obj-c++.dg/proto-qual-1.mm: Likewise. 
+       * objc.dg/property/property-1.m: Use TestsuiteObject instead of
+       Object.
+       * obj-c++.dg/property/property-1.mm: Likewise.
+       * obj-c++.dg/qual-types-1.mm: Likewise.
+       * objc.dg/selector-2.m: Include objc/objc.h instead of
+       ../objc-obj-c++-shared/Object1.h.
+       * obj-c++.dg/selector-2.mm: Likewise.
+       * obj-c++.dg/selector-5.mm: Likewise.
+       * obj-c++.dg/selector-6.mm: Likewise.
+       * objc.dg/set-not-used-1.m: Use TestsuiteObject instead of
+       Object.  Do not include objc/objc-api.h.
+       * obj-c++.dg/set-not-used-1.mm: Likewise.
+       * objc.dg/sizeof-1.m: Use TestsuiteObject instead of Object.
+       * objc.dg/stret-1.m: Likewise.
+       * objc.dg/stret-2.m: Likewise.
+       * obj-c++.dg/super-class-2.mm: Likewise.
+       * objc.dg/super-class-3.m: Likewise.
+       * objc.dg/super-class-4.m: Likewise.
+       * objc.dg/sync-2.m: Likewise.
+       * obj-c++.dg/sync-2.mm: Likewise.
+       * objc.dg/sync-1.m: Include objc/objc.h instead of
+       ../objc-obj-c++-shared/Object1.h.
+       * objc.dg/special/unclaimed-category-1.h (TestClass): Always use
+       'Class' as the type of 'isa'.
+       * objc.dg/special/unclaimed-category-1.m: Use the Modern
+       Objective-C runtime API.  ([TestClass +initialize]): Include this
+       method with the GNU runtime as well.
+       * objc.dg/strings/strings-1.m: Updated includes.
+       * obj-c++.dg/strings/strings-1.mm: Likewise.
+       * obj-c++.dg/strings/const-str-12.mm: Updated to be identical to
+       objc.dg/strings/const-str-12b.m.
+       * obj-c++.dg/template-1.mm: Use TestsuiteObject intead of Object.
+       * obj-c++.dg/template-3.mm: Likewise.
+       * obj-c++.dg/template-4.mm: Likewise.
+       * objc.dg/threedotthree-abi-1.m: Updated includes.  Use Modern
+       Objective-C runtime API.
+       * obj-c++.dg/threedotthree-abi-1.mm: Likewise.
+       * objc.dg/try-catch-1.m: Use TestsuiteObject instead of Object.
+       * obj-c++.dg/try-catch-1.mm: Likewise.
+       * obj-c++.dg/try-catch-2.mm: Likewise.
+       * objc.dg/try-catch-3.m: Likewise.
+       * obj-c++.dg/try-catch-3.mm: Likewise.
+       * objc.dg/try-catch-6.m: Likewise.
+       * objc.dg/try-catch-7.m: Likewise.
+       * obj-c++.dg/try-catch-7.mm: Likewise.
+       * obj-c++.dg/try-catch-8.mm: Likewise.
+       * obj-c++.dg/try-catch-9.mm: Likewise.
+       * objc.dg/try-catch-10.m: Likewise.
+       * obj-c++.dg/try-catch-11.mm: Likewise.
+       * objc.dg/typedef-alias-1.m: Use TestsuiteObject instead of
+       Object.  Include objc/objc.h.
+       * obj-c++.dg/typedef-alias-1.mm: Likewise.
+       * objc.dg/type-size-2.m: Use the Modern Objective-C runtime API.
+       * objc.dg/torture/forward-1.m: Use TestsuiteObject intead of
+       Object.  Use Modern Objective-C runtime API.  Do not use
+       performv::.
+       * objc.dg/torture/trivial.m: Use TestsuiteObject intead of Object.
+       * obj-c++.dg/torture/trivial.mm: Likewise.      
+       * objc.dg/torture/strings/const-str-10.m: Include objc/Object.h
+       instead of ../objc-obj-c++-shared/Object1.h.  Include
+       ../objc-obj-c++-shared/runtime.h.
+       * obj-c++.dg/torture/strings/const-str-10.mm: Likewise.
+       * objc.dg/torture/strings/const-str-11.m: Likewise.
+       * obj-c++.dg/torture/strings/const-str-11.mm: Likewise.
+       * objc.dg/torture/strings/const-str-9.m: Likewise.
+       * obj-c++.dg/torture/strings/const-str-9.mm: Likewise.
+       * objc.dg/torture/strings/const-str-7.m: Use TestsuiteObject
+       instead of Object. Only add _FooClassReference if
+       __NEXT_RUNTIME__.
+       * obj-c++.dg/torture/strings/const-str-7.mm: Likewise.
+       * objc.dg/torture/strings/const-str-8.m: Likewise.
+       * obj-c++.dg/torture/strings/const-str-8.mm: Likewise.
+       * obj-c++.dg/torture/strings/string1.mm: Updated includes and
+       additional sources.
+       * objc.dg/torture/tls/thr-init-3.m: Use TestsuiteObject instead of
+       Object.
+       * obj-c++.dg/torture/tls/thr-init-3.mm: Likewise.
+       * objc.dg/va-meth-1.m: Use TestsuiteObject instead of Object.
+       * obj-c++.dg/va-meth-1.mm: Likewise.
+       * objc.dg/zero-link-1.m: Include objc/Object.h instead of
+       ../objc-obj-c++-shared/Object1.h.
+       * objc.dg/zero-link-3.m: Likewise.      
+       
+2011-06-06  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * obj-c++.dg/try-catch-2.mm: Fixed unterminated comment.
+       
 2011-06-06  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        PR objc-++/48275
index 6c48e0ad1bc4a1af0eab686e5a20ac08eeca3ca9..63d837fb6bcc617a07ea3ae688a52cbee2aaeeeb 100644 (file)
@@ -1,9 +1,9 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object { 
+@interface obj : TestsuiteObject { 
 @public 
   int var; 
 } 
index d2fb78913847c9889717590c3ff93f474be09223..934279ecafd77328503ed3094c40e91208d2e4c4 100644 (file)
@@ -1,9 +1,9 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object { 
+@interface obj : TestsuiteObject { 
 @public 
   int var; 
 } 
index 747deab0d2c599b95b2f658180ec7f6f2284e4d5..60d7822f09bf3a2dbdb4dfbd5ace8339e80d9b57 100644 (file)
@@ -1,9 +1,9 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object {
+@interface obj : TestsuiteObject {
 @public 
   int var; 
 } 
index 4a56b3aa8f6f57dad69f9418657f0bdf1be726e6..90369cc66c0169430953edc871065872d7bc4130 100644 (file)
@@ -1,9 +1,9 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object {
+@interface obj : TestsuiteObject {
 @public 
   int var; 
 } 
index bab40d342ee37d80b3135a69a4e659a9fd599204..3993c5f17653a45e3f52f9d89dc33186a7840a63 100644 (file)
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object {
+@interface obj : TestsuiteObject {
 @public 
   int var;
 }
index bd593c13b5ed4aff7c6b7b768e69af3c8e804c4a..668be27308d0e8778a421484fb3a2203629ad5a9 100644 (file)
@@ -2,27 +2,10 @@
 // { dg-do run }
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-//#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <iostream>
 
-#include <objc/Object.h>
-
-#ifdef __OBJC2__
-@interface Object (ADDITIONS)
-+ initialize;
-- init;
-+ alloc;
-+ new;
-@end
-@implementation Object (ADDITIONS)
-+ initialize  { return self; }
-- init  { return self; }
-+ alloc { return class_createInstance (self, 0); }
-+ new  { return [[self alloc] init]; }
-@end
-#endif
-
-@interface Greeter : Object
+@interface Greeter : TestsuiteObject
 - (void) greet: (const char *)msg;
 @end
 
@@ -38,4 +21,4 @@ main ()
   Greeter *obj = [Greeter new];
   [obj greet: "Hello from Objective-C++"];
 }
-//#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 7b8e861ca661d5cb0e1185d442accb1354585080..92aaae4cfdadf30dbae590395b57e5306bc0d857 100644 (file)
@@ -9,7 +9,7 @@
 
 /* Leave blank lines here to keep warnings on the same lines.  */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <objc/objc.h>
 #include <stdlib.h>
 
@@ -17,7 +17,7 @@
 
 enum Enum { zero, one, two, three, four };
 
-@interface Base: Object {
+@interface Base: TestsuiteObject {
 @public
   unsigned a: 2;
   int b: 3;
index f384f24dd5ac15605842e2a7a4343a90e64cd4ab..e88811ee5b72a193a6f7be6855b02ebf6a578702 100644 (file)
@@ -4,12 +4,12 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Base: Object 
+@interface Base: TestsuiteObject 
 {
     int full;
     int full2: 32;
@@ -77,4 +77,4 @@ int main(void) {
 
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 35c32ee98a4e78caf16c690fa997dcfc2c9b5f5f..9ffa398989c0e9bab416cb88fc5114b4f3c26105 100644 (file)
@@ -4,7 +4,7 @@
 /* { dg-do run } */
 /* { dg-options "-Wpadded" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 #include <stdlib.h>
 #include <string.h>
@@ -13,7 +13,7 @@
 
 enum Enum { one, two, three, four };
 
-@interface Base: Object {
+@interface Base: TestsuiteObject {
   unsigned a: 2;
   int b: 3;
   enum Enum c: 4;
index 2ab702a4dfb83a62c9640b5b5f8dfc7b321e1f1e..9e68c2ba6e5108a99fbd178653b6e045e49a0ed6 100644 (file)
@@ -3,7 +3,7 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include <objc/objc-api.h>
+#include "../objc-obj-c++-shared/runtime.h"
 
 @protocol MyProto1
 +(void)doItClass1;
index 3d85983991e04cda17cb5bf31a098e4852764af6..b95af5de1bc6cf1630f24ea506ff3217f2f8ca07 100644 (file)
@@ -1,22 +1,22 @@
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @protocol Foo
 - (id)meth1;
 - (id)meth2:(int)arg;
 @end
 
-@interface Derived1: Object
+@interface Derived1: TestsuiteObject
 @end
 
-@interface Derived2: Object
+@interface Derived2: TestsuiteObject
 + (Derived1 *)new;
 @end
 
 id<Foo> func(void) {
-  Object *o = [Object new];
-  return o;  /* { dg-warning "class .Object. does not implement the .Foo. protocol" } */
+  TestsuiteObject *o = [TestsuiteObject new];
+  return o;  /* { dg-warning "class .TestsuiteObject. does not implement the .Foo. protocol" } */
 }
 
 @implementation Derived2
index 37feff0a72302f976a5b92977432cf6d4b0e2928..1585937cb50cbbacb092b203c3668c9b39a342c2 100644 (file)
@@ -1,10 +1,10 @@
 /* { dg-do compile } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Derived: Object
+@interface Derived: TestsuiteObject
 @end
 
-extern Object* foo(void);
+extern TestsuiteObject* foo(void);
 static Derived *test(void)
 {
    Derived *m = foo();   /* { dg-warning "initialization from distinct Objective\\-C type" } */
index 3a919d5d04cb6b93748e096461d6a0dae2351cbd..5e32cfe92338539d40e8d1d81a2daada23a695cb 100644 (file)
@@ -1,14 +1,14 @@
 /* When assigning function pointers, allow for covariant return types
    and contravariant argument types.  */
 /* { dg-do compile } */
-#include <objc/Object.h>
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @class Derived;
 
-Object *ExternFunc (Object *filePath, Object *key);
-typedef id FuncSignature (Object *arg1, Derived *arg2);
+TestsuiteObject *ExternFunc (TestsuiteObject *filePath, TestsuiteObject *key);
+typedef id FuncSignature (TestsuiteObject *arg1, Derived *arg2);
 
-@interface Derived: Object
+@interface Derived: TestsuiteObject
 + (void)registerFunc:(FuncSignature *)function;
 @end
 
index 079140ac408506f3626cbf1cfb08d39eb4e0881f..6c571325ad85e1b96215ca8d6616e54514f3f734 100644 (file)
@@ -2,9 +2,9 @@
 
 /* Another gimplifier ICE... */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface MyView: Object {
+@interface MyView: TestsuiteObject {
   int _frame;
 }
 - (void)_finalize;
index 6e0c3fded4b0349e3114a242321843cee57583d5..129215087eb0ff4dd27864aed20708b074225835 100644 (file)
@@ -3,7 +3,7 @@
 // { dg-options "-fno-objc-call-cxx-cdtors" }
 // { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } 
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 #define CHECK_IF(expr) if(!(expr)) abort()
 
@@ -17,7 +17,7 @@ struct cxx_struct {
   }
 };
 
-@interface Manip : Object {
+@interface Manip : TestsuiteObject {
   int c;
   cxx_struct s;   // { dg-warning "user-defined destructor" }
                   // { dg-warning "constructors and destructors will not be invoked" "" { target *-*-* } 22 }
@@ -40,4 +40,4 @@ int main (void)
   [obj manipulate_ivars];
   [obj free];
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 8f836ce9061a201ac06a5eebb253cb8327836ab7..22ab118df822baa67599dc26f19239a7d03faf0f 100644 (file)
@@ -6,7 +6,7 @@
 // { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
 // { dg-options "-fobjc-call-cxx-cdtors" }
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 #define CHECK_IF(expr) if(!(expr)) abort()
 
@@ -31,7 +31,7 @@ struct boo: bar {
   }
 };
 
-@interface Baz: Object {
+@interface Baz: TestsuiteObject {
 @public
   bar aa;
 }
@@ -76,4 +76,4 @@ int main (void)
   [foo free];
   CHECK_IF(!ctor1_called && !ctor2_called && dtor1_called);
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index a576bbd4f5801d99a8b28e63fd38aba6ed3ad33f..eb0c377dad9b57811a951f063027ff2baa649ccc 100644 (file)
@@ -3,7 +3,7 @@
 
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 @class Derived;
@@ -18,7 +18,7 @@ Derived *CxxClass::get_instance(int offs) {
   return inst[offs];
 }
 
-@interface Derived: Object {
+@interface Derived: TestsuiteObject {
   int value;
 }
 -(id)initWithValue:(int)val;
@@ -51,4 +51,4 @@ int main(void) {
 
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index c793b282f39110833e5b0552c291d587abd07fd5..6444ebc3aadb8d35e46e4878b7c842a414c41b50 100644 (file)
@@ -3,11 +3,11 @@
 
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 #include <iostream>
 #include <string>
 
-@interface iostream: Object
+@interface iostream: TestsuiteObject
 @end
 
 int main(void) {
index 0e8b26c72a6485a6c4ba1e404284ef4c6ac12faa..23ba8f91ef602e468b56d84b9c17cb004d9896db 100644 (file)
@@ -3,13 +3,13 @@
 /* { dg-options "" } */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 #include <objc/objc.h>
 
 extern "C" void abort(void);
 
-@interface A : Object
+@interface A : TestsuiteObject
 {
   @public
     int a;
@@ -40,4 +40,4 @@ int main()
   
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index b973abe2dbdcf9adfd2c2fbc2dc0f226dee481c5..4f34644481e4c981bef6d12e5cb44eab5bc51c0a 100644 (file)
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
-
-#ifdef __NEXT_RUNTIME__
-#define METHOD Method
-#else
-#include <objc/objc-api.h>
-#define METHOD Method_t
-#define method_get_types(M) (M)->method_types
-#endif
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
+#include "../objc-obj-c++-shared/runtime.h"
 
 #include <stdio.h>
 #include <stdlib.h>
 
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface Foo: Object
+@interface Foo: TestsuiteObject
 typedef struct { float x, y; } XXPoint;
 typedef struct { float width, height; } XXSize;
 typedef struct _XXRect { XXPoint origin; XXSize size; } XXRect;
@@ -74,28 +66,28 @@ unsigned offs1, offs2, offs3, offs4, offs5, offs6, offs7;
 
 int main(void) {
   Foo *foo = [[Foo alloc] init];
-  Class fooClass = objc_get_class("Foo");
-  METHOD meth;
+  Class fooClass = objc_getClass("Foo");
+  Method meth;
   const char *string;
 
-  meth = class_get_instance_method(fooClass, @selector(setRect:withInt:));
+  meth = class_getInstanceMethod(fooClass, @selector(setRect:withInt:));
   offs2 = 9999;
-  sscanf(method_get_types(meth), "@%u@%u:%u{_XXRect={?=ff}{?=ff}}%ui%u", &offs1, &offs2, &offs3,
+  sscanf(method_getTypeEncoding(meth), "@%u@%u:%u{_XXRect={?=ff}{?=ff}}%ui%u", &offs1, &offs2, &offs3,
       &offs4, &offs5);
   CHECK_IF(!offs2);
   [foo setRect:my_rect withInt:123];
 
-  meth = class_get_instance_method(fooClass, @selector(char:float:double:long:));
+  meth = class_getInstanceMethod(fooClass, @selector(char:float:double:long:));
   offs2 = 9999;
   if (sizeof (long) == 8)
     string = "v%u@%u:%uc%uf%ud%uq%u";
   else
     string = "v%u@%u:%uc%uf%ud%ul%u";
-  sscanf(method_get_types(meth), string, &offs1, &offs2, &offs3,  
+  sscanf(method_getTypeEncoding(meth), string, &offs1, &offs2, &offs3,  
         &offs4, &offs5, &offs6, &offs7);
   CHECK_IF(!offs2);
   [foo char:'c' float:2.3 double:3.5 long:2345L];
 
   return 0;
 }  
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 18db3f3dd8c6e6470d9a5d3476c63847fcfed5a8..2924e50261161f952f49510265bcd207379c69c2 100644 (file)
@@ -2,26 +2,19 @@
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
-#include "../objc-obj-c++-shared/Protocol1.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "../objc-obj-c++-shared/runtime.h"
+#include <objc/Protocol.h>
+
 #ifdef __cplusplus
 #define ProtoBool bool
 #else
 #define ProtoBool _Bool
 #endif
 
-#ifdef __NEXT_RUNTIME__
-#define METHOD Method
-#else
-#include <objc/objc-api.h>
-#define METHOD Method_t
-#define method_get_types(M) (M)->method_types
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-
 #define CHECK_IF(expr) if(!(expr)) abort()
 
 enum Enum {
@@ -43,7 +36,7 @@ typedef struct _XXRect { XXPoint origin; XXSize size; struct _XXRect *next; } XX
 
 Protocol *proto = @protocol(Proto);
 struct objc_method_description *meth;
-
+struct objc_method_description meth_object;
 unsigned totsize, offs0, offs1, offs2, offs3, offs4, offs5, offs6, offs7;
 
 static void scan_initial(const char *pattern) {
@@ -56,7 +49,9 @@ static void scan_initial(const char *pattern) {
 int main(void) {
   const char *string;
 
-  meth = [proto descriptionForInstanceMethod: @selector(char:float:double:unsigned:short:long:)];
+  meth_object = protocol_getMethodDescription (proto,
+                  @selector(char:float:double:unsigned:short:long:), YES, YES);
+  meth = &meth_object;
   if (sizeof (long) == 8)
     string = "v%u@%u:%uc%uf%ud%uI%us%uq%u";
   else
@@ -65,11 +60,16 @@ int main(void) {
   CHECK_IF(offs3 == offs2 + sizeof(int) && offs4 == offs3 + sizeof(float));
   CHECK_IF(offs5 == offs4 + sizeof(double) && offs6 == offs5 + sizeof(unsigned));
   CHECK_IF(offs7 == offs6 + sizeof(int) && totsize == offs7 + sizeof(long));
-  meth = [proto descriptionForInstanceMethod: @selector(setRect:withBool:withInt:)];
+  meth_object = protocol_getMethodDescription (proto,
+                 @selector(setRect:withBool:withInt:), YES, YES);
+  meth = &meth_object;
   scan_initial("^v%u@%u:%u{_XXRect={?=ff(__XXAngle=II)}{?=dd}^{_XXRect}}%uB%ui%u");
   CHECK_IF(offs3 == offs2 + sizeof(XXRect) && offs4 == offs3 + sizeof(int));
   CHECK_IF(totsize == offs4 + sizeof(int));
-  meth = [proto descriptionForClassMethod: @selector(getEnum:enum:bool:)];
+  meth_object = protocol_getMethodDescription (proto,
+                 @selector(getEnum:enum:bool:), YES, NO);
+  meth = &meth_object; 
+
   /* Here we have the complication that 'enum Enum' could be encoded
      as 'i' on __NEXT_RUNTIME_, and (most likely) as 'I' on the GNU
      runtime.  So we get the @encode(enum Enum), then put it into the
@@ -80,16 +80,17 @@ int main(void) {
     char pattern[1024];
 
     sprintf (pattern, "^%s%%u@%%u:%%u^{?=ff(__XXAngle=II)}%%u%s%%uc%%u",
-            @encode(enum Enum), @encode(enum Enum));
+            @encode(enum Enum), @encode(enum Enum));
     scan_initial(pattern);
   }
 
-
   CHECK_IF(offs3 == offs2 + sizeof(XXPoint *) && offs4 == offs3 + sizeof(enum Enum));
   CHECK_IF(totsize == offs4 + sizeof(int));  /* 'ObjCBool' is really 'char' */
-  meth = [proto descriptionForClassMethod: @selector(getBool:)];         
+  meth_object = protocol_getMethodDescription (proto,
+                 @selector(getBool:), YES, NO);
+  meth = &meth_object;
   scan_initial("^^B%u@%u:%u^*%u");
   CHECK_IF(totsize == offs2 + sizeof(ObjCBool **));
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 987d4a8ae2e5234428d73179a92712eb9613191f..9a1e65f92766ae50d422b759bbe2b6690b63e1bf 100644 (file)
@@ -3,11 +3,8 @@
 /* { dg-options "" } */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
-#ifndef __NEXT_RUNTIME__
-#include <objc/objc-api.h>
-#endif
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
+#include "../objc-obj-c++-shared/runtime.h"
 
 #include <stdlib.h>
 #include <string.h>
@@ -28,7 +25,7 @@ struct Nested {
   struct Innermost innermost;
 };
 
-@interface Int1: Object {
+@interface Int1: TestsuiteObject {
   signed char a, b;
   Int2 *int2;
   struct Nested nested;
@@ -47,28 +44,28 @@ struct Nested {
 @implementation Int2
 @end
 
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-Ivar *ivar;
-#else
+#if defined(__NEXT_RUNTIME__) && !defined(NEXT_OBJC_USE_NEW_INTERFACE)
 struct objc_ivar *ivar;
+#else
+Ivar *ivar;
 #endif
 
 static void check_ivar(const char *name, const char *type) {
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  CHECK_IF(!strcmp(ivar_getName(*ivar), name));
-  CHECK_IF(!strcmp(ivar_getTypeEncoding(*ivar), type));
-#else
+#if defined(__NEXT_RUNTIME__) && !defined(NEXT_OBJC_USE_NEW_INTERFACE)
   CHECK_IF(!strcmp(ivar->ivar_name, name));
   CHECK_IF(!strcmp(ivar->ivar_type, type));
+#else
+  CHECK_IF(!strcmp(ivar_getName(*ivar), name));
+  CHECK_IF(!strcmp(ivar_getTypeEncoding(*ivar), type));
 #endif
   ivar++;
 }
 
 int main(void) {
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  ivar = class_copyIvarList ((Class)objc_get_class("Int1"), NULL);
+#if defined(__NEXT_RUNTIME__) && !defined(NEXT_OBJC_USE_NEW_INTERFACE)
+  ivar = ((Class)objc_getClass("Int1"))->ivars->ivar_list;
 #else
-  ivar = ((Class)objc_get_class("Int1"))->ivars->ivar_list;
+  ivar = class_copyIvarList ((Class)objc_getClass("Int1"), NULL);
 #endif
   check_ivar("a", "c");
   check_ivar("b", "c");
@@ -76,14 +73,14 @@ int main(void) {
   check_ivar("nested", 
     "{Nested=\"a\"f\"b\"f\"next\"@\"Int1\"\"innermost\"{Innermost=\"a\"C\"b\"C\"encl\"^{Nested}}}");
     
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  ivar = class_copyIvarList ((Class)objc_get_class("Int2"), NULL);
+#if defined(__NEXT_RUNTIME__) && !defined(NEXT_OBJC_USE_NEW_INTERFACE)
+  ivar = ((Class)objc_getClass("Int2"))->ivars->ivar_list;
 #else
-  ivar = ((Class)objc_get_class("Int2"))->ivars->ivar_list;
+  ivar = class_copyIvarList ((Class)objc_getClass("Int2"), NULL);
 #endif
   check_ivar("innermost", "^{Innermost=CC^{Nested}}");
   check_ivar("base", "@\"Int1\"");
   
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 523c7ce02e8678836c16d6904cbffb9db9cb0454..74c58ab95c8679815be12ffe6be5f3629f5acfa6 100644 (file)
@@ -9,21 +9,13 @@
 
 /* Contributed by Alexander Malmberg <alexander@malmberg.org>  */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
+#include "../objc-obj-c++-shared/runtime.h"
 #include <stdlib.h>
 #include <stdio.h>
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-#ifdef __NEXT_RUNTIME__
-#define METHOD Method
-#else
-#include <objc/objc-api.h>
-#define METHOD Method_t
-#define method_get_types(M) (M)->method_types
-#endif
-
-@interface Test : Object
+@interface Test : TestsuiteObject
 { float j; }
 -(void) test2: (int [5])a with: (int [])b;
 -(id) test3: (Test **)b; /* { dg-message "previous declaration of .\\-\\(id\\)test3:\\(Test \\*\\*\\)b." } */
@@ -47,8 +39,8 @@ int offs1, offs2, offs3, offs4, offs5, offs6;
 
 int main(int argc, char **argv)
 {
-  Class testClass = objc_get_class("Test");
-  METHOD meth;
+  Class testClass = objc_getClass("Test");
+  Method meth;
 
   cc[0] = [Test new];
   CHECK_IF (bb[3] == 3);
@@ -58,16 +50,16 @@ int main(int argc, char **argv)
   [*c test2: bb with: bb + 5];
   CHECK_IF (bb[3] == 5);
 
-  meth = class_get_instance_method(testClass, @selector(test2:with:));
+  meth = class_getInstanceMethod(testClass, @selector(test2:with:));
   offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = -1;
-  sscanf(method_get_types(meth), "v%d@%d:%d[%di]%d^i%d", &offs1, &offs2, &offs3,
+  sscanf(method_getTypeEncoding(meth), "v%d@%d:%d[%di]%d^i%d", &offs1, &offs2, &offs3,
       &offs4, &offs5, &offs6);
   CHECK_IF (!offs2 && offs4 == 5 && offs3 > 0);
   CHECK_IF (offs5 == 2 * offs3 && offs6 == 3 * offs3 && offs1 == 4 * offs3);
   
-  meth = class_get_instance_method(testClass, @selector(test3:));
+  meth = class_getInstanceMethod(testClass, @selector(test3:));
   offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = -1;
-  sscanf(method_get_types(meth), "v%d@%d:%d[%d[%d{Test=#f}]]%d", &offs1, &offs2, &offs3,
+  sscanf(method_getTypeEncoding(meth), "v%d@%d:%d[%d[%d{Test=#f}]]%d", &offs1, &offs2, &offs3,
       &offs4, &offs5, &offs6);
   CHECK_IF (!offs2 && offs4 == 3 && offs5 == 4 && offs3 > 0);
   CHECK_IF (offs6 == 2 * offs3 && offs1 == 3 * offs3);
index b835dc73ee0bd494833358bc66a93f56d29d6af8..fbce2f2721133002d361bc5269836a9d1c281997 100644 (file)
@@ -9,10 +9,10 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 // ObjectiveC class header
-@interface ObjCclass : Object {
+@interface ObjCclass : TestsuiteObject {
 }
 -(void)method1;
 -(void)method2;
@@ -64,4 +64,3 @@ void CPPclass::function1()
        abort ();
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index 989831f8482a250732b2346f7e66c44fd529816b..c66d39ebca2cd98abe9c1990212e300ee4be232c 100644 (file)
@@ -9,10 +9,10 @@
 /* This test checks the syntax @catch (...) which catches any
    exceptions.  Check that code using it runs correctly.  */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
-@interface MyObject : Object
+@interface MyObject : TestsuiteObject
 @end
 
 @implementation MyObject
@@ -47,7 +47,7 @@ int main (void)
   if (test ([MyObject new]) != 5)
     abort ();
 
-  if (test ([Object new]) != 6)
+  if (test ([TestsuiteObject new]) != 6)
     abort ();
 
   return 0;
index fdfbcbd0c18c4e3a63842ac66f2b40b020a6bae4..03ae9ebd9cc268629d337423a7fd6905d1a61007 100644 (file)
@@ -6,18 +6,18 @@
 /* { dg-do assemble { target *-*-darwin* } } */
 /* { dg-options "-mfix-and-continue" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Foo: Object
-+ (Object *)indexableFileTypes;
+@interface Foo: TestsuiteObject
++ (TestsuiteObject *)indexableFileTypes;
 @end
 
 @implementation Foo
-+ (Object *)indexableFileTypes
++ (TestsuiteObject *)indexableFileTypes
 {
-  static Object *fileTypes = 0;
+  static TestsuiteObject *fileTypes = 0;
   if(!fileTypes) {
-    fileTypes = [Object new];
+    fileTypes = [TestsuiteObject new];
   }
   return fileTypes;
 }
index d6b4db21777b38bf39fac90cb06133165b765cc4..812989a42b2426ce5c1feefa2d56723a2a72c3be 100644 (file)
@@ -1,9 +1,8 @@
 /* { dg-do compile } */
 
-#import "../objc-obj-c++-shared/Object1.h"
-#include <objc/objc-api.h>
+#import "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object
+@interface obj : TestsuiteObject
 {
 @public
   int v1;
index c7e3bcc3a22e209f27a5857c4e8dae081e4446b9..c73cd384c412fc9fc2dba1db45b127b353a23a52 100644 (file)
@@ -4,9 +4,9 @@
 /* { dg-do compile } */
 /* { dg-skip-if "" { *-*-* } { "-fnext-runtime" } { "" } } */
 
-#include <objc/Object.h>
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface FooBar: Object
+@interface FooBar: TestsuiteObject
 - (void)boo;
 @end
 
index 429fce3e80b75752751ed16a32a11c3f818bce35..56e48d791d4d90ba7ed6b1c908c933c45344d30b 100644 (file)
@@ -4,10 +4,10 @@
 /* { dg-do run } */
 /* { dg-skip-if "" { *-*-* } { "-fnext-runtime" } { "" } } */
 
-#include <objc/Object.h>
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
-@interface FooBar: Object
+@interface FooBar: TestsuiteObject
 - (void)boo;
 @end
 
index 4b93df8c485554389b89b2da680ff958a12ad03f..4501d01a11e605d36771671817b0aa5aa7b035a6 100644 (file)
@@ -1,28 +1,34 @@
-/* Ensure there are no bizarre difficulties with accessing the 'isa' field of
-  objects.  This field is named differently between GNU and NeXT runtimes so
-  accessed via the CLASSPTRFIELD() macro defined in next-mapping.h */
+/* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects.  */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include "../objc-obj-c++-shared/runtime.h"
 
-@interface Object (Test)
+@interface TestsuiteObject (Test)
 - (Class) test1: (id)object;
 @end
 
-@interface Derived: Object
+@interface Derived: TestsuiteObject
 - (Class) test2: (id)object;
 @end
 
-@implementation Object (Test)
+@implementation TestsuiteObject (Test)
 
 Class test1(id object) {
-  Class cls = CLASSPTRFIELD(object);
-  return cls;
+#ifdef __NEXT_RUNTIME__
+    Class cls = object->isa;
+#else
+    Class cls = object->class_pointer;
+#endif
+    return cls;
 }
 - (Class) test1: (id)object {
-  Class cls = CLASSPTRFIELD(object);
-  return cls;
+#ifdef __NEXT_RUNTIME__
+    Class cls = object->isa;
+#else
+    Class cls = object->class_pointer;
+#endif
+    return cls;
 }
 
 @end
@@ -30,18 +36,29 @@ Class test1(id object) {
 @implementation Derived
 
 Class test2(id object) {
-  Class cls = CLASSPTRFIELD(object);
-  return cls;
+#ifdef __NEXT_RUNTIME__
+    Class cls = object->isa;
+#else
+    Class cls = object->class_pointer;
+#endif
+    return cls;
 }
 - (Class) test2: (id)object {
-  Class cls = CLASSPTRFIELD(object);
-  return cls;
+#ifdef __NEXT_RUNTIME__
+    Class cls = object->isa;
+#else
+    Class cls = object->class_pointer;
+#endif
+    return cls;
 }
 
 @end
 
 Class test3(id object) {
-  Class cls = CLASSPTRFIELD(object);
-  return cls;
+#ifdef __NEXT_RUNTIME__
+    Class cls = object->isa;
+#else
+    Class cls = object->class_pointer;
+#endif
+    return cls;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index 322de2fd470f72489807fb02ead248b79941ec3b..00b336626bdbe211af977ac152ae994cab69a2ad 100644 (file)
@@ -1,9 +1,9 @@
 /* Allow for an optional semicolon following the ivar block.  */
 /* Contributed by: Ziemowit Laski <zlaski@apple.com>.  */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Tink : Object {
+@interface Tink : TestsuiteObject {
 @private
  unsigned long mCode[4];
 };
index 3cd4d1567fb114e4c1c7a267142c16b4918937e8..33879ad17a4c9ae67cf7032146047e7e8beb8700 100644 (file)
@@ -3,13 +3,13 @@
 /* { dg-do compile } */
 /* { dg-options "-Wpadded -Wpacked -Wabi" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Derived1: Object
+@interface Derived1: TestsuiteObject
 { }
 @end
 
-@interface Derived2: Object
+@interface Derived2: TestsuiteObject
 - (id) foo;
 @end
 
index 6848572873ce961d03795342d9268605df5db505..f1c39b1c340baa94f000b772a3b4aae54a74b922 100644 (file)
@@ -5,9 +5,9 @@
 
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Sprite: Object {
+@interface Sprite: TestsuiteObject {
   int sprite, spree;
 }
 + (void)setFoo:(int)foo;
index 5eaf38996de2afdf23ba6d08b34893182d18daad..6b969249e06841674218567079c83bf3412b0867 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 class MyWidget {
@@ -15,13 +15,13 @@ MyWidget gWidget;
 - (MyWidget *)widget;
 @end
 
-@interface Foo: Object
+@interface Foo: TestsuiteObject
 @end
 
 @interface Bar: Foo <MyProto>
 @end
 
-@interface Container: Object
+@interface Container: TestsuiteObject
 + (MyWidget *)elementForView:(Foo *)view;
 @end
 
@@ -38,7 +38,8 @@ MyWidget gWidget;
 + (MyWidget *)elementForView:(Foo *)view
 {
     MyWidget *widget = 0;
-    if ([view conformsTo:@protocol(MyProto)]) {
+    if (class_conformsToProtocol (object_getClass (view),
+                                 @protocol(MyProto))) {
         widget = [(Foo <MyProto> *)view widget];
     }
     return widget;
@@ -55,4 +56,3 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index cac5d9791a9551145e72c52a7596d08a108397c3..0c4ce56d3433c0cbc4c03a98543fcda73a48ff64 100644 (file)
@@ -3,17 +3,17 @@
 /* { dg-options "" } */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface Int1: Object
+@interface Int1: TestsuiteObject
 + (int) classMeth;
 - (int) instanceMeth;
 @end
 
-@interface Int2: Object
+@interface Int2: TestsuiteObject
 + (int) classMeth;      
 - (int) instanceMeth;
 @end
@@ -43,4 +43,4 @@ int main(void) {
   CHECK_IF([(Int1Alias *)int2typedef instanceMeth] == 1697);
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 74192e80f792341bc3ff75c876f9bc0e22307816..29e739a9128f649fbd12ee8b0482a4e7e1ebba4d 100644 (file)
@@ -5,16 +5,16 @@
 /* { dg-do compile } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-typedef Object ObjectTypedef1;
+typedef TestsuiteObject ObjectTypedef1;
 typedef ObjectTypedef1 ObjectTypedef2;
 @compatibility_alias ObjectAlias1 ObjectTypedef2;
 @compatibility_alias ObjectAlias2 ObjectAlias1;
 typedef ObjectAlias2 ObjectTypedef3;
 
 void foo(void) {
-  id obj = [Object new];
+  id obj = [TestsuiteObject new];
   obj = [ObjectTypedef1 new];
   obj = [ObjectTypedef2 new];
   obj = [ObjectTypedef3 new];
@@ -23,7 +23,7 @@ void foo(void) {
 }
 
 /* { dg-final { scan-assembler "_OBJC_ClassRefs_0"  { target { *-*-darwin* && { ! lp64 } } } } } */
-/* { dg-final { scan-assembler "_OBJC_ClassRef_Object"  { target { *-*-darwin* && { lp64 } } } } } */
+/* { dg-final { scan-assembler "_OBJC_ClassRef_TestsuiteObject"  { target { *-*-darwin* && { lp64 } } } } } */
 /* { dg-final { scan-assembler-not "_OBJC_ClassRefs_1" { target { *-*-darwin* && { ! lp64 } } } } } */
 /* { dg-final { scan-assembler-not "_OBJC_ClassRef_ObjectTypedef" { target { *-*-darwin* && { lp64 } } } } } */
 /* { dg-final { scan-assembler-not "_OBJC_ClassRef_ObjectAlias" { target { *-*-darwin* && { lp64 } } } } } */
index 7c6916b320df151e33118a2b9afe0690939bdb5f..c1f2a39dfa7f9a31761a6d138c6afd81a57f2a19 100644 (file)
@@ -3,7 +3,7 @@
 /* { dg-options "-Wstrict-selector-match" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Protocol1.h"
+#include <objc/Protocol.h>
 
 @interface Base
 - (unsigned)port;
index 6938f7d349a26465158c419165a9056c53d46fbb..ee167bde36ff75d4c94dc674a4e02db53b4a56a6 100644 (file)
@@ -1,11 +1,11 @@
 /* Check if finding multiple signatures for a method is handled gracefully.  Author:  Ziemowit Laski <zlaski@apple.com>  */
 /* { dg-options "-Wstrict-selector-match" } */
 /* { dg-do compile } */
-
-#include "../objc-obj-c++-shared/Object1.h"
+#include <objc/objc.h>
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @interface Class1
-- (void)setWindow:(Object *)wdw;
+- (void)setWindow:(TestsuiteObject *)wdw;
 @end
 
 @interface Class2
 @end
 
 id foo(void) {
-  Object *obj = [[Object alloc] init];
+  TestsuiteObject *obj = [[TestsuiteObject alloc] init];
   id obj2 = obj;
-  [obj setWindow:nil];  /* { dg-warning ".Object. may not respond to .\\-setWindow:." } */
+  [obj setWindow:nil];  /* { dg-warning ".TestsuiteObject. may not respond to .\\-setWindow:." } */
        /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 18 } */
        /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 18 } */
        /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 18 } */
   [obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
-       /* { dg-message "using .\\-\\(void\\)setWindow:\\(Object \\*\\)wdw." "" { target *-*-* } 8 } */
+       /* { dg-message "using .\\-\\(void\\)setWindow:\\(TestsuiteObject \\*\\)wdw." "" { target *-*-* } 8 } */
        /* { dg-message "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 12 } */
 
   return obj;
index 860aad63eabef75d48223338d3410919b8af1a93..f3cef2565a82e1a4d6f5f4742620a1ce7b998aca 100644 (file)
@@ -3,10 +3,10 @@
 /* { dg-options "-Wstrict-selector-match" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @protocol MyObject
-- (id)initWithData:(Object *)data;
+- (id)initWithData:(TestsuiteObject *)data;
 @end
 
 @protocol SomeOther
@@ -17,9 +17,9 @@
 - (id)initWithData:(id<MyObject, MyCoding>)data;
 @end
 
-@interface NTGridDataObject: Object <MyCoding>
+@interface NTGridDataObject: TestsuiteObject <MyCoding>
 {
-    Object<MyCoding> *_data;
+    TestsuiteObject<MyCoding> *_data;
 }
 + (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data;
 @end
@@ -32,7 +32,7 @@
 {
     NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
      /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 33 } */
-     /* { dg-message "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 9 } */
+     /* { dg-message "using .\\-\\(id\\)initWithData:\\(TestsuiteObject \\*\\)data." "" { target *-*-* } 9 } */
      /* { dg-message "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 17 } */
      /* { dg-message "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 13 } */
 
index cb60473b3456e3ce98a5f54adb160f215f562d6b..3566a652bc23105a0a7f6f25fae99192d469108d 100644 (file)
@@ -4,14 +4,14 @@
    take place).  */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 #define CHECK_IF(expr) if(!(expr)) abort()
 
 static double d = 4.5920234e2;
 
-@interface Foo : Object
+@interface Foo : TestsuiteObject
 -(void) brokenType: (int)x floatingPoint: (double)y;
 @end
 
@@ -30,4 +30,4 @@ int main(void)
        [foo brokenType: (int)d floatingPoint: d];
        return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 5dca80494ceb02ea9aa2ed5231bb7347977e345b..225becae0f1586ff22f32e135f356dc77960905d 100644 (file)
@@ -4,12 +4,8 @@
 /* Author: Ziemowit Laski <zlaski@apple.com>.  */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-
-#ifndef __NEXT_RUNTIME__
-#include <objc/objc-api.h>
-#endif
+#include "../objc-obj-c++-shared/runtime.h"
 
 #include <stdlib.h>
 #include <string.h>
 @end
 
 @implementation Root
-#ifdef __NEXT_RUNTIME__
 + initialize { return self; }
-#endif
 - (const char *) method1 { return "Root::-method1"; }
 + (const char *) method2 { return "Root::+method2"; }
 @end
 
 int main(void)
 {
-  Class obj = objc_get_class("Derived");
+  Class obj = objc_getClass("Derived");
 
   /* None of the following should elicit compiler-time warnings.  */
 
@@ -75,4 +69,4 @@ int main(void)
 
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 117d420e14ae1a11e5d6e5d6c30a86382420af89..e4973c34e7df45b11cb61b18e96b247e08ca61e4 100644 (file)
@@ -4,7 +4,8 @@
 
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include "../objc-obj-c++-shared/runtime.h"
 
 @class NSString;
 
 + (BOOL)usesUserKeyEquivalents;
 @end
 
-@interface NSMenuItem : Object <NSMenuItem> {
+@interface NSMenuItem : TestsuiteObject <NSMenuItem> {
   @private
   id _menu;
 }
 @end
 
-@interface NSResponder : Object <NSMenuItem>
+@interface NSResponder : TestsuiteObject <NSMenuItem>
 {
   id _nextResponder;
 }
 @end
 
-@interface Object(NSMenuValidation)
+@interface TestsuiteObject(NSMenuValidation)
 - (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem;
 @end
 
index 898768d6d1c16d73987d9382c66fb518d66e0a1f..d9332beb073347860a7cf5c38d85b9cdaeae5f32 100644 (file)
@@ -2,9 +2,9 @@
 /* { dg-do compile } */
 /* { dg-options "-Wreturn-type -Wextra" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Foo: Object
+@interface Foo: TestsuiteObject
 - (id) meth1;
 - (void) meth2;
 @end
@@ -14,7 +14,7 @@ extern int bar;
 @implementation Foo
 - (id) meth1 {
   if (bar)
-    return [Object new];
+    return [TestsuiteObject new];
   return; /* { dg-error "return.statement with no value" } */
 }
 - (void) meth2 {
index 610c178e92a0631bf14cebabc1ebf7cc88939358..587f3bbb9a3e462a8ec863cbe9f52a68a843d9ce 100644 (file)
@@ -1,15 +1,14 @@
 /* Ensure that overload resolution does not produce warnings as
    side-effects.  */
 /* { dg-do run } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.mm" } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 #define CHECK_IF(E) if(!(E)) abort ()
 
-@interface MyCursor: Object
+@interface MyCursor: TestsuiteObject
 + (MyCursor *)crosshairCursor;
 @end
 
index 2b59cb8fc668646bb1b4f44c0403d932a0ff617f..de8de844c45172ece21e3a442809b61847a6dbc4 100644 (file)
@@ -2,10 +2,9 @@
    they should.  */
 /* { dg-do run } */
 /* { dg-options "-O2" } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.mm" } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <string.h>
 #include <stdlib.h>
 
@@ -19,7 +18,7 @@ char *strcpy_like_callee(const char *s) {
 typedef char io_string_t[512];
 typedef char *(func_type)(const char *);
 
-@interface DeviceObject: Object
+@interface DeviceObject: TestsuiteObject
 - (void) func:(func_type)func stucPathInIORegistry:(io_string_t)ioRegPath;
 @end
 @implementation DeviceObject
index 0e099227cd102c20084bdc48bb3f903a86dc5aa8..9cc99995bde667f2e23af1c07cfc3682bc3034d8 100644 (file)
@@ -3,7 +3,7 @@
 
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @class NotKnown;
 
index 1663ebc2132ffeb6395487a8e6d7dab951739488..815ee789e412883508270bb251b2345f2400d4b9 100644 (file)
@@ -2,10 +2,10 @@
 
 // { dg-do compile }
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 #include <iostream>
 
-@interface Greeter : Object
+@interface Greeter : TestsuiteObject
 - (void) greet: (const char *)msg;
 @end
 
index c0249e7a96229bf7291136831460662179ece2a1..430e5832eb6c02e5be2d250be227f4cf2a827cf8 100644 (file)
@@ -6,11 +6,12 @@
 /* { dg-options "-fobjc-gc" } */
 /* { dg-prune-output "cc1objplus: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include "../objc-obj-c++-shared/runtime.h"
 
 @class MyWindow;
 
-@interface MyDocument : Object {
+@interface MyDocument : TestsuiteObject {
     MyWindow *_window;
 }
 @end
@@ -29,7 +30,7 @@
 @end
 
 @interface MyTextFileDocument : MyFileDocument {
-    Object *_textStorage;
+    TestsuiteObject *_textStorage;
     struct __tfdFlags {
         unsigned int immutable:1;
         unsigned int lineEnding:2;
index 4447946d1ab5343ba5be693e4af31d9e24a075da..57a171337c6209538924b496525867466cf50577 100644 (file)
@@ -1,11 +1,10 @@
 /* This program tests use of property provided setter/getter functions. */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../../objc-obj-c++-shared/Object1.mm" } */
 
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 
-@interface Bar : Object
+@interface Bar : TestsuiteObject
 {
   int iVar;
 }
index 361bb9087e6866f28362a75661e8720990b88b10..c1447ca85db2bbe3e3a87a5782e305bf1fb7ae70 100644 (file)
@@ -2,13 +2,14 @@
    provide a suitable method.  */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include <objc/objc.h>
 
 @protocol Zot
 -(void) zot;
 @end
 
-@interface Foo : Object <Zot>
+@interface Foo : TestsuiteObject <Zot>
 @end
 
 int foo()
index ac66ace579659296e5288dd9da0118c53b05d316..9c08f07e4d9702eda3a8114f273540e4985d920d 100644 (file)
@@ -3,10 +3,12 @@
    Problem report and original fix by richard@brainstorm.co.uk.  */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.mm" } */
+#include <objc/Protocol.h>
+#include "../objc-obj-c++-shared/runtime.h"
 
-#include "../objc-obj-c++-shared/next-mapping.h"
-#include "../objc-obj-c++-shared/Protocol1.h"
+@interface MyClass
+- name;
+@end
 
 @protocol NoInstanceMethods
 + testMethod;
 int
 main()
 {
-#ifdef __OBJC2__
-protocol_getMethodDescription(@protocol(NoInstanceMethods), @selector(name), NO, YES);
-protocol_getMethodDescription(@protocol(NoInstanceMethods), @selector(name), NO, NO);
-protocol_getMethodDescription(@protocol(NoClassMethods), @selector(name), NO, YES);
-protocol_getMethodDescription(@protocol(NoClassMethods), @selector(name), NO, NO);
-#else
-[@protocol(NoInstanceMethods) descriptionForInstanceMethod: @selector(name)];
-[@protocol(NoInstanceMethods) descriptionForClassMethod: @selector(name)];
-[@protocol(NoClassMethods) descriptionForInstanceMethod: @selector(name)];
-[@protocol(NoClassMethods) descriptionForClassMethod: @selector(name)];
-#endif
+protocol_getMethodDescription (@protocol(NoInstanceMethods), @selector(name), YES, YES);
+protocol_getMethodDescription (@protocol(NoInstanceMethods), @selector(name), YES, NO);
+protocol_getMethodDescription (@protocol(NoClassMethods), @selector(name), YES, YES);
+protocol_getMethodDescription (@protocol(NoClassMethods), @selector(name), YES, NO);
 return 0;
 }
index 959181b86417ac24a995644d763f6713a512f9c7..7ef0e9a98ef570902ab52c03f42d8cc1322ce187 100644 (file)
@@ -6,10 +6,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#ifndef __NEXT_RUNTIME__
-#include <objc/objc-api.h>
-#endif
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/runtime.h"
 #include <objc/Protocol.h>
 
 /* The encoded parameter sizes will be rounded up to match pointer alignment.  */
@@ -34,9 +31,7 @@
 
 Protocol *proto;
 struct objc_method_description *meth;
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
 struct objc_method_description meth_object;
-#endif
 unsigned totsize, offs0, offs1, offs2, offs3, offs4, offs5, offs6, offs7;
 
 static void scan_initial(const char *pattern) {
@@ -48,22 +43,18 @@ static void scan_initial(const char *pattern) {
 
 int main(void) {
   proto = @protocol(Retain);
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  meth_object = protocol_getMethodDescription (proto, @selector(address:with:),
-                                               YES, YES);
+
+  meth_object = protocol_getMethodDescription (proto,
+                 @selector(address:with:), YES, YES);
   meth = &meth_object;
-#else
-  meth = [proto descriptionForInstanceMethod: @selector(address:with:)];
-#endif
+
   scan_initial("O@%u@%u:%uNR@%uo^^S%u");
   CHECK_IF(offs3 == offs2 + aligned_sizeof(id) && totsize == offs3 + aligned_sizeof(unsigned));
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  meth_object = protocol_getMethodDescription (proto,  @selector(retainArgument:with:),
-                                               YES, NO);
+
+  meth_object = protocol_getMethodDescription (proto,
+                 @selector(retainArgument:with:), YES, NO);
   meth = &meth_object;
-#else
-  meth = [proto descriptionForClassMethod: @selector(retainArgument:with:)];
-#endif
+
   scan_initial("Vv%u@%u:%uOo@%un^*%u");
   CHECK_IF(offs3 == offs2 + aligned_sizeof(id) && totsize == offs3 + aligned_sizeof(char **));
   return 0;
index 2b0a7be591df52743234d2cf686caca4af5bb3d0..dd0eb42bc4f00528b5931fd905c3f01ccd49217e 100644 (file)
@@ -4,7 +4,7 @@
 
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 #define CHECK_IF(expr) if(!(expr)) abort()
@@ -19,7 +19,7 @@
 - init; 
 @end
 
-@interface Foo: Object
+@interface Foo: TestsuiteObject
 { @public int val; }
 - init;
 @end
@@ -37,7 +37,7 @@ template <typename T> struct Holder
   Holder(void) { obj = [[T alloc] init]; }
   ~Holder(void) { [obj free]; --counter; }
   id <Init, Zone> getObjId(void) { return obj; }
-  Object <Zone, Init> *getObj(void) { return obj; }
+  TestsuiteObject <Zone, Init> *getObj(void) { return obj; }
 };
 
 typedef Holder <Foo <Init, Zone> > FooHolder;
@@ -66,4 +66,4 @@ int main (void) {
   CHECK_IF(FooHolder::counter == 0);
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index b3a3579e9273fa7cff5594975565877b063c5742..840ee19fee480663a4ec09836f4886175fc5d503 100644 (file)
@@ -2,7 +2,7 @@
 /* { dg-options "-Wselector" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include <objc/objc.h>
 
 @interface Foo
 @end
index 5a3a4b614b2ca0c9dcf9dab27dc0dbf4f1c97d33..64e82200da8d3094cbfcafbbcb9ebbb552a28931 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-options "" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include <objc/objc.h>
 
 int main()
 {
index 4ba8e2b366bcab8199e19478f912c476ed8011b6..9ec37fa8e9173f6225da3486e2a7e517d88a5ef5 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-options "" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include <objc/objc.h>
 
 int main()
 {
index 6380ec9df5d007ab34e6a63087c5cb9e96a6d736..21ce962e8166f231d0555b63c1462cf425a18aaa 100644 (file)
@@ -2,10 +2,9 @@
 /* { dg-do compile } */
 /* { dg-options "-Wunused-but-set-variable" } */
 
-#import "../objc-obj-c++-shared/Object1.h"
-#include <objc/objc-api.h>
+#import "../objc-obj-c++-shared/TestsuiteObject.m"
 
-@interface obj : Object
+@interface obj : TestsuiteObject
 {
   int value;
 }
@@ -13,7 +12,7 @@
 - (void) setValue: (int)number;
 @end
 
-@implementation obj : Object
+@implementation obj : TestsuiteObject
 
 - (int) value { return value; }
 - (void) setValue: (int)number { value = number; }
index 921d055659c097f9387338250817a9ddbd98560f..430ab5db2d60d849264c6ea2f6460497709cb7f9 100644 (file)
@@ -5,7 +5,8 @@
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
 
-#include "../../objc-obj-c++-shared/Object1.h"
+#include <objc/Object.h>
+#include "../../objc-obj-c++-shared/objc-test-suite-types.h"
 
 @interface Foo: Object {
   char *cString;
 + (Foo *) getString: (int) which;
 @end
 
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-Class _FooClassReference;
-#else
-struct objc_class _FooClassReference;
-#endif
+TNS_STRING_REF_T _FooClassReference;  /* Only used by NeXT.  */
 
 @implementation Bar
 + (Foo *) getString: (int) which {
index fc3f211857aa223ea2cc3043e676ed7dae66ef57..408392fd5a069a93d9b24dd6368d0203d2297eee 100644 (file)
@@ -1,8 +1,7 @@
 /* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, November 2010.  */
 /* { dg-do compile } */
 
-#include "../../objc-obj-c++-shared/Object1.h"
-#include "../../objc-obj-c++-shared/next-mapping.h"
+#include "../../objc-obj-c++-shared/runtime.h"
 #ifndef __NEXT_RUNTIME__
 #include <objc/NXConstStr.h>
 #endif
@@ -30,4 +29,4 @@ id test_invalid7          = @"te" @"s" @@"t";    /* { dg-error "repeated .@. bef
 id test_invalid8          = @"te" @@"s" @"t";    /* { dg-error "repeated .@. before Objective-C string" } */
 id test_invalid9          = @"te" @"s" @"t" @;   /* { dg-error "stray .@. in program" } */
 id test_invalidA          = @"te" @ st;          /* { dg-error "stray .@. in program" } */
-                                                 /* { dg-error "expected" "" { target *-*-* } 32 } */
+                                                 /* { dg-error "expected" "" { target *-*-* } 31 } */
index 4ec0c3f471b93f6401bb03fbb47467f089b1fd75..efc72b8192781baa0bce183344d9783bd38da016 100644 (file)
@@ -4,11 +4,11 @@
 
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @class MyWpModule;
 
-@compatibility_alias MyObject Object;
+@compatibility_alias MyObject TestsuiteObject;
 @compatibility_alias FictitiousModule MyWpModule;
 
 @protocol MySelTarget
index c2143a4e95b18a4031ca32f5c2be23a252f5208b..c73bbd92fbc728d1ae18253bee16c90c64177174 100644 (file)
@@ -1,13 +1,13 @@
 /* Make sure that @synchronized parses and a very basic test runs.  */
 /* { dg-options "-fobjc-exceptions -fgnu-runtime" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 int main (void)
 {
-  Object *a = [Object new];
-  Object *b = [Object new];
-  Object *c = [Object new];
+  TestsuiteObject *a = [TestsuiteObject new];
+  TestsuiteObject *b = [TestsuiteObject new];
+  TestsuiteObject *c = [TestsuiteObject new];
 
   /* This single-threaded test just checks that @synchronized() uses a
      recursive mutex, and that the runtime at least doesn't crash
index fc8b08b5ed6af846b7c229ad847094e063706574..434c52707c5a1b5623cf7bb0a6020fdcc1dba7a1 100644 (file)
@@ -3,12 +3,12 @@
 
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface Base: Object
+@interface Base: TestsuiteObject
 - (int) meth;
 @end
 
@@ -47,4 +47,4 @@ int main (void) {
   CHECK_IF(count == 0);
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index a3b96b32d7eabdc8fb91feeda9d0211d70112fd8..c564733cf7405c6ad8383792be28587285416248 100644 (file)
@@ -4,12 +4,12 @@
 
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface ObjCClass : Object
+@interface ObjCClass : TestsuiteObject
 {
 @public
   int info;
@@ -78,4 +78,4 @@ int main(void) {
   
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index af3145f055a6ec664ef783418120419a5b016356..5301df5c0e0a6ee89913ba4b2983739f824dc103 100644 (file)
@@ -3,7 +3,7 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.mm ../objc-obj-c++-shared/nsconstantstring-class-impl.mm" } */
+/* { dg-additional-sources "../objc-obj-c++-shared/nsconstantstring-class-impl.mm" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -15,8 +15,8 @@
 #include "../objc-obj-c++-shared/nsconstantstring-class.h"
 #endif
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
+#include "../objc-obj-c++-shared/runtime.h"
 
 #define CHECK_IF(expr) if(!(expr)) abort()
 
@@ -42,7 +42,7 @@ int abc(TYPE *xyz, Array *array) {
   return [xyz count] + [array count];
 }
 
-@interface Array: Object {
+@interface Array: TestsuiteObject {
   id *arr;
   int count;
 }
@@ -72,7 +72,7 @@ int abc(TYPE *xyz, Array *array) {
 @end
 
 int main(void) {
-  CHECK_IF(!strcmp ([@"Object" cString], getDesc<Object>()));
+  CHECK_IF(!strcmp ([@"TestsuiteObject" cString], getDesc<TestsuiteObject>()));
   CHECK_IF(!strcmp ([@"Array" cString], getDesc<Array>()));
 
   Array* a1 = [Array arrayWithObjects:@"One", @"Two", @"Three", nil];
index 672a311633cab7fa1bbaab94e49d69a62530dda5..c48181049f1f5579d49818f49d82573114e1635c 100644 (file)
@@ -6,14 +6,10 @@
 
 #include <stdio.h>
 #include <string.h>
-#include "../objc-obj-c++-shared/Protocol1.h"
-#ifndef __NEXT_RUNTIME__
-#include <objc/objc-api.h>
-#endif
+#include "../objc-obj-c++-shared/runtime.h"
 
 extern "C" void abort();
 
-
 @protocol CommonProtocol
 
 -(oneway void)methodCall_On:(in bycopy id)someValue_On;
@@ -48,25 +44,32 @@ extern "C" void abort();
 
 Protocol *proto = @protocol(CommonProtocol);
 struct objc_method_description *meth;
+struct objc_method_description meth_object;
 
 int main()
 {
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_On:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_On:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4On@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_nO:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_nO:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4nO@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_Oo:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_Oo:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4Oo@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_oO:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_oO:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4oO@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_rn:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_rn:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4rn@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_oOn:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_oOn:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4oOn@8"))
          abort();
        return 0;
index 3cb3acfae3b73d7b1e3a86b469e83676430adec9..cba188b70e365735b6d46a2eae5150a4f6156782 100644 (file)
@@ -6,7 +6,8 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include <objc/Object.h>
+#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
 @interface NSString: Object
 @end
index 8674646d880a23f600af3cbdd09b211e8027a9a8..c54f89bd8c8f62a1ed57d6f9fa9368f3d014e029 100644 (file)
@@ -7,7 +7,8 @@
 /* { dg-options "-fconstant-string-class=XStr" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include <objc/Object.h>
+#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
 @interface XString: Object {
 @protected
index d58cb91a7bb306a7dab7b92c5a463faf615618b7..a44845b0462a83cf3e7838dc4d79cdde270d03f4 100644 (file)
@@ -5,28 +5,29 @@
 /* { dg-do run } */
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
-/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.mm" } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <objc/objc.h>
 
-@interface Foo: Object {
+@interface Foo: TestsuiteObject {
   char *cString;
   unsigned int len;
 }
 - (char *)customString;
 @end
 
+#ifdef __NEXT_RUNTIME__
 #ifdef NEXT_OBJC_USE_NEW_INTERFACE
 Class  _FooClassReference;
 #else
 struct objc_class _FooClassReference;
 #endif
+#endif
 
-@implementation Foo : Object
+@implementation Foo : TestsuiteObject
 - (char *)customString {
   return cString;
 }
index 17997b628420d609bd62d0a7b6364d67e77698bd..1949a6e65235debdfb37d5aff350b49ef390d6de 100644 (file)
@@ -4,24 +4,25 @@
 /* { dg-do run { target *-*-darwin* } } */
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
-/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.mm" } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
-@interface Foo: Object {
+@interface Foo: TestsuiteObject {
   char *cString;
   unsigned int len;
 }
 @end
 
+#ifdef __NEXT_RUNTIME__
 #ifdef NEXT_OBJC_USE_NEW_INTERFACE
 Class _FooClassReference;
 #else
 struct objc_class _FooClassReference;
 #endif
+#endif
 
-@implementation Foo : Object
+@implementation Foo : TestsuiteObject
 - (char *)customString {
   return cString;
 }
index e05c62b88a8815bf338704a663ccf90d2548aac1..b4f15fdcdd606be5a486e6f98719d82fe4ab9b5f 100644 (file)
@@ -5,7 +5,8 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include <objc/Object.h>
+#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
 @interface NSConstantString: Object {
   char *cString;
index deacf43b34b8aff4e0c68e407bc293bae5419497..e76eaa244da132f8ca29824fc1d5eb99b03b7b13 100644 (file)
@@ -3,10 +3,7 @@
 /* { dg-do run } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.mm ../../../objc-obj-c++-shared/nsconstantstring-class-impl.mm" } */
-
-#include "../../../objc-obj-c++-shared/Object1.h"
-#include "../../../objc-obj-c++-shared/next-mapping.h"
+/* { dg-additional-sources "../../../objc-obj-c++-shared/nsconstantstring-class-impl.mm" } */
 
 #include <string.h>
 #include <stdlib.h>
index 29768886aab004221b6343781978d01f5a524906..a3d66089e31ac7621c3d477fab12cca7d3846050 100644 (file)
@@ -2,14 +2,13 @@
 /* { dg-require-effective-target tls } */
 /* { dg-add-options tls } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.mm" } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 extern "C" {
 extern void abort ();
 }
 
-@interface tsObj: Object {
+@interface tsObj: TestsuiteObject {
   int ai ;
 }
 
index e627343a8cdf44ee3c9f0c2e9f6078ab2318b4e9..85f675144306954148f955d9d2a2005b7901bf90 100644 (file)
@@ -1,12 +1,11 @@
 // { dg-do run }
 
 // { dg-xfail-run-if "OBJC2 runtime" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime"  } { "-fgnu-runtime" } }
-// { dg-additional-sources "../../objc-obj-c++-shared/Object1.mm" }
 
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 int main(void)
 {
-  [Object class];
+  [TestsuiteObject class];
   return 0;
 }
index a32bfeed6e532ad1d2db987e425e85ff70830ec0..cbdace62d43ccad1af98ef85dbbd3207246e691b 100644 (file)
@@ -4,14 +4,14 @@
 /* { dg-options "-fobjc-exceptions" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 #include <stdio.h>
 #include <setjmp.h>
 
-@interface Frob: Object
+@interface Frob: TestsuiteObject
 @end
 
-@implementation Frob: Object
+@implementation Frob: TestsuiteObject
 @end
 
 static int exc_control = 0;
index 49e2c0cef15ce191e398f76a5c697ca1bbacf8af..320185fe0b3411f90744587b18c7c3377a64436d 100644 (file)
@@ -4,7 +4,7 @@
 /* { dg-options "-fobjc-exceptions" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @protocol Proto1
 - (int)meth1;
 - (int)meth2;
 @end
 
-@interface MyClass: Object <Proto2> {
+@interface MyClass: TestsuiteObject <Proto2> {
   int a;
 }
 - (int)meth2;
-- (Object *)parm1: (id)p1 parm2: (id<Proto1>)p2;
+- (TestsuiteObject *)parm1: (id)p1 parm2: (id<Proto1>)p2;
 @end
 
 MyClass *mc1, *mc2;
@@ -27,7 +27,7 @@ MyClass *mc1, *mc2;
 - (int)meth2 {
   return a;
 }
-- (Object *)parm1: (id)p1 parm2: (id<Proto1>)p2 {
+- (TestsuiteObject *)parm1: (id)p1 parm2: (id<Proto1>)p2 {
   @try {
     mc2 = p2;   /* { dg-warning "type .id <Proto1>. does not conform to the .Proto2. protocol" } */
   }
index 05aba36a46f87b0a83f12c9e0b5d853fa1389526..d214fa70d9abb92f11bdffbba14b50eaf1bdbc3c 100644 (file)
@@ -4,10 +4,10 @@
 
 /* { dg-do run } */
 /* { dg-xfail-run-if "PR23616" { *-*-* } { "-fgnu-runtime" } { "-fnext-runtime" } } */
-/* { dg-xfail-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" "-fgnu-runtime" } { "" } } 
+/* { dg-xfail-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" "-fgnu-runtime" } { "" } } */
 /* { dg-options "-fobjc-exceptions" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdio.h>
 #include <stdlib.h>
 
 
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface Frob: Object
+@interface Frob: TestsuiteObject
 @end
 
-@implementation Frob: Object
+@implementation Frob: TestsuiteObject
 @end
 
 static Frob* _connection = nil;
@@ -29,7 +29,7 @@ static Frob* _connection = nil;
 //--------------------------------------------------------------------
 
 
-void test (Object* sendPort)
+void test (TestsuiteObject* sendPort)
 {
   int cleanupPorts = 1;
   Frob* receivePort = nil;
@@ -56,7 +56,7 @@ void test (Object* sendPort)
     printf ("cleanupPorts = %d\n", cleanupPorts);
     printf ("---\n");          
                
-    @throw [Object new];
+    @throw [TestsuiteObject new];
   }
   @catch(Frob *obj) {
     printf ("Exception caught by incorrect handler!\n");
@@ -75,7 +75,7 @@ void test (Object* sendPort)
 }
 
 int main (void) {
-  test((Object *)-1);
+  test((TestsuiteObject *)-1);
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 7577c5bfa437eb2e77126e902146c1c5d88ee6da..b0822d3d7c7d342fde9b09cf7e6c45f0b74c97a3 100644 (file)
@@ -5,14 +5,14 @@
 /* { dg-do compile } */
 /* { dg-options "-fobjc-exceptions" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 const char *foo(void)
 {
   @try {
     return "foo";
   }
-  @catch (Object* theException) {
+  @catch (TestsuiteObject* theException) {
     return [theException name];
   }
 }
index b69c980b2286358b9bc9dc81611163937da6029b..ecab4e6e366cd20012e47f99dd257772300332fe 100644 (file)
@@ -1,17 +1,17 @@
 /* { dg-do compile } */
 /* { dg-options "-fobjc-exceptions" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 int main (int argc, const char * argv[]) {
-  Object * pool = [Object new];
+  TestsuiteObject * pool = [TestsuiteObject new];
   int a;
 
   if ( 1 ) {
     @try {
       a = 1;
     }
-    @catch (Object *e) {
+    @catch (TestsuiteObject *e) {
       a = 2;
     }
     @finally {
index b66662370259ba8dc568e6db75f303f211f82f91..7adf2f9e3262ce55504ccea3740571a196f4fa56 100644 (file)
@@ -3,9 +3,9 @@
 /* { dg-do compile } */
 /* { dg-options "-fobjc-exceptions" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Derived: Object
+@interface Derived: TestsuiteObject
 - (id) meth;
 @end
 
index a4331fc35e254c4f30348f94a6dc46d19c1e44c2..73c7c991709d9c800d8cc42db3839c4840992c2f 100644 (file)
@@ -8,7 +8,7 @@
 /* { dg-prune-output ".*internal compiler error.*" } */
 /* { dg-options "-fobjc-exceptions -O2" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 #include <stdio.h>
 
@@ -35,13 +35,13 @@ void foo (int arg1, float *arg2)
     local6 = 18.0;
     pi = &gi2;
     pf = &gf2;
-    obj2 = obj1 = [Object new];
+    obj2 = obj1 = [TestsuiteObject new];
     arg1 = 17;
     arg2 = &gf2;
     
-    @throw [Object new];
+    @throw [TestsuiteObject new];
   }
-  @catch (Object *obj) {
+  @catch (TestsuiteObject *obj) {
    if (local1 != 123 || local2 != 345 || local3 != 5.0
        || local4 != 6.0 || local5 != 17 || local6 != 18.0) {
      printf("Abort 1\n");
@@ -66,4 +66,4 @@ int main(void) {
   foo(15, &gf1);
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 79db8765ead812ec919eacf55826d0ad4468c44b..263ce010af050ed2429747d01118987dc6469b64 100644 (file)
@@ -1,15 +1,16 @@
 /* Typedefs of ObjC types should work without any bogus warnings. */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include <objc/objc.h>
 
-typedef Object MyObject;
+typedef TestsuiteObject MyObject;
 
 int main (int argc, const char * argv[])
 {
-    Object* a = nil;
+    TestsuiteObject* a = nil;
     MyObject* b = a;
-    Object* c = b;
+    TestsuiteObject* c = b;
 
     return 0;
 }
index c6aea14bcb6dc0f4fce2f5060048bc301544e81c..2a120ee5cc2171689411b6349a8cd21a8a545832 100644 (file)
@@ -2,13 +2,13 @@
 
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdarg.h>
 #include <stdlib.h>
 
 /* Test methods with "C-style" trailing arguments, with or without ellipsis. */
 
-@interface MathClass: Object
+@interface MathClass: TestsuiteObject
 /* sum positive numbers; -1 ends the list */
 + (int) sum: (int) firstNumber, int secondNumber, ...;
 + (int) prod: (int) firstNumber, int secondNumber, int thirdNumber;
@@ -72,4 +72,4 @@ int main (void)
   
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
diff --git a/gcc/testsuite/objc-obj-c++-shared/Object1-implementation.h b/gcc/testsuite/objc-obj-c++-shared/Object1-implementation.h
deleted file mode 100644 (file)
index 0dc36b1..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/* Compatibility code between APIs and ABIs for the objc test suite.
-   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
-   Contributed by Iain Sandoe 
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GCC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>.  */
-
-/* 
- * Implementation of a compatibility layer for the ObjC* test-suite.
- *
- * Four cases:
- *   GNU 
- *      Uses the 'old' Object with API and ABI = 0.
- *      Compatibility methods are added.
- *   NeXT pre-Darwin9
- *      Uses the 'old' Object with API and ABI = 0.
- *   NeXT Darwin >= 9 with no implementation of ABI 2
- *      Uses API 2 and ABI 0 for m32, uses the 'old' Object'
- *      Uses API 2 for m64 but only compile tests can be expected to work.
- *   NeXT Darwin >= 9 with __OBJC2__
- *      Uses API 2 and ABI 0 for m32, uses the 'old' Object'
- *      Uses API 2 and ABI 2 - the libobjc implementation of Object is very
- *      basic, and we add a category to expand this for test-suite use.
- */
-
-#ifndef _OBJC_OBJECT1_IMPLEMENTATION_H_
-#define _OBJC_OBJECT1_IMPLEMENTATION_H_
-
-#include "Object1.h"
-
-#ifndef __NEXT_RUNTIME__
-
-/* Save us from repeating this.  */
-@implementation Object (TEST_SUITE_ADDITIONS)
-+ initialize 
-{
-  return self;
-}
-@end
-
-#else
-
-/* For NeXT pre-Darwin 9 or m32 we need do nothing.  */
-
-#  if NEXT_OBJC_ABI_VERSION >= 2 
-
-/* Pick up the API=2 header.  */
-#    include <objc/runtime.h>
-
-#    ifndef __OBJC2__
-
-/* On a Darwin system >= 9 when there is no __OBJC2__ compiler, the testcases
-   will not link.  So we provide a dummy Object for this purpose.  */
-
-@implementation Object
-
-+ (Class) class 
-{
-  return self;
-}
-
-- (BOOL)isEqual: (id)anObject
-{
-  return self == anObject;
-}
-
-@end
-#    endif  /* __OBJC2__ */
-
-/* In any case, since the library does not provide a complete (enough) 
-   implementation we need to provide the additions.  */
-
-@implementation Object (TEST_SUITE_ADDITIONS)
-
-+ initialize 
-{
-  return self;
-}
-
-- init 
-{
-  return self;
-}
-
-- (Class) class 
-{
-  return isa;
-}
-
-+ (Class) superclass
-{
-  return class_getSuperclass(object_getClass(self));
-}
-
-+ new 
-{
-  return [[self alloc] init];
-}
-
-+ free 
-{
-  return nil;
-}
-
-- free 
-{
-  return object_dispose(self);
-}
-
-+ alloc 
-{
-  return class_createInstance (self, 0);
-}
-
-- (Class) superclass {
-  return class_getSuperclass([self class]);
-}
-
-- (const char *) name {
-  return class_getName([self class]);
-}
-
--(BOOL)conformsTo:(Protocol *)protocol {
-  Class cls;
-  for (cls = [self class]; cls; cls = [cls superclass]) 
-    {
-      if (class_conformsToProtocol(cls, protocol)) 
-       return YES;
-    }
-  return NO;
-}
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern int printf (const char *, ...);
-extern void abort (void);
-#ifdef __cplusplus
-}
-#endif
-
-/* This is a helper to catch cases where we need to add more functionality
-   to our test-suite category - more informative than fail with 'does not 
-   respond to forward:'  */
-- forward: (SEL)sel : (marg_list)args
-{
-  const char * onam = object_getClassName (self);
-  const char * snam = sel_getName (sel);
-  printf ("%s: tried to forward: %s\n", onam, snam);
-  abort ();
-}
-@end
-
-#   endif /* NEXT_OBJC_ABI_VERSION >= 2  */
-#  endif /* __NEXT_RUNTIME__ */
-#endif /* _OBJC_OBJECT1_IMPLEMENTATION_H_ */
diff --git a/gcc/testsuite/objc-obj-c++-shared/Object1.h b/gcc/testsuite/objc-obj-c++-shared/Object1.h
deleted file mode 100644 (file)
index 293d046..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Compatibility code between APIs and ABIs for the objc test suite.
-   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
-   Contributed by Iain Sandoe 
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GCC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>.  */
-
-/* 
- * Compatibility header.
- *
- * Four cases:
- *   GNU 
- *      Uses the 'old' Object with API and ABI = 0.
- *      Compatibility methods are added.
- *   NeXT pre-Darwin9
- *      Uses the 'old' Object with API and ABI = 0.
- *   NeXT Darwin >= 9 with no implementation of ABI 2
- *      Uses API 2 and ABI 0 for m32, uses the 'old' Object'
- *      Uses API 2 for m64 but only compile tests can be expected to work.
- *   NeXT Darwin >= 9 with __OBJC2__
- *      Uses API 2 and ABI 0 for m32, uses the 'old' Object'
- *      Uses API 2 and ABI 2 - the libobjc implementation of Object is very
- *      basic, and we add a category to expand this for test-suite use.
- */
-#ifndef _OBJC_OBJECT1_H_
-#define _OBJC_OBJECT1_H_
-
-#ifndef __NEXT_RUNTIME__ 
-/* Case 1 = GNU. */
-#  include <objc/Object.h>
-/* NeXT requires a +initialize (or forward:) method, and it makes testcases more
-   readable if the conditional code can be reduced, so we add one to the GNU tests 
-   too.  This saves us from having to introduce it every time.  */
-@interface Object (TEST_SUITE_ADDITIONS)
-+ initialize;
-@end
-
-#else /* NeXT */
-
-#  include "next-abi.h"
-#  if !defined(NEXT_OBJC_ABI_VERSION) || (NEXT_OBJC_ABI_VERSION < 2)
-/* Cases 2, Case 3/m32 and 4/m32 are handled as default.  */
-#    include <objc/Object.h>
-#  else
-#    include <objc/objc.h>
-
-/* This is a cut-down Object with only the methods currently required
-   by the testsuite declared.  The implementation is provided in 
-   Object1-implementation.h
-*/
-
-/* The m64 libobjc implementation of Object provides only the 'class' and
-   isEqual: methods.  
-   
-   We add the others required as a test-suite category. 
-   
-   Please leave the unimplemented methods as comments - so that they can
-   be inserted as required by future tests.  */
-
-@interface Object
-{
-  Class isa;
-}
-+ (Class) class;
-- (BOOL)isEqual: (id)anObject;
-@end
-
-/* Dummy definition.  */
-typedef void * marg_list;
-
-@interface Object (TEST_SUITE_ADDITIONS)
-
-+ initialize;
-- init;
-
-+ new;
-+ free;
-- free;
-+ alloc;
-//- copy;
-//+ allocFromZone:(void *)zone;
-//- copyFromZone:(void *)zone;
-//- (void *)zone;
-
-- (Class) class;
-+ (Class) superclass;
-//+ (const char *) name;
-//- superclass;
-- (const char *) name;
-
-//- self;
-//- (unsigned int) hash;
-
-/* Testing inheritance relationships */
-
-//- (BOOL) isKindOf: aClassObject;
-//- (BOOL) isMemberOf: aClassObject;
-//- (BOOL) isKindOfClassNamed: (const char *)aClassName;
-//- (BOOL) isMemberOfClassNamed: (const char *)aClassName;
-
-/* Testing class functionality */
-
-//+ (BOOL) instancesRespondTo:(SEL)aSelector;
-//- (BOOL) respondsTo:(SEL)aSelector;
-
-/* Testing protocol conformance */
-
-- (BOOL) conformsTo: (Protocol *)aProtocolObject;
-//+ (BOOL) conformsTo: (Protocol *)aProtocolObject;
-
-/* Obtaining method descriptors from protocols */
-
-//- (struct objc_method_description *) descriptionForMethod:(SEL)aSel;
-//+ (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel;
-
-/* Obtaining method handles */
-
-//- (IMP) methodFor:(SEL)aSelector;
-//+ (IMP) instanceMethodFor:(SEL)aSelector;
-
-/* Sending messages determined at run time */
-
-//- perform:(SEL)aSelector;
-//- perform:(SEL)aSelector with:anObject;
-//- perform:(SEL)aSelector with:object1 with:object2;
-
-/* Posing */
-
-//+ poseAs: aClassObject;
-
-/* Enforcing intentions */
-//- subclassResponsibility:(SEL)aSelector;
-//- notImplemented:(SEL)aSelector;
-
-/* Error handling */
-
-//- doesNotRecognize:(SEL)aSelector;
-//- error:(const char *)aString, ...;
-
-/* Debugging */
-
-//- (void) printForDebugger:(void *)stream;
-
-/* Archiving */
-
-//- awake;
-//- write:(void *)stream;
-//- read:(void *)stream;
-//+ (int) version;
-//+ setVersion: (int) aVersion;
-
-/* Forwarding */
-
-- forward: (SEL)sel : (marg_list)args;
-//- performv: (SEL)sel : (marg_list)args;
-
-@end
-
-#    endif /* NeXT case 3 & 4 m64 */
-#  endif /* NEXT */
-#endif /* _OBJC_OBJECT1_H_ */
diff --git a/gcc/testsuite/objc-obj-c++-shared/Object1.m b/gcc/testsuite/objc-obj-c++-shared/Object1.m
deleted file mode 100644 (file)
index d5fe4c0..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-/* This will generate compatibility code for the test-suite provided as a
-   category on Object.
-*/
-#include "Object1-implementation.h"
diff --git a/gcc/testsuite/objc-obj-c++-shared/Object1.mm b/gcc/testsuite/objc-obj-c++-shared/Object1.mm
deleted file mode 100644 (file)
index 04fdd05..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-/* This will generate compatibility code for the test-suite provided as a
-   category on Object.
-*/
-#import "Object1-implementation.h"
diff --git a/gcc/testsuite/objc-obj-c++-shared/Protocol1.h b/gcc/testsuite/objc-obj-c++-shared/Protocol1.h
deleted file mode 100644 (file)
index d375ac0..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* 
- * Temporary work-around to avoid the need for method attributes in
- * the NeXT Runtime Protocol header.
- */
-#ifndef _OBJC_PROTOCOL1_H_
-#define _OBJC_PROTOCOL1_H_
-
-#  ifndef __NEXT_RUNTIME__
-#    include <objc/Protocol.h>
-#  else
-#    include "next-abi.h"
-#    ifndef NEXT_OBJC_USE_NEW_INTERFACE
-/* We are on a NeXT version without method __attributes__ */
-#      import <objc/Protocol.h>
-#    else
-/* We make our own interface without the deprecation messages 
- * This is essentially <objc/Protocol.h> without the OBJC2
- * flags.
- * 
- */
-#      ifndef _OBJC_PROTOCOL_H_
-#      define _OBJC_PROTOCOL_H_
-#      import "Object1.h"
-
-@interface Protocol : Object
-{
-@private
-    char *protocol_name ;
-    struct objc_protocol_list *protocol_list ;
-    struct objc_method_description_list *instance_methods ;
-    struct objc_method_description_list *class_methods ;
-}
-
-/* Obtaining attributes intrinsic to the protocol */
-#if (NEXT_OBJC_ABI_VERSION==0)
-- (const char *)name ; /* Not avail in v2, deprecated in prior */
-/* Testing protocol conformance */
-- (BOOL) conformsTo: (Protocol *)aProtocolObject ; /* Not avail in v2 */
-#endif
-
-/* Looking up information specific to a protocol */
-/* Deprecated, but available */
-
-- (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel ;
-- (struct objc_method_description *) descriptionForClassMethod:(SEL)aSel ;
-
-@end
-
-#      endif /* __NEXT_RUNTIME__ */
-#    endif /* _OBJC_PROTOCOL_H_ */
-#  endif /* NEXT_OBJC_ABI_VERSION */
-#endif /* _OBJC_PROTOCOL1_H_ */
diff --git a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
new file mode 100644 (file)
index 0000000..b6acd91
--- /dev/null
@@ -0,0 +1,47 @@
+/* Very simple root class for writing testcases.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Contributed by Nicola Pero
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef _TESTSUITE_OBJECT_H_
+#define _TESTSUITE_OBJECT_H_
+
+/* We use this root class instead of Object to keep the tests
+   independent of the runtime being used.  Keep it simple.  */
+
+@interface TestsuiteObject
+{
+  Class isa;
+}
+/* Required by the NeXT runtime.  Does nothing.  */
++ (id) initialize;
+
+/* Creating instances.  */
++ (id) new;
++ (id) alloc;
+- (id) init;
+- (void) free;
+
+/* Auxiliary methods.  */
++ (Class) class;
++ (Class) superclass;
++ (const char *)name;
+- (const char *)name;
+@end
+
+#endif /* _TESTSUITE_OBJECT_H_ */
diff --git a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
new file mode 100644 (file)
index 0000000..1b033af
--- /dev/null
@@ -0,0 +1,64 @@
+/* Very simple root class for writing testcases.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Contributed by Nicola Pero
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+/* This is the implementation, but in all simple testcases we
+   recommend simply including it in the testcase.  */
+
+#include "TestsuiteObject.h"
+#include "runtime.h"
+
+@implementation TestsuiteObject
++ (id) initialize
+{
+  return self;
+}
++ (id) new
+{
+  return [[self alloc] init];
+}
++ (id) alloc
+{
+  return class_createInstance (self, 0);
+}
+- (id) init
+{
+  return self;
+}
+- (void) free
+{
+  object_dispose (self);
+}
++ (Class) class
+{
+  return self;
+}
++ (Class) superclass
+{
+  return class_getSuperclass (self);
+}
++ (const char *)name
+{
+  return class_getName (self);
+}
+- (const char *)name
+{
+  return class_getName (isa);
+}
+@end
diff --git a/gcc/testsuite/objc-obj-c++-shared/next-mapping.h b/gcc/testsuite/objc-obj-c++-shared/next-mapping.h
deleted file mode 100644 (file)
index d2ae8e9..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Compatibility header between runtimes and APIs.
-   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
-
-   Original Authors: Ziemowit Laski <zlaski@apple.com>
-                    David Ayers <d.ayers@inode.at>
-                    
-   re-work for ObjC2 by Iain Sandoe <iains@gcc.gnu.org>
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GCC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>.  */
-
-#ifndef _OBJC_NEXT_MAPPING_H_
-#define _OBJC_NEXT_MAPPING_H_
-
-/* This file provides a two-way mapping of API names for the original 
-   GNU & NeXT APIs. 
-   
-   It is being expanded to provide mapping (where possible) between between the
-   older API and API-2.
-*/
-
-#include "objc-test-suite-types.h"
-
-#ifndef __NEXT_RUNTIME__
-
-# define CLASSFIELD class_pointer
-# define CLASSPTRFIELD(x) (x)->class_pointer
-# define SUPERCLASS superClass
-# define OBJC_GETCLASS objc_get_class
-
-# ifdef __objc_api_INCLUDE_GNU
-#  define class_createInstance(C, S) class_create_instance(C)
-# endif
-# define method_get_types(M) (M)->method_types
-
-#else /* NeXT */
-
-/* Include next-abi.h to set NEXT_OBJC_USE_NEW_INTERFACE etc.*/
-# include "next-abi.h"
-
-# ifdef NEXT_OBJC_USE_NEW_INTERFACE
-   /* API=2. */
-#  include <objc/runtime.h>
-# else
-   /* API=0. */
-#  include <objc/objc-class.h>
-# endif
-
-# define CLASSPTRFIELD(x) (x)->isa
-# define SUPERCLASS superclass
-# define OBJC_GETCLASS objc_getClass
-
-# define objc_get_class(C) objc_getClass(C)
-# define objc_get_meta_class(C) objc_getMetaClass(C)
-# define class_get_class_method(C, S) class_getClassMethod(C, S)
-# define class_get_instance_method(C, S) class_getInstanceMethod(C, S)
-# define sel_get_name(S) sel_getName(S)
-# define class_create_instance(C) class_createInstance(C, 0)
-# define class_get_class_name(C) object_getClassName(C)
-# define objc_lookup_class(N) objc_lookUpClass(N)
-
-# ifdef NEXT_OBJC_USE_NEW_INTERFACE
-
-#  define object_class_name(O) (object_getClassName(O)) 
-#  define object_get_class(O) (object_getClass((id)O))
-#  define object_get_super_class(O) class_get_super_class(object_get_class(O))
-#  define object_is_class(O) class_is_meta_class(object_get_class(O))
-#  define object_is_meta_class(O) (object_is_class(O) && class_is_meta_class(O) \
-                                                && class_is_meta_class(object_get_class(O)))
-
-#  define method_get_imp(M) (method_getImplementation((Method)M))
-#  define method_get_types(M) (method_getTypeEncoding((Method)M))
-
-#  define class_get_super_class(C) (class_getSuperclass((Class)C))
-#  define class_is_meta_class(C) (class_isMetaClass((Class)C) ? YES: NO)
-#  define class_is_class(C) (class_is_meta_class(C) == NO)
-
-# else /* OLD API */
-
-#  define object_class_name(O) (O->name) 
-#  define object_get_super_class(O) class_get_super_class(*(struct objc_class **)O)
-#  define object_get_class(O) (*(struct objc_class **)O)
-#  define object_is_class(O) class_is_meta_class(*(struct objc_class **)O)
-#  define object_is_meta_class(O) (class_is_meta_class(O) && class_is_meta_class(*(struct objc_class **)O))
-
-#  define method_get_imp(M) (((Method)M)->method_imp)
-#  define method_get_types(M) (((Method)M)->method_types)
-
-#  define class_get_super_class(C) (((struct objc_class *)C)->super_class)
-#  define class_is_meta_class(C) (CLS_GETINFO((struct objc_class *)C, CLS_META)? YES: NO)
-#  define class_is_class(C) (CLS_GETINFO((struct objc_class *)C, CLS_CLASS)? YES: NO)
-
-# endif /* NEXT_OBJC_USE_NEW_INTERFACE */
-
-# endif  /*__NEXT_RUNTIME__ */
-#endif /* _OBJC_NEXT_MAPPING_H_ */
\ No newline at end of file
index ab502d4676082a22761e167e1f61692fd57ad585..edff8cb020792042e49541415a3e17a9890a5886 100644 (file)
@@ -21,17 +21,8 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef _OBJC_TEST_SUITE_TYPES_H_
 #define _OBJC_TEST_SUITE_TYPES_H_
 
-#ifdef __cplusplus
-#define ProtoBool bool
-#else
-#define ProtoBool _Bool
-#endif
-
 #ifndef __NEXT_RUNTIME__
 
-#define METHOD Method_t
-#define IVAR_T struct objc_ivar
-
 /* dummy const string class ref. */
 typedef void * TNS_STRING_REF_T;
 
@@ -52,16 +43,12 @@ typedef void * TNS_STRING_REF_T;
 #define NULL 0
 #endif
 
-#define METHOD Method
-
 /* Where there are equivalent interfaces between APIs we substitute
    a macro or typedef.  */
 #ifdef NEXT_OBJC_USE_NEW_INTERFACE
 typedef void * PMETH;
-#define IVAR_T Ivar 
 #else
 typedef struct objc_method * PMETH;
-#define IVAR_T struct objc_ivar 
 #endif
 
 #ifdef __OBJC2__
@@ -77,4 +64,4 @@ typedef struct objc_class TNS_STRING_REF_T;
 #endif
 
 #endif  /*__NEXT_RUNTIME__ */
-#endif /* _OBJC_TEST_SUITE_TYPES_H_ */
\ No newline at end of file
+#endif /* _OBJC_TEST_SUITE_TYPES_H_ */
diff --git a/gcc/testsuite/objc-obj-c++-shared/runtime.h b/gcc/testsuite/objc-obj-c++-shared/runtime.h
new file mode 100644 (file)
index 0000000..bdc2bff
--- /dev/null
@@ -0,0 +1,114 @@
+/* Wrapper around <objc/runtime.h>
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Contributed by Nicola Pero
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef _TESTSUITE_RUNTIME_H_
+#define _TESTSUITE_RUNTIME_H_
+
+/* Include this file where you'd normally include <objc/runtime.h>.
+
+   Older versions of the NeXT runtime do not have <objc/runtime.h> and
+   you need to include <objc/objc-runtime.h> instead.  This file takes
+   care of figuring out if that's the case.  */
+
+#ifndef __NEXT_RUNTIME__
+
+/*
+  GNU Objective-C runtime (libobjc).
+*/
+# include <objc/runtime.h>
+
+#else
+
+/*
+  NeXT Objective-C runtime.
+*/
+
+/* Include next-abi.h to determine which version of the runtime we are
+   dealing with.  TODO: If this is the only place including it, maybe
+   it could be copied here ?  */
+# include "next-abi.h"
+
+# ifdef NEXT_OBJC_USE_NEW_INTERFACE
+
+/* New NeXT runtime, with an API that should be basically identical to
+   the GNU Objective-C one.  */
+#  include <objc/runtime.h>
+
+# else
+
+/* Old NeXT runtime, with an API similar, but not identical to the new
+   one.  To start with, different headers need to be included.  */
+#  include <objc/objc-class.h>
+#  include <objc/objc-runtime.h>
+
+/* Not all functions are available in the old NeXT runtime.  A few
+   that we need are not, and here we provide an implementation on top
+   of the old NeXT API.  */
+
+#  define class_isMetaClass(C) (CLS_GETINFO((struct objc_class *)C, CLS_META)? YES: NO)
+#  define class_getName(C) object_getClassName(C)
+#  define class_getSuperclass(C)  (((struct objc_class *)C)->super_class)
+#  define method_getImplementation(M) (((Method)M)->method_imp)
+#  define method_getTypeEncoding(M) (((Method)M)->method_types)
+#  define object_getClass(O) (*(struct objc_class **)O)
+
+#include <objc/Protocol.h>
+BOOL class_conformsToProtocol (Class class_, Protocol *protocol)
+{
+  struct objc_protocol_list *p;
+  int i;
+  for (p = class_->protocols; p; p = p->next)
+    for (i = 0; i < p->count; i++)
+      if ([p->list[i] conformsTo: protocol])
+       return YES;
+  return NO;
+}
+
+#define protocol_getName(P) [P name]
+#define protocol_isEqual(P,Q) [P isEqual: Q]
+
+struct objc_method_description protocol_getMethodDescription (Protocol *protocol, 
+                                                             SEL selector,
+                                                             BOOL requiredMethod,
+                                                             BOOL instanceMethod)
+{
+  struct objc_method_description *tmp;
+  struct objc_method_description result;
+
+  if (instanceMethod)
+    {
+      tmp = [protocol descriptionForInstanceMethod: selector];
+      result = *tmp;
+    }
+  else
+    {
+      tmp = [protocol descriptionForClassMethod: selector];
+      result = *tmp;      
+    }
+
+  return result;
+}
+
+#  endif /* NEXT_OBJC_USE_NEW_INTERFACE */
+
+# endif /* __NEXT_RUNTIME__ */
+
+#endif /* _TESTSUITE_RUNTIME_H_ */
+
index e9fe9c986cda644a8642ffe6473f3b80f4f3bd1b..1f59aef35b2acc61adf6a3b2ad9dbe050910d39a 100644 (file)
@@ -1,9 +1,9 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object { 
+@interface obj : TestsuiteObject { 
 @public 
   int var; 
 } 
index 4a98de13099599cbb0905e8aa4a32df834227bb0..d6ce0b0f20f0e717f02d07bbaa2718638c258382 100644 (file)
@@ -1,9 +1,9 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object { 
+@interface obj : TestsuiteObject { 
 @public 
   int var; 
 } 
index ffe72e20fd79795dc07654c6ff18c6070f1c40d9..9ae31e05a85dfef3ed2f42843778a1c000d1ec50 100644 (file)
@@ -1,9 +1,9 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object {
+@interface obj : TestsuiteObject {
 @public 
   int var; 
 } 
index 4a56b3aa8f6f57dad69f9418657f0bdf1be726e6..90369cc66c0169430953edc871065872d7bc4130 100644 (file)
@@ -1,9 +1,9 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object {
+@interface obj : TestsuiteObject {
 @public 
   int var; 
 } 
index de607a3d941533ff82028aad0af4f6e536bd2742..1af1d117db4fd2f6a981db41fcf40aaf2871588b 100644 (file)
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object {
+@interface obj : TestsuiteObject {
 @public 
   int var;
 }
index 664a0e8d48fc9b3889ae77ac2043cebc73addea7..c232bb9db7dedd5b4da429fff710385885291870 100644 (file)
@@ -4,14 +4,14 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <objc/objc.h>
 
 extern void abort(void);
 
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Base: Object 
+@interface Base: TestsuiteObject 
 {
     int full;
     int full2: 32;
@@ -80,4 +80,3 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index 5bea0fca96f4edd37e483ffdac96cd2e806bc75f..0eb49b83b6f651f502b66e0fa67408752b61d038 100644 (file)
@@ -4,7 +4,7 @@
 /* { dg-options "-Wpadded" } */
 /* { dg-do run } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 extern void abort(void);
 extern int strcmp(const char *str1, const char *str2);
@@ -12,7 +12,7 @@ extern int strcmp(const char *str1, const char *str2);
 
 enum Enum { one, two, three, four };
 
-@interface Base: Object {
+@interface Base: TestsuiteObject {
   unsigned a: 2;
   int b: 3;
   enum Enum c: 4;
index 1cc1cad9bf14cd3de288d1c3423dd742c1a0a96f..58d939b9d6d58d77e6c10add71abdf44b7f61e77 100644 (file)
@@ -7,7 +7,7 @@
 /* { dg-options "-Wpadded" } */
 /* { dg-do run } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <objc/objc.h>
 #include <stdlib.h>
 
@@ -15,7 +15,7 @@
 
 enum Enum { zero, one, two, three, four };
 
-@interface Base: Object {
+@interface Base: TestsuiteObject {
 @public
   unsigned a: 2;
   int b: 3;
index 37b705ea193a073e6abc0fd822aba7caf07ed640..cdc94ef21c5721bb701fe814855a4e574c0d12b1 100644 (file)
@@ -5,7 +5,7 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 extern void abort(void);
 
@@ -23,7 +23,7 @@ Point MakePoint ( float x , float y ) {
   return p; 
 } 
 
-@interface Base: Object 
+@interface Base: TestsuiteObject 
 - ( void ) translateOriginToPoint : ( Point ) translation ; 
 @end
 
@@ -75,4 +75,4 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index 190c407f79611c393d3e81466c06f573c8b72d25..10c625272526e9d1790636fb24c8aa1c245aa64e 100644 (file)
@@ -2,16 +2,24 @@
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include "../objc-obj-c++-shared/runtime.h"
 #include <stddef.h>
 
+/* FIXME: This is temporary.  At the moment, the compiler, when
+   compiling for the GNU runtime and doing method checks, only
+   recognizes objc_get_class(), and not objc_getClass().  So
+   temporarily force objc_get_class() to be used.  */
+#ifndef __NEXT_RUNTIME__
+# define objc_getClass(C) objc_get_class(C)
+#endif
+
 @protocol Func
 + (int) class_func0;
 - (int) instance_func0;
 @end
 
-@interface Derived: Object
+@interface Derived: TestsuiteObject
 + (int) class_func1;
 + (int) class_func2;
 + (int) class_func3;
@@ -39,7 +47,7 @@
 + (int) class_func1
 {
    int i = (size_t)[self class_func0];       /* { dg-warning ".Derived. may not respond to .\\+class_func0." } */
-   return i + (size_t)[super class_func0];   /* { dg-warning ".Object. may not respond to .\\+class_func0." } */
+   return i + (size_t)[super class_func0];   /* { dg-warning ".TestsuiteObject. may not respond to .\\+class_func0." } */
 }
 + (int) class_func2
 {
@@ -50,7 +58,7 @@
 }
 + (int) class_func3
 {
-   return [(Object <Func> *)super class_func0];
+   return [(TestsuiteObject <Func> *)super class_func0];
 }
 + (int) class_func4
 {
 + (int) class_func5
 {
    int i = (size_t)[Derived class_func0];    /* { dg-warning ".Derived. may not respond to .\\+class_func0." } */
-   return i + (size_t)[Object class_func0];  /* { dg-warning ".Object. may not respond to .\\+class_func0." } */
+   return i + (size_t)[TestsuiteObject class_func0];  /* { dg-warning ".TestsuiteObject. may not respond to .\\+class_func0." } */
 }
 + (int) class_func6
 {
-   return (size_t)[objc_get_class("Object") class_func1];  /* { dg-warning ".Object. may not respond to .\\+class_func1." } */
+   return (size_t)[objc_getClass("TestsuiteObject") class_func1];  /* { dg-warning ".TestsuiteObject. may not respond to .\\+class_func1." } */
 }
 + (int) class_func7
 {
-   return [objc_get_class("Derived") class_func1];
+   return [objc_getClass("Derived") class_func1];
 }
 - (int) instance_func1
 {
    int i = (size_t)[self instance_func0];     /* { dg-warning ".Derived. may not respond to .\\-instance_func0." } */
-   return i + (size_t)[super instance_func0]; /* { dg-warning ".Object. may not respond to .\\-instance_func0." } */
+   return i + (size_t)[super instance_func0]; /* { dg-warning ".TestsuiteObject. may not respond to .\\-instance_func0." } */
 }
 - (int) instance_func2
 {
@@ -80,7 +88,7 @@
 }
 - (int) instance_func3
 {
-   return [(Object <Func> *)super instance_func0];
+   return [(TestsuiteObject <Func> *)super instance_func0];
 }
 - (int) instance_func4
 {
 - (int) instance_func5
 {
    int i = (size_t)[Derived instance_func1]; /* { dg-warning ".Derived. may not respond to .\\+instance_func1." } */
-   return i + (size_t)[Object instance_func1]; /* { dg-warning ".Object. may not respond to .\\+instance_func1." } */
+   return i + (size_t)[TestsuiteObject instance_func1]; /* { dg-warning ".TestsuiteObject. may not respond to .\\+instance_func1." } */
 }
 - (int) instance_func6
 {
-   return (size_t)[objc_get_class("Object") class_func1]; /* { dg-warning ".Object. may not respond to .\\+class_func1." } */
+   return (size_t)[objc_getClass("TestsuiteObject") class_func1]; /* { dg-warning ".TestsuiteObject. may not respond to .\\+class_func1." } */
 }
 - (int) instance_func7
 {
-   return [objc_get_class("Derived") class_func1];
+   return [objc_getClass("Derived") class_func1];
 }
 @end
 
    i += [self class_func1];
    i += [self categ_class_func2];
    i += (size_t)[self categ_instance_func1]; /* { dg-warning ".Derived. may not respond to .\\+categ_instance_func1." } */
-   return i + (size_t)[super class_func0];   /* { dg-warning ".Object. may not respond to .\\+class_func0." } */
+   return i + (size_t)[super class_func0];   /* { dg-warning ".TestsuiteObject. may not respond to .\\+class_func0." } */
 }
 + (int) categ_class_func2
 {
 {
    int i = (size_t)[self instance_func0];    /* { dg-warning ".Derived. may not respond to .\\-instance_func0." } */
    i += [(Derived <Func> *)self categ_instance_func2];
-   i += (size_t)[(Object <Func> *)self categ_instance_func2]; /* { dg-warning ".Object. may not respond to .\\-categ_instance_func2." } */
-   /* { dg-warning ".\\-categ_instance_func2. not found in protocol" "" { target *-*-* } 124 } */
+   i += (size_t)[(TestsuiteObject <Func> *)self categ_instance_func2]; /* { dg-warning ".TestsuiteObject. may not respond to .\\-categ_instance_func2." } */
+   /* { dg-warning ".\\-categ_instance_func2. not found in protocol" "" { target *-*-* } 132 } */
    i += (size_t)[(id <Func>)self categ_instance_func2];  /* { dg-warning ".\\-categ_instance_func2. not found in protocol" } */
    i += [(id)self categ_instance_func2];
-   return i + (size_t)[super instance_func0];   /* { dg-warning ".Object. may not respond to .\\-instance_func0." } */
+   return i + (size_t)[super instance_func0];   /* { dg-warning ".TestsuiteObject. may not respond to .\\-instance_func0." } */
 }
 - (int) categ_instance_func2
 {
index 0b950294b8f2d5b8610d41ad1fc3d15cf57ea7de..20c220edb38cb2130a945781c7fbf9b2a07476f8 100644 (file)
@@ -5,12 +5,12 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface Base: Object
+@interface Base: TestsuiteObject
 + (int) class_func1;
 - (int) instance_func1;
 @end
@@ -54,4 +54,3 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index e195a46bf08081c5a8b6fa3bf6f8488687f71ee3..92e631fc61992e0b2dca89256a4e6de6239142c9 100644 (file)
@@ -4,24 +4,18 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "need OBJC2 ABI" { *-*-darwin* && { lp64 &&  { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 extern int strcmp(const char *s1, const char *s2);
 extern void abort(void);
 
-#ifdef __NEXT_RUNTIME__
-#define SUPERCLASS superclass
-#else
-#define SUPERCLASS superClass
-#endif
-
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface MyObject: Object
+@interface MyObject: TestsuiteObject
 + (Class)whatever1;
 @end
 
 @implementation MyObject
-+ (Class)whatever1 { return [super SUPERCLASS]; }
++ (Class)whatever1 { return [super superclass]; }
 @end
 
 @interface MyObject (ThisWontCompile)
@@ -29,7 +23,7 @@ extern void abort(void);
 @end
  
 @implementation MyObject (ThisWontCompile)
-+(Class)whatever2 { return [super SUPERCLASS]; }
++(Class)whatever2 { return [super superclass]; }
 @end
 
 int main (int argc, const char * argv[])
@@ -37,15 +31,9 @@ int main (int argc, const char * argv[])
   Class w1 = [MyObject whatever1];
   Class w2 = [MyObject whatever2];
 
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  CHECK_IF(!strcmp( object_getClassName( w1 ), "Object"));
-  CHECK_IF(!strcmp( object_getClassName( w2 ), "Object"));
-#else
-  CHECK_IF(!strcmp(w1->name, "Object"));
-  CHECK_IF(!strcmp(w2->name, "Object"));
-#endif
+  CHECK_IF(!strcmp( object_getClassName( w1 ), "TestsuiteObject"));
+  CHECK_IF(!strcmp( object_getClassName( w2 ), "TestsuiteObject"));
 
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index cf061cb8ed76b279175f623e75bce575fb3521be..4dfb3b8670854b7e38029e625606dc4d014d9932 100644 (file)
@@ -3,7 +3,7 @@
 /* { dg-do compile } */
 
 #include <objc/objc.h>
-#include <objc/objc-api.h>
+#include "../objc-obj-c++-shared/runtime.h"
 
 @protocol MyProto1
 +(void)doItClass1;
index 3d85983991e04cda17cb5bf31a098e4852764af6..b95af5de1bc6cf1630f24ea506ff3217f2f8ca07 100644 (file)
@@ -1,22 +1,22 @@
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @protocol Foo
 - (id)meth1;
 - (id)meth2:(int)arg;
 @end
 
-@interface Derived1: Object
+@interface Derived1: TestsuiteObject
 @end
 
-@interface Derived2: Object
+@interface Derived2: TestsuiteObject
 + (Derived1 *)new;
 @end
 
 id<Foo> func(void) {
-  Object *o = [Object new];
-  return o;  /* { dg-warning "class .Object. does not implement the .Foo. protocol" } */
+  TestsuiteObject *o = [TestsuiteObject new];
+  return o;  /* { dg-warning "class .TestsuiteObject. does not implement the .Foo. protocol" } */
 }
 
 @implementation Derived2
index 959cc049a329436fb552312360fa2ecc3f1d5d76..9de3cee64d9e49c07cbba9d6a1730a2160eda2e4 100644 (file)
@@ -1,10 +1,10 @@
 /* { dg-do compile } */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Derived: Object
+@interface Derived: TestsuiteObject
 @end
 
-extern Object* foo(void);
+extern TestsuiteObject* foo(void);
 static Derived *test(void)
 {
    Derived *m = foo();   /* { dg-warning "initialization from distinct Objective\\-C type" } */
index 3a919d5d04cb6b93748e096461d6a0dae2351cbd..5e32cfe92338539d40e8d1d81a2daada23a695cb 100644 (file)
@@ -1,14 +1,14 @@
 /* When assigning function pointers, allow for covariant return types
    and contravariant argument types.  */
 /* { dg-do compile } */
-#include <objc/Object.h>
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @class Derived;
 
-Object *ExternFunc (Object *filePath, Object *key);
-typedef id FuncSignature (Object *arg1, Derived *arg2);
+TestsuiteObject *ExternFunc (TestsuiteObject *filePath, TestsuiteObject *key);
+typedef id FuncSignature (TestsuiteObject *arg1, Derived *arg2);
 
-@interface Derived: Object
+@interface Derived: TestsuiteObject
 + (void)registerFunc:(FuncSignature *)function;
 @end
 
index bb7b136fb6993cd37a13df8b761bacc7b6ae0a14..dcf3476c5314cc7d6c57f2095a1ca3c24dc4e296 100644 (file)
@@ -1,9 +1,9 @@
 /* { dg-do compile } */
 /* Another gimplifier ICE... */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface MyView: Object {
+@interface MyView: TestsuiteObject {
   int _frame;
 }
 - (void)_finalize;
index 2ffde0035db9868aad7a81e098dc6336f17047f9..5ea1f34b6d29c40565db50cab9fafd80b1119b05 100644 (file)
@@ -5,14 +5,14 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 //#include <objc/objc.h>
 
 extern void abort(void);
 
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Base: Object {
+@interface Base: TestsuiteObject {
 @public
   int a;
   float b;
@@ -67,4 +67,4 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index a07e72be14a28290814f6c2700cd6281820dfc9e..187e5483e2192c6fa0e5a693f0be2f355602479c 100644 (file)
@@ -5,11 +5,11 @@
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdio.h> 
 #include <stdlib.h>
 
-@interface Cls : Object
+@interface Cls : TestsuiteObject
 + (int) meth1;
 + (int) meth2;
 + (void) doTests;
@@ -48,4 +48,4 @@ int main(void) {
 /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
 /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
+
index ea0ff6a7dae0f61569b99666344b378d0d061df6..a57a3d3211b66e5df20ae2607bd9bb9f2cd93e16 100644 (file)
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
-
-#ifdef __NEXT_RUNTIME__
-#define METHOD Method
-#else
-#include <objc/objc-api.h>
-#define METHOD Method_t
-#define method_get_types(M) (M)->method_types
-#endif
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
+#include "../objc-obj-c++-shared/runtime.h"
 
 extern int sscanf(const char *str, const char *format, ...);
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface Foo: Object
+@interface Foo: TestsuiteObject
 typedef struct { float x, y; } XXPoint;
 typedef struct { float width, height; } XXSize;
 typedef struct _XXRect { XXPoint origin; XXSize size; } XXRect;
@@ -74,31 +66,29 @@ unsigned offs1, offs2, offs3, offs4, offs5, offs6, offs7;
 
 int main(void) {
   Foo *foo = [[Foo alloc] init];
-  Class fooClass = objc_get_class("Foo");
-  METHOD meth;
+  Class fooClass = objc_getClass("Foo");
+  Method meth;
   const char *string;
 
-  meth = class_get_instance_method(fooClass, @selector(setRect:withInt:));
+  meth = class_getInstanceMethod(fooClass, @selector(setRect:withInt:));
   offs2 = 9999;
 
-  sscanf(method_get_types(meth), "@%u@%u:%u{_XXRect={?=ff}{?=ff}}%ui%u", &offs1, &offs2, &offs3,
+  sscanf(method_getTypeEncoding(meth), "@%u@%u:%u{_XXRect={?=ff}{?=ff}}%ui%u", &offs1, &offs2, &offs3,
       &offs4, &offs5);
    
   CHECK_IF(!offs2);
   [foo setRect:my_rect withInt:123];
 
-  meth = class_get_instance_method(fooClass, @selector(char:float:double:long:));
+  meth = class_getInstanceMethod(fooClass, @selector(char:float:double:long:));
   offs2 = 9999;
   if (sizeof (long) == 8)
     string = "v%u@%u:%uc%uf%ud%uq%u";
   else
     string = "v%u@%u:%uc%uf%ud%ul%u";
-  sscanf(method_get_types(meth), string, &offs1, &offs2, &offs3,  
+  sscanf(method_getTypeEncoding(meth), string, &offs1, &offs2, &offs3,  
         &offs4, &offs5, &offs6, &offs7);
   CHECK_IF(!offs2);
   [foo char:'c' float:2.3 double:3.5 long:2345L];
 
   return 0;
 }  
-
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index c1327c1e62463fb37db07fec4f8650d280c5090d..9ce6d834f475b881220a7f3920ded053810ab2f0 100644 (file)
@@ -6,12 +6,13 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#ifndef __NEXT_RUNTIME__
-#  include <objc/objc-api.h>
+#include "../objc-obj-c++-shared/runtime.h"
+
+#ifdef __cplusplus
+#define ProtoBool bool
+#else
+#define ProtoBool _Bool
 #endif
-#include "../objc-obj-c++-shared/objc-test-suite-types.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
-#include <objc/Protocol.h>
 
 extern int sscanf(const char *str, const char *format, ...);
 extern void abort(void);
@@ -36,9 +37,7 @@ typedef struct _XXRect { XXPoint origin; XXSize size; struct _XXRect *next; } XX
 
 Protocol *proto;
 struct objc_method_description *meth;
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
 struct objc_method_description meth_object;
-#endif
 unsigned totsize, offs0, offs1, offs2, offs3, offs4, offs5, offs6, offs7;
 
 static void scan_initial(const char *pattern) {
@@ -51,13 +50,9 @@ static void scan_initial(const char *pattern) {
 int main(void) {
   const char *string;
   proto = @protocol(Proto);
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
   meth_object = protocol_getMethodDescription (proto,
                   @selector(char:float:double:unsigned:short:long:), YES, YES);
   meth = &meth_object;
-#else
-  meth = [proto descriptionForInstanceMethod: @selector(char:float:double:unsigned:short:long:)];
-#endif
   if (sizeof (long) == 8)
     string = "v%u@%u:%uc%uf%ud%uI%us%uq%u";
   else
@@ -66,23 +61,15 @@ int main(void) {
   CHECK_IF(offs3 == offs2 + sizeof(int) && offs4 == offs3 + sizeof(float));
   CHECK_IF(offs5 == offs4 + sizeof(double) && offs6 == offs5 + sizeof(unsigned));
   CHECK_IF(offs7 == offs6 + sizeof(int) && totsize == offs7 + sizeof(long));
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
   meth_object = protocol_getMethodDescription (proto,
                  @selector(setRect:withBool:withInt:), YES, YES);
   meth = &meth_object;
-#else
-  meth = [proto descriptionForInstanceMethod: @selector(setRect:withBool:withInt:)];
-#endif
   scan_initial("^v%u@%u:%u{_XXRect={?=ff(__XXAngle=II)}{?=dd}^{_XXRect}}%uB%ui%u");
   CHECK_IF(offs3 == offs2 + sizeof(XXRect) && offs4 == offs3 + sizeof(int));
   CHECK_IF(totsize == offs4 + sizeof(int));
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
   meth_object = protocol_getMethodDescription (proto,
                  @selector(getEnum:enum:bool:), YES, NO);
   meth = &meth_object; 
-#else
-  meth = [proto descriptionForClassMethod: @selector(getEnum:enum:bool:)];
-#endif
 
   /* Here we have the complication that 'enum Enum' could be encoded
      as 'i' on __NEXT_RUNTIME_, and (most likely) as 'I' on the GNU
@@ -100,13 +87,9 @@ int main(void) {
 
   CHECK_IF(offs3 == offs2 + sizeof(XXPoint *) && offs4 == offs3 + sizeof(enum Enum));
   CHECK_IF(totsize == offs4 + sizeof(int));  /* 'ObjCBool' is really 'char' */
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
   meth_object = protocol_getMethodDescription (proto,
                  @selector(getBool:), YES, NO);
   meth = &meth_object;
-#else
-  meth = [proto descriptionForClassMethod: @selector(getBool:)];         
-#endif
   scan_initial("^^B%u@%u:%u^*%u");
   CHECK_IF(totsize == offs2 + sizeof(ObjCBool **));
   return 0;
index d74c0ba1c7f66900a4958ecd18df0e436dcb47c1..17639e8c19f90eb32cbdacf23168c2076ee747c9 100644 (file)
@@ -4,13 +4,8 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
-#ifdef __NEXT_RUNTIME__
-#include <objc/objc-class.h>
-#else
-#include <objc/objc-api.h>
-#endif
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
+#include "../objc-obj-c++-shared/runtime.h"
 
 extern void abort(void);
 extern int strcmp(const char *s1, const char *s2);
@@ -31,7 +26,7 @@ struct Nested {
   struct Innermost innermost;
 };
 
-@interface Int1: Object {
+@interface Int1: TestsuiteObject {
   signed char a, b;
   Int2 *int2;
   struct Nested nested;
@@ -50,28 +45,28 @@ struct Nested {
 @implementation Int2
 @end
 
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-Ivar *ivar;
-#else
+#if defined(__NEXT_RUNTIME__) && !defined(NEXT_OBJC_USE_NEW_INTERFACE)
 struct objc_ivar *ivar;
+#else
+Ivar *ivar;
 #endif
 
 static void check_ivar(const char *name, const char *type) {
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  CHECK_IF(!strcmp(ivar_getName(*ivar), name));
-  CHECK_IF(!strcmp(ivar_getTypeEncoding(*ivar), type));
-#else
+#if defined(__NEXT_RUNTIME__) && !defined(NEXT_OBJC_USE_NEW_INTERFACE)
   CHECK_IF(!strcmp(ivar->ivar_name, name));
   CHECK_IF(!strcmp(ivar->ivar_type, type));
+#else
+  CHECK_IF(!strcmp(ivar_getName(*ivar), name));
+  CHECK_IF(!strcmp(ivar_getTypeEncoding(*ivar), type));
 #endif
   ivar++;
 }
 
 int main(void) {
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  ivar = class_copyIvarList ((Class)objc_get_class("Int1"), NULL);
+#if defined(__NEXT_RUNTIME__) && !defined(NEXT_OBJC_USE_NEW_INTERFACE)
+  ivar = ((Class)objc_getClass("Int1"))->ivars->ivar_list;
 #else
-  ivar = ((Class)objc_get_class("Int1"))->ivars->ivar_list;
+  ivar = class_copyIvarList ((Class)objc_getClass("Int1"), NULL);
 #endif
   check_ivar("a", "c");
   check_ivar("b", "c");
@@ -79,10 +74,10 @@ int main(void) {
   check_ivar("nested", 
     "{Nested=\"a\"f\"b\"f\"next\"@\"Int1\"\"innermost\"{Innermost=\"a\"C\"b\"C\"encl\"^{Nested}}}");
     
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  ivar = class_copyIvarList ((Class)objc_get_class("Int2"), NULL);
+#if defined(__NEXT_RUNTIME__) && !defined(NEXT_OBJC_USE_NEW_INTERFACE)
+  ivar = ((Class)objc_getClass("Int2"))->ivars->ivar_list;
 #else
-  ivar = ((Class)objc_get_class("Int2"))->ivars->ivar_list;
+  ivar = class_copyIvarList ((Class)objc_getClass("Int2"), NULL);
 #endif
   check_ivar("innermost", "^{Innermost=CC^{Nested}}");
   check_ivar("base", "@\"Int1\"");
@@ -90,4 +85,3 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index 523c7ce02e8678836c16d6904cbffb9db9cb0454..74c58ab95c8679815be12ffe6be5f3629f5acfa6 100644 (file)
@@ -9,21 +9,13 @@
 
 /* Contributed by Alexander Malmberg <alexander@malmberg.org>  */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
+#include "../objc-obj-c++-shared/runtime.h"
 #include <stdlib.h>
 #include <stdio.h>
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-#ifdef __NEXT_RUNTIME__
-#define METHOD Method
-#else
-#include <objc/objc-api.h>
-#define METHOD Method_t
-#define method_get_types(M) (M)->method_types
-#endif
-
-@interface Test : Object
+@interface Test : TestsuiteObject
 { float j; }
 -(void) test2: (int [5])a with: (int [])b;
 -(id) test3: (Test **)b; /* { dg-message "previous declaration of .\\-\\(id\\)test3:\\(Test \\*\\*\\)b." } */
@@ -47,8 +39,8 @@ int offs1, offs2, offs3, offs4, offs5, offs6;
 
 int main(int argc, char **argv)
 {
-  Class testClass = objc_get_class("Test");
-  METHOD meth;
+  Class testClass = objc_getClass("Test");
+  Method meth;
 
   cc[0] = [Test new];
   CHECK_IF (bb[3] == 3);
@@ -58,16 +50,16 @@ int main(int argc, char **argv)
   [*c test2: bb with: bb + 5];
   CHECK_IF (bb[3] == 5);
 
-  meth = class_get_instance_method(testClass, @selector(test2:with:));
+  meth = class_getInstanceMethod(testClass, @selector(test2:with:));
   offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = -1;
-  sscanf(method_get_types(meth), "v%d@%d:%d[%di]%d^i%d", &offs1, &offs2, &offs3,
+  sscanf(method_getTypeEncoding(meth), "v%d@%d:%d[%di]%d^i%d", &offs1, &offs2, &offs3,
       &offs4, &offs5, &offs6);
   CHECK_IF (!offs2 && offs4 == 5 && offs3 > 0);
   CHECK_IF (offs5 == 2 * offs3 && offs6 == 3 * offs3 && offs1 == 4 * offs3);
   
-  meth = class_get_instance_method(testClass, @selector(test3:));
+  meth = class_getInstanceMethod(testClass, @selector(test3:));
   offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = -1;
-  sscanf(method_get_types(meth), "v%d@%d:%d[%d[%d{Test=#f}]]%d", &offs1, &offs2, &offs3,
+  sscanf(method_getTypeEncoding(meth), "v%d@%d:%d[%d[%d{Test=#f}]]%d", &offs1, &offs2, &offs3,
       &offs4, &offs5, &offs6);
   CHECK_IF (!offs2 && offs4 == 3 && offs5 == 4 && offs3 > 0);
   CHECK_IF (offs6 == 2 * offs3 && offs1 == 3 * offs3);
index 60129f9d2c740c7c733e53086d653de66561404f..20cd400df51af88d79e85f520bda52d218cc3fc3 100644 (file)
@@ -9,7 +9,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <objc/Object.h>
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/runtime.h"
 
 #define CHECK_IF(E) if (!(E)) abort ()
 
index 2768e115fea731cfef884838877edf337d90bfa0..2ba83d57510e9dfe88831ccccf03bbaa8bbccaa4 100644 (file)
@@ -6,8 +6,8 @@
 /* { dg-options "-Wno-deprecated-declarations" } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
+#include "../objc-obj-c++-shared/runtime.h"
 #include <stdbool.h>
 #include <string.h>
 #include <stdlib.h>
@@ -99,10 +99,10 @@ typedef struct {
   unsigned int parameterMask;
 } NSErrorUserInfoFormatter;
 
-typedef Object MyObj;
-typedef Object *MyPtr;
+typedef TestsuiteObject MyObj;
+typedef TestsuiteObject *MyPtr;
 
-@interface Foo: Object {
+@interface Foo: TestsuiteObject {
   NSATSGlyphStorageRun r;
 }
 - (NSError *)_errorWithOSStatus:(OSStatus)inOSStatus ref1:(const FSRef *)inRef1 ref2:(const struct FSRef *)inRef2
@@ -114,7 +114,7 @@ typedef Object *MyPtr;
 - (id)str1:(const char *)str1 str2:(char *)str2 str3:(char *const)str3 str4:(const char *const)str4;
 - (oneway void)foo1:(Foo *)foo1 foo2:(const Foo *)foo2 foo3:(Foo *const)foo3 foo4:(const Foo *const)foo4;
 - (in const char *)sel1:(const SEL)sel1 id1:(const id)id1;
-- (inout id)obj1:(const MyPtr)obj1 obj2:(Object *const)obj2 obj3:(MyObj *const)obj3;
+- (inout id)obj1:(const MyPtr)obj1 obj2:(TestsuiteObject *const)obj2 obj3:(MyObj *const)obj3;
 + (ComponentInstance)_defaultScriptingComponent;
 - (NSString *)_formatCocoaErrorString:(NSString *)formatString parameters:(const char *)parameters 
   applicableFormatters:(NSErrorUserInfoFormatter **)formatters count:(int)numFormatters;
@@ -156,7 +156,7 @@ NSRange globalRange;
 - (in const char *)sel1:(const SEL)sel1 id1:(const id)id1 {
   return "Hello";
 }  
-- (inout id)obj1:(const MyPtr)obj1 obj2:(Object *const)obj2 obj3:(MyObj *const)obj3 {
+- (inout id)obj1:(const MyPtr)obj1 obj2:(TestsuiteObject *const)obj2 obj3:(MyObj *const)obj3 {
   return self;
 }
 + (ComponentInstance)_defaultScriptingComponent {
@@ -222,7 +222,7 @@ int main(void) {
   CHECK_IF (!strcmp (meth->method_types, "rn*16@0:4r:8r@12"));
 
   meth = class_getInstanceMethod (fooClass, @selector(obj1:obj2:obj3:));
-  CHECK_IF (!strcmp (meth->method_types, "N@20@0:4r@8@12^{Object=#}16"));
+  CHECK_IF (!strcmp (meth->method_types, "N@20@0:4r@8@12^{TestsuiteObject=#}16"));
 
   meth = class_getClassMethod (fooClass, @selector(_defaultScriptingComponent));
   CHECK_IF (!strcmp (meth->method_types, "^{ComponentInstanceRecord=[1l]}8@0:4"));
index 1fe0b242425942c3b1a508478bf7021bf7c37668..0cea9356b71e7a992d386e32753c009c0ad88fcb 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do run } */
 /* { dg-skip-if "" { *-*-* } { "-fnext-runtime" } { "" } } */
 
-#include <objc/encoding.h>
+#include <objc/runtime.h>
 #include <stdlib.h>
 
 struct f
index a992e31505fa96843dc8e4e0980a76cc2b9cc903..a10e4e9663a9488adbcee7ea82876a56108bdf47 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do run } */
 /* { dg-skip-if "" { *-*-* } { "-fnext-runtime" } { "" } } */
 
-#include <objc/encoding.h>
+#include <objc/runtime.h>
 #include <stdlib.h>
 
 union f
index 3e4227cb9655e076dfcdd5c1b4798fa31db464e2..77dd35a1075de9b8d1dcfc21c83ca82cbe796775 100644 (file)
@@ -2,15 +2,14 @@
 /* { dg-do run } */
 /* { dg-options "-fobjc-exceptions" } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.m" } */
 
 /* This test checks the syntax @catch (...) which catches any
    exceptions.  Check that code using it runs correctly.  */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
-@interface MyObject : Object
+@interface MyObject : TestsuiteObject
 @end
 
 @implementation MyObject
@@ -45,7 +44,7 @@ int main (void)
   if (test ([MyObject new]) != 5)
     abort ();
 
-  if (test ([Object new]) != 6)
+  if (test ([TestsuiteObject new]) != 6)
     abort ();
 
   return 0;
index 1560beac463652d23efa8fd2375fa90668cb6eb3..ed97e156bd017a4822a76e169400daf689dbc308 100644 (file)
@@ -6,14 +6,14 @@
 /* { dg-options "-mfix-and-continue" } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 @class MyTarget, MySet;
 
 int global_value = 0;
 
-@interface MyTargetBuildContext : Object
+@interface MyTargetBuildContext : TestsuiteObject
 {
   MyTarget * _target;
   unsigned _cacheInvalDisableCount;
@@ -31,7 +31,7 @@ int global_value = 0;
 + (MySet *)_headerFileExtensions;
 @end
 
-@interface MyCountedSet: Object {
+@interface MyCountedSet: TestsuiteObject {
 @public
   int cardinality;
 }
@@ -52,7 +52,7 @@ int global_value = 0;
 }  
 @end
 
-@implementation MyTargetBuildContext : Object
+@implementation MyTargetBuildContext : TestsuiteObject
 - (id)initWithTarget:(MyTarget *)target
 {
   self = [super init];
@@ -90,4 +90,3 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index fdfbcbd0c18c4e3a63842ac66f2b40b020a6bae4..03ae9ebd9cc268629d337423a7fd6905d1a61007 100644 (file)
@@ -6,18 +6,18 @@
 /* { dg-do assemble { target *-*-darwin* } } */
 /* { dg-options "-mfix-and-continue" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Foo: Object
-+ (Object *)indexableFileTypes;
+@interface Foo: TestsuiteObject
++ (TestsuiteObject *)indexableFileTypes;
 @end
 
 @implementation Foo
-+ (Object *)indexableFileTypes
++ (TestsuiteObject *)indexableFileTypes
 {
-  static Object *fileTypes = 0;
+  static TestsuiteObject *fileTypes = 0;
   if(!fileTypes) {
-    fileTypes = [Object new];
+    fileTypes = [TestsuiteObject new];
   }
   return fileTypes;
 }
index bc9a21a0930c6c195058d300cbce504d2cc13931..b8df5879dae1d8b191f2ae393d82eaa720d15178 100644 (file)
@@ -4,10 +4,9 @@
 /* { dg-do run } */
 /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.m" } */
 /* { dg-options "-Wall" } */
 
-#import "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 extern void abort (void);
 /*
@@ -19,7 +18,7 @@ struct __objcFastEnumerationState
   unsigned long extra[5];
 };
 */
-@interface Object (NSFastEnumeration)
+@interface TestsuiteObject (NSFastEnumeration)
 - (unsigned long)countByEnumeratingWithState: (struct __objcFastEnumerationState *)state
                                      objects:(id *)stackbuf 
                                        count:(unsigned int)len;
@@ -44,7 +43,7 @@ int main (void)
     abort ();
 
   /* Test that if nothing is done, object is set to nil.  */
-  object = [Object new];
+  object = [TestsuiteObject new];
 
   for (object in array)
     ;
index a319a4bc7165fdd9d534e0c71cee82a43c2106fd..93bc9028463f4288f71eae74df255260f0d13da9 100644 (file)
@@ -5,10 +5,9 @@
 /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.m ../objc-obj-c++-shared/nsconstantstring-class-impl.m" } */
+/* { dg-additional-sources "../objc-obj-c++-shared/nsconstantstring-class-impl.m" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #ifndef __NEXT_RUNTIME__
 #include <objc/NXConstStr.h>
 #else
@@ -32,7 +31,7 @@ struct __objcFastEnumerationState
     enumeration.  You create the array with some objects; you can
     mutate the array, and you can fast-enumerate it.
  */
-@interface MyArray : Object
+@interface MyArray : TestsuiteObject
 {
   unsigned int length;
   id *objects;
@@ -45,7 +44,7 @@ struct __objcFastEnumerationState
                                        count:(unsigned long)len;
 @end
 
-@implementation MyArray : Object
+@implementation MyArray : TestsuiteObject
 - (id) initWithLength: (unsigned int)l
              objects: (id *)o
 {
@@ -90,7 +89,7 @@ struct __objcFastEnumerationState
 int main (void)
 {
   MyArray *array;
-  Object *object;
+  TestsuiteObject *object;
   int test_variable, counter, i;
   id *objects;
 
index ac08a40954215747c5ce763d695922db094f0857..ba94797427e69c08c742c982e4f1635c72872740 100644 (file)
@@ -7,8 +7,7 @@
    works, but how do we tell the testsuite to test for it ?
 */
 
-#import "../objc-obj-c++-shared/Object1.h"
-#import "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #ifndef __NEXT_RUNTIME__
 #include <objc/NXConstStr.h>
 #endif
@@ -30,7 +29,7 @@ struct __objcFastEnumerationState
     enumeration.  You create the array with some objects; you can
     mutate the array, and you can fast-enumerate it.
  */
-@interface MyArray : Object
+@interface MyArray : TestsuiteObject
 {
   unsigned int length;
   id *objects;
@@ -43,7 +42,7 @@ struct __objcFastEnumerationState
                                        count:(unsigned long)len;
 @end
 
-@implementation MyArray : Object
+@implementation MyArray : TestsuiteObject
 - (id) initWithLength: (unsigned int)l
              objects: (id *)o
 {
@@ -90,7 +89,7 @@ struct __objcFastEnumerationState
 int main (void)
 {
   MyArray *array;
-  Object *object;
+  TestsuiteObject *object;
   int counter, i;
   id *objects;
 
index 13b9b0bb9de0f87e5cc395ff7164ccb292041a22..faee73b82234d8f3abd2e4957abf1273daee60e2 100644 (file)
@@ -5,10 +5,9 @@
 /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.m ../objc-obj-c++-shared/nsconstantstring-class-impl.m" } */
+/* { dg-additional-sources "../objc-obj-c++-shared/nsconstantstring-class-impl.m" } */
 
-#import "../objc-obj-c++-shared/Object1.h"
-#import "../objc-obj-c++-shared/next-mapping.h"
+#import "../objc-obj-c++-shared/TestsuiteObject.m"
 #ifndef __NEXT_RUNTIME__
 #include <objc/NXConstStr.h>
 #else
@@ -32,7 +31,7 @@ struct __objcFastEnumerationState
     enumeration.  You create the array with some objects; you can
     mutate the array, and you can fast-enumerate it.
  */
-@interface MyArray : Object
+@interface MyArray : TestsuiteObject
 {
   unsigned int length;
   id *objects;
@@ -45,7 +44,7 @@ struct __objcFastEnumerationState
                                        count:(unsigned long)len;
 @end
 
-@implementation MyArray : Object
+@implementation MyArray : TestsuiteObject
 - (id) initWithLength: (unsigned int)l
              objects: (id *)o
 {
index c715b2d822d30c412b905a301dc702889ba5c02d..dce26fa3e9395e4769f249384d6ffaf8413e8960 100644 (file)
@@ -5,10 +5,9 @@
 /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.m ../objc-obj-c++-shared/nsconstantstring-class-impl.m" } */
+/* { dg-additional-sources "../objc-obj-c++-shared/nsconstantstring-class-impl.m" } */
 
-#import "../objc-obj-c++-shared/Object1.h"
-#import "../objc-obj-c++-shared/next-mapping.h"
+#import "../objc-obj-c++-shared/TestsuiteObject.m"
 #ifndef __NEXT_RUNTIME__
 #include <objc/NXConstStr.h>
 #else
@@ -30,7 +29,7 @@ typedef struct
    enumeration.  You create the array with some objects; you can
    mutate the array, and you can fast-enumerate it.
 */
-@interface MyArray : Object
+@interface MyArray : TestsuiteObject
 {
   unsigned int length;
   id *objects;
@@ -43,7 +42,7 @@ typedef struct
                                        count:(unsigned long)len;
 @end
 
-@implementation MyArray : Object
+@implementation MyArray : TestsuiteObject
 - (id) initWithLength: (unsigned int)l
              objects: (id *)o
 {
index 96b145365c1efb3269f110fa3cb3205aa576c5a6..b0a927be09593f3810297e7c20391002714fd3f5 100644 (file)
@@ -1,8 +1,10 @@
 /* Test basic Objective-C foreach syntax.  This tests warnings and errors.  */
 /* { dg-do compile } */
 
-#import "../objc-obj-c++-shared/Object1.h"
-#import "../objc-obj-c++-shared/next-mapping.h"
+#import "../objc-obj-c++-shared/TestsuiteObject.h"
+#import <objc/objc.h>
+#undef  nil
+#define nil ((id)0)
 
 /*
 struct __objcFastEnumerationState
@@ -13,7 +15,7 @@ struct __objcFastEnumerationState
   unsigned long extra[5];
 };
 */
-@interface Object (NSFastEnumeration)
+@interface TestsuiteObject (NSFastEnumeration)
 - (unsigned long)countByEnumeratingWithState: (struct __objcFastEnumerationState *)state
                                      objects:(id *)stackbuf 
                                        count:(unsigned int)len;
@@ -46,7 +48,7 @@ int main (void)
     ;
 
   for (12 in array) /* { dg-error "invalid iterating variable in fast enumeration" } */
-    ;               /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 48 } */
+    ;               /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 50 } */
 
   for (object in 12) /* { dg-error "collection in fast enumeration is not an object" } */
     ;
index 4629d61e1c18ce1ecdd15caed14cd801f2cd9e73..c56521172df74e28fea83d7771742e53ff58e65c 100644 (file)
@@ -1,9 +1,10 @@
 /* Test basic Objective-C foreach syntax.  This tests warnings and errors.  */
 /* { dg-do compile } */
 
-#import "../objc-obj-c++-shared/Object1.h"
-#import "../objc-obj-c++-shared/next-mapping.h"
-
+#import "../objc-obj-c++-shared/TestsuiteObject.h"
+#import <objc/objc.h>
+#undef  nil
+#define nil ((id)0)
 /*
 struct __objcFastEnumerationState
 {
@@ -13,7 +14,7 @@ struct __objcFastEnumerationState
   unsigned long extra[5];
 };
 */
-@interface Object (NSFastEnumeration)
+@interface TestsuiteObject (NSFastEnumeration)
 - (unsigned long)countByEnumeratingWithState: (struct __objcFastEnumerationState *)state
                                      objects:(id *)stackbuf 
                                        count:(unsigned int)len;
@@ -36,10 +37,10 @@ int main (void)
   id object = nil;
 
   for (typedef int my_typedef in array) /* { dg-error "declaration of non-variable" } */
-    ;                                   /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 38 } */
+    ;                                   /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 39 } */
 
   for (function () in nil) /* { dg-error "invalid iterating variable in fast enumeration" } */
-    ;                      /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 41 } */
+    ;                      /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 42 } */
 
   for (object_function () in nil) /* { dg-error "invalid iterating variable in fast enumeration" } */
     ;
index d6b4db21777b38bf39fac90cb06133165b765cc4..7c6ea9a85e70259832e387199656288f92cf5a02 100644 (file)
@@ -1,9 +1,8 @@
 /* { dg-do compile } */
 
-#import "../objc-obj-c++-shared/Object1.h"
-#include <objc/objc-api.h>
+#import "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface obj : Object
+@interface obj : TestsuiteObject
 {
 @public
   int v1;
@@ -18,7 +17,7 @@
 - (void) setValue: (int)number;
 @end
 
-@implementation obj : Object
+@implementation obj : TestsuiteObject
 
 - (int) value { return v1; }
 - (void) setValue: (int)number { v1 = number; }
@@ -33,5 +32,5 @@ void foo (void)
   a->v2 = 1;
   a->v3 = [a value] - a->v2;   /* { dg-warning ".v3. is @protected" } */
   a->v4 = a->v3 - 1;           /* { dg-warning ".v4. is @private" } */
-                               /* { dg-warning ".v3. is @protected" "" { target *-*-* } 35 } */
+                               /* { dg-warning ".v3. is @protected" "" { target *-*-* } 34 } */
 }
index 4bdb344a3b62e45064be893abb3d20b5970055f9..1c03dabeeace42533bcaf6e54a67963178f601f8 100644 (file)
@@ -2,7 +2,7 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 extern int strcmp(const char *, const char *);
 extern void abort(void);
@@ -10,7 +10,7 @@ extern void abort(void);
 
 typedef float (*floatfunc)(float, float);
 
-@interface MyObject : Object
+@interface MyObject : TestsuiteObject
 {
 @public
   int (*ivar)(int, int, int);
@@ -47,5 +47,3 @@ int main ()
   return(0);
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
-
index e68c71b70d4c0df594c9c12d67937983d7a9b473..20db39d3cc2316e5bc7f0ec427ae0da6ea657130 100644 (file)
@@ -5,10 +5,9 @@
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
 #include <stdlib.h>
-/* provide an Object class for NeXT runtimes 10.5 and above */
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
-@interface Func: Object
+@interface Func: TestsuiteObject
 + (int) processNumber:(int)a and:(int)b usingFunction:(int(int,int))func;
 @end
 
@@ -38,4 +37,3 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index 7494131c16ab4bc3a1b44284733222f97470f118..824e4ba6503a8b7f960e1faf6a1d2aa7e4bb39a8 100644 (file)
@@ -261,7 +261,7 @@ switchfiles (int fields)
 /* { dg-do run } */\n\
 /* { dg-options \"-w -I%s -fgnu-runtime\" } */\n", srcdir);
     }
-  fprintf(outfile, "#include <objc/encoding.h> \n\
+  fprintf(outfile, "#include <objc/runtime.h> \n\
 #include \"struct-layout-1.h\"\n\
 \n\
 int fails; \n\
index c7e3bcc3a22e209f27a5857c4e8dae081e4446b9..c73cd384c412fc9fc2dba1db45b127b353a23a52 100644 (file)
@@ -4,9 +4,9 @@
 /* { dg-do compile } */
 /* { dg-skip-if "" { *-*-* } { "-fnext-runtime" } { "" } } */
 
-#include <objc/Object.h>
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface FooBar: Object
+@interface FooBar: TestsuiteObject
 - (void)boo;
 @end
 
index e0c8cc4164df8675f43ea2dade273a06c96a2821..d26f48cf9801a146e98dce0e121ac9e3382ca504 100644 (file)
@@ -3,12 +3,12 @@
 /* { dg-do run } */
 /* { dg-skip-if "" { *-*-* } { "-fnext-runtime" } { "" } } */
 
-#include <objc/Object.h>
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <string.h>
 #include <stdlib.h>
 
 int main(int argc, void **args)
 {
-  [Object new];
+  [TestsuiteObject new];
   return 0;
 }
index c20b36ac1115e42dc0303506932be9c61ca4ad2d..355c2cf3c60d7d9d741c52b8220f95c458c5174d 100644 (file)
 #include <objc/Protocol.h>
 #ifdef __NEXT_RUNTIME__
 #include <objc/objc-runtime.h>
+#include <objc/objc-api.h>
 #else
-#include <objc/encoding.h>
+#include <objc/runtime.h>
 #endif
 
-#include <objc/objc-api.h>
 #include <objc/objc.h>
 
 #ifndef __NEXT_RUNTIME__
index 377280f0d992a8c30533d35b239df64a084821aa..4501d01a11e605d36771671817b0aa5aa7b035a6 100644 (file)
@@ -1,17 +1,18 @@
 /* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects.  */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include "../objc-obj-c++-shared/runtime.h"
 
-@interface Object (Test)
+@interface TestsuiteObject (Test)
 - (Class) test1: (id)object;
 @end
 
-@interface Derived: Object
+@interface Derived: TestsuiteObject
 - (Class) test2: (id)object;
 @end
 
-@implementation Object (Test)
+@implementation TestsuiteObject (Test)
 
 Class test1(id object) {
 #ifdef __NEXT_RUNTIME__
index f702eb2badcab828755587b810ddae381fd3a377..61aeced408a28e99e0900614bd81d9f3cb4bc0d8 100644 (file)
@@ -3,13 +3,13 @@
 /* { dg-do compile } */
 /* { dg-options "-Wpadded -Wpacked" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Derived1: Object
+@interface Derived1: TestsuiteObject
 { }
 @end
 
-@interface Derived2: Object
+@interface Derived2: TestsuiteObject
 - (id) foo;
 @end
 
index 474fc046192a8b36dda291e7eb2d181095ac03cb..0880b2eee482aefb1a8fcd9e2a4f51c95ca99462 100644 (file)
@@ -4,10 +4,10 @@
 /* { dg-do compile } */
 /* { dg-options "-Wpadded" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 /* Implement a class, so that the metadata generation happens.  */
-@interface MyClass : Object
+@interface MyClass : TestsuiteObject
 @end
 
 @implementation MyClass
index b1af6d27bc250956fb98f399157e06a4f91ed9ea..80ae0637c63ed9416e74b527f10335f13ca9f028 100644 (file)
@@ -3,9 +3,9 @@
 /* Author: Ziemowit Laski <zlaski@apple.com>.  */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Sprite: Object {
+@interface Sprite: TestsuiteObject {
   int sprite, spree;
 }
 + (void)setFoo:(int)foo;
index 737d58a6864bcfec96e0167dd2b3f09c004d811e..1b6bf379fef46b9ca39fea265a1a9cf6f6c10511 100644 (file)
@@ -1,9 +1,8 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.m" } */
 
 #include <stdlib.h>
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 typedef struct MyWidget {
   int a;
@@ -15,13 +14,13 @@ MyWidget gWidget = { 17 };
 - (MyWidget *)widget;
 @end
 
-@interface Foo: Object
+@interface Foo: TestsuiteObject
 @end
 
 @interface Bar: Foo <MyProto>
 @end
 
-@interface Container: Object
+@interface Container: TestsuiteObject
 + (MyWidget *)elementForView:(Foo *)view;
 @end
 
@@ -38,7 +37,8 @@ MyWidget gWidget = { 17 };
 + (MyWidget *)elementForView:(Foo *)view
 {
   MyWidget *widget = (MyWidget *) nil;
-  if ([view conformsTo:@protocol(MyProto)]) {
+  if (class_conformsToProtocol (object_getClass (view),
+                               @protocol(MyProto))) {
     widget = [(Foo <MyProto> *)view widget];
   }
   return widget;
index 442df690a0a387f8d0fe9f739475982d2758c867..311fc3b910e786f7f227f0b02d456bb96bc63ce3 100644 (file)
@@ -5,14 +5,14 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort()
 
 static double d = 4.5920234e2;
 
-@interface Foo : Object
+@interface Foo : TestsuiteObject
 -(void) brokenType: (int)x floatingPoint: (double)y;
 @end
 
@@ -32,4 +32,3 @@ int main(void)
        return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index b3e44bd25d0e1ea841ad7551d031a241ff6ff32a..592038b9d9364dfd8ace75f5d4400c77ac89dea2 100644 (file)
@@ -6,12 +6,7 @@
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
 #include <objc/objc.h>
-
-#ifdef __NEXT_RUNTIME__
-#define OBJC_GETCLASS objc_getClass
-#else
-#define OBJC_GETCLASS objc_get_class
-#endif
+#include "../objc-obj-c++-shared/runtime.h"
 
 extern void abort(void);
 extern int strcmp(const char *, const char *);
@@ -48,16 +43,14 @@ extern int strcmp(const char *, const char *);
 @end
 
 @implementation Root
-#ifdef __NEXT_RUNTIME__
 + initialize { return self; }
-#endif
 - (const char *) method1 { return "Root::-method1"; }
 + (const char *) method2 { return "Root::+method2"; }
 @end
 
 int main(void)
 {
-  Class obj = OBJC_GETCLASS("Derived");
+  Class obj = objc_getClass("Derived");
 
   /* None of the following should elicit compiler-time warnings.  */
 
index 6a5aec6ac20579b6e504e3a4cc9aabc047c5f7ae..d1a675e72cd5a4d316f2a6e8b46d07711fd4b61b 100644 (file)
@@ -4,7 +4,9 @@
 
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include <objc/objc.h>
+#include "../objc-obj-c++-shared/runtime.h"
 
 @class NSString;
 
 + (BOOL)usesUserKeyEquivalents;
 @end
 
-@interface NSMenuItem : Object <NSMenuItem> {
+@interface NSMenuItem : TestsuiteObject <NSMenuItem> {
   @private
   id _menu;
 }
 @end
 
-@interface NSResponder : Object <NSMenuItem>
+@interface NSResponder : TestsuiteObject <NSMenuItem>
 {
   id _nextResponder;
 }
 @end
 
-@interface Object(NSMenuValidation)
+@interface TestsuiteObject(NSMenuValidation)
 - (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem;
 @end
 
index 3f6d8d06aad7dfac003227b5f4c94f80dc0367fe..2eac939107055c7c2a6363553504495328091d21 100644 (file)
@@ -3,9 +3,9 @@
 /* { dg-do compile } */
 /* { dg-options "-Wreturn-type -Wextra" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Foo: Object
+@interface Foo: TestsuiteObject
 - (id) meth1;
 - (void) meth2;
 @end
@@ -15,7 +15,7 @@ extern int bar;
 @implementation Foo
 - (id) meth1 {
   if (bar)
-    return [Object new];
+    return [TestsuiteObject new];
   return; /* { dg-warning "'return' with no value, in function returning non-void" } */
 } 
 - (void) meth2 {
index 0e099227cd102c20084bdc48bb3f903a86dc5aa8..9cc99995bde667f2e23af1c07cfc3682bc3034d8 100644 (file)
@@ -3,7 +3,7 @@
 
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @class NotKnown;
 
index 733d8722b53d9d0eb8860de3212db239f80290f0..de8de844c45172ece21e3a442809b61847a6dbc4 100644 (file)
@@ -2,10 +2,9 @@
    they should.  */
 /* { dg-do run } */
 /* { dg-options "-O2" } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.m" } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <string.h>
 #include <stdlib.h>
 
@@ -19,7 +18,7 @@ char *strcpy_like_callee(const char *s) {
 typedef char io_string_t[512];
 typedef char *(func_type)(const char *);
 
-@interface DeviceObject: Object
+@interface DeviceObject: TestsuiteObject
 - (void) func:(func_type)func stucPathInIORegistry:(io_string_t)ioRegPath;
 @end
 @implementation DeviceObject
index abee4e0654beaf3317fd6307dea1b2b5ba293437..6bf24ee275811ced0778299b77a4462ad158c715 100644 (file)
@@ -4,17 +4,17 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface Int1: Object
+@interface Int1: TestsuiteObject
 + (int) classMeth;
 - (int) instanceMeth;
 @end
 
-@interface Int2: Object
+@interface Int2: TestsuiteObject
 + (int) classMeth;      
 - (int) instanceMeth;
 @end
@@ -45,4 +45,3 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index df25bba21ee3fb3dabd1125535e1660c236e1236..8bd50ea825ebfaa9e7344d825ad5ac98111d9517 100644 (file)
@@ -5,16 +5,16 @@
 /* { dg-do compile { target { *-*-darwin* && { ! lp64 } } } } */
 /* { dg-skip-if "" { *-*-darwin* } { "-fgnu-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-typedef Object ObjectTypedef1;
+typedef TestsuiteObject ObjectTypedef1;
 typedef ObjectTypedef1 ObjectTypedef2;
 @compatibility_alias ObjectAlias1 ObjectTypedef2;
 @compatibility_alias ObjectAlias2 ObjectAlias1;
 typedef ObjectAlias2 ObjectTypedef3;
 
 void foo(void) {
-  id obj = [Object new];
+  id obj = [TestsuiteObject new];
   obj = [ObjectTypedef1 new];
   obj = [ObjectTypedef2 new];
   obj = [ObjectTypedef3 new];
index c46d9c450e770fddbeab82e48659bd3a9365b8f4..8d868d13cc9f1e6345af035cd3d9f79f26f42432 100644 (file)
@@ -4,7 +4,7 @@
 /* { dg-do compile } */
 /* { dg-options "-Wstrict-selector-match" } */
 
-#include "../objc-obj-c++-shared/Protocol1.h"
+#include <objc/Protocol.h>
 
 @interface Base
 - (unsigned)port;
index d7a7b97b702885a6148745733592b4a8a01aa751..f0ea1d5f8e9d16b63e459d4825b6e010b1bbd409 100644 (file)
@@ -3,11 +3,11 @@
 /* { dg-do compile } */
 /* { dg-options "-Wstrict-selector-match" } */
 
-
-#include "../objc-obj-c++-shared/Object1.h"
+#include <objc/objc.h>
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @interface Class1
-- (void)setWindow:(Object *)wdw;
+- (void)setWindow:(TestsuiteObject *)wdw;
 @end
 
 @interface Class2
 @end
 
 id foo(void) {
-  Object *obj = [[Object alloc] init];
+  TestsuiteObject *obj = [[TestsuiteObject alloc] init];
   id obj2 = obj;
-  [obj setWindow:nil];  /* { dg-warning ".Object. may not respond to .\\-setWindow:." } */
+  [obj setWindow:nil];  /* { dg-warning ".TestsuiteObject. may not respond to .\\-setWindow:." } */
   /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 20 } */
   /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 20 } */
   /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 20 } */
   [obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
-  /* { dg-message "using .\\-\\(void\\)setWindow:\\(Object \\*\\)wdw." "" { target *-*-* } 10 } */
+  /* { dg-message "using .\\-\\(void\\)setWindow:\\(TestsuiteObject \\*\\)wdw." "" { target *-*-* } 10 } */
   /* { dg-message "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 14 } */
 
   return obj;
index d755d6ad894dcab4cb1ef44a2ae91ee1760cf5ba..36f26f0e1885e99217633070add6077bfda23943 100644 (file)
@@ -5,10 +5,10 @@
 /* { dg-options "-Wstrict-selector-match" } */
 
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @protocol MyObject
-- (id)initWithData:(Object *)data;
+- (id)initWithData:(TestsuiteObject *)data;
 @end
 
 @protocol SomeOther
@@ -19,9 +19,9 @@
 - (id)initWithData:(id<MyObject, MyCoding>)data;
 @end
 
-@interface NTGridDataObject: Object <MyCoding>
+@interface NTGridDataObject: TestsuiteObject <MyCoding>
 {
-    Object<MyCoding> *_data;
+    TestsuiteObject<MyCoding> *_data;
 }
 + (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data;
 @end
@@ -34,7 +34,7 @@
 {
     NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
     /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 35 } */
-    /* { dg-message "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 11 } */
+    /* { dg-message "using .\\-\\(id\\)initWithData:\\(TestsuiteObject \\*\\)data." "" { target *-*-* } 11 } */
     /* { dg-message "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 19 } */
     /* { dg-message "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 15 } */
 
index b86e395294f19a0879844a1adf6912ca44a0a842..12c0f640c36d4a339652d950081f79390becdbd8 100644 (file)
@@ -3,10 +3,10 @@
 /* { dg-options "-O0" } */
 /* Radar 4015820 */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 void foo(void) {
-  Object *o;
+  TestsuiteObject *o;
   [o++ free];
 }
 /* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
index 097f35e9f2512591e4f2d63907a677f33ef83dd2..747da4d5199cee7b47852269ba4f87cd94ad9367 100644 (file)
@@ -6,11 +6,12 @@
 /* { dg-options "-fobjc-gc" } */
 /* { dg-prune-output "cc1obj: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include <objc/objc.h>
 
 @class MyWindow;
 
-@interface MyDocument : Object {
+@interface MyDocument : TestsuiteObject {
     MyWindow *_window;
 }
 @end
@@ -29,7 +30,7 @@
 @end
 
 @interface MyTextFileDocument : MyFileDocument {
-    Object *_textStorage;
+    TestsuiteObject *_textStorage;
     struct __tfdFlags {
         unsigned int immutable:1;
         unsigned int lineEnding:2;
index c9bb87c67f93ef76b193593a14e9de601a7771ad..d8afd839c80012ff292bf0a05f36555a3d2ae006 100644 (file)
@@ -2,6 +2,7 @@
 /* { dg-do run } */
 /* { dg-skip-if "" { *-*-* } { "-fnext-runtime" } { "" } } */
 
+#include <objc/runtime.h>
 #include <objc/Protocol.h>
 #include <stdlib.h>
 
 
 int main (int argc, char **argv)
 {
-  if ([@protocol(b) descriptionForInstanceMethod: @selector(aMethod)] == NULL)
+  struct objc_method_description m;
+  m = protocol_getMethodDescription (@protocol(b), @selector(aMethod), YES, YES);
+
+  if (m.name != NULL)
+    abort ();
+
+  m = protocol_getMethodDescription (@protocol(a), @selector(aMethod), YES, YES);
+
+  if (m.name == NULL)
     abort ();
 
   return 0;
index d8092a8067aed145be4af0e2aca5656999e5fb4f..cf2631c9561433f7ffe792aa6d187b0b7213d619 100644 (file)
@@ -6,16 +6,13 @@
 
 #include <objc/Protocol.h>
  
-#ifdef __OBJC2__
-/* The ObjC V2 "Object" does not provide -class.  */
 @interface Object (TS_CAT)
-- class;
+- test;
 @end
 
 @implementation Object (TS_CAT)
-- class { return isa; }
+- test { return self; }
 @end
-#endif
 
 @protocol A
 @end
@@ -28,8 +25,8 @@
 
 int main ()
 {
-  [@protocol(A) class];
-  [@protocol(B) class];
+  [@protocol(A) test];
+  [@protocol(B) test];
 
   return 0;
 }
index 39fd6c3cd89f18c784f164384e96911a64a07011..60db350c0c1ed04f15ea5b3b0b8b03eef4aa7ea3 100644 (file)
@@ -8,7 +8,17 @@ typedef unsigned char  BOOL;
 {
   Class isa;
 }
-- (BOOL)isEqual:anObject;
+@end
+
+@interface Object (Test)
+- (BOOL)testIsEqual:anObject;
+@end
+
+@implementation Object (Test)
+- (BOOL)testIsEqual:anObject
+{
+  return self == anObject;
+}
 @end
 
 #ifdef __NEXT_RUNTIME__
@@ -30,7 +40,7 @@ extern void *_NSConstantStringClassReference;
 
 void function (void)
 {
-  if ([@"strings" isEqual: (id)0])
+  if ([@"strings" testIsEqual: (id)0])
     {
       ;
     }
index 147f007b946bdbd04e9a2f43a94b06b5fa5d2c45..60d34de53d15d2b48c57ae942870518089774475 100644 (file)
@@ -1,12 +1,11 @@
 /* This program tests use of property provided setter/getter functions. */
 /* { dg-options "-std=c99" } */
 /* { dg-do run } */
-/* { dg-additional-sources "../../objc-obj-c++-shared/Object1.m" } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 
-@interface Bar : Object
+@interface Bar : TestsuiteObject
 {
   int iVar;
 }
index 361bb9087e6866f28362a75661e8720990b88b10..c1447ca85db2bbe3e3a87a5782e305bf1fb7ae70 100644 (file)
@@ -2,13 +2,14 @@
    provide a suitable method.  */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include <objc/objc.h>
 
 @protocol Zot
 -(void) zot;
 @end
 
-@interface Foo : Object <Zot>
+@interface Foo : TestsuiteObject <Zot>
 @end
 
 int foo()
index 1cb7b1d91b9dbed9bee09c54be3f630a96ce17bc..edbcb74f4376d836d6e0572b00600cee80f4a4a7 100644 (file)
@@ -3,9 +3,12 @@
    Problem report and original fix by richard@brainstorm.co.uk.  */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-#include "../objc-obj-c++-shared/Protocol1.h"
-#include "../objc-obj-c++-shared/Object1.h"
 #include <objc/objc.h>
+#include "../objc-obj-c++-shared/runtime.h"
+
+@interface MyClass
+- name;
+@end
 
 @protocol NoInstanceMethods
 + testMethod;
@@ -18,9 +21,9 @@
 int
 main()
 {
-[@protocol(NoInstanceMethods) descriptionForInstanceMethod: @selector(name)];
-[@protocol(NoInstanceMethods) descriptionForClassMethod: @selector(name)];
-[@protocol(NoClassMethods) descriptionForInstanceMethod: @selector(name)];
-[@protocol(NoClassMethods) descriptionForClassMethod: @selector(name)];
+protocol_getMethodDescription (@protocol(NoInstanceMethods), @selector(name), YES, YES);
+protocol_getMethodDescription (@protocol(NoInstanceMethods), @selector(name), YES, NO);
+protocol_getMethodDescription (@protocol(NoClassMethods), @selector(name), YES, YES);
+protocol_getMethodDescription (@protocol(NoClassMethods), @selector(name), YES, NO);
 return 0;
 }
index 59daec5a42a60414b609345c94265d870ac71e39..40eb0f9f5c5a544ab7b8a63b0a15cb9f513b8c8e 100644 (file)
@@ -4,11 +4,8 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
+#include "../objc-obj-c++-shared/runtime.h"
 #include <objc/Protocol.h>
-#ifndef __NEXT_RUNTIME__
-#include <objc/objc-api.h>
-#endif
-#include "../objc-obj-c++-shared/next-mapping.h"
 
 /* The encoded parameter sizes will be rounded up to match pointer alignment.  */
 #define ROUND(s,a) (a * ((s + a - 1) / a))
@@ -34,9 +31,7 @@ extern void abort(void);
 
 Protocol *proto;
 struct objc_method_description *meth;
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
 struct objc_method_description meth_object;
-#endif
 unsigned totsize, offs0, offs1, offs2, offs3, offs4, offs5, offs6, offs7;
 
 static void scan_initial(const char *pattern) {
@@ -48,22 +43,18 @@ static void scan_initial(const char *pattern) {
 
 int main(void) {
   proto = @protocol(Retain);
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
+
   meth_object = protocol_getMethodDescription (proto,
                  @selector(address:with:), YES, YES);
   meth = &meth_object;
-#else
-  meth = [proto descriptionForInstanceMethod: @selector(address:with:)];
-#endif
+
   scan_initial("O@%u@%u:%uNR@%uo^^S%u");
   CHECK_IF(offs3 == offs2 + aligned_sizeof(id) && totsize == offs3 + aligned_sizeof(unsigned));
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
+
   meth_object = protocol_getMethodDescription (proto,
                  @selector(retainArgument:with:), YES, NO);
   meth = &meth_object;
-#else
-  meth = [proto descriptionForClassMethod: @selector(retainArgument:with:)];
-#endif
+
   scan_initial("Vv%u@%u:%uOo@%un^*%u");
   CHECK_IF(offs3 == offs2 + aligned_sizeof(id) && totsize == offs3 + aligned_sizeof(char **));
   return 0;
index ab8eb3e45405ee37e8ec6f197b208720b16fc52d..6cad2ffb092e29efcfd2232f07dbd68b7c74787c 100644 (file)
@@ -2,7 +2,7 @@
 /* { dg-options "-Wselector" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include <objc/objc.h>
 
 @interface Foo
 @end
index 6380ec9df5d007ab34e6a63087c5cb9e96a6d736..21ce962e8166f231d0555b63c1462cf425a18aaa 100644 (file)
@@ -2,10 +2,9 @@
 /* { dg-do compile } */
 /* { dg-options "-Wunused-but-set-variable" } */
 
-#import "../objc-obj-c++-shared/Object1.h"
-#include <objc/objc-api.h>
+#import "../objc-obj-c++-shared/TestsuiteObject.m"
 
-@interface obj : Object
+@interface obj : TestsuiteObject
 {
   int value;
 }
@@ -13,7 +12,7 @@
 - (void) setValue: (int)number;
 @end
 
-@implementation obj : Object
+@implementation obj : TestsuiteObject
 
 - (int) value { return value; }
 - (void) setValue: (int)number { value = number; }
index ae505c1e898bd7cb92958cb4c5959d4133aaa743..bf1623830a66a85689ab7657ea694e2ba42ed409 100644 (file)
@@ -3,13 +3,13 @@
 /* { dg-options "" } */
 /* { dg-do run } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 #include <objc/objc.h>
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Foo: Object {
+@interface Foo: TestsuiteObject {
   int a, b;
   float c, d;
 }
@@ -18,17 +18,16 @@ extern void abort(void);
 @implementation Foo
 @end
 
-typedef Object MyObject;
+typedef TestsuiteObject MyObject;
 typedef struct Foo Foo_type;
 
-@compatibility_alias AliasObject Object;
+@compatibility_alias AliasObject TestsuiteObject;
 
 int main(void) {
-  CHECK_IF(sizeof(Foo) > sizeof(Object) && sizeof(Object) > 0);
+  CHECK_IF(sizeof(Foo) > sizeof(TestsuiteObject) && sizeof(TestsuiteObject) > 0);
   CHECK_IF(sizeof(Foo) == sizeof(Foo_type));
-  CHECK_IF(sizeof(Object) == sizeof(MyObject));
-  CHECK_IF(sizeof(Object) == sizeof(AliasObject));
+  CHECK_IF(sizeof(TestsuiteObject) == sizeof(MyObject));
+  CHECK_IF(sizeof(TestsuiteObject) == sizeof(AliasObject));
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index bf507a788247fa73dd0ee28e9899537270a9c1e8..a32024df59f317d8525b7672b9325ccdd966237e 100644 (file)
@@ -5,11 +5,7 @@
 
 @interface TestClass
 {
-#ifdef __OBJC2__
   Class isa;
-#else
-  id isa;
-#endif
 }
 - (int)D;
 @end
index 88e3d8ea7d192a87d24c126b028718d076c8925b..7b434b4db54b3ec6eb0457325065bf12fc04da51 100644 (file)
@@ -3,10 +3,7 @@
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
 #include <objc/objc.h>
-#ifndef __NEXT_RUNTIME__
-#include <objc/objc-api.h>
-#endif
-#include "../../objc-obj-c++-shared/next-mapping.h"
+#include "../../objc-obj-c++-shared/runtime.h"
 
 extern void abort (void);
 
@@ -27,9 +24,7 @@ extern void abort (void);
 {
   return 4;
 }
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 
@@ -38,13 +33,13 @@ int main (void)
   TestClass *test;
   Class testClass;
 
-  testClass = objc_get_class ("TestClass");
+  testClass = objc_getClass ("TestClass");
   if (testClass == Nil)
     {
       abort ();
     }
   
-  test = (TestClass *)(class_create_instance (testClass));
+  test = (TestClass *)(class_createInstance (testClass, 0));
   if (test == nil)
     {
       abort ();
index cae7d6dd6bfe01cca96f5db6302a9d808dc01545..ef8b1923079c73f0f67aac6d9c1a70e0e7b450ae 100644 (file)
@@ -3,7 +3,7 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort()
@@ -16,12 +16,12 @@ struct bstruct {
   float a, b, c, d, e, f;
 } globb = { 1, 2, 3, 4, 5, 6 };
 
-@interface foo : Object
+@interface foo : TestsuiteObject
 - (struct astruct) stret;
 - (struct bstruct) stretb;
 @end
 
-@implementation foo : Object
+@implementation foo : TestsuiteObject
 - (struct astruct) stret { return globa; }
 - (struct bstruct) stretb { return globb; }
 @end
@@ -62,4 +62,3 @@ int main(void)
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index e0fd8c2d892989c45a8f10219471c7d19c1a98d5..3086ad9d0a6df1b9b0698d57a410d5e20ce1cd01 100644 (file)
@@ -6,7 +6,7 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-require-effective-target ilp32 } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 struct astruct {
   float a, b;
@@ -17,12 +17,12 @@ struct bstruct {
   float a, b, c, d, e, f;
 } globb = { 1, 2, 3, 4, 5, 6 };
 
-@interface foo : Object
+@interface foo : TestsuiteObject
 - (struct astruct) stret;
 - (struct bstruct) stretb;
 @end
 
-@implementation foo : Object
+@implementation foo : TestsuiteObject
 - (struct astruct) stret { return glob; }
 - (struct bstruct) stretb { return globb; }
 @end
@@ -46,4 +46,3 @@ struct astruct afunc(foo *foo_obj) {
 
 /* { dg-final { scan-assembler-not "objc_msgSend\[^_S\]" } } */
 /* { dg-final { scan-assembler-not "objc_msgSendSuper\[^_\]" } } */
-
index fc3f211857aa223ea2cc3043e676ed7dae66ef57..408392fd5a069a93d9b24dd6368d0203d2297eee 100644 (file)
@@ -1,8 +1,7 @@
 /* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, November 2010.  */
 /* { dg-do compile } */
 
-#include "../../objc-obj-c++-shared/Object1.h"
-#include "../../objc-obj-c++-shared/next-mapping.h"
+#include "../../objc-obj-c++-shared/runtime.h"
 #ifndef __NEXT_RUNTIME__
 #include <objc/NXConstStr.h>
 #endif
@@ -30,4 +29,4 @@ id test_invalid7          = @"te" @"s" @@"t";    /* { dg-error "repeated .@. bef
 id test_invalid8          = @"te" @@"s" @"t";    /* { dg-error "repeated .@. before Objective-C string" } */
 id test_invalid9          = @"te" @"s" @"t" @;   /* { dg-error "stray .@. in program" } */
 id test_invalidA          = @"te" @ st;          /* { dg-error "stray .@. in program" } */
-                                                 /* { dg-error "expected" "" { target *-*-* } 32 } */
+                                                 /* { dg-error "expected" "" { target *-*-* } 31 } */
index fc74871db8f0766f188eb9ded851cd5538f621e1..b78cd8be3e2f43cadceea94054ccf580811f4d43 100644 (file)
@@ -4,12 +4,12 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 #include <stdlib.h>
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface _Child: Object
+@interface _Child: TestsuiteObject
 + (int) flashCache;
 @end
 
 + (int) flushCache2;
 @end
 
-int _Object = 23;  /* Should not conflict with @interface Object.  */
+int _TestsuiteObject = 23;  /* Should not conflict with @interface TestsuiteObject.  */
 
 @implementation _Child
-+ (int) flashCache { return 12 + _Object; }
++ (int) flashCache { return 12 + _TestsuiteObject; }
 @end
 
 @implementation Child
@@ -43,4 +43,3 @@ int main(void) {
   return 0; 
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index a5ff9088b1dc0fe9664d35e938105a24f84d7e4e..a1bafc0a7306a72f52a01064ee31439774e84097 100644 (file)
@@ -3,11 +3,11 @@
    should be traversed to find the @interface.  */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @class MyWpModule;
 
-@compatibility_alias MyObject Object;
+@compatibility_alias MyObject TestsuiteObject;
 @compatibility_alias FictitiousModule MyWpModule;
 
 @protocol MySelTarget
index fe1f65c78eb96020089de8ce968052997bf3720e..e0f439359730ee63bde356f95a349f855ad10254 100644 (file)
@@ -2,7 +2,7 @@
 /* { dg-options "-fobjc-exceptions" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include <objc/objc.h>
 
 void foo(id sem)
 {
index c2143a4e95b18a4031ca32f5c2be23a252f5208b..c73bbd92fbc728d1ae18253bee16c90c64177174 100644 (file)
@@ -1,13 +1,13 @@
 /* Make sure that @synchronized parses and a very basic test runs.  */
 /* { dg-options "-fobjc-exceptions -fgnu-runtime" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 int main (void)
 {
-  Object *a = [Object new];
-  Object *b = [Object new];
-  Object *c = [Object new];
+  TestsuiteObject *a = [TestsuiteObject new];
+  TestsuiteObject *b = [TestsuiteObject new];
+  TestsuiteObject *c = [TestsuiteObject new];
 
   /* This single-threaded test just checks that @synchronized() uses a
      recursive mutex, and that the runtime at least doesn't crash
index 5eb00014e7e72797804afa6ad0357851cde9145f..53154d321baf7d5d6abc4cd0da7a870715a2c78d 100644 (file)
@@ -4,9 +4,9 @@
 /* { dg-require-effective-target ilp32 } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Protocol1.h"
 #include <stdio.h>
 #include <string.h>
+#include "../objc-obj-c++-shared/runtime.h"
 
 extern void abort();
 
@@ -44,25 +44,32 @@ extern void abort();
 
 Protocol *proto = @protocol(CommonProtocol);
 struct objc_method_description *meth;
+struct objc_method_description meth_object;
 
 int main()
 {
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_On:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_On:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4On@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_nO:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_nO:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4nO@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_Oo:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_Oo:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4Oo@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_oO:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_oO:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4oO@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_rn:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_rn:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4rn@8"))
          abort();
-        meth = [proto descriptionForInstanceMethod: @selector(methodCall_oOn:)];
+        meth_object = protocol_getMethodDescription (proto, @selector(methodCall_oOn:), YES, YES);
+        meth = &meth_object;
        if (strcmp (meth->types, "Vv12@0:4oOn@8"))
          abort();
        return 0;
index 0d6f9ac4017531782f6f265b3179d0842f59b687..14db9269edfb61f1c221c5f16c60318f789b706d 100644 (file)
@@ -1,24 +1,18 @@
 /* { dg-do run } */
-/* See if -forward::/-performv:: is able to work. */
+/* See if -forward:: is able to work. */
 /* { dg-xfail-run-if "PR36610" { ! { { i?86-*-* x86_64-*-* } && ilp32 } } { "-fgnu-runtime" } { "" } } */
 /* { dg-skip-if "Needs OBJC2 Implementation" { *-*-darwin* && { lp64 } } { "-fnext-runtime" } { "" } } */
-/* There is no implementation of forward: in the NeXT m64 libobjc/Object
-   neither have we implemented this in our extensions - so we have to skip it
-   for now.  */
 
 #include <stdio.h>
 #include <stdlib.h>
 
-#ifndef __NEXT_RUNTIME__
-#  include <objc/objc-api.h>
-#endif
-#include <objc/Object.h>
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 #define VALUETOUSE 1234567890
 
 id forwarder, receiver;
 
-@interface Forwarder: Object
+@interface Forwarder: TestsuiteObject
 {
     id receiver;
 }
@@ -27,7 +21,7 @@ id forwarder, receiver;
 
 @end
 
-@interface Receiver:Object
+@interface Receiver:TestsuiteObject
 {
     int foo;
 }
@@ -44,6 +38,7 @@ id forwarder, receiver;
 
 -display
 {
+  printf ("Executing display\n");
     /* Check to see if we are really the reciever. */
     if (self != receiver)
         abort ();
@@ -62,18 +57,24 @@ id forwarder, receiver;
     receiver = theReceiver;
     return self;
 }
-#ifdef __NEXT_RUNTIME__
-- forward: (SEL)theSel: (marg_list)theArgFrame
-#else
--(retval_t) forward: (SEL)theSel: (arglist_t)theArgFrame
-#endif
+-(void *) forward: (SEL)theSel: (void *)theArgFrame
 {
   /* If we have a reciever try to perform on that object */
     if (receiver)
-        return [receiver performv: theSel: theArgFrame];
+      {
+       /* Simple forward that works for methods with no
+          arguments.  */
+       typedef id (*method_with_no_args) (id receiver, SEL _cmd);
+       Method method = class_getInstanceMethod (object_getClass (receiver),
+                                                theSel);
+       method_with_no_args imp = (method_with_no_args)(method_getImplementation
+                                                       (method));
+       return (*imp)(receiver, theSel);
+      }
 
     /* Normally you'd emit an error here.  */
     printf ("Unrecognized selector\n");
+    return NULL;
 }
 @end
 int main()
index f0f28238d9bcd71448483d408da653f941fc50a9..e35b83bdc37f25859ff16c5f639f89ad3bd10dc4 100644 (file)
@@ -6,7 +6,8 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include <objc/Object.h>
+#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
 @interface NSString: Object
 @end
index fa9dbd985a3bf7ea6ced65d1d052d257d661a680..765f6489fbb477e0d21d02e52eee81f375f02b00 100644 (file)
@@ -7,7 +7,8 @@
 /* { dg-options "-fconstant-string-class=XStr" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include <objc/Object.h>
+#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
 @interface XString: Object {
 @protected
index 7221e28d48bd4a526e361df6861c1c4a79532ae8..4c190904a797d64aa9f4f65800e84e9cb8131b8e 100644 (file)
@@ -3,27 +3,28 @@
 /* { dg-do run } */
 /* { dg-options "-fconstant-string-class=Foo " } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
-/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.m" } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
-@interface Foo: Object {
+@interface Foo: TestsuiteObject {
   char *cString;
   unsigned int len;
 }
 - (char *)customString;
 @end
 
+#ifdef __NEXT_RUNTIME__
 #ifdef NEXT_OBJC_USE_NEW_INTERFACE
 Class _FooClassReference;
 #else
 struct objc_class _FooClassReference;
 #endif
+#endif
 
-@implementation Foo : Object
+@implementation Foo : TestsuiteObject
 - (char *)customString {
   return cString;
 }
index c5bacaf437f19a34d51d432f459e5acbe276ebe1..9b6d23fbf3ff2b5d0d12cb5565299d3d8410a7eb 100644 (file)
@@ -3,24 +3,25 @@
 /* { dg-do run } */
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
-/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.m" } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
-@interface Foo: Object {
+@interface Foo: TestsuiteObject {
   char *cString;
   unsigned int len;
 }
 @end
 
+#ifdef __NEXT_RUNTIME__
 #ifdef NEXT_OBJC_USE_NEW_INTERFACE
 Class _FooClassReference;
 #else
 struct objc_class _FooClassReference;
 #endif
+#endif
 
-@implementation Foo : Object
+@implementation Foo : TestsuiteObject
 - (char *)customString {
   return cString;
 }
index 39bd102743541fb049f4500a2837f007d9edeefa..e69fb018078c65d7d259a1b42a075da098246b97 100644 (file)
@@ -5,7 +5,8 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include <objc/Object.h>
+#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
 @interface NSConstantString: Object {
   char *cString;
index b52c87391ea583bfd9c0e4a03697f6d6696ba0ca..5fd29a84d513ce78417129026a9d23f9a49f2e3f 100644 (file)
@@ -2,12 +2,11 @@
 /* { dg-require-effective-target tls_runtime } */
 /* { dg-add-options tls } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.m" } */
 
-#include "../../../objc-obj-c++-shared/Object1.h"
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 extern void _exit(int);
 
-@interface tsObj: Object {
+@interface tsObj: TestsuiteObject {
   int ai ;
 }
 
index a1ac22ed481384ef53986be52de962a5f59b7d92..8ca4b3c325aec875a234b41feed60c8dc7338346 100644 (file)
@@ -1,11 +1,10 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../../objc-obj-c++-shared/Object1.m" } */
 
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 int main(void)
 {
-  [Object class];
+  [TestsuiteObject class];
   return 0;
 }
index 5b2a209ddb836520a24d1dd149f19f321e531124..387a1b6f8ba8777bce605dffe7e8c5e9154efaa5 100644 (file)
@@ -3,14 +3,14 @@
 /* { dg-options "-fobjc-exceptions" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 #include <stdio.h>
 #include <setjmp.h>
 
-@interface Frob: Object
+@interface Frob: TestsuiteObject
 @end
 
-@implementation Frob: Object
+@implementation Frob: TestsuiteObject
 @end
 
 static int exc_control = 0;
index 49e2c0cef15ce191e398f76a5c697ca1bbacf8af..320185fe0b3411f90744587b18c7c3377a64436d 100644 (file)
@@ -4,7 +4,7 @@
 /* { dg-options "-fobjc-exceptions" } */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 @protocol Proto1
 - (int)meth1;
 - (int)meth2;
 @end
 
-@interface MyClass: Object <Proto2> {
+@interface MyClass: TestsuiteObject <Proto2> {
   int a;
 }
 - (int)meth2;
-- (Object *)parm1: (id)p1 parm2: (id<Proto1>)p2;
+- (TestsuiteObject *)parm1: (id)p1 parm2: (id<Proto1>)p2;
 @end
 
 MyClass *mc1, *mc2;
@@ -27,7 +27,7 @@ MyClass *mc1, *mc2;
 - (int)meth2 {
   return a;
 }
-- (Object *)parm1: (id)p1 parm2: (id<Proto1>)p2 {
+- (TestsuiteObject *)parm1: (id)p1 parm2: (id<Proto1>)p2 {
   @try {
     mc2 = p2;   /* { dg-warning "type .id <Proto1>. does not conform to the .Proto2. protocol" } */
   }
index 2094d29ce2de77a9b48356e6c1fa7726e2356821..c9087b33147e25e43af394e3c46ed133951886fc 100644 (file)
@@ -5,14 +5,14 @@
 /* { dg-do compile } */
 /* { dg-options "-fobjc-exceptions" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 const char *foo(void)
 {
     @try {
         return "foo";
     }
-    @catch (Object* theException) {
+    @catch (TestsuiteObject* theException) {
           return [theException name];
     }
 }
index 548c320b494ea0209df6543ce8096a9d70dd3ab9..9d71e793d2b49dd5c4981506efaa71dc1b5f124c 100644 (file)
@@ -1,10 +1,10 @@
 /* { dg-do compile } */
 /* { dg-options "-fobjc-exceptions" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
 int main (int argc, const char * argv[]) {
-  Object * pool = [Object new];
+  TestsuiteObject * pool = [TestsuiteObject new];
   int a;
 
   if ( 1 ) {
@@ -12,7 +12,7 @@ int main (int argc, const char * argv[]) {
     @try {
       a = 1;
     }
-    @catch (Object *e) {
+    @catch (TestsuiteObject *e) {
       a = 2;
     }
     @finally {
index b66662370259ba8dc568e6db75f303f211f82f91..7adf2f9e3262ce55504ccea3740571a196f4fa56 100644 (file)
@@ -3,9 +3,9 @@
 /* { dg-do compile } */
 /* { dg-options "-fobjc-exceptions" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
 
-@interface Derived: Object
+@interface Derived: TestsuiteObject
 - (id) meth;
 @end
 
index 656d85a57b8b26f3d2c3a30df4f3d111d82e49f9..d02a8af219e14dd37069edc676b3c12d8e4f627f 100644 (file)
@@ -4,20 +4,10 @@
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.m" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../objc-obj-c++-shared/runtime.h"
 #include <stdio.h>
 #include <stdlib.h>
-#ifdef __NEXT_RUNTIME__
-#include <objc/objc-runtime.h>
-#define METHOD Method
-#else
-#include <objc/objc-api.h>
-#define METHOD Method_t
-#define method_get_types(M) (M)->method_types
-#endif
 
 extern int sscanf(const char *str, const char *format, ...);
 extern void abort(void);
@@ -36,21 +26,21 @@ enum Enum { one, two, three, four };
 @end
 
 Class cls;
-METHOD meth ;
+Method meth ;
 
 unsigned totsize, offs0, offs1, offs2, offs3, offs4, offs5, offs6, offs7;
 
 static void scan_initial(const char *pattern) {
   totsize = offs0 = offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = offs7 = (unsigned)-1;
-  sscanf(method_get_types(meth), pattern, &totsize, &offs0, &offs1, &offs2, &offs3,
+  sscanf(method_getTypeEncoding(meth), pattern, &totsize, &offs0, &offs1, &offs2, &offs3,
       &offs4, &offs5, &offs6, &offs7);
   CHECK_IF(!offs0 && offs1 == sizeof(id) && offs2 == offs1 + sizeof(SEL) && totsize >= offs2);
 }
 
 int main(void) {
-  cls = objc_get_class("ArrayTest");
+  cls = objc_getClass("ArrayTest");
 
-  meth = class_get_instance_method(cls, @selector(str:with:and:));
+  meth = class_getInstanceMethod(cls, @selector(str:with:and:));
 
   /* Here we have the complication that 'enum Enum' could be encoded
      as 'i' on __NEXT_RUNTIME_, and (most likely) as 'I' on the GNU
@@ -67,7 +57,7 @@ int main(void) {
 
   CHECK_IF(offs3 == offs2 + sizeof(signed char *) && offs4 == offs3 + sizeof(unsigned char *));
   CHECK_IF(totsize == offs4 + sizeof(enum Enum *));
-  meth = class_get_instance_method(cls, @selector(meth1:with:with:));
+  meth = class_getInstanceMethod(cls, @selector(meth1:with:with:));
   scan_initial("i%u@%u:%u^i%u[0i]%u[2i]%u");
   CHECK_IF(offs3 == offs2 + sizeof(int *) && offs4 == offs3 + sizeof(int *));
   CHECK_IF(totsize == offs4 + sizeof(int *));                                           
index 79db8765ead812ec919eacf55826d0ad4468c44b..263ce010af050ed2429747d01118987dc6469b64 100644 (file)
@@ -1,15 +1,16 @@
 /* Typedefs of ObjC types should work without any bogus warnings. */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.h"
+#include <objc/objc.h>
 
-typedef Object MyObject;
+typedef TestsuiteObject MyObject;
 
 int main (int argc, const char * argv[])
 {
-    Object* a = nil;
+    TestsuiteObject* a = nil;
     MyObject* b = a;
-    Object* c = b;
+    TestsuiteObject* c = b;
 
     return 0;
 }
index 15bbe97c9a5d5b9dc5291e74f176b161ab153ded..11f8d415fc311576b4b9ba0441185bc36316689b 100644 (file)
@@ -2,14 +2,14 @@
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include "../objc-obj-c++-shared/TestsuiteObject.m"
 
 #include <stdarg.h>
 #include <stdlib.h>
 
 /* Test methods with "C-style" trailing arguments, with or without ellipsis. */
 
-@interface MathClass: Object
+@interface MathClass: TestsuiteObject
 /* sum positive numbers; -1 ends the list */
 + (int) sum: (int)firstNumber, int secondNumber, ...;
 + (int) prod: (int) firstNumber, int secondNumber, int thirdNumber;
@@ -70,4 +70,3 @@ int main (void)
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index c040031116941410e2af6f7d9873f5c6a44438c5..4917495aff8ea2e4656d0a8c0eabb4bb2ba1f4ef 100644 (file)
@@ -5,7 +5,7 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-fzero-link" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
+#include <objc/Object.h>
 #include <objc/objc.h>
 
 extern void abort(void);
index 2b95b952b1e0a682c24b88bba785712de873d921..5da7422b8e4d42e63c7311f37c3f395ecbd9659d 100644 (file)
@@ -5,8 +5,7 @@
 /* { dg-options "-fzero-link" } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-//#import <objc/objc.h>
+#include <objc/Object.h>
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
@@ -25,4 +24,3 @@ int main(void) {
   return 0;
 }
 
-#include "../objc-obj-c++-shared/Object1-implementation.h"
index 207cce8b3c37e8a927c4eb707f9c8109a3c14da5..b0639d4594d5623ae7c3137b6b119e712c93b19c 100644 (file)
@@ -1,6 +1,6 @@
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.h"
 
 int main(void)
 {
-  [Object class];
+  [TestsuiteObject class];
 }
index f0790975780d4e1a980d5de96267a1681ffacf0c..a2372cba7657654937c5b628a129d9447bbea171 100644 (file)
@@ -1,9 +1,7 @@
 /* Contributed by Nicola Pero - Fri Mar  9 19:39:15 CET 2001 */
 
 #include <stdlib.h>
-#include "../../objc-obj-c++-shared/next-mapping.h"
-#include <objc/objc.h>
-#include <objc/objc-api.h>
+#include "../../objc-obj-c++-shared/runtime.h"
 
 /* Test getting and calling the IMP of a method */
 
 {
   Class isa;
 }
-- (int) next: (int)a;
++ (int) next: (int)a;
 @end
 
 @implementation TestClass
-- (int) next: (int)a
++ (int) next: (int)a
 {
   return a + 1;
 }
@@ -27,10 +25,10 @@ int main (void)
   SEL selector;
   int (* imp) (id, SEL, int);
   
-  class = objc_get_class ("TestClass");
+  class = objc_getClass ("TestClass");
   selector = @selector (next:);
-  imp = (int (*)(id, SEL, int))method_get_imp 
-    (class_get_class_method (class, selector));
+  imp = (int (*)(id, SEL, int))method_getImplementation
+    (class_getClassMethod (class, selector));
   
   if (imp (class, selector, 5) != 6)
     {
index 6c579d771b86db55807eed95a9b1110a22c79e47..7e176e9916c7f4dd9f0aa07023d29136052469e2 100644 (file)
@@ -1,8 +1,7 @@
 /* Contributed by Nicola Pero - Fri Mar  9 19:39:15 CET 2001 */
 
 #include <stdlib.h>
-#include "../../objc-obj-c++-shared/next-mapping.h"
-#include <objc/objc-api.h>
+#include "../../objc-obj-c++-shared/runtime.h"
 
 /* Test the hidden argument _cmd to method calls */
 
 @implementation TestClass
 + (const char*) method
 {
-  return sel_get_name (_cmd);
+  return sel_getName (_cmd);
 }
-#ifdef __NEXT_RUNTIME__
 + initialize { return self; }
-#endif
 @end
 
 
index e4c9cf4cd42977c121d6a08cedb3bfe48a97eaab..964c378b4ab51a574f499c9ff5d9238ca481475d 100644 (file)
@@ -1,23 +1,20 @@
 /* Contributed by Nicola Pero - Thu Mar  8 16:27:46 CET 2001 */
 #include <stdlib.h>
-#ifndef __NEXT_RUNTIME__
-#include <objc/objc-api.h>
-#endif
-#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* Test that by using -> we can access ivars of other objects of the same 
    class */
 
-@interface TestClass : Object
+@interface TestClass : TestsuiteObject
 {
   int value;
 }
 - (int) value;
-- (int) setValue: (int)number;
+- (void) setValue: (int)number;
 - (void) takeValueFrom: (TestClass *)object;
 @end
 
-@implementation TestClass : Object
+@implementation TestClass : TestsuiteObject
 {
   int value;
 }
@@ -25,9 +22,9 @@
 { 
   return value;
 }
-- (int) setValue: (int)number
+- (void) setValue: (int)number
 {
-  value = number; 
+  value = number;
 }
 - (void) takeValueFrom: (TestClass *)object
 {
@@ -55,4 +52,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index ca70c21a411a0d5c65e8e4fc16c7ca5615fcf072..43b0d32b7d6a9509a6928af48955282e7367e0b4 100644 (file)
@@ -1,17 +1,14 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#ifndef __NEXT_RUNTIME__
-#include <objc/encoding.h>
-#else
+#include "../../objc-obj-c++-shared/runtime.h"
+
 /* The following header, together with the implementation included below,
    emulate functionality provided by the GNU runtime but not available from
    the NeXT runtime.  */
 #include "../../objc-obj-c++-shared/objc-test-suite-next-encode-assist.h"
-#define objc_get_class(C) objc_getClass(C)
-#endif
 
-#ifndef __OBJC2__
+#if defined(__NEXT_RUNTIME__) && !defined(NEXT_OBJC_USE_NEW_INTERFACE)
 void print_ivars (Class class)
 {
   struct objc_ivar_list* ivars = class->ivars;
@@ -62,17 +59,67 @@ void compare_structures (Class class, const char* type)
   
   printf ("%d ivars checked\n", i);
 }
+#else
+void print_ivars (Class class)
+{
+  unsigned int count, i;
+  Ivar *list = class_copyIvarList (class, &count);
+
+  for (i = 0; i < count; i++) {
+    printf ("ivar '%s', type '%s', offset %ud\n",
+           ivar_getName (list[i]),
+           ivar_getTypeEncoding (list[i]),
+           (unsigned int)ivar_getOffset (list[i]));
+  }
+}
+
+void compare_structures (Class class, const char* type)
+{
+  struct objc_struct_layout layout;
+  unsigned int count;
+  Ivar *list = class_copyIvarList (class, &count);
+  int i = 0;
+  int position;
+
+  objc_layout_structure (type, &layout);
+
+  while (objc_layout_structure_next_member (&layout))
+    {
+      const char *ivar_type;
+
+      if (i > count)
+        {
+          printf ("too many ivars in type %s, layout = %s\n",
+                  type, layout.type);
+          exit (1);
+        }
+
+      objc_layout_structure_get_info (&layout, &position, NULL, &ivar_type);
+      printf ("real ivar '%s' offset %ud\n",
+              ivar_getName (list[i]), (unsigned int)ivar_getOffset (list[i]));
+      printf ("computed type '%s' offset %d\n", ivar_type, position);
+      if ((unsigned int)position != (unsigned int)ivar_getOffset (list[i]))
+        {
+          printf ("offset %ud and computed position %d don't match on ivar '%s'"
+                  " (i = %d)\n",
+                  (unsigned int)ivar_getOffset (list[i]), position, ivar_getName (list[i]), i);
+          exit (1);
+        }
+      i++;
+    }
+  
+  printf ("%d ivars checked\n", i);
+}
 #endif
 
 int main ()
 {
-#ifndef __OBJC2__
   struct class_vars
     {
       @defs (MyObject);
     };
   int size1, size2;
-  Class class = objc_get_class ("MyObject");
+  Class class = objc_getClass ("MyObject");
   printf ("type = %s\n", @encode (struct class_vars));
   print_ivars (class);
 
@@ -83,10 +130,7 @@ int main ()
       printf ("sizes don't match (computed %d, exact %d)\n", size1, size2);
       abort ();
     }
-#endif
   
-  exit (0);
+  return 0;
 }
-#ifndef __OBJC2__
 #include "../../objc-obj-c++-shared/objc-test-suite-next-encode-assist-impl.h"
-#endif
index c719d27d18beb56a19f19d24b2b23e9672021f72..358b6f92b32c912fe2ca7f52babb7fa8effe7195 100644 (file)
@@ -2,8 +2,7 @@
  * Contributed by Nicola Pero <nicola@brainstorm.co.uk>
  * Fri Feb  2 11:48:01 GMT 2001
  */
-
-#include "../../objc-obj-c++-shared/Protocol1.h"
+#include <objc/objc.h>
 
 @protocol MyProtocol
 - (bycopy id) bycopyMethod;
@@ -13,7 +12,7 @@ int main (void)
 {
   [nil bycopyMethod];
 
-   exit (0);
+  return 0;
 }
 
 
index 840881f4a97f5d0235b2f07f3be56f37db560318..b42659106b16e04ce0a3a532b4712bb4d8f9f6ea 100644 (file)
@@ -2,14 +2,14 @@
  * Contributed by Nicola Pero <nicola@brainstorm.co.uk>
  * Fri Feb  2 11:48:01 GMT 2001
  */
-
-#include "../../objc-obj-c++-shared/Protocol1.h"
+#include <objc/objc.h>
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 @protocol MyProtocol
 + (bycopy id<MyProtocol>) bycopyMethod;
 @end
 
-@interface MyObject : Object <MyProtocol> 
+@interface MyObject : TestsuiteObject <MyProtocol> 
 @end
 
 @implementation MyObject
@@ -25,6 +25,6 @@ int main (void)
 
   object = [MyObject bycopyMethod];
 
-   exit (0);
+  return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index 15c49a5dd34b595075ae4d2832f097da46a5e909..e96d39594832085a4bb96d47a7679dced90b9a1e 100644 (file)
@@ -9,27 +9,18 @@
  * interfere with what we are testing, which is that the `bycopy'
  * keyword generates the _F_BYCOPY qualifier for the return type.  */
 
-extern void exit (int) __attribute__ ((noreturn));
 extern int printf (const char *, ...);
 
-#include <objc/Protocol.h>
-
-#ifndef __NEXT_RUNTIME__
-#include <objc/encoding.h>
-#endif
+#include <objc/objc.h>
+#include "../../objc-obj-c++-shared/runtime.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 @protocol MyProtocol
 + (bycopy id<MyProtocol>) bycopyMethod;
 @end
 
 /* This no-op class to keep it compile under broken gcc 3.x */
-@interface MyObject : Object <MyProtocol> 
-#ifdef __OBJC2__
-+ (id) initialize;
-+ (id) alloc;
-+ new;
-- init;
-#endif
+@interface MyObject : TestsuiteObject <MyProtocol> 
 @end
 
 @implementation MyObject
@@ -37,12 +28,6 @@ extern int printf (const char *, ...);
 {
   return [MyObject alloc];
 }
-#ifdef __OBJC2__
-+ initialize {return self;}
-+ alloc { return class_createInstance (self, 0);}
-+ new { return [[self alloc] init]; }
-- init {return self;}
-#endif
 @end
 
 /* The following header, together with the implementation included below,
@@ -52,7 +37,7 @@ extern int printf (const char *, ...);
 
 int main (void)
 {
-  struct objc_method_description *method;
+  struct objc_method_description method;
   const char *method_types;
   unsigned qualifiers;
   Protocol *protocol;
@@ -64,16 +49,18 @@ int main (void)
   protocol = @protocol (MyProtocol);
 
   /* Ask to the protocol for the description of the method bycopyMethod */
-  method = [protocol descriptionForClassMethod: @selector (bycopyMethod)];
-  if (method == NULL)
-    {
-      printf ("Could not find method bycopyMethod in protocol!\n");
-      exit (1);
-    }
+  method = protocol_getMethodDescription (protocol, @selector (bycopyMethod),
+                                         YES, NO);
 
   /* Get the method types for the method - which encode return type,
      arguments etc. */
-  method_types = method->types;
+  method_types = method.types;
+
+  if (method_types == NULL)
+    {
+      printf ("Could not find method bycopyMethod in protocol!\n");
+      return 1;
+    }
 
   /* Get the qualifiers for the return type */
   qualifiers = objc_get_type_qualifiers (method_types);
@@ -82,7 +69,7 @@ int main (void)
   if (! (qualifiers & _F_BYCOPY))
     {
       printf ("Failed - selector does not contain _F_BYCOPY qualifier!\n");
-      exit (1);
+      return 1;
     }
 
   /* Else, happy end */
index b823ea816f0d8365e9395204df378b1c10d69036..0e4ea31b7d10f31e684005953855d29c1f985be7 100644 (file)
@@ -1,7 +1,7 @@
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 
-@interface Foo : Object
+@interface Foo : TestsuiteObject
 + foo;
 + bar;
 @end
index 2ac2c0646c08f1bda528a1e4ad8e25886cf4456e..6ce262095631fc96b03efa215c29b4cfc3e6cde3 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a RootClass */
 
index 0908609f0f3c419adb24a827469d822c9da42ba8..fba1a38a0b053ddf956e760e1f817b3875be341e 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with an ivar and
    accessor methods and a subclass overriding the superclass'
@@ -15,9 +13,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 @interface SubClass : RootClass
@@ -72,10 +68,10 @@ int main (void)
   test_that_class_has_instance_method ("SubSubClass", @selector (state));
   test_that_class_has_instance_method ("SubSubClass", @selector (shift));
   
-  object = class_create_instance (objc_lookup_class ("SubClass"));
+  object = class_createInstance (objc_getClass ("SubClass"), 0);
   test_accessor_method (object, 0, -1, -1, 1, 1);
 
-  sub_object = class_create_instance (objc_lookup_class ("SubSubClass"));
+  sub_object = class_createInstance (objc_getClass ("SubSubClass"), 0);
   test_accessor_method (sub_object, 1, -1, 0, 1, 2);
 
   return 0;
index 33cd0492da324c6a9d25b76e3b9d233d18f270e8..2cd6017d4607bf3a3eae6709e6206d5a49890348 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with an ivar and
    accessor methods and a subclass overriding the superclass'
@@ -16,9 +14,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 @interface SubClass : RootClass
@@ -76,10 +72,10 @@ int main (void)
   test_that_class_has_instance_method ("SubSubClass", @selector (state));
   test_that_class_has_instance_method ("SubSubClass", @selector (shift));
   
-  object = class_create_instance (objc_lookup_class ("SubClass"));
+  object = class_createInstance (objc_getClass ("SubClass"), 0);
   test_accessor_method (object, 0, -1, -1, 1, 1);
 
-  sub_object = class_create_instance (objc_lookup_class ("SubSubClass"));
+  sub_object = class_createInstance (objc_getClass ("SubSubClass"), 0);
   test_accessor_method (sub_object, 1, -1, 0, 1, 2);
 
   return 0;
index 3f4c4fbd5f41d7fac9d21be8aa4306ea0a4ca0b8..d3116e8cc40426f9af4f5b466952b4d79ed4029c 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with a class methods */
 
@@ -13,9 +11,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 static int class_variable = 0;
@@ -48,7 +44,7 @@ int main (void)
   test_that_class_has_class_method ("SubClass", @selector (setState:));
   test_that_class_has_class_method ("SubClass", @selector (state));
 
-  class = objc_lookup_class ("SubClass");
+  class = objc_getClass ("SubClass");
   test_accessor_method (class, 0, -1, -1, 1, 1);
 
   return 0;
index 790654d107a64d7dbbb8be21a24d75b0a4cbc20a..1d685e3a797f09d85fcbf1a4bc14bb92d9d633ba 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with a class accessor
    methods and a subclass overriding the superclass' implementation
@@ -15,9 +13,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 static int class_variable = 0;
@@ -65,10 +61,10 @@ int main (void)
   test_that_class_has_class_method ("SubSubClass", @selector (setState:));
   test_that_class_has_class_method ("SubSubClass", @selector (state));
   
-  class = objc_lookup_class ("SubClass");
+  class = objc_getClass ("SubClass");
   test_accessor_method (class, 0, -1, -1, 1, 1);
 
-  sub_class = objc_lookup_class ("SubSubClass");
+  sub_class = objc_getClass ("SubSubClass");
   class_variable = 0;
   test_accessor_method (sub_class, 1, -1, 0, 1, 2);
 
index e04452e527bf5d8e350005530d40f7e17dae342d..3ab0982c6f3c80508c35f442d2c7abd5bb102491 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with a class accessor
    methods and a subclass overriding the superclass' implementation,
@@ -15,9 +13,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 static int class_variable = 0;
@@ -70,10 +66,10 @@ int main (void)
   test_that_class_has_class_method ("SubSubClass", @selector (state));
   test_that_class_has_class_method ("SubSubClass", @selector (shift));
   
-  class = objc_lookup_class ("SubClass");
+  class = objc_getClass ("SubClass");
   test_accessor_method (class, 0, -1, -1, 1, 1);
 
-  sub_class = objc_lookup_class ("SubSubClass");
+  sub_class = objc_getClass ("SubSubClass");
   class_variable = 0;
   test_accessor_method (sub_class, 1, -1, 0, 1, 2);
 
index c20f95fd6a6731b1a46e14770a61323a2e72ca2c..88378e1d4a8032c2ea8da930067d61e4c2d38c69 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass */
 
index dbdc0b9f2e382d749b9504b94c2bf66fd4a14266..071708a6e6811c824bcaf6695104b5e5904a749d 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a minimal subclass tree */
 
index 61ce30a6a80dc27ed1ea913cfd688799b4963115..a862191636cb87aa5beff2f2266c2ff047b15b6c 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with an ivar and
    accessor methods */
@@ -14,9 +12,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 @interface SubClass : RootClass
@@ -50,7 +46,7 @@ int main (void)
   test_that_class_has_instance_method ("SubClass", @selector (setState:));
   test_that_class_has_instance_method ("SubClass", @selector (state));
 
-  object = class_create_instance (objc_lookup_class ("SubClass"));
+  object = class_createInstance (objc_getClass ("SubClass"), 0);
   test_accessor_method (object, 0, 1, 1, -3, -3);
 
   return 0;
index c10df1be0b3111dd1dba458f65b9f5593ff288d6..d0dc97a5bf3b6f3fc900ce392a63c68861434f57 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with an ivar and
    accessor methods and a subclass overriding the superclass'
@@ -15,9 +13,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 @interface SubClass : RootClass
@@ -66,10 +62,10 @@ int main (void)
   test_that_class_has_instance_method ("SubSubClass", @selector (setState:));
   test_that_class_has_instance_method ("SubSubClass", @selector (state));
   
-  object = class_create_instance (objc_lookup_class ("SubClass"));
+  object = class_createInstance (objc_getClass ("SubClass"), 0);
   test_accessor_method (object, 0, -1, -1, 1, 1);
 
-  sub_object = class_create_instance (objc_lookup_class ("SubSubClass"));
+  sub_object = class_createInstance (objc_getClass ("SubSubClass"), 0);
   test_accessor_method (sub_object, 1, -1, 0, 1, 2);
 
   return 0;
index 064462280e09c44fc56d56b7c355e94a3b0344ee..e178f6193945515cf26e19bd92bb08eb8bcc100f 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with an ivar and
    accessor methods and a subclass overriding the superclass'
@@ -15,9 +13,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 @interface SubClass : RootClass
@@ -66,10 +62,10 @@ int main (void)
   test_that_class_has_instance_method ("SubSubClass", @selector (setState:));
   test_that_class_has_instance_method ("SubSubClass", @selector (state));
   
-  object = class_create_instance (objc_lookup_class ("SubClass"));
+  object = class_createInstance (objc_getClass ("SubClass"), 0);
   test_accessor_method (object, 0, -1, -1, 1, 1);
 
-  sub_object = class_create_instance (objc_lookup_class ("SubSubClass"));
+  sub_object = class_createInstance (objc_getClass ("SubSubClass"), 0);
   test_accessor_method (sub_object, 1, -1, 0, 1, 2);
 
   return 0;
index 06de61fef3242a6377862b86f524e951ffa046ef..31e240945bb320e2bd77a24a58145d93187cc28d 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with an ivar and
    accessor methods; accessor methods implemented in a separate
@@ -15,9 +13,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 @interface SubClass : RootClass
@@ -64,7 +60,7 @@ int main (void)
   test_that_class_has_instance_method ("SubClass", @selector (setState:));
   test_that_class_has_instance_method ("SubClass", @selector (state));
 
-  object = class_create_instance (objc_lookup_class ("SubClass"));
+  object = class_createInstance (objc_getClass ("SubClass"), 0);
   test_accessor_method (object, 0, 1, 1, -3, -3);
 
   return 0;
index 0471994d3595c877e1e58dbea3d9adf43a010f81..ef4c2a3c8f3af6f716d8492320fb056a7abf5de9 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with an ivar and
    accessor methods and a subclass overriding the superclass'
@@ -15,9 +13,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 @interface SubClass : RootClass
@@ -69,10 +65,10 @@ int main (void)
   test_that_class_has_instance_method ("SubSubClass", @selector (setState:));
   test_that_class_has_instance_method ("SubSubClass", @selector (state));
   
-  object = class_create_instance (objc_lookup_class ("SubClass"));
+  object = class_createInstance (objc_getClass ("SubClass"), 0);
   test_accessor_method (object, 0, -1, -1, 1, 1);
 
-  sub_object = class_create_instance (objc_lookup_class ("SubSubClass"));
+  sub_object = class_createInstance (objc_getClass ("SubSubClass"), 0);
   test_accessor_method (sub_object, 1, -1, 0, 1, 2);
 
   return 0;
index 367a4c912ccfac72022e93072231f967672044c2..d27d345388182ecca95bfcd2647c5525c5f71b0e 100644 (file)
@@ -1,8 +1,6 @@
 /* Contributed by Nicola Pero - Tue Mar  6 23:05:53 CET 2001 */
 
-#include "../../objc-obj-c++-shared/next-mapping.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Tests creating a root class and a subclass with an ivar and
    accessor methods and a subclass overriding the superclass'
@@ -15,9 +13,7 @@
 @end
 
 @implementation RootClass
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 @interface SubClass : RootClass
@@ -69,10 +65,10 @@ int main (void)
   test_that_class_has_instance_method ("SubSubClass", @selector (setState:));
   test_that_class_has_instance_method ("SubSubClass", @selector (state));
   
-  object = class_create_instance (objc_lookup_class ("SubClass"));
+  object = class_createInstance (objc_getClass ("SubClass"), 0);
   test_accessor_method (object, 0, -1, -1, 1, 1);
 
-  sub_object = class_create_instance (objc_lookup_class ("SubSubClass"));
+  sub_object = class_createInstance (objc_getClass ("SubSubClass"), 0);
   test_accessor_method (sub_object, 1, -1, 0, 1, 2);
 
   return 0;
index 54a77d247f76c4b46b77197a8bfcc7b8133f1f22..cfdd72b4748a1f35e8c2f49d585d473b697fbd39 100644 (file)
@@ -2,9 +2,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../../objc-obj-c++-shared/Object1.h"
-#include <objc/objc.h>
-#include <objc/objc-api.h>
+#include "../../objc-obj-c++-shared/runtime.h"
 
 /*
  * Standard Tests For Classes and Objects - abort upon failing; return
 /* Test that `class' is a Class */
 static void test_is_class (Class class)
 {
-  if (object_is_class (class) == NO)
-    {
-      printf ("test_is_class failed\n");
-      abort ();
-    }
-
-  if (class_is_class (class) == NO)
+  if (class_isMetaClass (object_getClass (class)) == NO)
     {
       printf ("test_is_class failed\n");
       abort ();
@@ -30,7 +22,7 @@ static void test_is_class (Class class)
 /* Test that the superclass of `class' is `superclass' */
 static void test_superclass (Class class, Class superclass)
 {
-  if (class_get_super_class (class) != superclass) 
+  if (class_getSuperclass (class) != superclass)
     {
       printf ("test_superclass failed\n");
       abort ();
@@ -40,7 +32,7 @@ static void test_superclass (Class class, Class superclass)
 /* Test that the classname of `class' is `classname' */
 static void test_class_name (Class class, const char *classname)
 {
-  if (strcmp (class_get_class_name (class), classname))
+  if (strcmp (class_getName (class), classname))
     {
       printf ("test_class_name failed\n");
       abort ();
@@ -51,7 +43,7 @@ static void test_class_name (Class class, const char *classname)
 static void test_allocate (Class class)
 {
   /* The object we create is leaked but who cares, this is only a test */
-  id object = class_create_instance (class);
+  id object = class_createInstance (class, 0);
 
   if (object == nil)
     {
@@ -63,9 +55,9 @@ static void test_allocate (Class class)
 /* Test that instances of `class' are instances and not classes */
 static void test_instances (Class class)
 {
-  id object = class_create_instance (class);
+  id object = class_createInstance (class, 0);
 
-  if (object_is_class (object) == YES)
+  if (class_isMetaClass (object_getClass (object)) == YES)
     {
       printf ("test_instances failed\n");
       abort ();
@@ -75,7 +67,7 @@ static void test_instances (Class class)
 /* Test that we can deallocate instances of `class' */
 static void test_deallocate (Class class)
 {
-  id object = class_create_instance (class);
+  id object = class_createInstance (class, 0);
 
   object_dispose (object);
 }
@@ -83,27 +75,15 @@ static void test_deallocate (Class class)
 /* Test that the object and the class agree on what the class is */
 static void test_object_class (Class class)
 {
-  id object = class_create_instance (class);
+  id object = class_createInstance (class, 0);
 
-  if (object_get_class (object) != class)
+  if (object_getClass (object) != class)
     {
       printf ("test_object_class failed\n");
       abort ();
     }
 }
 
-/* Test that the object and the class agree on what the superclass is */
-static void test_object_super_class (Class class)
-{
-  id object = class_create_instance (class);
-
-  if (object_get_super_class (object) != class_get_super_class (class))
-    {
-      printf ("test_object_super_class failed\n");
-      abort ();
-    }
-}
-
 /* 
  *  Runs all the tests in this file for the specified class 
  */
@@ -113,16 +93,12 @@ void test_class_with_superclass (const char *class_name,
   Class class; 
   Class superclass; 
 
-  /* We need at least a method call before playing with the internals, 
-     so that the runtime will call __objc_resolve_class_links () */
-  [Object class];
-
   /* class_name must be an existing class */
-  class = objc_lookup_class (class_name);
+  class = objc_getClass (class_name);
   test_is_class (class);
 
   /* But superclass_name can be "", which means `Nil' */
-  superclass = objc_lookup_class (superclass_name);  
+  superclass = objc_getClass (superclass_name);  
   if (superclass != Nil)
     {
       test_is_class (superclass);
@@ -135,5 +111,4 @@ void test_class_with_superclass (const char *class_name,
   test_instances (class);
   test_deallocate (class);
   test_object_class (class);
-  test_object_super_class (class);
 }
index 1aa73947d635437defe480db9bcdfa416e50a661..7f6f54000f73da98f9fa8ee4baa84642b08dc52b 100644 (file)
@@ -1,8 +1,7 @@
 /* Contributed by Nicola Pero on Tue Mar  6 23:05:53 CET 2001 */
-#include <objc/objc.h>
-#include <objc/objc-api.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include "../../objc-obj-c++-shared/runtime.h"
 
 /*
  * Standard Tests For Methods of Classes and Objects - abort upon
@@ -13,9 +12,9 @@
 void test_that_class_has_instance_method (const char *class_name, 
                                          SEL selector)
 {
-  Class class = objc_lookup_class (class_name);
+  Class class = objc_getClass (class_name);
 
-  if (class_get_instance_method (class, selector) == NULL)
+  if (class_getInstanceMethod (class, selector) == NULL)
     {
       printf ("test_class_has_instance_method failed\n");
       abort ();
@@ -26,9 +25,9 @@ void test_that_class_has_instance_method (const char *class_name,
 void test_that_class_has_class_method (const char *class_name, 
                                       SEL selector)
 {
-  Class meta_class = objc_get_meta_class (class_name);
+  Class class = objc_getClass (class_name);
 
-  if (class_get_class_method (meta_class, selector) == NULL)
+  if (class_getClassMethod (class, selector) == NULL)
     {
       printf ("test_class_has_class_method failed\n");
       abort ();
index 1690f8f6bbc3f06db27e82f569441a5c85a3ae45..9045305e59c953e2ad6285873f5b17efdb30387b 100644 (file)
@@ -51,9 +51,7 @@ struct d
 {
   return 4;
 }
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 
index ad2b76b50e8d175281f997af0f27abde4c731bce..070c4c1a5edc192afd74679ec05b48b36ce471d5 100644 (file)
@@ -33,9 +33,7 @@ struct d
   
   return u;
 }
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 /* The second class */
@@ -58,9 +56,7 @@ struct d
     }
 }
 
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 
index 61d7625122de757238fa867fbcd1ddc869dfc103..8009a03d8ddcafa887e49be367a6654192502da2 100644 (file)
@@ -1,8 +1,7 @@
 /* Contributed by Nicola Pero - Thu Mar  8 17:23:59 CET 2001 */
-#import "../../objc-obj-c++-shared/Object1.h"
-#include <objc/objc.h>
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
-@compatibility_alias MyObject Object;
+@compatibility_alias MyObject TestsuiteObject;
 
 int main (void)
 {
@@ -10,4 +9,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index 3e2412e4647ee5b6bb50d189739f9eabc810d9d5..4c4f2babfdb19b40ca824cdae4d1bee3f727398a 100644 (file)
@@ -1,8 +1,7 @@
 /* Contributed by Nicola Pero - Thu Mar  8 16:27:46 CET 2001 */
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.h"
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 
 /* Test very simple @encode */
 
@@ -18,7 +17,7 @@ int main (void)
       abort ();
     }
 
-  if (strcmp ("@", @encode (Object *)))
+  if (strcmp ("@", @encode (TestsuiteObject *)))
     {
       abort ();
     }
index 57d1a4bf69a42fbada37f8fc67aec59c67c5f5ed..c380291b5a1124474229a883d93334091137149a 100644 (file)
@@ -1,7 +1,6 @@
 /* Contributed by Nicola Pero -  Wed Dec  5 17:12:40 GMT 2001 */
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
-#include <objc/objc.h>
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* Test using a bitfield enumeration ivar.  */
 
@@ -11,7 +10,7 @@ typedef enum
   white
 } color;
 
-@interface TestClass: Object
+@interface TestClass: TestsuiteObject
 {
   color c:2;
 }
@@ -48,4 +47,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index 3094963c682523824c5c21f03064b74bf9497904..3ce0504ffa0003bedecf031e44049c931755856c 100644 (file)
@@ -1,7 +1,6 @@
 /* Contributed by Nicola Pero -  Wed Dec  5 17:12:40 GMT 2001 */
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
-#include <objc/objc.h>
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 typedef enum { black, white } color;
 
@@ -11,7 +10,7 @@ typedef struct
   color b:2;
 } color_couple;
 
-@interface TestClass: Object
+@interface TestClass: TestsuiteObject
 {
   color_couple *c;
 }
@@ -50,4 +49,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index 2db40a8548630d5c6480f2a515fa6e41bf90f865..ea8ef39936e7e0b77bd8c14c7ff625ada7b7a6fd 100644 (file)
@@ -4,7 +4,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#import "../../../objc-obj-c++-shared/Object1.h"
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* The following is not required in actual user code; we include it
    here to check that the compiler generates an internal definition of
 
 #define CHECK_IF(expr) if(!(expr)) abort()
 
-@interface Frob: Object
+@interface Frob: TestsuiteObject
 @end
 
-@implementation Frob: Object
+@implementation Frob: TestsuiteObject
 @end
 
 static Frob* _connection = nil;
@@ -24,7 +24,7 @@ static Frob* _connection = nil;
 //--------------------------------------------------------------------
 
 
-void test (Object* sendPort)
+void test (TestsuiteObject* sendPort)
 {
        int cleanupPorts = 1;
        Frob* receivePort = nil;
@@ -51,7 +51,7 @@ void test (Object* sendPort)
                printf ("cleanupPorts = %d\n", cleanupPorts);
                printf ("---\n");               
                
-               @throw [Object new];
+               @throw [TestsuiteObject new];
        }
        @catch(Frob *obj) {
                printf ("Exception caught by incorrect handler!\n");
@@ -71,7 +71,7 @@ void test (Object* sendPort)
 
 int main (void) {
 
-       test((Object *)-1);
+       test((TestsuiteObject *)-1);
        return 0;
 }
-#import "../../../objc-obj-c++-shared/Object1-implementation.h"
+
index 370b19bb5ef4c0778caae909d7c60e608f1075ae..30ec7b2d12a6b257d87ead37d0394ad00b13df42 100644 (file)
@@ -1,22 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
-//#import "../../../objc-obj-c++-shared/Object1.h"
-#ifdef __OBJC2__
-#include <objc/runtime.h>
-@interface Object
-+ initialize;
-+ new;
-- free;
-@end
-@implementation Object
-+ initialize { return self; }
-+ new  { return class_createInstance (self, 0); }
-- free { return object_dispose(self);}
-@end
-
-#else
-#import "../../../objc-obj-c++-shared/Object1.h"
-#endif
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 
 static int made_try = 0;
 
@@ -42,7 +26,7 @@ thrower()
   @try
   {
     thrower_try_body();
-    @throw [Object new];
+    @throw [TestsuiteObject new];
   }
   @finally
   {
@@ -73,4 +57,4 @@ main(int ac, char *av[])
     abort ();
   return 0;
 }
-//#import "../../../objc-obj-c++-shared/Object1-implementation.h"
+
index 6b31d7cc86c002ec8a20bb6db5e6e197f79375f5..5738b225e23e9307a0e2660c1a38c05082406657 100644 (file)
@@ -1,34 +1,14 @@
 /* Check that throwing an exception from a -forward:: works.  */
 /* Developed by Marcin Koziej <creep@desk.pl>.  */
 
+#include <stdio.h>
 #include <stdlib.h>
-#include <objc/Object.h>
-#ifndef __NEXT_RUNTIME__
-#import <objc/objc-api.h>
-#endif
-
-#ifdef __OBJC2__
-@interface Object (TEST_SUITE_ADDITIONS)
-+ initialize;
-+ alloc;
-+ new;
-- init;
-- free;
-@end
-
-@implementation Object (TEST_SUITE_ADDITIONS)
-+ initialize { return self; }
-+ alloc { return class_createInstance (self, 0); }
-+ new { return [[self alloc] init]; }
-- init { return self; }
-- free { return object_dispose(self); }
-@end
-#endif
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 
 static int i;
 
 __attribute__((objc_exception)) 
-@interface Thrower : Object 
+@interface Thrower : TestsuiteObject 
 - forward: (SEL) s : (void*) a;
 @end
 
@@ -36,7 +16,7 @@ __attribute__((objc_exception))
 - forward: (SEL) s : (void*) a
 {
   i++;
-  @throw [Object new];
+  @throw [TestsuiteObject new];
   return nil;
 }
 @end
index ab2fe8c533ecf7a6dc58ceba9ec102ddf9017185..2127f44e288ef778d5049e34797e65348b33904d 100644 (file)
@@ -13,9 +13,9 @@ int main(void)
 
 #else
 
-#include <objc/objc-api.h>
+#include <objc/runtime.h>
 #include <objc/objc-exception.h>
-#include <objc/Object.h>
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 static unsigned int handlerExpected = 0;
@@ -37,14 +37,14 @@ main(int argc, char *argv[])
 
   @try
     {
-      @throw [Object new];
+      @throw [TestsuiteObject new];
     }
   @catch (id exc)
     {
       handlerExpected = 1;
     }
 
-  @throw [Object new];
+  @throw [TestsuiteObject new];
   abort();
   return 0;
 }
index 0488d792dcd247fa373394f027de34db4ff7b6ae..700df97608464f34888d9726bf8cbe14060ddb93 100644 (file)
@@ -4,7 +4,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
-#import "../../../objc-obj-c++-shared/Object1.h"
+#import "../../../objc-obj-c++-shared/TestsuiteObject.m"
 
 int gi1 = 9, gi2 = 19;
 float gf1 = 9.0, gf2 = 19.0;
@@ -29,13 +29,13 @@ void foo (int arg1, float *arg2)
     local6 = 18.0;
     pi = &gi2;
     pf = &gf2;
-    obj2 = obj1 = [Object new];
+    obj2 = obj1 = [TestsuiteObject new];
     arg1 = 17;
     arg2 = &gf2;
     
-    @throw [Object new];
+    @throw [TestsuiteObject new];
   }
-  @catch (Object *obj) {
+  @catch (TestsuiteObject *obj) {
     if (local1 != 123 || local2 != 345 || local3 != 5.0 || local4 != 6.0
        || local5 != 17 || local6 != 18.0) {
       printf("Abort 1\n");
@@ -60,4 +60,4 @@ int main(void) {
   foo(15, &gf1);
   return 0;
 }
-#import "../../../objc-obj-c++-shared/Object1-implementation.h"
+
index ef0b627dab49b6fedf472a4c231c430c8383f7bd..cbe4365da9006f60ba967025a85304f037970905 100644 (file)
@@ -13,9 +13,9 @@ int main(void)
 
 #else
 
-#include <objc/objc-api.h>
+#include <objc/runtime.h>
 #include <objc/objc-exception.h>
-#include <objc/Object.h>
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 #include <stdlib.h>
 
 static unsigned int handlerExpected = 0;
@@ -27,13 +27,13 @@ my_exception_matcher(Class match_class, id exception)
   return 1;
 }
 
-@interface A : Object
+@interface A : TestsuiteObject
 @end
 
 @implementation A
 @end
 
-@interface B : Object
+@interface B : TestsuiteObject
 @end
 
 @implementation B
index cd9a797f5fd2cd19be364b181a3f0382c4fd98fc..b6e7b8bb306975ae37e2a5e167d07bc3219831e1 100644 (file)
@@ -1,5 +1,5 @@
 #include <objc/objc.h>
-#include <objc/Object.h>
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 
 #ifdef __NEXT_RUNTIME__
 /* This test only runs for the GNU runtime.  */
@@ -24,7 +24,7 @@ int main (void)
     {
       @throw nil;
     }
-  @catch (Object *exc)
+  @catch (TestsuiteObject *exc)
     {
       abort ();
     }
index 4e55e9d841b45d8aea7a0bde6e92eda61e7454d1..d218183f3418e6e4f9544ae123f8a41771191b0d 100644 (file)
@@ -1,5 +1,5 @@
 #include <stdlib.h>
-#import "../../../objc-obj-c++-shared/Object1.h"
+#include "../../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* do nothing except prove we can compile and link code calling the
    ecceptions mechanism */
@@ -8,12 +8,10 @@ int main(void)
 {
     @try {
        int a = 1 ;
-       @throw [Object new];
+       @throw [TestsuiteObject new];
     }
-    @catch (Object *obj) {
+    @catch (TestsuiteObject *obj) {
        return 0;
     }
     abort();
 }
-
-#import "../../../objc-obj-c++-shared/Object1-implementation.h"
index 651444963f887d9a809c532ea66e0ebe2bd69e8c..f0b5853876ac62d00fe41ed482c1e4f4a5aa4306 100644 (file)
@@ -1,7 +1,7 @@
 /* Contributed by Nicola Pero - Fri Mar  9 21:35:47 CET 2001 */
 
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* Tests defining a protocol and a class adopting it */
 
@@ -10,7 +10,7 @@
 - (void) setEnabled: (BOOL)flag;
 @end
 
-@interface Feature : Object <Enabling>
+@interface Feature : TestsuiteObject <Enabling>
 {
   const char *name;
   BOOL isEnabled;
@@ -42,4 +42,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index b830cd96ee5f8bcecad82600091b8fa00cb3e9e4..e3c9db1fbef44f5834c22623042221c3bf536fc2 100644 (file)
@@ -1,7 +1,7 @@
 /* Contributed by Nicola Pero - Fri Mar  9 21:35:47 CET 2001 */
 
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* Test defining a protocol, a class adopting it, and using an object
    of type `id <protocol>'. */
@@ -11,7 +11,7 @@
 - (void) setEnabled: (BOOL)flag;
 @end
 
-@interface Feature : Object <Enabling>
+@interface Feature : TestsuiteObject <Enabling>
 {
   const char *name;
   BOOL isEnabled;
@@ -43,4 +43,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index f28c95fecbf5df2c461a8625983ebdb3642b8d69..0339b9548387cf8a19d6c89fafa6b14c90edc030 100644 (file)
@@ -1,7 +1,7 @@
 /* Contributed by Nicola Pero - Fri Mar  9 21:35:47 CET 2001 */
 
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* Test defining two protocol, a class adopting both of them, 
    and using an object of type `id <Protocol1, Protocol2>' */ 
@@ -15,7 +15,7 @@
 - (int) importance;
 @end
 
-@interface Feature : Object <Enabling, Evaluating>
+@interface Feature : TestsuiteObject <Enabling, Evaluating>
 {
   const char *name;
   BOOL isEnabled;
@@ -56,4 +56,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index 10aba89360a5c2fc7e733bf9be5277b34ac19b31..a416c4a0c09679730908733a430cd3433c5c3566 100644 (file)
@@ -1,7 +1,7 @@
 /* Contributed by Nicola Pero - Fri Mar  9 21:35:47 CET 2001 */
 
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* Test defining a protocol, a class adopting it in a category */
 
@@ -9,7 +9,7 @@
 - (int) importance;
 @end
 
-@interface Feature : Object
+@interface Feature : TestsuiteObject
 @end
 
 @implementation Feature
@@ -38,4 +38,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index c3bd53d3ace45195d9aa6d30528e15571e51f37a..73ec02f7e0b58914cfa0c493d28f2f488d82784f 100644 (file)
@@ -2,7 +2,7 @@
 
 #include <stdlib.h>
 #include <objc/Protocol.h>
-#include "../../objc-obj-c++-shared/next-mapping.h"
+#include "../../objc-obj-c++-shared/runtime.h"
 
 /* Test defining a protocol, and accessing it using @protocol */
 
@@ -25,11 +25,7 @@ int main (void)
 {
   Protocol *protocol = @protocol (Evaluating);
 
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
   if (strcmp (protocol_getName(protocol), "Evaluating"))
-#else
-  if (strcmp ([protocol name], "Evaluating"))
-#endif
     {
       abort ();
     }
index b02fc1ea42ccba0cd16a9f81a8e1ac6df25f0f5b..6677963274d50e396485169fffa0bd9d04180847 100644 (file)
@@ -2,7 +2,7 @@
 
 #include <stdlib.h>
 #include <objc/Protocol.h>
-#include "../../objc-obj-c++-shared/next-mapping.h"
+#include "../../objc-obj-c++-shared/runtime.h"
 
 /* Test defining a protocol, and accessing it using @protocol */
 
@@ -17,11 +17,7 @@ int main (void)
 {
   Protocol *protocol = @protocol (Evaluating);
 
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
   if (strcmp (protocol_getName(protocol), "Evaluating"))
-#else
-  if (strcmp ([protocol name], "Evaluating"))
-#endif
     {
       abort ();
     }
index d15013a29ef9e7b2b20b820c99c9f23c438e4416..9e9e730ff70bf539b86ae08e95f33cc07d4ab89d 100644 (file)
@@ -1,7 +1,8 @@
 /* Contributed by Nicola Pero - Fri Mar  9 21:35:47 CET 2001 */
 
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Protocol1.h"
+#include <objc/Protocol.h>
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* Test defining two protocols, one incorporating the other one. */
 
@@ -14,7 +15,7 @@
 @end
 
 /* A class adopting the protocol */
-@interface Test : Object <Processing>
+@interface Test : TestsuiteObject <Processing>
 {
   BOOL didConfigure;
   BOOL didProcess;
@@ -41,4 +42,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index 6f4d879201a8603f882d236fc219b755dc51c11b..f676dd9a06a663db8934fb00ff619c7a844832ee 100644 (file)
@@ -1,6 +1,6 @@
-#import "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
-@interface Foo : Object
+@interface Foo : TestsuiteObject
 + bar;
 @end
 
index 3978e6aa2deaa076f0894098ea880ada6110650c..e21a750ee58ab75344b2c5f75c784baa53aa48c8 100644 (file)
@@ -1,8 +1,8 @@
 /* Contributed by Nicola Pero - Fri Mar  9 21:35:47 CET 2001 */
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.h"
 #include <objc/objc.h>
 
-@interface Object (StopProtocol)
+@interface TestsuiteObject (StopProtocol)
 - (void) stop;
 @end
 
index 15dfc0b485d60c69d3a97cc4e13fb966c2c5e965..d27b3c97c69bb098c9e6ee8fe28bfbcbe8cc7c47 100644 (file)
@@ -9,10 +9,10 @@
  */
 
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 #include <objc/objc.h>
 
-@interface A : Object
+@interface A : TestsuiteObject
 @end
 
 @interface B : A
index 6cc2e2535edc9e454074ffe4eb503b415e67e21d..0c2166945a11c57a091bad6cfc1c2c2f5bd8f157 100644 (file)
@@ -30,9 +30,7 @@
 {
   return [self sumInteger: a  withInteger: b  withInteger: c];
 }
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 
index 5462fd5ef7ad9b62c236199ab24063cbd5db7ad2..1ca0c48362f31ef057936bb54b1a53a011db3d82 100644 (file)
@@ -22,9 +22,7 @@
   return test ();
 }
 
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 int main (void)
index a4c9a561968a43cdf9344ab029e75578291c64ba..fbe9e25241a773a0d3f8e7c8cabc912ac739b529 100644 (file)
@@ -3,7 +3,7 @@
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
 #include <stdio.h>
 #include <stdlib.h>
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 #include <objc/objc.h>
 
 int bappy (int (*blargh) (int a, int b, int c))
@@ -11,7 +11,7 @@ int bappy (int (*blargh) (int a, int b, int c))
   return blargh (4, 7, 2) + 3;
 }
 
-@interface Foo: Object
+@interface Foo: TestsuiteObject
 + (int)foo;
 @end
 
diff --git a/gcc/testsuite/objc/execute/next_mapping.h b/gcc/testsuite/objc/execute/next_mapping.h
deleted file mode 100644 (file)
index c28f173..0000000
+++ /dev/null
@@ -1,906 +0,0 @@
-/* This file "renames" various ObjC GNU runtime entry points
-   (and fakes the existence of several others)
-   if the NeXT runtime is being used.  */
-/* Authors: Ziemowit Laski <zlaski@apple.com>  */
-/*         David Ayers <d.ayers@inode.at>  */
-
-#ifdef __NEXT_RUNTIME__
-#include <objc/objc-class.h>
-#include <objc/Object.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define objc_get_class(C)                      objc_getClass(C)
-#define objc_get_meta_class(C)                 objc_getMetaClass(C)
-#define class_get_class_method(C, S)           class_getClassMethod(C, S)
-#define class_get_instance_method(C, S)                class_getInstanceMethod(C, S)
-#define method_get_imp(M)                      (((Method)M)->method_imp)
-#define sel_get_name(S)                                sel_getName(S)
-#define class_create_instance(C)               class_createInstance(C, 0)
-#define        class_get_class_name(C)                 object_getClassName(C)
-#define class_get_super_class(C)               (((struct objc_class *)C)->super_class)
-#define object_get_super_class(O)              class_get_super_class(*(struct objc_class **)O)
-#define objc_lookup_class(N)                   objc_lookUpClass(N)
-#define object_get_class(O)                    (*(struct objc_class **)O)
-#define class_is_class(C)                      (CLS_GETINFO((struct objc_class *)C, CLS_CLASS)? YES: NO)
-#define class_is_meta_class(C)                 (CLS_GETINFO((struct objc_class *)C, CLS_META)? YES: NO)
-#define object_is_class(O)                     class_is_meta_class(*(struct objc_class **)O)
-#define object_is_meta_class(O)                        (class_is_meta_class(O) && class_is_meta_class(*(struct objc_class **)O))
-
-/* You need either an empty +initialize method or an empty -forward:: method. 
-   The NeXT runtime unconditionally sends +initialize to classes when they are 
-   first used, and unconditionally tries to forward methods that the class 
-   doesn't understand (including +initialize). If you have neither +initialize 
-   nor -forward::, the runtime complains.  
-
-   The simplest workaround is to add
-
-      + initialize { return self; }
-
-   to every root class @implementation.  */
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-/* The following is necessary to "cover" the bf*.m test cases on NeXT.  */
-
-#undef  MAX
-#undef  MIN
-#undef  ROUND
-
-#ifdef __cplusplus
-#define MAX(X, Y) ((X > Y) ? X : Y)
-#define MIN(X, Y) ((X < Y) ? X : Y)
-#define ROUND(V, A) (A * ((V + A - 1) / A))
-#else
-#define MAX(X, Y)                    \
-  ({ typeof (X) __x = (X), __y = (Y); \
-     (__x > __y ? __x : __y); })
-#define MIN(X, Y)                    \
-  ({ typeof (X) __x = (X), __y = (Y); \
-     (__x < __y ? __x : __y); })
-#define ROUND(V, A) \
-  ({ typeof (V) __v = (V); typeof (A) __a = (A); \
-     __a * ((__v+__a - 1)/__a); })
-#endif
-
-#define BITS_PER_UNIT __CHAR_BIT__
-typedef struct{ char a; } __small_struct;
-#define STRUCTURE_SIZE_BOUNDARY (BITS_PER_UNIT * sizeof (__small_struct))
-
-/* Not sure why the following are missing from NeXT objc headers... */
-
-#ifndef _C_LNG_LNG
-#define _C_LNG_LNG  'q'
-#endif
-#ifndef _C_ULNG_LNG
-#define _C_ULNG_LNG 'Q'
-#endif
-#ifndef _C_ATOM
-#define _C_ATOM     '%'
-#endif
-#ifndef _C_BOOL
-#define _C_BOOL     'B'
-#endif
-
-#define _C_CONST        'r'
-#define _C_IN           'n'
-#define _C_INOUT        'N'
-#define _C_OUT          'o'
-#define _C_BYCOPY       'O'
-#define _C_BYREF        'R'
-#define _C_ONEWAY       'V'
-#define _C_GCINVISIBLE  '!'
-   
-#define _F_CONST        0x01
-#define _F_IN           0x01
-#define _F_OUT          0x02
-#define _F_INOUT        0x03
-#define _F_BYCOPY       0x04  
-#define _F_BYREF        0x08  
-#define _F_ONEWAY       0x10
-#define _F_GCINVISIBLE  0x20
-
-struct objc_struct_layout
-{
-  const char *original_type;
-  const char *type;
-  const char *prev_type;
-  unsigned int record_size; 
-  unsigned int record_align;
-};
-
-typedef union arglist {
-  char *arg_ptr;
-  char arg_regs[sizeof (char*)];
-} *arglist_t;                   /* argument frame */
-
-const char *objc_skip_typespec (const char *type);
-void objc_layout_structure_get_info (struct objc_struct_layout *layout,
-    unsigned int *offset, unsigned int *align, const char **type);
-void objc_layout_structure (const char *type,
-    struct objc_struct_layout *layout);
-BOOL objc_layout_structure_next_member (struct objc_struct_layout *layout);
-void objc_layout_finish_structure (struct objc_struct_layout *layout,
-    unsigned int *size, unsigned int *align);
-int objc_aligned_size (const char *type);
-
-/*
-  return the size of an object specified by type
-*/
-
-int
-objc_sizeof_type (const char *type)
-{
-  /* Skip the variable name if any */
-  if (*type == '"')
-    {
-      for (type++; *type++ != '"';)
-       /* do nothing */;
-    }
-
-  switch (*type) {
-  case _C_ID:
-    return sizeof (id);
-    break;
-
-  case _C_CLASS:
-    return sizeof (Class);
-    break;
-
-  case _C_SEL:
-    return sizeof (SEL);
-    break;
-
-  case _C_CHR:
-    return sizeof (char);
-    break;
-
-  case _C_UCHR:
-    return sizeof (unsigned char);
-    break;
-
-  case _C_SHT:
-    return sizeof (short);
-    break;
-
-  case _C_USHT:
-    return sizeof (unsigned short);
-    break;
-
-  case _C_INT:
-    return sizeof (int);
-    break;
-
-  case _C_UINT:
-    return sizeof (unsigned int);
-    break;
-
-  case _C_LNG:
-    return sizeof (long);
-    break;
-
-  case _C_ULNG:
-    return sizeof (unsigned long);
-    break;
-
-  case _C_LNG_LNG:
-    return sizeof (long long);
-    break;
-
-  case _C_ULNG_LNG:
-    return sizeof (unsigned long long);
-    break;
-
-  case _C_FLT:
-    return sizeof (float);
-    break;
-
-  case _C_DBL:
-    return sizeof (double);
-    break;
-
-  case _C_PTR:
-  case _C_ATOM:
-  case _C_CHARPTR:
-    return sizeof (char *);
-    break;
-
-  case _C_ARY_B:
-    {
-      int len = atoi (type + 1);
-      while (isdigit ((unsigned char)*++type))
-       ;
-      return len * objc_aligned_size (type);
-    }
-    break;
-
-  case _C_BFLD:
-    {
-      /* The NeXT encoding of bitfields is _still_: b 'size' */
-      int size = atoi (type + 1);
-      /* Return an upper bound on byte size */
-      return (size + BITS_PER_UNIT - 1) / BITS_PER_UNIT;
-    }
-
-  case _C_STRUCT_B:
-    {
-      struct objc_struct_layout layout;
-      unsigned int size;
-
-      objc_layout_structure (type, &layout);
-      while (objc_layout_structure_next_member (&layout))
-        /* do nothing */ ;
-      objc_layout_finish_structure (&layout, &size, NULL);
-
-      return size;
-    }
-
-  case _C_UNION_B:
-    {
-      int max_size = 0;
-      while (*type != _C_UNION_E && *type++ != '=')
-       /* do nothing */;
-      while (*type != _C_UNION_E)
-       {
-         /* Skip the variable name if any */
-         if (*type == '"')
-           {
-             for (type++; *type++ != '"';)
-               /* do nothing */;
-           }
-         max_size = MAX (max_size, objc_sizeof_type (type));
-         type = objc_skip_typespec (type);
-       }
-      return max_size;
-    }
-  }
-  return 0; /* error */
-}
-
-
-/*
-  Return the alignment of an object specified by type
-*/
-
-int
-objc_alignof_type (const char *type)
-{
-  /* Skip the variable name if any */
-  if (*type == '"')
-    {
-      for (type++; *type++ != '"';)
-       /* do nothing */;
-    }
-  switch (*type) {
-  case _C_ID:
-    return __alignof__ (id);
-    break;
-
-  case _C_CLASS:
-    return __alignof__ (Class);
-    break;
-
-  case _C_SEL:
-    return __alignof__ (SEL);
-    break;
-
-  case _C_CHR:
-    return __alignof__ (char);
-    break;
-
-  case _C_UCHR:
-    return __alignof__ (unsigned char);
-    break;
-
-  case _C_SHT:
-    return __alignof__ (short);
-    break;
-
-  case _C_USHT:
-    return __alignof__ (unsigned short);
-    break;
-
-  case _C_INT:
-  case _C_BFLD: /* This is for the NeXT only */
-    return __alignof__ (int);
-    break;
-
-  case _C_UINT:
-    return __alignof__ (unsigned int);
-    break;
-
-  case _C_LNG:
-    return __alignof__ (long);
-    break;
-
-  case _C_ULNG:
-    return __alignof__ (unsigned long);
-    break;
-
-  case _C_LNG_LNG:
-    return __alignof__ (long long);
-    break;
-
-  case _C_ULNG_LNG:
-    return __alignof__ (unsigned long long);
-    break;
-
-  case _C_FLT:
-    return __alignof__ (float);
-    break;
-
-  case _C_DBL:
-    return __alignof__ (double);
-    break;
-
-  case _C_PTR:
-  case _C_ATOM:
-  case _C_CHARPTR:
-    return __alignof__ (char *);
-    break;
-
-  case _C_ARY_B:
-    while (isdigit ((unsigned char)*++type))
-      /* do nothing */;
-    return objc_alignof_type (type);
-
-  case _C_STRUCT_B:
-    {
-      struct objc_struct_layout layout;
-      unsigned int align;
-
-      objc_layout_structure (type, &layout);
-      while (objc_layout_structure_next_member (&layout))
-        /* do nothing */;
-      objc_layout_finish_structure (&layout, NULL, &align);
-
-      return align;
-    }
-
-  case _C_UNION_B:
-    {
-      int maxalign = 0;
-      while (*type != _C_UNION_E && *type++ != '=')
-       /* do nothing */;
-      while (*type != _C_UNION_E)
-       {
-         /* Skip the variable name if any */
-         if (*type == '"')
-           {
-             for (type++; *type++ != '"';)
-               /* do nothing */;
-           }
-         maxalign = MAX (maxalign, objc_alignof_type (type));
-         type = objc_skip_typespec (type);
-       }
-      return maxalign;
-    }
-  }
-  return 0; /* error */
-}
-
-/*
-  The aligned size if the size rounded up to the nearest alignment.
-*/
-
-int
-objc_aligned_size (const char *type)
-{
-  int size, align;
-
-  /* Skip the variable name */
-  if (*type == '"')
-    {
-      for (type++; *type++ != '"';)
-       /* do nothing */;
-    }
-
-  size = objc_sizeof_type (type);
-  align = objc_alignof_type (type);
-
-  return ROUND (size, align);
-}
-
-/*
-  The size rounded up to the nearest integral of the wordsize, taken
-  to be the size of a void *.
-*/
-
-int
-objc_promoted_size (const char *type)
-{
-  int size, wordsize;
-
-  /* Skip the variable name */
-  if (*type == '"')
-    {
-      for (type++; *type++ != '"';)
-       /* do nothing */;
-    }
-
-  size = objc_sizeof_type (type);
-  wordsize = sizeof (void *);
-
-  return ROUND (size, wordsize);
-}
-
-/*
-  Skip type qualifiers.  These may eventually precede typespecs
-  occurring in method prototype encodings.
-*/
-
-inline const char *
-objc_skip_type_qualifiers (const char *type)
-{
-  while (*type == _C_CONST
-        || *type == _C_IN
-        || *type == _C_INOUT
-        || *type == _C_OUT
-        || *type == _C_BYCOPY
-         || *type == _C_BYREF
-        || *type == _C_ONEWAY
-        || *type == _C_GCINVISIBLE)
-    {
-      type += 1;
-    }
-  return type;
-}
-
-
-/*
-  Skip one typespec element.  If the typespec is prepended by type
-  qualifiers, these are skipped as well.
-*/
-
-const char *
-objc_skip_typespec (const char *type)
-{
-  /* Skip the variable name if any */
-  if (*type == '"')
-    {
-      for (type++; *type++ != '"';)
-       /* do nothing */;
-    }
-
-  type = objc_skip_type_qualifiers (type);
-
-  switch (*type) {
-
-  case _C_ID:
-    /* An id may be annotated by the actual type if it is known
-       with the @"ClassName" syntax */
-
-    if (*++type != '"')
-      return type;
-    else
-      {
-       while (*++type != '"')
-         /* do nothing */;
-       return type + 1;
-      }
-
-    /* The following are one character type codes */
-  case _C_CLASS:
-  case _C_SEL:
-  case _C_CHR:
-  case _C_UCHR:
-  case _C_CHARPTR:
-  case _C_ATOM:
-  case _C_SHT:
-  case _C_USHT:
-  case _C_INT:
-  case _C_UINT:
-  case _C_LNG:
-  case _C_ULNG:
-  case _C_LNG_LNG:
-  case _C_ULNG_LNG:
-  case _C_FLT:
-  case _C_DBL:
-  case _C_VOID:
-  case _C_UNDEF:
-    return ++type;
-    break;
-
-  case _C_ARY_B:
-    /* skip digits, typespec and closing ']' */
-
-    while (isdigit ((unsigned char)*++type))
-      ;
-    type = objc_skip_typespec (type);
-    if (*type == _C_ARY_E)
-      return ++type;
-    else
-      break; /* error */
-
-  case _C_BFLD:
-      /* The NeXT encoding for bitfields is _still_: b 'size' */
-    while (isdigit ((unsigned char)*++type))
-      ;        /* skip type and size */
-    return type;
-
-  case _C_STRUCT_B:
-    /* skip name, and elements until closing '}'  */
-
-    while (*type != _C_STRUCT_E && *type++ != '=')
-      ;
-    while (*type != _C_STRUCT_E)
-      {
-       type = objc_skip_typespec (type);
-      }
-    return ++type;
-
-  case _C_UNION_B:
-    /* skip name, and elements until closing ')'  */
-
-    while (*type != _C_UNION_E && *type++ != '=')
-      ;
-    while (*type != _C_UNION_E)
-      {
-       type = objc_skip_typespec (type);
-      }
-    return ++type;
-
-  case _C_PTR:
-    /* Just skip the following typespec */
-
-    return objc_skip_typespec (++type);
-  }
-  return 0; /* error */
-}
-
-/*
-  Skip an offset as part of a method encoding.  This is prepended by a
-  '+' if the argument is passed in registers.
-*/
-inline const char *
-objc_skip_offset (const char *type)
-{
-  if (*type == '+')
-    type++;
-  while (isdigit ((unsigned char) *++type))
-    ;
-  return type;
-}
-
-/*
-  Skip an argument specification of a method encoding.
-*/
-const char *
-objc_skip_argspec (const char *type)
-{
-  type = objc_skip_typespec (type);
-  type = objc_skip_offset (type);
-  return type;
-}
-
-/*
-  Return the number of arguments that the method MTH expects.
-  Note that all methods need two implicit arguments `self' and
-  `_cmd'.
-*/
-int
-method_get_number_of_arguments (struct objc_method *mth)
-{
-  int i = 0;
-  const char *type = mth->method_types;
-  while (*type)
-    {
-      type = objc_skip_argspec (type);
-      i += 1;
-    }
-  return i - 1;
-}
-
-/*
-  Return the size of the argument block needed on the stack to invoke
-  the method MTH.  This may be zero, if all arguments are passed in
-  registers.
-*/
-
-int
-method_get_sizeof_arguments (struct objc_method *mth)
-{
-  const char *type = objc_skip_typespec (mth->method_types);
-  return atoi (type);
-}
-
-/*
-  Return a pointer to the next argument of ARGFRAME.  type points to
-  the last argument.  Typical use of this look like:
-
-  {
-    char *datum, *type;
-    for (datum = method_get_first_argument (method, argframe, &type);
-         datum; datum = method_get_next_argument (argframe, &type))
-      {
-        unsigned flags = objc_get_type_qualifiers (type);
-        type = objc_skip_type_qualifiers (type);
-       if (*type != _C_PTR)
-          [portal encodeData: datum ofType: type];
-       else
-         {
-           if ((flags & _F_IN) == _F_IN)
-              [portal encodeData: *(char **) datum ofType: ++type];
-         }
-      }
-  }
-*/
-
-char *
-method_get_next_argument (arglist_t argframe, const char **type)
-{
-  const char *t = objc_skip_argspec (*type);
-
-  if (*t == '\0')
-    return 0;
-
-  *type = t;
-  t = objc_skip_typespec (t);
-
-  if (*t == '+')
-    return argframe->arg_regs + atoi (++t);
-  else
-    return argframe->arg_ptr + atoi (t);
-}
-
-/*
-  Return a pointer to the value of the first argument of the method
-  described in M with the given argumentframe ARGFRAME.  The type
-  is returned in TYPE.  type must be passed to successive calls of
-  method_get_next_argument.
-*/
-char *
-method_get_first_argument (struct objc_method *m,
-                          arglist_t argframe,
-                          const char **type)
-{
-  *type = m->method_types;
-  return method_get_next_argument (argframe, type);
-}
-
-/*
-   Return a pointer to the ARGth argument of the method
-   M from the frame ARGFRAME.  The type of the argument
-   is returned in the value-result argument TYPE
-*/
-
-char *
-method_get_nth_argument (struct objc_method *m,
-                        arglist_t argframe, int arg,
-                        const char **type)
-{
-  const char *t = objc_skip_argspec (m->method_types);
-
-  if (arg > method_get_number_of_arguments (m))
-    return 0;
-
-  while (arg--)
-    t = objc_skip_argspec (t);
-
-  *type = t;
-  t = objc_skip_typespec (t);
-
-  if (*t == '+')
-    return argframe->arg_regs + atoi (++t);
-  else
-    return argframe->arg_ptr + atoi (t);
-}
-
-unsigned
-objc_get_type_qualifiers (const char *type)
-{
-  unsigned res = 0;
-  BOOL flag = YES;
-
-  while (flag)
-    switch (*type++)
-      {
-      case _C_CONST:   res |= _F_CONST; break;
-      case _C_IN:      res |= _F_IN; break;
-      case _C_INOUT:   res |= _F_INOUT; break;
-      case _C_OUT:     res |= _F_OUT; break;
-      case _C_BYCOPY:  res |= _F_BYCOPY; break;
-      case _C_BYREF:  res |= _F_BYREF; break;
-      case _C_ONEWAY:  res |= _F_ONEWAY; break;
-      case _C_GCINVISIBLE: res |= _F_GCINVISIBLE; break;
-      default: flag = NO;
-    }
-
-  return res;
-}
-
-
-/* The following three functions can be used to determine how a
-   structure is laid out by the compiler. For example:
-
-  struct objc_struct_layout layout;
-  int i;
-
-  objc_layout_structure (type, &layout);
-  while (objc_layout_structure_next_member (&layout))
-    {
-      int position, align;
-      const char *type;
-
-      objc_layout_structure_get_info (&layout, &position, &align, &type);
-      printf ("element %d has offset %d, alignment %d\n",
-              i++, position, align);
-    }
-
-  These functions are used by objc_sizeof_type and objc_alignof_type
-  functions to compute the size and alignment of structures. The
-  previous method of computing the size and alignment of a structure
-  was not working on some architectures, particulary on AIX, and in
-  the presence of bitfields inside the structure. */
-void
-objc_layout_structure (const char *type,
-                           struct objc_struct_layout *layout)
-{
-  const char *ntype;
-
-  layout->original_type = ++type;
-
-  /* Skip "<name>=" if any. Avoid embedded structures and unions. */
-  ntype = type;
-  while (*ntype != _C_STRUCT_E && *ntype != _C_STRUCT_B && *ntype != _C_UNION_B
-         && *ntype++ != '=')
-    /* do nothing */;
-
-  /* If there's a "<name>=", ntype - 1 points to '='; skip the name */
-  if (*(ntype - 1) == '=')
-    type = ntype;
-
-  layout->type = type;
-  layout->prev_type = NULL;
-  layout->record_size = 0;
-  layout->record_align = MAX (BITS_PER_UNIT, STRUCTURE_SIZE_BOUNDARY);
-}
-
-
-BOOL
-objc_layout_structure_next_member (struct objc_struct_layout *layout)
-{
-  register int desired_align = 0;
-
-  /* The current type without the type qualifiers */
-  const char *type;
-
-  /* Add the size of the previous field to the size of the record.  */
-  if (layout->prev_type)
-    {
-      type = objc_skip_type_qualifiers (layout->prev_type);
-
-      if (*type != _C_BFLD)
-        layout->record_size += objc_sizeof_type (type) * BITS_PER_UNIT;
-      else
-       layout->record_size += atoi (++type);
-    }
-
-  if (*layout->type == _C_STRUCT_E)
-    return NO;
-
-  /* Skip the variable name if any */
-  if (*layout->type == '"')
-    {
-      for (layout->type++; *layout->type++ != '"';)
-        /* do nothing */;
-    }
-
-  type = objc_skip_type_qualifiers (layout->type);
-
-  desired_align = objc_alignof_type (type) * BITS_PER_UNIT;
-
-  /* Record must have at least as much alignment as any field.
-     Otherwise, the alignment of the field within the record
-     is meaningless.  */
-  layout->record_align = MAX (layout->record_align, desired_align);
-
-  if (*type == _C_BFLD)
-    {
-      int bfld_size = atoi (++type);
-      int int_align = __alignof__ (int) * BITS_PER_UNIT;
-      /* If this bitfield would traverse a word alignment boundary, push it out 
-        to that boundary instead.  */
-      if (layout->record_size % int_align
-         && (layout->record_size / int_align
-             < (layout->record_size + bfld_size - 1) / int_align))
-       layout->record_size = ROUND (layout->record_size, int_align);
-    }
-  else if (layout->record_size % desired_align != 0)
-    {
-      /* We need to skip space before this field.
-         Bump the cumulative size to multiple of field alignment.  */
-      layout->record_size = ROUND (layout->record_size, desired_align);
-    }
-
-  /* Jump to the next field in record. */
-
-  layout->prev_type = layout->type;
-  layout->type = objc_skip_typespec (layout->type);      /* skip component */
-
-  return YES;
-}
-
-
-void objc_layout_finish_structure (struct objc_struct_layout *layout,
-                                   unsigned int *size,
-                                   unsigned int *align)
-{
-  if (layout->type && *layout->type == _C_STRUCT_E)
-    {
-      /* Round the size up to be a multiple of the required alignment */
-      layout->record_size = ROUND (layout->record_size, layout->record_align);
-      layout->type = NULL;
-    }
-  if (size)
-    *size = layout->record_size / BITS_PER_UNIT;
-  if (align)
-    *align = layout->record_align / BITS_PER_UNIT;
-}
-
-
-void objc_layout_structure_get_info (struct objc_struct_layout *layout,
-                                     unsigned int *offset,
-                                     unsigned int *align,
-                                     const char **type)
-{
-  if (offset)
-    *offset = layout->record_size / BITS_PER_UNIT;
-  if (align)
-    *align = layout->record_align / BITS_PER_UNIT;
-  if (type)
-    *type = layout->prev_type;
-}
-
-/* A small, portable NSConstantString implementation for use with the NeXT
-   runtime.
-   
-   On full-fledged Mac OS X systems, NSConstantString is provided
-   as part of the Foundation framework.  However, on bare Darwin systems,
-   Foundation is not included, and hence there is no NSConstantString 
-   implementation to link against.
-
-   This code is derived from the GNU runtime's NXConstantString implementation.
-*/
-
-struct objc_class _NSConstantStringClassReference;
-
-@interface NSConstantString : Object
-{
-  char *c_string;
-  unsigned int len;
-}
-
--(const char *) cString;
--(unsigned int) length;
-
-@end
-
-@implementation NSConstantString
-
--(const char *) cString
-{
-  return (c_string);
-}
-
--(unsigned int) length
-{
-  return (len);
-}
-
-@end
-
-/* The NSConstantString metaclass will need to be initialized before we can
-   send messages to strings.  */
-
-void objc_constant_string_init (void) __attribute__((constructor));
-void objc_constant_string_init (void) {
-  memcpy (&_NSConstantStringClassReference,
-         objc_getClass ("NSConstantString"),
-         sizeof (_NSConstantStringClassReference));
-}
-
-#endif  /* #ifdef __NEXT_RUNTIME__ */
index 137d2072e4408750bc14e17707f294bd1b74c8bb..3835f2fece434e59c4318b6b17711e1d726e9246 100644 (file)
@@ -1,12 +1,12 @@
 /* Contributed by Nicola Pero - Fri Aug 30 12:55:37 2002 */ 
 #include <objc/objc.h>
-#include <objc/Object.h>
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* Test that calling a method of a nil object results in
    nothing to happen (but not a crash), and nil to be
    returned.  */
 
-@interface TestClass : Object
+@interface TestClass : TestsuiteObject
 
 - (void) testVoid;
 - (id) testId;
index d4ab4cb1c8756cbc628f92885e054bf15313af89..5db6a57b80151dd7e9c48bd841f45a50096efd01 100644 (file)
@@ -1,11 +1,11 @@
 /* Contributed by Nicola Pero - Fri Mar  9 19:39:15 CET 2001 */
-#import "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 #import <objc/objc.h>
 
 /* Test that using the same name for different things makes no 
    problem */
 
-@interface TestClass : Object
+@interface TestClass : TestsuiteObject
 {
   int test;
 }
@@ -39,4 +39,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index 1cf83ff7fecae85846f4309cf513288187e9d279..a14fcc3e6382204183c6c57ac3ee5628e60f652c 100644 (file)
@@ -3,7 +3,6 @@
  * Tue Sep 19 4:29AM
  */
 
-#include "../../objc-obj-c++-shared/Protocol1.h"
 #include <objc/objc.h>
 
 @protocol MyProtocol
@@ -25,7 +24,7 @@ int main (void)
 
   [object methodA];
 
-   exit (0);
+  return 0;
 }
 
 
index da276be982b7e2ab6708b5fa50859adb4d5486d5..af973cf9d942d195c38da09f61cc7d1e7151d80c 100644 (file)
@@ -2,7 +2,7 @@
  * Contributed by Nicola Pero <n.pero@mi.flashnet.it>
  * Tue Sep 19 4:34AM
  */
-#include "../../objc-obj-c++-shared/Protocol1.h"
+
 #include <objc/objc.h>
 
 @protocol MyProtocol
 {
   printf ("methodA\n");
 }
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 int main (void)
 {
   [MyObject methodA];
 
-   exit (0);
+  return 0;
 }
 
 
index 14a7f5232e78e4a9a702498a2a466acda1b84d2c..483c38712d6cabb1466bde16e507f83db929fe7b 100644 (file)
@@ -1,16 +1,13 @@
 /* Contributed by Nicola Pero - Tue Jul  3 10:55:21 BST 2001 */
-#ifdef __NEXT_RUNTIME__
-#  include "../../objc-obj-c++-shared/next-mapping.h"
-#else
-#  include <objc/objc-api.h>
-#endif
-#include "../../objc-obj-c++-shared/Object1.h"
+
+#include "../../objc-obj-c++-shared/runtime.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* This test demonstrate a failure in object_is_class which was fixed */
 
 /* Create a class whose instance variables mirror the struct used for
    Class structures in the runtime ... yes we're feeling evil today */
-@interface EvilClass : Object
+@interface EvilClass : TestsuiteObject
 {
   Class super_class;
   const char* name;
@@ -35,7 +32,7 @@ int main (void)
   EvilClass *evilObject = [EvilClass new];
   
   /* Now check that the object is not a class object */
-  if (object_is_class (evilObject))
+  if (class_isMetaClass (object_getClass (evilObject)))
     {
       printf ("object_is_class failed\n");
       abort ();
@@ -43,4 +40,3 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
index 91a628ebac121b8d8bba7cbb76c001adeeb84279..217873f53edc219715c139bd4f07b2f68f60d34b 100644 (file)
@@ -1,14 +1,11 @@
 /* Contributed by Nicola Pero - Tue Jul  3 10:55:21 BST 2001 */
-#ifdef __NEXT_RUNTIME__
-#  include "../../objc-obj-c++-shared/next-mapping.h"
-#else
-#  include <objc/objc-api.h>
-#endif
-#include "../../objc-obj-c++-shared/Object1.h"
+
+#include "../../objc-obj-c++-shared/runtime.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 /* This test demonstrate a failure in object_is_meta_class which was fixed */
 
-@interface EvilClass : Object
+@interface EvilClass : TestsuiteObject
 {
   Class super_class;
   const char* name;
@@ -33,7 +30,8 @@ int main (void)
   EvilClass *evilObject = [EvilClass new];
   
   /* Now check that the object is not a meta class object */
-  if (object_is_meta_class (evilObject))
+  if (class_isMetaClass (object_getClass (evilObject))
+      && class_isMetaClass (evilObject))
     {
       printf ("object_is_meta_class failed\n");
       abort ();
@@ -41,4 +39,4 @@ int main (void)
 
   return 0;
 }
-#include "../../objc-obj-c++-shared/Object1-implementation.h"
+
index 5040ccec4a233d27089096f5c1832d037a9fd8df..c1959efe7a660d7ac423e22bb7f41e253c5ca32f 100644 (file)
@@ -1,11 +1,11 @@
 /* Contributed by Nicola Pero - Fri Mar  9 19:39:15 CET 2001 */
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 #include <objc/objc.h>
 
 /* Test the @private, @protected, @public keyworks for ivars.  We only
    check syntax. */
 
-@interface TestClass : Object
+@interface TestClass : TestsuiteObject
 {
   int a;
 
index 29b5c3ded78685151916bcb6c5aaf3354ebbb3be..b928337aa10ae9ca0d36db6920372e89d378cfdd 100644 (file)
@@ -1,6 +1,7 @@
 /* Contributed by Nicola Pero - Fri Jun  4 03:16:17 BST 2004 */
 /* Test that a protocol is equal to itself.  */
-#include "../../objc-obj-c++-shared/Protocol1.h"
+#include <objc/Protocol.h>
+#include "../../objc-obj-c++-shared/runtime.h"
 
 @protocol Foo
 - (void)foo;
@@ -10,11 +11,7 @@ int main (void)
 {
   Protocol *protocol = @protocol(Foo);
 
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  if ( !protocol_isEqual (protocol, protocol))
-#else
-  if (! [protocol isEqual: protocol])
-#endif
+  if (!protocol_isEqual (protocol, protocol))
     {
       abort ();
     }
index 70ab8ccdd1eca669214e8791761ac900070d94cf..cc135766367f2144ebaa9988e90d7f85aa9bd5ec 100644 (file)
@@ -1,7 +1,7 @@
 /* Contributed by Nicola Pero - Fri Jun  4 03:16:17 BST 2004 */
 /* Test that protocols with different names are different.  */
-
-#include "../../objc-obj-c++-shared/Protocol1.h"
+#include "../../objc-obj-c++-shared/runtime.h"
+#include <objc/Protocol.h>
 
 @protocol Foo1
 - (void)foo1;
 
 int main (void)
 {
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
   if (protocol_isEqual (@protocol(Foo1), @protocol(Foo2)))
-#else
-  if ([@protocol(Foo1) isEqual: @protocol(Foo2)])
-#endif
     {
       abort ();
     }
index 23863829440a2765c0c63eac1ca3ef74e8fa70a4..70d450fd8479729aefbce2d505e690406fb25174 100644 (file)
@@ -1,7 +1,7 @@
 /* Contributed by Nicola Pero - Fri Jun  4 03:16:17 BST 2004 */
 /* Test that a protocol is not equal to nil.  */
-
-#include "../../objc-obj-c++-shared/Protocol1.h"
+#include "../../objc-obj-c++-shared/runtime.h"
+#include <objc/Protocol.h>
 
 @protocol Foo
 - (void)foo;
@@ -9,11 +9,7 @@
 
 int main (void)
 {
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
   if (protocol_isEqual (@protocol(Foo), nil))
-#else
-  if ([@protocol(Foo) isEqual: nil])
-#endif
     {
       abort ();
     }
index 4d5af640e46b9abc5b55f22d4f9969ebfd599597..3d14fb263b789c59ba4beb408131636fc014d55c 100644 (file)
@@ -1,7 +1,7 @@
 /* Contributed by David Ayers - Fri Jun  4 03:16:17 BST 2004 */
 /* Test that a protocol is not equal to something which is not a protocol.  */
-
-#include "../../objc-obj-c++-shared/Protocol1.h"
+#include "../../objc-obj-c++-shared/runtime.h"
+#include <objc/Protocol.h>
 
 @protocol Foo
 - (void)foo;
 int main (void)
 {
   /* A Protocol object should not be equal to a Class object.  */
-#ifdef NEXT_OBJC_USE_NEW_INTERFACE
-  if (protocol_isEqual (@protocol(Foo), objc_getClass("Protocol")))
-#else
-  if ([@protocol(Foo) isEqual: [Protocol class]])
-#endif
+  if (protocol_isEqual (@protocol(Foo), (id)objc_getClass("Protocol")))
     {
       abort ();
     }
index ddb2eb2e3d0ed925c82ce2f9d76773280dea2280..f22ca927fe8eb66d4b5e626f5a7360764be636c2 100644 (file)
@@ -17,9 +17,7 @@
 
   return self;
 }
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 
index d9085ae7b0408774dc812dfb87fa3cc628c025a3..e75640ce7c59e697c3b27c3382471c571a803768 100644 (file)
@@ -1,6 +1,6 @@
 /* Contributed by Nicola Pero - Thu Mar  8 16:27:46 CET 2001 */
 
-#import "../../objc-obj-c++-shared/next-mapping.h"
+#import "../../objc-obj-c++-shared/runtime.h"
 #import <objc/objc.h>
 
 /* Test that instance methods of root classes are available as class 
@@ -18,9 +18,7 @@
 {
   return self;
 }
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 @interface NormalClass : RootClass
@@ -31,7 +29,7 @@
 
 int main (void)
 {
-  Class normal = objc_get_class ("NormalClass");
+  Class normal = objc_getClass ("NormalClass");
 
   if (normal == Nil)
     {
index 531e02babcf8388eaa4fa7ea9e59a784902eba4f..66eee67c024e89ca3127a824b4b6401cfb1289e3 100644 (file)
@@ -1,7 +1,7 @@
 /* Contributed by Nicola Pero - Thu Mar  8 16:27:46 CET 2001 */
 #include <objc/objc.h>
-#include <objc/objc-api.h>
-#include <objc/Object.h>
+#include "../../objc-obj-c++-shared/runtime.h"
+#include "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 int main (void)
 {
@@ -9,11 +9,7 @@ int main (void)
   char *selname;
 
   selector = @selector (alloc);
-#ifdef __NEXT_RUNTIME__
   selname = sel_getName (selector);
-#else
-  selname = sel_get_name (selector);
-#endif
   if (strcmp (selname, "alloc"))
     abort ();
 
index a778b722c15a37fe3ffb1dd01e1057e58f747589..460f64cc1864a4a75f7664efde44bb6c0c13736f 100644 (file)
@@ -19,9 +19,7 @@ static int test = 1;
   return test;
 }
 
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 int main (void)
index 4d7e7449bff16c6b7ba875af7c72588d252cda29..6cdbf5b775bd8e92e5f3b43d9af14fafee77b57c 100644 (file)
@@ -22,9 +22,7 @@ static int test (void)
   return test ();
 }
 
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 int main (void)
index 0fc61dbe564ee54aa7c768c9b81aed5b864c82f6..b660a8ffb6787c1eab6e7bd3960b5177ec87e9e6 100644 (file)
@@ -1,9 +1,8 @@
-#import "../../objc-obj-c++-shared/Object1.h"
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
 
 int main(void)
 {
-  [Object class];
+  [TestsuiteObject class];
   return 0;
 }
 
-#import "../../objc-obj-c++-shared/Object1-implementation.h"
index 51619b8d3130377c0010261ead08f7545b94c318..190548bac444029df48d9a60e00251a9ddce425a 100644 (file)
@@ -1,6 +1,5 @@
 /* Contributed by Nicola Pero - Thu Mar  8 16:27:46 CET 2001 */
 #include <objc/objc.h>
-#include <objc/objc-api.h>
 #include <stdarg.h>
 
 /* Test method with variable number of arguments */
@@ -32,9 +31,7 @@
 
   return sum;
 }
-#ifdef __NEXT_RUNTIME__                                   
 + initialize { return self; }
-#endif
 @end
 
 int main (void)