summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite/objc.dg/encode-1.m
Commit message (Collapse)AuthorAgeFilesLines
* In gcc/:nicola2010-09-271-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> * doc/objc.texi (Type encoding): Added the new 'long double' (D) code. Added byref, which was missing in the list of codes. Explain that enumeration values are encoded as the integer type that the compiler uses to store them. Explain and make examples of how 'const' interacts with pointers, and the complication of the encoding of 'const char *'. (Legacy type encoding): New subsection, explaining that GCC emits incorrect type encodings for the NeXT runtime for compatibility reasons. (@@encode): New subsection, explaining @encode and particularly that protocol qualifiers are not recognized inside an @encode() expression. (Method signatures): New subsection, explaining how method signatures are encoded. In gcc/objc/: 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> PR objc/45763 PR objc/25450 PR objc/25464 * objc-act.c: Improved comments for encoding functions. (encode_aggregate_within): For the GNU runtime, rewritten some obsfuscated code to clarify the various cases. (encode_aggregate): Function removed. (encode_array): Generate an error if asked to encode an incomplete array as part of generating instance variables. Else, when encoding an incomplete array inside a structure, encode it as an array of zero size. (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as '^c' instead of '*'. (encode_gnu_bitfield): Encode enumerated types exactly in the same type as integer types instead of using a hardcoded 'i'. If asked to encode a non-integer type as a bitfield, do not abort compilation immediately; instead generate an error, then skip the type. (encode_type): Use a 'switch' instead of a sequence of 'if's. Added a 'default' clause that gets executed if the type can not be matched, and that encodes it as '?' (unknown) and produces a warning. For the GNU runtime, encode enumerated types exactly in the same way as integer types instead of using a hardcoded 'i'. Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'. Encode C++ reference types as pointers. Call encode_vector to encode vectors. (encode_vector): New function. 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> Merge from 'apple/trunk' branch on FSF servers. I modified the changes to be used only when compiling for the NeXT runtime. 2005-10-10 Fariborz Jahanian <fjahanian@apple.com> Radar 4301047 * objc-act.c (encode_type): Remove the hack. 2005-07-20 Ziemowit Laski <zlaski@apple.com> Radar 4136935 * objc-act.c (pointee_is_readonly): New function. (encode_pointer, encode_aggregate_within, encode_type): Attempt to emulate GCC 3.3 when generating type encodings. In gcc/testsuite/: 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> PR objc/25464 * objc.dg/type-size-3.m: New test. 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> PR objc/45763 * objc.dg/encode-1.m: Execute the test with the GNU runtime as well. 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> PR objc/25450 * objc.dg/encode-3.m: Updated for fix of encoding of enums. * objc.dg/type-size-2.m: Same change. * obj-c++.dg/encode-5.mm: Same change. 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> Merge from 'apple/trunk' branch on FSF servers. The original Changelogs are below. * objc.dg/encode-6.m: Execute the test only with the GNU runtime. * objc.dg/encode-6-next.m: New file (from encode-6.m in the branch). * objc.dg/encode-7-next.m: New file (from encode-7.m in the branch). * objc.dg/encode-7-next-64bit.m: New file (from encode-7-64bit.m in the branch). * objc.dg/proto-qual-1.m: Test the 3.3 ABI on NeXT (from proto-qual-1.m in the branch) and the normal ABI on GNU. * objc.dg/threedotthree-abi-1.m: New file (from the branch). Run the test only with the NeXT runtime. * obj-c++/encode-1.mm: Execute the test only with the GNU runtime. * obj-c++/encode-1-next.mm: New file (from encode-1.mm in the branch). * obj-c++.dg/threedotthree-abi-1.mm: New file (from the branch). Run the test only with the NeXT runtime. 2006-03-30 Fariborz Jahanian <fjahanian@apple.com> Radar 4492973 * objc.dg/encode-7-64bit.m: New. * objc.dg/encode-7.m: Skip if -m64. 2005-10-19 Fariborz Jahanian <fjahanian@apple.com> Radar 4301047 * objc.dg/proto-qual-1.m: Fix test to match 3.3 ABI * obj-c++.dg/threedotthree-abi-1.mm: New * objc.dg/threedotthree-abi-1.m: New 2005-07-20 Ziemowit Laski <zlaski@apple.com> Radar 4136935 * obj-c++.dg/encode-1.mm: Tweak encodings to match fix. * objc.dg/encode-6.m: Likewise. * objc.dg/encode-7.m: New test case. In libobjc/: 2010-09-26 Nicola Pero <nicola.pero@meta-innovation.com> * encoding.c (objc_sizeof_type): Added support for vector type and for double long types. (objc_alignof_type): Same change. (objc_skip_typespec): Same change. * objc/encoding.h (_C_GCINVISIBLE): Use '|' for _C_GCINVISIBLE instead of '!' since '!' is already used for _C_VECTOR. * objc/objc-api.h (_C_LNG_DBL): Added. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164659 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-03-25 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>janis2010-03-251-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR objc/35165 PR testsuite/43512 * objc-obj-c++-shared: New directory. * objc-obj-c++-shared/Object1-implementation.h: New file. * objc-obj-c++-shared/Object1.h: New file. * objc-obj-c++-shared/Protocol1.h: New file. * objc-obj-c++-shared/next-abi.h: New file. * objc-obj-c++-shared/next-mapping.h: New file. * objc/execute/next_mapping.h: Delete. * objc.dg/special/special.exp: For all targets run the tests with -fgnu-runtime, for darwin targets also run the tests with -fnext-runtime. * objc.dg/dg.exp: Ditto. * obj-c++.dg/dg.exp: Ditto. * objc/execute/forward-1.m: Use shared wrapper headers (Object1.h, Protocol1.h) and next-mapping.h as required. Amend testcase to include use of updated NeXT interface. * objc/execute/formal_protocol-5.m: Ditto. * objc/execute/protocol-isEqual-2.m: Ditto. * objc/execute/protocol-isEqual-4.m: Ditto. * objc/execute/class-11.m: Use shared wrapper headers (Object1.h, Protocol1.h) and next-mapping.h as required. * objc/execute/object_is_class.m: Ditto. * objc/execute/enumeration-1.m: Ditto. * objc/execute/class-13.m: Ditto. * objc/execute/formal_protocol-2.m: Ditto. * objc/execute/formal_protocol-4.m: Ditto. * objc/execute/class-1.m: Ditto. * objc/execute/bycopy-1.m: Ditto. * objc/execute/formal_protocol-6.m: Ditto. * objc/execute/bycopy-3.m: Ditto. * objc/execute/class-3.m: Ditto. * objc/execute/bf-11.m: Ditto. * objc/execute/class-5.m: Ditto. * objc/execute/bf-13.m: Ditto. * objc/execute/class-7.m: Ditto. * objc/execute/bf-15.m: Ditto. * objc/execute/class-9.m: Ditto. * objc/execute/bf-17.m: Ditto. * objc/execute/bf-19.m: Ditto. * objc/execute/IMP.m: Ditto. * objc/execute/exceptions/catchall-1.m: Ditto. * objc/execute/exceptions/trivial.m: Ditto. * objc/execute/exceptions/finally-1.m: Ditto. * objc/execute/exceptions/local-variables-1.m: Ditto. * objc/execute/exceptions/foward-1.m: Ditto. * objc/execute/bf-2.m: Ditto. * objc/execute/string1.m: Ditto. * objc/execute/bf-4.m: Ditto. * objc/execute/informal_protocol.m: Ditto. * objc/execute/string3.m: Ditto. * objc/execute/bf-6.m: Ditto. * objc/execute/bf-8.m: Ditto. * objc/execute/class-tests-1.h: Ditto. * objc/execute/protocol-isEqual-1.m: Ditto. * objc/execute/protocol-isEqual-3.m: Ditto. * objc/execute/_cmd.m: Ditto. * objc/execute/function-message-1.m: Ditto. * objc/execute/bf-20.m: Ditto. * objc/execute/bf-common.h: Ditto. * objc/execute/np-2.m: Ditto. * objc/execute/class-10.m: Ditto. * objc/execute/class-12.m: Ditto. * objc/execute/enumeration-2.m: Ditto. * objc/execute/class-14.m: Ditto. * objc/execute/encode-1.m: Ditto. * objc/execute/formal_protocol-1.m: Ditto. * objc/execute/formal_protocol-3.m: Ditto. * objc/execute/accessing_ivars.m: Ditto. * objc/execute/bycopy-2.m: Ditto. * objc/execute/class-2.m: Ditto. * objc/execute/bf-10.m: Ditto. * objc/execute/formal_protocol-7.m: Ditto. * objc/execute/root_methods.m: Ditto. * objc/execute/class-4.m: Ditto. * objc/execute/bf-12.m: Ditto. * objc/execute/class-6.m: Ditto. * objc/execute/bf-14.m: Ditto. * objc/execute/nested-func-1.m: Ditto. * objc/execute/class-8.m: Ditto. * objc/execute/private.m: Ditto. * objc/execute/bf-16.m: Ditto. * objc/execute/bf-18.m: Ditto. * objc/execute/load-3.m: Ditto. * objc/execute/compatibility_alias.m: Ditto. * objc/execute/bf-1.m: Ditto. * objc/execute/no_clash.m: Ditto. * objc/execute/bf-3.m: Ditto. * objc/execute/string2.m: Ditto. * objc/execute/bf-5.m: Ditto. * objc/execute/string4.m: Ditto. * objc/execute/bf-7.m: Ditto. * objc/execute/object_is_meta_class.m: Ditto. * objc/execute/bf-9.m: Ditto. * objc/execute/bf-21.m: Ditto. * objc/execute/cascading-1.m: Ditto. * objc/execute/trivial.m: Ditto. * objc/execute/np-1.m: Ditto. * objc/compile/trivial.m: Ditto. * objc/execute/class_self-2.m: Include <stdlib.h>. * objc/execute/forward-1.x: Do not XFAIL for 32bit powerpc-darwin. * objc.dg/desig-init-1.m: Use shared wrapper headers (Object1.h, Protocol1.h) and next-mapping.h as required. XFAIL run if NeXT and 64bit. Use new NeXT interface as required. * objc.dg/special/unclaimed-category-1.m: Ditto. * objc.dg/special/unclaimed-category-1.h: Ditto. * objc.dg/special/unclaimed-category-1a.m: Ditto. * objc.dg/func-ptr-1.m: Ditto. * objc.dg/stret-1.m: Ditto. * objc.dg/encode-2.m: Ditto. * objc.dg/category-1.m: Ditto. * objc.dg/encode-3.m: Ditto. * objc.dg/call-super-3.m: Ditto. * objc.dg/method-3.m: Ditto. * objc.dg/func-ptr-2.m: Ditto. * objc.dg/lookup-1.m: Ditto. * objc.dg/encode-4.m: Ditto. * objc.dg/fix-and-continue-1.m: Ditto. * objc.dg/proto-lossage-3.m: Ditto. * objc.dg/method-13.m: Ditto. * objc.dg/proto-qual-1.m: Ditto. * objc.dg/zero-link-3.m: Ditto. * objc.dg/bitfield-1.m: Ditto. * objc.dg/va-meth-1.m: Ditto. * objc.dg/super-class-3.m: Ditto. * objc.dg/call-super-1.m: Ditto. * objc.dg/type-size-2.m: Ditto. * objc.dg/method-10.m: Ditto. * objc.dg/defs.m: Ditto. * objc.dg/const-str-3.m: Ditto. * objc.dg/try-catch-6.m: Use shared wrapper headers (Object1.h, Protocol1.h) and next-mapping.h as required. Use new NeXT interface as required. * objc.dg/super-class-4.m: Ditto. * objc.dg/comp-types-8.m: Ditto. * objc.dg/call-super-2.m: Ditto. * objc.dg/objc-fast-4.m: Ditto. * objc.dg/method-6.m: Ditto. * objc.dg/const-str-3.m: Ditto. * objc.dg/const-str-7.m: Ditto. * objc.dg/method-15.m: Ditto. * objc.dg/method-19.m: Ditto. * objc.dg/sync-1.m: Ditto. * objc.dg/layout-1.m: Ditto. * objc.dg/bitfield-3.m: Ditto. * objc.dg/try-catch-3.m: Ditto. * objc.dg/try-catch-7.m: Ditto. * objc.dg/comp-types-10.m: Ditto. * objc.dg/selector-2.: Ditto. * objc.dg/method-7.m: Ditto. * objc.dg/typedef-alias-1.m: Ditto. * objc.dg/proto-lossage-2.m: Ditto. * objc.dg/comp-types-11.m: Ditto. * objc.dg/sizeof-1.m: Ditto. * objc.dg/method-17.m: Ditto. * objc.dg/bitfield-5.m: Ditto. * objc.dg/try-catch-1.m: Ditto. * objc.dg/encode-5.m: Ditto. * objc.dg/fix-and-continue-2.m: Ditto. * objc.dg/method-9.m: Ditto. * objc.dg/isa-field-1.m: Ditto. * objc.dg/local-decl-2.m: Ditto. * objc.dg/objc-gc-4.m: Ditto. * objc.dg/type-stream-1.m: Skip for NeXT runtime. * objc.dg/gnu-runtime-3.m: Ditto. * objc.dg/encode-7.m: Ditto. * objc.dg/encode-8.m: Ditto. * objc.dg/selector-3.m: Ditto. * objc.dg/gnu-runtime-1.m: Ditto. * objc.dg/const-str-12.m: Ditto. * objc.dg/gnu-runtime-2.m: Ditto. * objc.dg/no-extra-load.m: Skip for gnu-runtime. * objc.dg/selector-1.m: Ditto. * objc.dg/stubify-2.m: Ditto. * objc.dg/zero-link-1.m: Ditto. * objc.dg/stret-2.m: Ditto. * objc.dg/zero-link-2.m: Ditto. * objc.dg/next-runtime-1.m: Ditto. * objc.dg/symtab-1.m: Ditto. * objc.dg/stubify-1.m: Ditto. * objc.dg/bitfield-2.m: Ditto. * objc.dg/try-catch-10.m: Apply to both runtimes. * objc.dg/const-str-1.m: Ditto. * objc.dg/image-info.m: Ditto. * objc.dg/encode-9.m: Ditto. * objc.dg/pragma-1.m: Apply test to all targets. * objc.dg/const-str-4.m: Ditto. * objc.dg/const-str-8.m: Ditto. * objc.dg/super-class-2.m: Ditto. * objc.dg/try-catch-5.m: Ditto. * objc.dg/const-str-10.m: Use shared wrapper headers (Object1.h, Protocol1.h) and next-mapping.h as required. Use new NeXT interface as required. Skip for gnu-runtime. Test for .quad at m64. * objc.dg/const-str-11.m: Ditto. * objc.dg/const-str-9.m: Ditto. * objc.dg/method-4.m: Skip for 64Bit NeXT. * objc.dg/encode-1.m: Remove redundant -lobjc. * objc.dg/try-catch-9.m: Tidy space. * obj-c++.dg/method-19.mm: Use shared wrapper headers (Object1.h, Protocol1.h) and next-mapping.h as required. XFAIL run if NeXT and 64bit. Use new NeXT interface as required. * obj-c++.dg/template-4.mm: Ditto. * obj-c++.dg/defs.mm: Ditto. * obj-c++.dg/basic.mm: Ditto. * obj-c++.dg/encode-4.mm: Ditto. * obj-c++.dg/method-17.mm: Ditto. * obj-c++.dg/proto-lossage-3.mm: Ditto. * obj-c++.dg/cxx-class-1.mm: Ditto. * obj-c++.dg/method-10.mm: Ditto. * obj-c++.dg/va-meth-1.mm: Ditto. * obj-c++.dg/encode-5.mm: Ditto. * obj-c++.dg/lookup-2.mm: Ditto. * obj-c++.dg/template-3.mm: Ditto. * obj-c++.dg/proto-qual-1.mm: Ditto. * obj-c++.dg/qual-types-1.m: Ditto. * obj-c++.dg/cxx-scope-1.mm: Ditto. * obj-c++.dg/template-1.mm: Ditto. * obj-c++.dg/encode-6.mm: Ditto. * obj-c++.dg/bitfield-2.mm: Use shared wrapper headers (Object1.h, Protocol1.h) and next-mapping.h as required. Use new NeXT interface as required. * obj-c++.dg/except-1.mm: Ditto. * obj-c++.dg/const-str-7.mm: Ditto. * obj-c++.dg/ivar-list-semi.mm: Ditto. * obj-c++.dg/cxx-scope-2.mm: Ditto. * obj-c++.dg/selector-2.mm: Ditto. * obj-c++.dg/isa-field-1.mm: Ditto. * obj-c++.dg/try-catch-1.mm: Ditto. * obj-c++.dg/local-decl-1.mm: Ditto. * obj-c++.dg/try-catch-9.mm: Ditto. * obj-c++.dg/no-extra-load.mm: Ditto. * obj-c++.dg/selector-5.mm: Ditto. * obj-c++.dg/method-12.mm: Ditto. * obj-c++.dg/try-catch-11.mm: Ditto. * obj-c++.dg/comp-types-11.mm: Ditto. * obj-c++.dg/bitfield-3.mm: Ditto. * obj-c++.dg/method-6.mm: Ditto. * obj-c++.dg/super-class-2.mm: Ditto. * obj-c++.dg/method-21.mm: Ditto. * obj-c++.dg/const-str-8.mm: Ditto. * obj-c++.dg/try-catch-7.mm: Ditto. * obj-c++.dg/method-15.mm: Ditto. * obj-c++.dg/layout-1.mm: Ditto. * obj-c++.dg/cxx-ivars-1.mm: Ditto. * obj-c++.dg/const-str-3.mm: Ditto. * obj-c++.dg/try-catch-2.mm: Ditto. * obj-c++.dg/objc-gc-3.mm: Ditto. * obj-c++.dg/fix-and-continue-2.mm: Ditto. * obj-c++.dg/bitfield-1.mm: Ditto. * obj-c++.dg/selector-6.mm: Ditto. * obj-c++.dg/method-13.mm: Ditto. * obj-c++.dg/comp-types-12.mm: Ditto. * obj-c++.dg/bitfield-4.mm: Ditto. * obj-c++.dg/try-catch-8.mm: Ditto. * obj-c++.dg/method-2.mm: Ditto. * obj-c++.dg/cxx-ivars-2.mm: Ditto. * obj-c++.dg/typedef-alias-1.mm: Ditto. * obj-c++.dg/const-str-4.mm: Ditto. * obj-c++.dg/proto-lossage-2.mm: Ditto. * obj-c++.dg/try-catch-3.mm: Ditto. * obj-c++.dg/comp-types-9.mm: Ditto. * obj-c++.dg/gnu-runtime-2.mm: Skip if NeXT runtime. * obj-c++.dg/gnu-runtime-3.mm: Ditto. * obj-c++.dg/gnu-runtime-1.mm: Ditto. * objc.dg/zero-link-2.m: Skip if gnu runtime. Use shared wrapper headers (Object1.h, Protocol1.h) and next-mapping.h as required. Use new NeXT interface as required. * obj-c++.dg/const-str-10.mm: Ditto. * obj-c++.dg/const-str-11.mm: Ditto. * obj-c++.dg/const-str-9.mm: Ditto. * obj-c++.dg/method-11.mm: Ditto. * obj-c++.dg/cxx-ivars-3.mm: Skip if gnu runtime. Use shared wrapper headers (Object1.h, Protocol1.h) and next-mapping.h as required. Use new NeXT interface as required. XFAIL run if NeXT and 64bit. * obj-c++.dg/encode-8.mm: Remove redundant -lobjc. * obj-c++.dg/const-str-1.mm: Run for NeXT as well as gnu. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157731 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-09-24 Ziemowit Laski <zlaski@apple.com>zlaski2003-09-251-0/+25
MERGE OF objc-improvements-branch into MAINLINE. See 'gcc/ChangeLog' and 'gcc/testsuite/ChangeLog' for the gory details. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71748 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud