OSDN Git Service

* lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
[pf3gnuchains/gcc-fork.git] / gcc / objc / ChangeLog
index b904fa0..f7ebee3 100644 (file)
@@ -1,3 +1,115 @@
+2005-01-14  Mike Stump  <mrs@apple.com>
+
+       * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
+       that -fobjc-exceptions is accepted.
+
+2004-12-30  Ziemowit Laski  <zlaski@apple.com>
+
+       PR objc/18971
+       * objc-act.c (get_arg_type_list, start_method_def): Decay
+       array arguments into pointers.
+       (gen_type_name_0): Learn to pretty-print array types.
+
+2004-12-15  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc-act.c (build_private_template): Change to return 'void'; do
+       not set ivar_context, uprivate_record or objc_instance_type.
+       (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
+       retrieve protocol list from the pointee rather than the pointer itself;
+       check TYPE_HAS_OBJC_INFO(...) precondition before accessing
+       TYPE_OBJC_PROTOCOL_LIST.
+       (objc_get_protocol_qualified_type): For types 'id' and 'Class',
+       construct a variant of the pointee as well as the pointer, and
+       store protocol information in the former.  When creating variants
+       of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
+       TYPE_OBJC_INTERFACE information.
+       (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
+       underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
+       for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
+       holding an IDENTIFIER_NODE.
+       (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
+       accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
+       of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
+       an IDENTIFIER_NODE (meaning a @class forward-declaration only).
+       (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
+       lookup_interface().
+       (continue_class): For @implementations, set ivar_context,
+       uprivate_record and objc_instance_type, for @interfaces, call
+       build_private_template().
+       (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
+       TYPE_OBJC_INTERFACE.
+       (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
+       accessing TYPE_OBJC_PROTOCOL_LIST.
+       * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
+       DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC, 
+       SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
+       (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
+       to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
+       (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
+       TYPE_LANG_SPECIFIC(...).
+       (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
+       (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
+       TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
+       adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
+       instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
+
+2004-11-29  Joseph Myers  <joseph@codesourcery.com>
+
+       PR c/7544
+       * Make-lang.in (objc/objc-act.o): Update dependencies.
+       * objc-act.c (objc_finish_file): Call
+       maybe_apply_pending_pragma_weaks if not OBJCPLUS.
+
+2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR objc/18406
+       * obj-act.c (encode_type): 96bits doubles are encoded the
+       same way as 64bit and 128bit doubles are.
+
+2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
+
+2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR objc/16546
+       * objc-act.c (generate_method_descriptors): Remove setting
+       the new decls' type to variable_length_type.
+       (generate_ivar_lists): Likewise.
+       (generate_dispatch_tables): Likewise.
+
+2004-10-30  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc-act.c (objc_lookup_ivar): The new OTHER parameter
+       contains the result of the ID lookup by the C or C++
+       front-end; in class methods, use OTHER if it exists;
+       in instance methods, use OTHER only if it is locally
+       declared.
+
+2004-10-26  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc-act.c (finish_class): Do not synthesize bogus
+       'extern objc_object *_Foo;' declarations for @interface Foo.
+
+2004-10-25  Ziemowit Laski  <zlaski@apple.com>
+           David Ayers  <d.ayers@inode.at>
+
+       * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
+       instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
+       'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
+       'Class <Protocol> == id' and 'Class <Protocol> == Class'.
+       (objc_is_id): Add test for 'super'.
+       (objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
+       receivers; if class methods are not found in protocol lists, search
+       for instance methods therein and warn if one is found.  Look in
+       global hash tables for suitable method as a last resort when messaging
+       'id <Proto>', 'Class <Proto>' and invalid receiver types.
+       (objc_add_method): Insert instance methods listed in protocols into
+       the global class method hash table.
+       * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
+       IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
+       addition to 'id <Proto>'.
+
 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR objc/17923