summaryrefslogtreecommitdiff
path: root/libobjc/encoding.c
Commit message (Collapse)AuthorAgeFilesLines
* In libobjc/:nicola2011-06-071-76/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2011-06-07 Nicola Pero <nicola.pero@meta-innovation.com> Removed the Traditional Objective-C runtime public API. * Makefile.in (OBJC_DEPRECATED_H): Variable removed. (install-headers): Do not create the objc/deprecated directory and do not install the deprecated headers. (OBJC_H): Removed encoding.h and objc-api.h. * Object.m: Removed all methods with the exception of -class and -isEqual:. Updated includes. ([-class]): Use Modern API. * objc/Object.h: Do not include deprecated/Object.h. * objc/deprecated/Object.h: Removed. * linking.m (__objc_linking): Call [Object class] instead of [Object name]. * Protocol.m: Removed all methods with the exception of -isEqual:. Updated includes. * objc/Protocol.h: Do not include deprecated/Protocol.h. * objc/deprecated/Protocol.h: Removed. * objc/deprecated/struct_objc_symtab.h: Removed. * objc/deprecated/struct_objc_module.h: Removed. * objc/deprecated/struct_objc_ivar.h: Removed. * objc/deprecated/struct_objc_ivar_list.h: Removed. * objc/deprecated/struct_objc_method.h: Removed. * objc/deprecated/struct_objc_method_list.h: Removed. * objc/deprecated/struct_objc_protocol_list.h: Removed. * objc/deprecated/struct_objc_category.h: Removed. * objc/deprecated/MetaClass.h: Removed. * objc/deprecated/objc_msg_sendv.h: Removed. * objc/deprecated/README: Removed. * objc/deprecated/struct_objc_class.h: Removed. * objc/deprecated/struct_objc_protocol.h: Removed. * objc/deprecated/struct_objc_selector.h: Removed. * objc/encoding.h: Removed. * objc/message.h (struct objc_super): Removed the definition for the Traditional Objective-C runtime API. * objc/objc.h: Do not include objc/objc-decls.h. deprecated/struct_objc_selector.h, deprecated/MetaClass.h, deprecated/struct_objc_class.h, deprecated/struct_objc_protocol.h and deprecated/objc_msg_sendv.h. Uncommented new definition of Protocol *. * objc/objc-api.h: Removed. * objc/runtime.h: Updated comments. Removed check to detect concurrent usage of Traditional and Modern APIs. * objc-private/module-abi-8.h: Always define struct objc_class and struct objc_protocol. (struct objc_protocol_list): Changed type of 'list' argument from 'Protocol *' to 'struct objc_protocol *'. (class_get_instance_size): Added. * objc-private/protocols.h (__objc_protocols_add_protocol): Take a 'struct objc_protocol *' as argument, not a 'Protocol *'. * objc-private/runtime.h: Updated comments. * objc-private/selector.h (struct objc_selector, sel_eq): Added. * class.c: Include objc-private/selector.h. (objc_get_meta_class): Return a Class instead of a MetaClass. * encoding.c (method_get_next_argument): Removed. (method_get_first_argument): Removed. (method_get_nth_argument): Removed. * gc.c: Include objc/runtime.h instead of objc/encoding.h. Include objc-private/module-abi-8.h and ctype.h. * protocols.c (__objc_protocols_add_protocol): Take a 'struct objc_protocl *' as argument, not a 'Protocol *'. (class_addProtocol): Added casts to 'struct objc_protocol *' and 'Protocol *'. (class_copyProtocolList): Likewise. (protocol_conformsToProtocol): Likewise. (protocol_copyProtocolList): Likewise. * sarray.c: Include objc-private/module-abi-8.h. * sendmsg.c (method_get_next_argument): Removed. (method_get_first_argument): Removed. (method_get_nth_argument): Removed. (objc_msg_sendv): Removed. (arglist_t, retval_t): New. (class_get_class_method): Take a 'Class', not 'MetaClass', argument. * thr.c: Include module-abi-8.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174765 138bc75d-0d04-0410-961f-82ee72b054a4
* Update Copyright years for files modified in 2010.jakub2011-01-031-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168438 138bc75d-0d04-0410-961f-82ee72b054a4
* libobjc:iains2010-12-131-10/+38
| | | | | | | | | | | | | * encoding.c (_darwin_rs6000_special_round_type_align): New. (darwin_rs6000_special_round_type_align): Adjust to use new routine. testsuite: * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c: Adjust XFAILs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167741 138bc75d-0d04-0410-961f-82ee72b054a4
* In libobjc/:nicola2010-10-131-1/+167
| | | | | | | | | | | | | | | | | | 2010-10-13 Nicola Pero <nicola.pero@meta-innovation.com> * encoding.c (method_copyReturnType): New. (method_copyArgumentType): New. (method_getReturnType): New. (method_getArgumentType): New. * methods.c (method_getDescription): New. * objc/runtime.h (method_copyReturnType): New. (method_copyArgumentType): New. (method_getReturnType): New. (method_getArgumentType): New. (method_getDescription): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165404 138bc75d-0d04-0410-961f-82ee72b054a4
* In libobjc/:nicola2010-10-121-110/+65
| | | | | | | | | | | | | | | | | | | | | | | 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com> * encoding.c: Tidied up comments. (objc_skip_variable_name): New static inline function. (objc_sizeof_type): Use objc_skip_variable_name instead of copying the same code over and over. (objc_alignof_type): Same. (objc_aligned_size): Same. (objc_promoted_size): Same. (objc_skip_typespec): Same. (objc_layout_structure_next_member): Same. (objc_skip_offset): Skip a '-' before the digits (if any). Fixed historical bug where objc_skip_offset would skip one byte even if there is no offset: check that the first offset digit is actually a digit before skipping it. (objc_skip_type_qualifiers): Mark as inline. (objc_skip_typespec): Mark as inline. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165403 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>nicola2010-10-121-13/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (C_SOURCE_FILES): Added methods.c. * encoding.c (method_getNumberOfArguments): New. (method_get_number_of_arguments): Call method_getNumberOfArguments. * ivars.c (ivar_getName): Check for NULL variable argument. (ivar_getOffset): Check for NULL variable argument. (ivar_getTypeEncoding): Check for NULL variable argument. (class_copyIvarList): New. * methods.c: New. * protocols.c (class_copyProtocolList): Check for Nil class_ argument. * sendmsg.c: Use 'struct objc_method *' instead of Method_t, and 'struct objc_method_list *' instead of MethodList_t. (class_getMethodImplementation): New. (class_respondsToSelector): New. (class_getInstanceMethod): New. (class_getClassMethod): New. * objc/runtime.h: Updated comments. (class_copyIvarList): New. (class_getInstanceMethod): New. (class_getClassMethod): New. (class_getMethodImplementation): New. (class_respondsToSelector): New. (method_getName): New. (method_getImplementation): New. (method_getTypeEncoding): New. (class_copyMethodList): New. (method_getNumberOfArguments): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165400 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>nicola2010-10-121-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * archive.c: Do not include objc/objc.h. * class.c: Do not include objc/objc.h. * encoding.c: Include objc/runtime.h, ctype.h and objc-private/module-abi-8.h instead of objc/objc-api.h and objc/encoding.h. * error.c: Do not include objc/objc.h. * gc.c: Include tconfig.h and objc/encoding.h only if OBJC_WITH_GC. * hash.c: Include objc/runtime.h and objc/thr.h instead of objc/objc-api.h. Do not include objc/objc.h. * init.c: Do not include objc/objc.h. * ivars.c: Include objc/runtime.h, objc-private/module-abi-8.h and objc/thr.h instead of objc/objc-api.h. Do not include objc/objc.h. * linking.m: Tidied comment. * memory.c: Include objc/runtime.h instead of objc/objc-api.h. Do not include objc/objc.h. * objects.c: Do not include objc/objc.h. * objc-sync.c: Include objc/runtime.h instead of objc/objc-api.h. * protocols.c: Do not include objc/objc.h. * sarray.c: Include objc/runtime.h instead of objc/objc-api.h. Do not include objc/objc.h. * selector.c: Do not include objc/objc.h. * sendmsg.c: Do not include objc/objc.h. * thr.c: Include objc/runtime.h instead of objc/objc-api.h. Do not include objc/objc.h. * objc/objc-decls.h: Reindented code. * objc/runtime.h Include objc-decls.h. Updated comments. (objc_malloc): New. (objc_atomic_malloc): New. (objc_calloc): New. (objc_realloc): New. (objc_free): New. * objc-private/runtime.h: Updated comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165386 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/:nicola2010-09-271-2/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-09-26 Kai Tietz <kai.tietz@onevision.com>ktietz2010-09-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sendmsg.c (get_imp): Remove inline. (objc_msg_lookup): Likewise. (objc_get_uninstalled_dtable): Likewise. * encoding.c (objc_skip_type_qualifiers): Likewise. (objc_skip_offset): Likewise. * archive.c (__objc_write_object): Likewise (__objc_write_class): (__objc_write_selector): (objc_read_char): (objc_read_unsigned_char): (objc_read_short): (objc_read_unsigned_short): (objc_read_int): (objc_read_long): (__objc_read_nbyte_uint): (objc_read_unsigned_int): (objc_read_unsigned_long): * objc/objc-decls.h (obc_EXPORT): Remove dllexport for DLL_EXPORT case. (objc_EXPORT): Likewise. * objc/message.h (objc-decls.h): Add include. * objc/objc-api.h: Mark API by objc_EXPORT. * libobjc.def (__objc_responds_to): Removed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164632 138bc75d-0d04-0410-961f-82ee72b054a4
* In libobjc/:nicola2010-09-121-11/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * objc/deprecated/objc_error.h: New file. * objc/objc-api.h: Include deprecated/objc_error.h instead of defining objc_error and related. * error.c: New file. Added _objc_abort function which replaces objc_error. No change in functionality as they both print an error and abort. * misc.c: File removed. Code moved into memory.c and error.c. * memory.c: New file. * objc-private/error.h: New file. * archive.c: Include objc-private/error.h and use _objc_abort instead of objc_error everywhere. * class.c: Same change. * encoding.c: Same change. * init.c: Same change, and simplified init_check_module_version. * memory.c: Same change. * sendmsg.c: Same change. * thr.c: Same change. * Makefile.in (OBJ_DEPRECATED_H): Added objc_error.h. (OBJ_H): Reordered list. (OBJS): Removed misc.lo, added memory.lo and error.lo. (OBJS_GC): Removed misc_gc.lo, added memory_gc.lo and error_gc.lo. (misc_gc.lo): Rule removed. (error_gc.lo): Rule added. (memory_gc.lo): Rule added. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164223 138bc75d-0d04-0410-961f-82ee72b054a4
* In libobjc/:nicola2010-09-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * objc/objc.h (__GNU_LIBOBJC__): New #define providing an easy way to check the API version. Added some comments. * objc-private/common.h: New file. * NXConstStr.m: Include objc-private/common.h. * Object.m: Same change. * Protocol.m: Same change. * archive.c: Same change. * class.c: Same change. * encoding.c: Same change. * exception.c: Same change. * gc.c: Same change. * hash.c: Same change. * init.c: Same change. * libobjc_entry.c: Same change. * linking.m: Same change. * misc.c: Same change (and added a comment). * nil_method.c: Same change. * objects.c: Same change. * sarray.c: Same change. * selector.c: Same change. * sendmsg.c: Same change. * thr.c: Same change. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164218 138bc75d-0d04-0410-961f-82ee72b054a4
* fix libobjc ppc64 abi for darwin.iains2010-09-061-2/+13
| | | | | | | | | | | | | | | | libobjc: * encoding.c: Add TARGET_ALIGN_NATURAL definition for m64 powerpc darwin. Add a comment as to why, update FIXME comments. testsuite: * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c: Update XFAILs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163906 138bc75d-0d04-0410-961f-82ee72b054a4
* * sarray.c (sarray_free): Use old_buckets variable.jakub2009-11-281-3/+1
| | | | | | | | | | | * encoding.c (objc_layout_structure_next_member): Remove unused bfld_type_size variable. * decContext.c (decContextTestEndian): Move adj definition into #if DECCHECK guarded code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154730 138bc75d-0d04-0410-961f-82ee72b054a4
* Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.jakub2009-04-091-11/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145841 138bc75d-0d04-0410-961f-82ee72b054a4
* Delete get_inner_array_type. Use strip_array_types instead.amodra2008-05-251-4/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135858 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/:geoffk2006-11-011-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 23067 * c-decl.c (start_struct): Don't create self-containing structures. * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align): New. * config/rs6000/rs6000-protos.h (darwin_rs6000_special_round_type_align): New. * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite. (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align. In gcc/testsuite/: PR 23067 * gcc.target/powerpc/darwin-abi-3.c: Remove XFAIL. * gcc.target/powerpc/darwin-abi-6.c: Remove XFAIL. * gcc.target/powerpc/darwin-abi-7.c: Remove XFAIL. * gcc.target/powerpc/darwin-abi-8.c: Remove XFAIL. * gcc.target/powerpc/darwin-abi-9.c: Remove XFAIL. * gcc.target/powerpc/darwin-abi-10.c: Remove XFAIL. * gcc.target/powerpc/darwin-abi-11.c: Remove XFAIL. In libobjc/: * encoding.c (darwin_rs6000_special_round_type_align): New. In libffi/: * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New. (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for Darwin. * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL. * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118365 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-12-14 Andrew Pinski <pinskia@physics.uc.edu>pinskia2005-12-161-0/+129
| | | | | | | | | | | | | | | | | | PR objc/25360 * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed by the inner type. 2005-12-14 Andrew Pinski <pinskia@physics.uc.edu> PR objc/25360 * objc/objc-api.c (_C_COMPLEX): New define. * encoding.c (objc_sizeof_type): Handle _C_Complex. (objc_alignof_type): Likewise. (objc_skip_typespec): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108675 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-12-12 Andrew Pinski <pinskia@physics.uc.edu>pinskia2005-12-121-7/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | PR libobjc/25354 * objc.dg/gnu-encoding: New directory. * objc.dg/gnu-encoding/compat-common.h: New file. * objc.dg/gnu-encoding/struct-layout-1.h: New file. * objc.dg/gnu-encoding/struct-layout-1_test.h: New file. * objc.dg/gnu-encoding/vector-defs.h: New file. * objc.dg/gnu-encoding/gnu-encoding.exp: New file. * objc.dg/gnu-encoding/generate-random.c: New file. * objc.dg/gnu-encoding/generate-random_r.c: New file. * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c: New file. * objc.dg/gnu-encoding/generate-random.h: New file. 2005-12-12 Andrew Pinski <pinskia@physics.uc.edu> * encoding.c (TYPE_FIELDS): Fix to skip over just _C_STRUCT_B and the name. (get_inner_array_type): Fix to skip over _C_ARY_B and size. (rs6000_special_round_type_align): Update for the ABI fix. (objc_layout_finish_structure): Correct the encoding which is passed to ROUND_TYPE_ALIGN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108398 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-12-11 Andrew Pinski <pinskia@physics.uc.edu>pinskia2005-12-111-43/+16
| | | | | | | | | | | | | | | | | | | PR libobjc/25347 * encoding.c (objc_sizeof_type): Don't handle _C_UNION_B special but use the struct layout functions. (objc_alignof_type): Likewise. (objc_layout_structure): Handle _C_UNION_B also. (objc_layout_structure_next_member): Likewise. (objc_layout_finish_structure): Likewise. 2005-12-11 Andrew Pinski <pinskia@physics.uc.edu> PR libobjc/25347 * objc.dg/encode-8.m: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108379 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-12-11 Andrew Pinski <pinskia@physics.uc.edu>pinskia2005-12-111-0/+9
| | | | | | | | | | | | | | | | | PR libobjc/25346 * objc/objc-api.h (_C_BOOL): New define. * encoding.c (objc_sizeof_type): Handle _C_BOOL. (objc_alignof_type): Likewise. (objc_skip_typespec): Likewise. 2005-12-11 Andrew Pinski <pinskia@physics.uc.edu> PR libobjc/25346 * objc.dg/encode-7.m: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108378 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-08-17 Kelley Cook <kcook@gcc.gnu.org>kcook2005-08-171-2/+2
| | | | | | | * All files: Update FSF address. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103197 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-06-07 David Ayers <d.ayers@inode.at>ayers2005-06-071-2/+2
| | | | | | | | | | | | | | * archive.c, init.c, selector.c: Include hash.h. * archive.c, class.c, encoding.c, gc.c, hash.c, hash_compat.c, init.c, misc.c, nil_method.c, objects.c, sarray.c, selector.c, sendmsg.c, thr-dce.c, thr-decosf1.c, thr-irix.c, thr-mach.c, thr-objc.c, thr-os2.c, thr-posix.c, thr-pthreads.c, thr-rtems.c, thr-single.c, thr-solaris.c, thr-vxworks.c, thr-win32.c, thr.c: Include Objective-C headers with quotes and objc/ directory prefix. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100723 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-16 Andrew Pinski <apinski@apple.com>pinskia2004-09-161-0/+5
| | | | | | | * encoding.c (ALTIVEC_VECTOR_MODE): Define a bogus macro. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87591 138bc75d-0d04-0410-961f-82ee72b054a4
* libiberty:zack2004-06-281-2/+5
| | | | | | | | | | | | * cp-demangle.h: Declare cplus_demangle_operators, cplus_demangle_builtin_types, cplus_demangle_mangled_name, and cplus_demangle_type as static if IN_GLIBCPP_V3. libobjc: * encoding.c: Rename target_flags with a #define to avoid conflict with a prior declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83800 138bc75d-0d04-0410-961f-82ee72b054a4
* * encoding.c (BITS_PER_UNIT): Define if a definition is not provided.nickc2004-06-211-1/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83438 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-05-25 Andrew Pinski <pinskia@physics.uc.edu>pinskia2004-05-251-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge from the libobjc-branch 2004-02-09 Andrew Pinski <pinskia@physics.uc.edu> * Makefile.in (OBJC_H): Change objc-deps.h to objc-decls.h. 2004-02-03 Andrew Pinski <pinskia@physics.uc.edu> * Makefile.in (OBJC_H): Add objc-deps.h. 2004-01-27 Nicola Pero <n.pero@mi.flashnet.it> * Protocol.m ([-conformsTo:]): If the argument is nil, return NO. ([-hash], [-isEqual:]): New methods. 2004-01-27 Richard Frith-Macdonald <rfm@gnu.org> * sarray.c (sarray_free): Add a better comment. 2004-01-27 Adam Fedor <fedor@gnu.org> * hash.c (hash_add): Cast cachep to int. * selector.c (__sel_register_typed_name): Cast soffset_decode to int. 2004-01-27 Alexander Malmberg <alexander@malmberg.org> * selector.c: Rename register_selectors_from_list to __objc_register_selectors_from_list. Update caller. (__objc_register_selectors_from_list): Lock __objc_runtime_mutex while registering selectors. Use __sel_register_typed_name instead of sel_register_typed_name. Check for NULL method_name:s. (pool_alloc_selector): New function. (__sel_register_typed_name): Use pool_alloc_selector to allocate selector structures. * sendmsg.c (class_add_method_list): Use __objc_register_selectors_from_list. * objc/runtime.h: Add __objc_register_selectors_from_list. 2004-01-25 Adam Fedor <fedor@gnu.org> Nicola Pero <n.pero@mi.flashnet.it> Andrew Pinski <pinskia@physics.uc.edu> * objc/objc-decls.h: New file. * objc/objc-api.h (_objc_lookup_class): Mark as export. (_objc_load_callback): Likewise. (_objc_object_alloc): Likewise. (_objc_object_copy): Likewise. (_objc_object_dispose): Likewise. 2004-01-25 Andrew Pinski <pinskia@physics.uc.edu> * archive.c: s/__inline__/inline * sendmsg.c: Likewise. * encoding.c: Remove FIXME about the warning about unused variable. * sendmsg.c: Add a FIXME comment saying that this should be using libffi. * Makefile.in (LIBTOOL): Use @LIBTOOL@ now as it works. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82253 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-01-17 Andrew Pinski <pinskia@physics.uc.edu>pinskia2004-01-171-0/+11
| | | | | | | | | | | | | | | | | | | PR target/10781 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): Prototype. * config/rs6000/rs6000.c (rs6000_special_round_type_align): New function. * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it. * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise. * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise. 2004-01-17 Andrew Pinski <pinskia@physics.uc.edu> PR target/10781 * encoding.c (rs6000_special_round_type_align): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76043 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-05-23 Nathanael Nerode <neroden@gcc.gnu.org>neroden2003-05-231-4/+4
| | | | | | | | | | | * Makefile.in, NXConstStr.m, Object.m, Protocol.m, archive.c, class.c, encoding.c, gc.c, objc/NXConstStr.h, objc/Object.h, objc/Protocol.h, objc/encoding.h, objc/hash.h, objc/objc-api.h, objc/objc-list.h, objc/objc.h, ocjc/runtime.h, objc/sarray.h, objc/thr.h, objc/typedstream.h: Replace "GNU CC" with "GCC". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67131 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge basic-improvements-branch to trunkzack2002-12-161-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60174 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-07-02 Rodney Brown <rbrown64@csc.com.au>shebs2002-07-021-97/+118
| | | | | | | | | | | | | | | | | | | | | | | | | * objc/encoding.h: Fix formatting. * objc/hash.h: Likewise. * objc/objc-api.h: Likewise. * objc/runtime.h: Likewise. * objc/thr.h: Likewise. * archive.c: Likewise. * class.c: Likewise. * encoding.c: Likewise. * gc.c: Likewise. * hash.c: Likewise. * init.c: Likewise. * misc.c: Likewise. * nil_method.c: Likewise. * objects.c: Likewise. * sarray.c: Likewise. * selector.c: Likewise. * sendmsg.c: Likewise. * thr-mach.c: Likewise. * thr.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55190 138bc75d-0d04-0410-961f-82ee72b054a4
* * Object.m (forward, read, write): Fix unused parameter warnings.ghazi2002-06-211-13/+4
| | | | | | | | | | | | * encoding.c: Include <stdlib.h>. (target_flags): Mark with attribute unused. (atoi): Delete. * runtime.h (__objc_selector_max_index): Change to unsigned int. (__objc_generate_gc_type_description): Prototype. * selector.c (__objc_selector_max_index): Change to unsigned int. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54884 138bc75d-0d04-0410-961f-82ee72b054a4
* * Object.m: Fix signed/unsigned warning.ghazi2002-06-151-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Protocol.m: Likewise. * archive.c: Always include stdlib.h. (objc_read_short, objc_read_unsigned_short, objc_read_int, objc_read_long, __objc_read_nbyte_uint, __objc_read_nbyte_ulong): Fix signed/unsigned warning. (objc_write_type, objc_read_type, objc_write_types, objc_read_types): Ensure ctype 8-bit safety. (__objc_no_write, __objc_no_read): Mark unused parameters. * class.c (class_table_setup): Specify void arg. * encoding.c (atoi, objc_sizeof_type, objc_alignof_type, objc_skip_typespec, objc_skip_offset, objc_layout_structure_next_member): Ensure ctype 8-bit safety. (objc_layout_structure_next_member): Ensure variables are initialized. * gc.c (__objc_generate_gc_type_description, class_ivar_set_gcinvisible): Mark unused parameters. * init.c (__objc_send_load, __objc_destroy_class_tree_node): Mark unused parameters. (__objc_init_protocols) Fix signed/unsigned warning. * nil_method.c (nil_method): Mark unused parameters. * thr.h (objc_thread_callback): Specify void arg. * sarray.c (sarray_new, sarray_realloc, sarray_free): Fix signed/unsigned warning. (sarray_free): Fix formatting. * selector.c (sel_types_match): Ensure ctype 8-bit safety. * sendmsg.c (__objc_init_install_dtable) Mark unused parameters. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54649 138bc75d-0d04-0410-961f-82ee72b054a4
* * encoding.c (objc_layout_structure_next_member): Remove unusedaj2002-06-091-32/+32
| | | | | | | variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54406 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-04-19 David O'Brien <obrien@FreeBSD.org>obrien2002-04-231-0/+3
| | | | | | | | | | * encoding.c (MAX, MIN, ROUNDING): #undef before defining. Approved by: David S. Miller <davem@redhat.com> Message-Id: <20020419.184825.67430590.davem@redhat.com> git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52648 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-11-14 Aldy Hernandez <aldyh@redhat.com>aldyh2001-11-141-0/+5
| | | | | | | * encoding.c: Add target_flags. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47021 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-11-07 Aldy Hernandez <aldyh@redhat.com>aldyh2001-11-081-0/+2
| | | | | | | | | * objc-api.h (_C_VECTOR): New. * encoding.c (VECTOR_TYPE): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46849 138bc75d-0d04-0410-961f-82ee72b054a4
* * encoding.c (REAL_TYPE): Define.wehle2001-03-211-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40687 138bc75d-0d04-0410-961f-82ee72b054a4
* * encoding.c (TYPE_MODE): Define.dje2001-03-191-3/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40633 138bc75d-0d04-0410-961f-82ee72b054a4
* * encoding.c (STRUCTURE_SIZE_BOUNDARY): Redefine in a way thatrearnsha2001-01-111-2/+5
| | | | | | | determines the value dynamically. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38906 138bc75d-0d04-0410-961f-82ee72b054a4
* Move statement-tree facilities from C++ to C front-end.mmitchel2000-09-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.h (c_tree_index): Add CTI_VOID_ZERO. (void_zero_node): New macro. (struct stmt_tree_s): New type. (stmt_tree): New typedef. (struct language_function): New type. (last_tree): New macro. (last_expr_type): Likewise. (walk_tree_fn): New typedef. (current_stmt_tree): New function. (begin_stmt_tree): Likewise. (add_stmt): Likewise. (finish_stmt_tree): Likewise. (statement_code_p): Likewise. (lang_statement_code_p): New variable. (walk_stmt_tree): New function. (STMT_IS_FULL_EXPR_P): New macro. * c-common.c (lang_statement_code_p): New variable. (c_common_nodes_and_builtins): Initialize void_zero_node. (statement_code_p): New function. (walk_stmt_tree): Likewise. * c-decl.c (language_function): Rename to ... (c_language_function): ... this. Include language_function. (push_c_function_context): Adjust accordingly. (pop_c_function_context): Likewise. (mark_c_function_context): Likewise. (current_stmt_tree): Define. * c-semantics.c (begin_stmt_tree): New function. (add_stmt): Likewise. (prune_unused_decls): Likewise. (finish_stmt_tree): Likewise. Move statement-tree facilities from C++ to C front-end. * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. (void_zero_node): Remove. (stmt_tree): Likewise. (scope_chain): Adjust. (language_function): Rename to cp_language_function. (cp_function_chain): Adjust. (current_stmt_tree): Remove. (last_tree): Likewise. (last_expr_type): Likewise. (struct lang_decl): Adjust. (STMT_IS_FULL_EXPR_P): Remove. (add_tree): Remove. (begin_stmt_tree): Likewise. (finish_stmt_tree): Likewise. (walk_tree_fn): Likewise. (walk_stmt_tree): Likewise. * class.c (finish_struct): Replace use of add_tree with add_stmt. * decl.c (mark_stmt_tree): Adjust type. (init_decl_processing): Don't build void_zero_node. (initialize_local_var): Adjust usage of current_stmt_tree. (finish_enum): Use add_stmt, not add_tree. (save_function_data): Adjust use of language_function. (finish_constructor_body): Use add_stmt, not add_tree. (finish_destructor_body): Likewise. (push_cp_function_context): Adjust use of language_function. (pop_cp_function_context): Likewise. (mark_lang_function): Likewise. (mark_cp_function_context): Likewise. * init.c (build_aggr_init): Adjust use of current_stmt_tree. (build_vec_init): Likewise. * semantics.c (SET_LAST_STMT): Remove. (RECHAIN_STMTS): Don't use it. (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. (current_stmt_tree): Define. (add_tree): Remove. (finish_goto_stmt): Use add_stmt, not add_tree. (finish_expr_stmt): Likewise. (begin_if_stmt): Likewise. (finish_then_clause): Likewise. (begin_while_stmt): Likewise. (begin_do_stmt): Likewise. (finish_return_stmt): Likewise. (begin_for_stmt): Likewise. (finish_break_stmt): Likewise. (finish_continue_stmt): Likewise. (begin_switch_stmt): Likewise. (finish_case_label): Likewise. (begin_try_block): Likewise. (begin_function_try_block): Likewise. (begin_handler): Likewise. (begin_catch_block): Likewise. (begin_compound_stmt): Likewise. (begin_asm_stmt): Likewise. (finish_asm_stmt): Likewise. (finish_label_stmt): Likewise. (add_decl_stmt): Likewise. (finish_subobject): Likewise. (finish_decl_cleanup): Likewise. (finish_named_return_value): Likewise. (setup_vtbl_ptr): Likewise. (add_scope_stmt): Likewise. (finish_stmt_expr): Likewise. (prune_unused_decls): Remove. (begin_stmt_tree): Likewise. (finish_stmt_tree): Likewise. (prep_stmt): Adjust use of current_stmt_tree. (lang_expand_stmt): Likewise. * tree.c (statement_code_p): Remove. (cp_statement_code_p): New function. (walk_stmt_tree): Remove. (init_tree): Set lang_statement_code_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36221 138bc75d-0d04-0410-961f-82ee72b054a4
* * encoding.c (objc_layout_structure_next_member): Do the wholejakub2000-04-121-10/+0
| | | | | | | | procedure even for the first member, so that we get correct alignment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33110 138bc75d-0d04-0410-961f-82ee72b054a4
* * objc/objc-act.c: Include ggc.h.jakub2000-04-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (objc_tree_index, objc_global_trees): Convert most of the static tree variables into a static array with previous names as defines. (objc_ellipsis_node): New variable. (lang_init): Call objc_act_parse_init and c_parse_init. Create objc_ellipsis_node. (build_selector_translation_table): Use objc_ellipsis_node instead of (tree)1. (hack_method_prototype): Likewise. (get_arg_type_list): Likewise. (start_method_def): Likewise. (continue_method_def): Likewise. (gen_method_decl): Likewise. (ggc_mark_imp_list): New function. (ggc_mark_hash_table): New function. (objc_act_parse_init): New function. * objc/objc-act.h (objc_ellipsis_node): Add extern variable. * c-parse.in (c_parse_init): For objc add roots of objc specific local tree variables. * objc/objc-parse.y: Rebuilt. * objc/objc-parse.c: Rebuilt. (opt_parm_list): Use objc_ellipsis_node instead of (tree)1. * Object.m (strlen): Provide prototype on all 64bit platforms, not only alpha. * sarray.c (memcpy): Likewise. * encoding.c (objc_layout_finish_structure): Don't use ROUND_TYPE_ALIGN on sparc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33092 138bc75d-0d04-0410-961f-82ee72b054a4
* Minor changes in the documentation. Correctly define get_inner_array_type.ovidiu1998-10-161-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23144 138bc75d-0d04-0410-961f-82ee72b054a4
* * encoding.c (objc_skip_type_qualifiers): Handle _C_BYREF.law1998-10-081-0/+2
| | | | | | | | | (objc_get_type_qualifiers): Similarly. * objc/encoding.h (_C_BYREF): Define. (_F_BYREF): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22917 138bc75d-0d04-0410-961f-82ee72b054a4
* * encoding.c (TREE_TYPE, ARRAY_TYPE): Define.law1998-09-211-0/+4
| | | | | | | (get_inner_array_type): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22536 138bc75d-0d04-0410-961f-82ee72b054a4
* 1998-09-21 Ben Elliston <bje@cygnus.com>bje1998-09-211-0/+912
* New directory. Moved files from ../gcc/objc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22514 138bc75d-0d04-0410-961f-82ee72b054a4