In gcc/: 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
[official-gcc.git] / gcc / objc / ChangeLog
blobeed86bd4a0659e6c9ea23ae7229d27c5b15760d0
1 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
3         Implemented fast enumeration for Objective-C.
4         * objc-act.c (build_fast_enumeration_state_template): New.
5         (TAG_ENUMERATION_MUTATION): New.
6         (TAG_FAST_ENUMERATION_STATE): New.
7         (synth_module_prologue): Call build_fast_enumeration_state_template() and set up
8         objc_enumeration_mutation_decl.
9         (objc_create_temporary_var): Allow providing a name to temporary
10         variables.
11         (objc_build_exc_ptr): Updated calls to
12         objc_create_temporary_var().
13         (next_sjlj_build_try_catch_finally): Same change.
14         (objc_finish_foreach_loop): New.
15         * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
16         OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
17         objc_enumeration_mutation_decl.
19         Merge from 'apple/trunk' branch on FSF servers.
21         2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
23         Radar 4507230
24         * objc-act.c (objc_type_valid_for_messaging): New routine to check
25         for valid objc object types.
26         (objc_finish_foreach_loop): Check for invalid objc objects in
27         foreach header.
28         
29 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
31         Merge from 'apple/trunk' branch on FSF servers.
33         2005-10-17  Fariborz Jahanian <fjahanian@apple.com>
35         Radar 4290840
36         * objc-act.c (objc_start_method_definition): Check for
37         error_mark_node for the selector name and make a quick exit.
38         
39 2010-10-04  Andi Kleen <ak@linux.intel.com>
41         * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
43 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
45         merge from FSF 'apple/trunk' branch.
46         2006-01-30  Fariborz Jahanian <fjahanian@apple.com>
48        Radar 4386773
49        * objc/objc-act.c (objc_set_method_opt): New function.
50        (objc_start_protocol, objc_finish_interface): Reset
51        objc_method_optional_flag flag.
52        (objc_add_method_declaration): Pass on the new
53        flag to objc_add_method.
54        (objc_add_method): Add optional methods to new chain in
55        the protocol class.
56        * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS,
57        CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
58        class's optional method chains.
59         
60 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
62         Merge from 'apple/trunk' branch on FSF servers.
64         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
66         Radar 4278236
67         * objc-act.c (objc_declare_class): Pick the right
68         type tree.
70 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
72         Merge from 'apple/trunk' branch on FSF servers.
74         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
76         Radar 4281748
77         * objc-act.c (objc_check_global_decl): New
79 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
81         * objc-act.c (objc_is_reserved_word): Removed.
83 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
84         
85         * objc-act.c (objc_add_method_declaration): Handle and ignore 
86         attributes.
87         (objc_start_method_definition): Likewise.
88         (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
89         (objc_build_keyword_decl): Handle and ignore attributes.
91 2010-09-28  Richard Henderson  <rth@redhat.com>
93         * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
95 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
97         * objc-act.c (objc_start_class_interface): Handle and ignore attributes.
98         (objc_start_category_interface): Likewise.
99         (objc_start_protocol): Likewise.
101 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
103         Merge from 'apple/trunk' branch on FSF servers.
105         2005-08-23  Stuart Hastings <stuart@apple.com>
106                     Ziemowit Laski  <zlaski@apple.com>
108         Radar 4209854
109         * objc-act.c (objc_decay_parm_type): New function.
110         (get_arg_type_list): Decay types for all named arguments.
111         (objc_push_parm): Rebuild the PARM_DECL if its type has
112         been decayed.   
114 2010-09-28  Nicola Pero  <nicola@nicola.brainstorm.co.uk>
116         * objc-act.c (encode_type): Fixed encoding enums with the next
117         runtime.
119 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
121         Merge from 'apple/trunk' branch on FSF servers.
123         2005-07-18  Ziemowit Laski  <zlaski@apple.com>
125         Radar 4175534
126         * objc-act.c (objc_compare_types): A new silent comparison
127         mode (-4), differing from regular comparison (-3) in that
128         'false' is returned instead of issuing warnings.
129         
130 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
132         * objc-act.c (encode_type): Do not add 'r' with the next runtime.
133         (encode_aggregate_within): Reorganized code to be more readable.
134         (encode_aggregate_fields): Updated second argument to be 'bool'
135         instead of 'int'.
137 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
139         PR objc/45763
140         PR objc/25450
141         PR objc/25464
142         * objc-act.c: Improved comments for encoding functions.
143         (encode_aggregate_within): For the GNU runtime, rewritten some
144         obsfuscated code to clarify the various cases.
145         (encode_aggregate): Function removed.
146         (encode_array): Generate an error if asked to encode an incomplete
147         array as part of generating instance variables.  Else, when
148         encoding an incomplete array inside a structure, encode it as an
149         array of zero size.
150         (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
151         '^c' instead of '*'.
152         (encode_gnu_bitfield): Encode enumerated types exactly in the same
153         type as integer types instead of using a hardcoded 'i'.  If asked
154         to encode a non-integer type as a bitfield, do not abort
155         compilation immediately; instead generate an error, then skip the
156         type.
157         (encode_type): Use a 'switch' instead of a sequence of 'if's.
158         Added a 'default' clause that gets executed if the type can not be
159         matched, and that encodes it as '?' (unknown) and produces a
160         warning.  For the GNU runtime, encode enumerated types exactly in
161         the same way as integer types instead of using a hardcoded 'i'.
162         Encode long double as 'D'.  Encode 128-bit integers as 'T' or 't'.
163         Encode C++ reference types as pointers.  Call encode_vector to
164         encode vectors.
165         (encode_vector): New function.
166         
167 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
169         Merge from 'apple/trunk' branch on FSF servers.  I modified the
170         changes to be used only when compiling for the NeXT runtime.
172         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
174         Radar 4301047
176         * objc-act.c (encode_type): Remove the hack.
177         
178         2005-07-20  Ziemowit Laski  <zlaski@apple.com>
180         Radar 4136935
181         * objc-act.c (pointee_is_readonly): New function.
182         (encode_pointer, encode_aggregate_within, encode_type):
183         Attempt to emulate GCC 3.3 when generating type encodings.
185 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
187         Merge from 'apple/trunk' branch on FSF servers.
189         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
191         Radar 4229905
192         * objc-act.c (objc_have_common_types): New function.
193         
194         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
196         Radar 4154928
197         * objc-act.c (objc_common_type): New function.
198         
199 2010-09-27  Richard Guenther  <rguenther@suse.de>
201         * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
202         (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
204 2010-09-26  Nicola Pero  <nicola.pero@meta-innovation.com>
206         * objc-act.c: Removed historical, obsolete comment at the top of
207         the file.
209 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
211         PR objc/23710
212         * objc-act.c (objc_start_method_definition): Do not abort upon a
213         'method definition not in @implementation context' error.  Return
214         'false' instead.
216 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
218         PR objc/25965
219         * objc-act.c (objc_get_interface_ivars): New function.
220         (objc_collecting_ivars): New variable.
221         (continue_class): Set and reset objc_collecting_ivars for context.
222         
223 2010-09-15  Nicola Pero  <nicola.pero@meta-innovation.com>
225         Merge from 'apple/trunk' branch on FSF servers.
227         2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
229         Radar 4457381
230         * objc/objc-act.c (objc_finish_message_expr): Look for message in
231         @class's protocol list.
233         2006-02-07  Fariborz Jahanian <fjahanian@apple.com>
235         Radar 4219590
236         * objc/objc-act.c (objc_start_method_definition): Initialize
237         break/continue labels.
239         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
241         Radar 4174166
242         * objc-act.c (objc_compare_types): Compare function
243         pointers; indicate success if the right-hand side has
244         a return type that is covariant, and the argument types
245         contravariant, with those of the left side.
247         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
249         Radar 4216500
250         * objc-act.c (objc_get_protocol_qualified_type): When looking
251         at a typedef, retrieve the precise type it describes (rather
252         than merely looking up a class by name).
253         
254 2010-09-10  Nicola Pero  <nicola.pero@meta-innovation.com>
256         * objc/objc-act.c (objc_begin_try_stmt): Generate an error if
257         -fobjc-exceptions was not used.  (objc_build_throw_stmt): Same
258         change.
260 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
262         * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
264 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
266         PR objc/44140
267         * objc-act.c: build_objc_string_decl() remove declaration.
268         (finish_var_decl): Remove forcing of var output and marking
269         as "Used". 
270         (init_def_list): Use integer_zero_node. 
271         (init_objc_symtab): Use integer_zero_node, make the short
272         integer type specific on relevant nodes.
273         (generate_objc_symtab_decl): Remove call to 
274         forward_declare_categories().  Use null_pointer_node where
275         appropriate.  
276         (build_module_descriptor): Comment and mark this item as 
277         DECL_PRESERVE_P. 
278         (generate_static_references): Use gcc_unreachable instead of
279         abort (). 
280         (diagnose_missing_method): New.
281         (build_next_selector_translation_table): New.
282         (build_gnu_selector_translation_table): New.
283         (add_objc_string): Merge code from build_objc_string_decl...
284         ... and delete build_objc_string_decl().
285         (generate_dispatch_table): Make integer types explicit.
286         (generate_category): Pass implent and arrange for the data
287         to be extracted within the routine.  Do not start new vars, 
288         but finish the ones collcted during parsing.
289         (generate_shared_structures): Likewise.
290         (finish_objc):  Reorder code so that we finish variables before
291         referencing them.  Save the global data before calling meta-data
292         creation routines, and pass the current reference to the two 
293         main routines.  Only call generate_objc_image_info () for the 
294         NeXT runtime.
295         (generate_classref_translation_entry): Comment on and make this
296         item DECL_PRESERVE_P.
297         (handle_class_ref): Use varpool interfaces, comment on and make
298         this item DECL_PRESERVE_P.
299         (handle_impent): Likewise.
300         (generate_objc_image_info): Only generate when the content is 
301         non-zero.  Make integer types explict.
303 2010-07-03  Nathan Froyd  <froydnj@codesourcery.com>
305         PR objc/24867
306         * objc-act.c (build_sized_array_type): New function.
307         (add_objc_string): Use it.
308         (generate_protocol_list): Likewise.
309         (generate_objc_image_info): Likewise.
310         (add_field_decl): New function.
311         (objc_build_struct): Use a VEC rather than building a TREE_LIST.
312         (generate_struct_by_value_array): Use add_field_decl.
313         (build_objc_symtab_template): Likewise.
314         (build_module_descriptor): Likewise.
315         (build_objc_exception_stuff): Likewise.
316         (build_protocol_template): Likewise.
317         (build_method_prototype_list_template): Likewise.
318         (build_method_prototype_template): Likewise.
319         (build_category_template): Likewise.
320         (build_selector_template): Likewise.
321         (build_class_template): Likewise.
322         (build_super_template): Likewise.
323         (build_ivar_template): Likewise.
324         (build_ivar_list_template): Likewise.
325         (build_method_list_template): Likewise.
326         (build_method_template): Likewise.
328 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
330         * objc-act.c: Do not include except.h.
332 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
334         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
335         allocation.
337         * objc-act.c (objc_volatilize_decl): Likewise.
338         (objc_build_string_object): Likewise.
339         (hash_init): Likewise.
340         (hash_enter): Likewise.
341         (hash_add_attr): Likewise.
342         (add_class): Likewise.
343         (start_class): Likewise.
345 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
347         * objc-act.c: Update include path for moved files.
348         * objc-lang.c: Likewise.
349         * config-lang.in: Update paths in gtfiles for files in c-family/.
351 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
353         * objc-act.c (build_next_objc_exception_stuff): Give setjmp a
354         varargs type instead of a zero-argument type.
356 2010-05-30  Nathan Froyd  <froydnj@codesourcery.com>
358         * objc-act.c (synth_module_prologue): Use build_function_type_list
359         instead of build_function_type.
360         (build_module_initializer_routine): Likewise.
361         (build_next_objc_exception_stuff): Likewise.
362         (build_objc_exception_stuff): Likewise.
364 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
366         * objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
367         * Make-lang.in (objc/objc-act.o): Update dependencies.
369 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
371         * objc-act.h: Do not include gimple.h.
372         * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
373         Include gimple.h.  Explain why except.h has to be included.
374         * objc-lang.c: Do not include diagnostics.h.
375         * Make-lang.in: Update dependencies.
377 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
379         * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
380         mismatch code for VECs.
382 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
384         * objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
385         Use build_constructor instead of build_constructor_from_list.
386         (objc_build_string_object): Build a VEC argument for
387         objc_build_constructor.
388         (init_def_list): Likewise.
389         (init_objc_symtab): Likewise.
390         (init_module_descriptor): Likewise.
391         (generate_static_references): Likewise.
392         (build_selector_translation_table): Likewise.
393         (build_descriptor_table_initializer): Likewise.
394         (generate_descriptor_table): Likewise.
395         (build_protocol_initializer): Likewise.
396         (build_ivar_list_initializer): Likewise.
397         (generate_ivars_list): Likewise.
398         (build_dispatch_table_initializer): Likewise.
399         (generate_dispatch_table): Likewise.
400         (generate_protocol_list): Likewise.
401         (build_category_initializer): Likewise.
402         (build_shared_structure_initializer): Likewise.
403         (generate_objc_image_info): Likewise.
405 2010-04-30  Iain Sandoe  <iains@gcc.gnu.org>
407         PR objc++/32052
408         * objc-act.c (encode_aggregate_within): Encode structure tags
409         with template args for ObjC++.
411 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
413         * objc-act.c: Do not include varray.h.
415 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
417         PR c/18624
418         * objc-act.c (finish_var_decl, objc_begin_catch_clause,
419         really_start_method, get_super_receiver, handle_class_ref): Set
420         DECL_READ_P in addition to TREE_USED.
422 2010-04-07  Iain Sandoe <iains@gcc.gnu.org>
424         PR objc/35996
425         * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
426         -fgnu-runtime and set flag_objc_gc to zero.
428 2010-04-07  Iain Sandoe <iains@gcc.gnu.org>
430         PR objc++/23716
431         * objc-act.c (build_module_initializer_routine): Make the argument
432         to objc_start_function NULL_TREE when compiling ObjC++.
434 2010-02-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
435             Mike Stump  <mikestump@comcast.net>
437         PR objc/43061
438         * objc-act.c (finish_var_decl): Set the generated symbols as "used".
440 2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
442         * objc-act.c (objc_substitute_decl, build_ivar_reference,
443         get_super_receiver): Update build_indirect_ref calls.
445 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
447         * objc-act.c (generate_shared_structures): Remove unused sc_spec and
448         decl_specs variables.
449         (objc_build_message_expr): Remove unused loc variable.
450         (objc_finish_message_expr): Remove unused saved_rtype variable.
451         (encode_field_decl): Remove unused type variable.
453         PR obj-c++/42156
454         * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
455         type variants that don't have it initialized yet.
457 2009-09-14  Jan Hubicka  <jh@suse.cz>
459         * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
461 2009-09-14  Richard Henderson  <rth@redhat.com>
463         * objc-act.c (objc_init_exceptions): Don't call
464         default_init_unwind_resume_libfunc.
465         (objc_build_exc_ptr): Use __builtin_eh_pointer.
467 2009-09-13  Richard Guenther  <rguenther@suse.de>
468         Rafael Avila de Espindola  <espindola@google.com>
470         * objc-act.c (objc_eh_runtime_type): Export.
471         (objc_init_exceptions): Remove.  Move warning code ...
472         (objc_begin_try_stmt): ... here
473         (objc_build_throw_stmt): ... and here.
474         (objc_eh_personality_decl): New.
475         (objc_eh_personality): New function.
476         * objc-act.h (objc_eh_runtime_type): Declare.
477         (objc_eh_personality): Likewise.
478         * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
479         (LANG_HOOKS_EH_PERSONALITY): Likewise.
481 2009-09-03  Diego Novillo  <dnovillo@google.com>
483         * objc-lang.c (lang_hooks): Remove const qualifier.
485 2009-08-20  Richard Guenther  <rguenther@suse.de>
487         * objc-act.c: Include c-lang.h
488         * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
490 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
491             Manuel López-Ibáñez  <manu@gcc.gnu.org>
493         PR 40435 
494         * objc-act.c: Add location argument to all calls to
495         build_fold_addr_expr.
496         
497 2009-07-14  Taras Glek  <tglek@mozilla.com>
498             Rafael Espindola  <espindola@google.com>
500         * Make-lang.in (objc.install-plugin): New target for
501         installing plugin headers.
503 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
505         * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
506         EXPR_LOCATION.
507         
508 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
510         * objc-act.c: Replace %J by an explicit location. Update all
511         calls.
512         
513 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
515         * objc-act.c: Replace %H by an explicit location. Update all
516         calls.
517         
518 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
520         PR objc/28050
521         * objc-act.c (objc_build_message_args): Return if ARGS is the
522         error_mark_node.
523         
524 2009-06-19  Ian Lance Taylor  <iant@google.com>
526         * objc-act.c (objc_in_struct, objc_struct_types): Remove.
527         (objc_struct_info): New static variable.
528         (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
529         and &objc_struct_types, to start_struct.
530         (objc_finish_struct): Likewise for finish_struct.
532 2009-06-15  Ian Lance Taylor  <iant@google.com>
534         * objc-act.c (objc_start_function): Don't set
535         label_context_stack_se or label_context_stack_vm.
537 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
538         
539         * objc-act.c (finish_var_decl): Pass location to finish_decl.
540         (objc_get_parm_info): Same.
541         (get_super_receiver): Same.
542         * objc-act.c (objc_build_component_ref): Pass location to
543         build_compound_ref.
544         (build_module_initializer_routine): Pass location to
545         c_end_compound_stmt.
546         (objc_generate_static_init_call): Pass location to build_stmt.
547         (build_typed_selector_reference): New location argument.
548         (build_selector_reference): Same.
549         (objc_substitute_decl): Pass location to build_array_ref.
550         (next_sjlj_build_try_catch_finally): Pass location to build_stmt.
551         (objc_begin_catch_clause): Same.
552         (objc_finish_try_stmt): Same.
553         (objc_finish_catch_clause): Pass location to c_end_compound_stmt.
554         (objc_build_throw_stmt): New argument.
555         (generate_shared_structures): Pass location to build_c_cast.
556         (objc_build_message_expr): Use local location.
557         (objc_finish_message_expr): Use input_location.
558         (build_objc_method_call): New argument.
559         (objc_build_selector_expr): Same.
560         (get_super_receiver): Pass location to build_c_cast,
561         build_modify_expr, build_compound_expr.
562         * objc-act.c: Add location to all calls to start_struct, build_decl,
563         finish_struct.
564         
565 2009-06-09  Ian Lance Taylor  <iant@google.com>
567         * objc-act.c (objc_gimplify_expr): Change return type to int.
568         * objc-act.h: Update declaration.
570 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
572         * objc-act.c (objc_init): Skip print_struct_values during
573         -fcompare-debug-second.
575 2009-06-03  Ian Lance Taylor  <iant@google.com>
577         * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
578         $(SYSTEM_H).
580 2009-05-27  Ian Lance Taylor  <iant@google.com>
582         * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
583         $(LINKER).
584         (cc1obj$(exeext)): Likewise.
586 2009-05-26  Ian Lance Taylor  <iant@google.com>
588         * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
589         (cc1obj$(exeext)): Likewise.
591 2009-05-20  Ian Lance Taylor  <iant@google.com>
593         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
594         than NULL_TREE to build_special_member_call.
596 2009-05-10  Ian Lance Taylor  <iant@google.com>
598         * objc-act.c (objc_building_struct): New static variable.
599         (objc_in_struct, objc_struct_types): New static variables.
600         (objc_start_struct, objc_finish_struct): New static functions.
601         (generate_struct_by_value_array): Call objc_start_struct instead
602         of start_struct, and call objc_finish_struct instead of
603         finish_struct.
604         (objc_build_struct, build_objc_symtab_template): Likewise.
605         (build_module_descriptor): Likewise.
606         (build_next_objc_exception_stuff): Likewise.
607         (build_protocol_template): Likewise.
608         (build_method_prototype_list_template): Likewise.
609         (build_method_prototype_template): Likewise.
610         (build_category_template, build_selector_template): Likewise.
611         (build_class_template, build_super_template): Likewise.
612         (build_ivar_template, build_ivar_list_template): Likewise.
613         (build_method_list_template): Likewise.
614         (build_method_template): Likewise.
616 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
618         * objc-act.c: Include intl.h.
619         (objc_lookup_protocol): Use complete sentences for diagnostics
620         with %qE for identifiers and translating results of
621         gen_type_name_0 to locale character set.
622         (objc_check_decl, check_protocol_recursively,
623         lookup_and_install_protocols, objc_build_string_object,
624         objc_get_class_reference, objc_declare_alias, objc_declare_class,
625         objc_get_class_ivars, error_with_ivar, check_duplicates,
626         objc_finish_message_expr, objc_build_protocol_expr,
627         objc_build_selector_expr, build_ivar_reference, objc_add_method,
628         add_category, add_instance_variable, objc_is_public,
629         check_methods, check_methods_accessible, check_protocol,
630         start_class, finish_class, start_protocol, really_start_method,
631         get_super_receiver, objc_lookup_ivar): Use %E and %qE for
632         identifiers in diagnostics.  Translate generated text to locale
633         character set as needed.
634         (check_protocol, check_protocols): Change name parameter to type
635         tree.
636         (lang_report_error_function): Remove.
638 2009-04-27  Ian Lance Taylor  <iant@google.com>
640         * objc-act.c (objc_gimplify_expr): Add casts to enum type.
642 2009-04-24  Ian Lance Taylor  <iant@google.com>
644         * objc-act.c (get_super_receiver): Update calls to
645         build_modify_expr to pass new argument.
647 2009-04-21  Taras Glek <tglek@mozilla.com>
649         * objc-act.c: Update GTY annotations to new syntax
650         * objc-act.h: Likewise
652 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
654         * ChangeLog: Add copyright and license notices.
656 2009-04-20  Ian Lance Taylor  <iant@google.com>
658         * objc-act.c (objc_rewrite_function_call): Change parameter from
659         params to first_param.  Change all callers.
661 2009-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
663         PR bootstrap/39583
664         * objc-act.c (in_late_binary_op): Define for Objective-C++.
666 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
668         PR c/456
669         PR c/5675
670         PR c/19976
671         PR c/29116
672         PR c/31871
673         PR c/35198
674         * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
676 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
678         PR bootstrap/38262
679         * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
680         remove GMPLIBS.
682 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
684         * objc-act.c (objc_build_string_object): Pass location to
685         build_unary_op.
686         (init_def_list): Same.
687         (init_objc_symtab): Same.
688         (init_module_descriptor): Same.
689         (build_module_initializer_routine): Same.
690         (generate_static_references): Same.
691         (build_typed_selector_reference): Same.
692         (add_objc_string): Same.
693         (objc_substitute_decl): Same.
694         (objc_build_ivar_assignment): Same.
695         (objc_build_global_assignment): Same.
696         (objc_build_strong_cast_assignment): Same.
697         (generate_protocols): Same.
698         (build_protocol_initializer): Same.
699         (build_dispatch_table_initializer): Same.
700         (generate_protocol_list): Same.
701         (build_category_initializer): Same.
702         (build_shared_structure_initializer): Same.
703         (generate_shared_structures): Same.
704         (objc_build_protocol_expr): Same.
705         (build_ivar_reference): Same.
706         (get_super_receiver): Same.
708 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
710         * objc-act.c (next_sjlj_build_enter_and_setjmp): Call
711         c_common_truthvalue_conversion with location.
712         (next_sjlj_build_catch_list): Same.
713         (next_sjlj_build_try_catch_finally): Same.
715 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
717         PR objc/37460
718         * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
719         * objc-act.h (objc_get_callee_fndecl): Remove prototype.
720         * objc-act.c (objc_get_callee_fndecl): Kill.
722 2008-09-17  Jan Hubicka  <jh@suse.cz>
724         PR c++/18071
725         * objc/objc-act.c (objc_finish_method_definition): Do not set
726         DECL_INLINE.
728 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
730         * objc-act.c (build_typed_selector_reference): Pass input_location to
731         build_unary_op calls.
732         (build_selector_reference): Same, but to build_array_ref.
733         (objc_substitute_decl): Same.
734         (build_ivar_reference): Same, but to build_indirect_ref.
735         (get_super_receiver): Same.
737 2008-07-28  Richard Guenther  <rguenther@suse.de>
739         Merge from gimple-tuples-branch.
741         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
743         * Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
744         (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
745         * objc-act.h: Include gimple.h instead of tree-gimple.h.
746         * ipa-reference.c: Same.
748         2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
750         * objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
751         * objc-act.h (objc_gimplify_expr): Change prototype accordingly.
753 2008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
755         * objc-act.c: Fix comment typos.
757 2008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
759         * objc-act.c (objc_start_class_interface,
760         objc_start_category_interface, objc_start_class_implementation,
761         objc_start_category_implementation, objc_build_struct,
762         generate_static_references, build_private_template,
763         lookup_category, objc_add_method, add_category,
764         add_instance_variable, objc_is_public, conforms_to_protocol,
765         start_class, continue_class, finish_class): Avoid C++ keywords.
767 2008-07-14  Jason Merrill  <jason@redhat.com>
769         PR objc++/36723
770         * objc-act.c (objc_build_constructor): Update C++ tweak.
772 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
774         * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
775         of DECL_IN_SYSTEM_HEADER.
777 2008-07-11  Ian Lance Taylor  <iant@google.com>
779         * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
780         etc., not just when OBJCPLUS is defined.
782 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
784         * objc-act.c (setup_string_decl, objc_build_string_object,
785         hash_interface, eq_interface, objc_begin_try_stmt,
786         encode_method_prototype, build_ivar_list_initializer,
787         objc_build_encode_expr): Fix for -Wc++-compat.
789 2008-05-12  Tomas Bily  <tbily@suse.cz>
791         * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
792         Use CONVERT_EXPR_P.
794 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
796         * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
798 2008-04-03  Tom Tromey  <tromey@redhat.com>
800         * Make-lang.in (objc_OBJS): New variable.
802 2008-03-27  Tom Tromey  <tromey@redhat.com>
804         * Make-lang.in: Revert automatic dependency patch.
806 2008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
808         PR obj-c++/35704
809         * objc-act.c (objc_build_component_ref): Fix call to
810         finish_class_member_access_expr.
811         (objc_generate_cxx_ctor_or_dtor): Fix call to
812         build_special_member_call.
814 2008-03-25  Andrew Pinski  <pinskia@gmail.com>
816         PR objc/29197
817         * objc-act.c (encode_type): Handle when type is error_mark_node.
818         (objc_push_parm): Handle when the type of parm is error_mark_node.
820 2008-03-25  Tom Tromey  <tromey@redhat.com>
822         * Make-lang.in (objc_OBJS): New variable.
823         (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
825 2008-03-21  Andreas Tobler  <a.tobler@schweiz.org>
827         PR bootstrap/35660
828         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
829         MAYBE_CLASS_TYPE_P.
830         (objc_generate_cxx_cdtors): Likewise.
831         (add_instance_variable): Likewise.
833 2008-02-26  Tom Tromey  <tromey@redhat.com>
835         * objc-act.c (objc_init): Remove old location code.
837 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
839         PR other/35107
840         * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
842 2007-07-30  Nick Clifton  <nickc@redhat.com>
844         * Make-lang.in: Change copyright header to refer to version 3 of
845         the GNU General Public License and to point readers at the
846         COPYING3 file and the FSF's license web page.
847         * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
848         config-lang.in, objc-lang.c: Likewise.
850 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
852         * objc-act.c (objc_get_callee_fndecl): Constify.
853         * objc-act.h (objc_get_callee_fndecl): Likewise.
855 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
857         * objc-act.c (volatilized_hash, volatilized_eq, string_hash,
858         string_eq): Constify.
860 2007-04-04  Stuart Hastings  <stuart@apple.com>
862         PR 31281
863         * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
865 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
867         * Make-lang.in: Add dummy lang.install-pdf target.
869 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
871         * objc/objc-act.c: Fix comment typos.
873 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
874             Brooks Moses  <brooks.moses@codesourcery.com>
875             Lee Millward  <lee.millward@codesourcery.com>
877         * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
878         (objc_get_callee_fndecl): Likewise.
880 2007-01-23  Andrew Pinski  <pinskia@gmail.com>
882         PR objc/27438
883         * objc-act.c (objc_add_static_instance): Mark the decl as
884         TREE_USED.
886 2007-01-20  Andrew Pinski  <pinskia@gmail.com>
888         PR objc/30479
889         * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
890         of htab_hash_pointer.
891         (lookup_interface): Likewise.
892         (add_class): Likewise.
894 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
895         
896         * objc-act.c (objc_build_volatilized_type): Keep track of
897         canonical types.
898         (objc_get_protocol_qualified_type): Ditto.
899         
900 2006-11-02  Andreas Tobler  <a.tobler@schweiz.org>
902         * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
903         content where we called cp_finish_file.
905 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
907         * objc-act.c (synth_module_prologue): Replace calls to
908         builtin_function with add_builtin_function.
909         (build_next_objc_exception_stuff): Replace calls to
910         builtin_function with add_builtin_function.
911         (build_objc_exception_stuff): Replace calls to
912         builtin_function with add_builtin_function.
914 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
916         * Make-lang.in: Added empty "objc.pdf" target.
918 2006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>
920         PR objc/29195
921         * objc-act.c (objc_push_parm): If we change the type of the
922         decl, relayout the decl.
924 2006-09-19  Eric Christopher  <echristo@apple.com>
926         * objc-act.c (JBLEN): Rename to OBJC_JBLEN,
927         default to something innocuous.
928         (build_next_objc_exception_stuff): Rename JBLEN.
930 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
932         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
934 2006-07-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
936         PR obj-c++/28434
937         * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
939 2006-06-06  Mike Stump  <mrs@apple.com>
941         * objc-act.c: Remove prototype for objc_build_volatilized_type.
943 2006-05-24  Mike Stump  <mrs@apple.com>
945         * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
947 2006-05-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
949         PR objc/27240
950         * objc-act.c (objc_is_public): Return early on invalid type.
952 2006-03-02 Fariborz Jahanian <fjahanian@apple.com>
954         * objc-act.c (init_module_descriptor): Remove file name from
955         module descriptor.
956         (gen_type_name_0): Fix ICE when issuing warning.
958 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
959         * Make-lang.in (OBJC): Remove
960         (OBJECTIVE-C): Remove
961         (objective-c): Remove
962         (.PHONY): Remove objective-c and ObjC
964 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
966         PR objc/25360
967         * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed
968         by the inner type.
970 2005-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
972         PR objc/25348
973         * objc-act.c (encode_array): Handle arrays to zero sized types.
975 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
977         * Make-lang.in (objc.all.build, objc.install-normal): Remove.
979 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
981         * Make-lang.in: Remove all dependencies on s-gtype.
983 2005-12-02  Richard Guenther  <rguenther@suse.de>
985         * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
986         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
987         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
988         build_objc_method_call, objc_rewrite_function_call): Use buildN
989         instead of build.
991 2005-10-20  Geoffrey Keating  <geoffk@apple.com>
993         * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
994         on objc_msgSend and like builtin functions.
996 2005-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
998         * objc-act.c (objc_build_component_ref): Adjust call to
999         finish_class_member_access_expr due to a changed prototype.
1001 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
1003         PR objc/23306
1004         * objc-act.c (generate_strings): Remove and move code to
1005         finish decl to ...
1006         (add_objc_string): here when creating a new string decl.
1007         (finish_objc): Don't call generate_strings.
1009 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
1011         PR objc/23381
1012         * objc-act.c (next_sjlj_build_try_catch_finally): Set
1013         TREE_SIDE_EFFECTS on catch_seq after building it.
1015 2005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
1017         part of PR objc/21992
1018         * objc-act.c (handle_class_ref): The ref decl is always referenced.
1020 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
1022         Make CONSTRUCTOR use VEC to store initializers.
1023         * objc-act.c (objc_build_constructor): Use build_constructor_from_list
1024         instead of build_constructor.
1026 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
1028         * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
1029         removed.
1030         * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
1031         (KEYWORD_KEY_NAME): Use decl_minimal.
1032         (METHOD_SEL_NAME): Ditto..
1033         (METHOD_SEL_ARGS): Use decl_non_common.
1034         (METHOD_ADD_ARGS): Ditto.
1035         (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
1036         (METHOD_DEFINITION): Ditto.
1037         (METHOD_ENCODING): Ditto.
1038         * objc-lang.c: (objc_init_ts): New function.
1040 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
1042         * objc-act.c (objc_build_struct): Pass in an actual @interface
1043         instead of its name, and annotate the struct created (and all
1044         existing variants thereof) with the @interface.
1045         (objc_compare_types): Treat forward-declared ObjC classes
1046         as stand-alone (root) classes for purposes of type comparisons.
1047         (build_private_template): Move some code to objc_build_struct().
1049 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
1051         PR objc/22274
1052         * objc-act.c (objc_build_string_object): For GNU-style constants,
1053         use the @interface type rather than the built-in type.
1055 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
1057         * Make-lang.in (cc1plus-checksum.c): Use
1058         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1060 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
1062         * objc-act.c: Use %q to quote in diagnostics.
1064 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
1066         * objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
1067         quoting.
1069 2005-06-30  Ziemowit Laski  <zlaski@apple.com>
1071         * objc-act.c (objc_build_volatilized_type): New function.
1072         (objc_volatilize_decl): Call objc_build_volatilized_type()
1073         instead of build_qualified_type().
1075 2005-06-29  Ziemowit Laski  <zlaski@apple.com>
1077         * objc-act.c (objc_build_internal_const_str_type): New function.
1078         (check_string_class_template): Use objc_get_class_ivars() instead
1079         of TYPE_FIELDS() to retrieve ivar list.
1080         (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
1081         than the field itself.
1082         (objc_build_string_object): Synthesize a "__builtin_ObjCString"
1083         type and use it to lay out compile-time string objects.
1084         * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
1085         New.
1087 2005-06-28  Paul Brook  <paul@codesourcery.com>
1089         * objc-act.c (objc_init_exceptions): Call
1090         default_init_unwind_resume_libfunc.
1092 2005-06-27  Ziemowit Laski  <zlaski@apple.com>
1094         * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
1095         portion of TYPE_LANG_SPECIFIC info for all variants of
1096         a class before calling finish_struct(), and restore
1097         same TYPE_OBJC_INFO afterwards.
1099 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1101         * all files: Update FSF address in copyright headers.
1103 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
1105         * objc-act.c (my_build_string_pointer): New.
1106         (objc_get_class_reference, get_super_receiver): Call
1107         my_build_string_pointer instead of my_build_string when building
1108         function arguments.
1110 2005-05-25  Mike Stump  <mrs@mrs.kithrup.com>
1112         * objc-act.c (volatilized_hash): Avoid warnings on 64-bit
1113         machines.
1115 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
1117         * objc-act.c (objc_build_struct): New function.
1118         (objc_derived_from_p): Likewise.
1119         (objc_build_component_ref): Likewise.
1120         (objc_copy_binfo): Likewise.
1121         (objc_xref_basetypes): Likewise.
1122         (objc_lookup_protocol): Likewise.
1123         (objc_compare_protocols): Likewise.
1124         (objc_volatilize_decl): Likewise.
1125         (encode_aggregate_fields): Likewise.
1126         (volatilized_hash): Likewise.
1127         (volatilized_eq): Likewise.
1128         (objc_compare_types): Likewise.
1129         (objc_type_quals_match): Likewise.
1130         (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
1131         of same name.
1132         (get_class_ivars): Add second parameter indicating if entire
1133         hierarchy is desired.
1134         (struct volatilized_type): New type.
1135         (volatilized_htab): New hash table.
1136         (objc_types_compatible_p, objc_comptypes): Remove functions.
1137         (synth_module_prologue): Do not initialize 'unused_list'.
1138         (objc_get_class_reference): Fix ObjC++ impedance mismatches.
1139         (objc_declare_alias): Implement as a typedef.
1140         (objc_substitute_decl, objc_gimplify_expr): Reformat.
1141         (objc_get_class_ivars): Adjust call to get_class_ivars().
1142         (next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
1143         build_ivar_reference, get_super_receiver): Call
1144         objc_build_component_ref() instead of build_component_ref().
1145         (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
1146         objc_comptypes().
1147         (build_private_template): Call objc_build_struct() instead of
1148         start_struct() and finish_struct().
1149         (hash_init): Initialize volatilized_htab.
1150         (objc_is_public): Adjust calls to objc_get_ivars(); adjust
1151         ObjC++ impedance mismatches.
1152         (encode_aggregate_within): Streamline by calling
1153         encode_aggregate_fields().
1154         * objc-act.h (objc_types_compatible_p): Remove prototype.
1155         (OCTI_UNUSED_LIST, unused_list): Remove slot.
1156         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
1158 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
1160         * Make-lang.in (cc1obj-dummy): New.
1161         (cc1obj-checksum.c): New.
1162         (cc1obj-checksum.o): New.
1163         (cc1obj): Add cc1obj-checksum.o.
1165 2005-05-18  Mike Stump  <mrs@apple.com>
1167         PR objc/21641
1168         * objc-act.c (struct interface_tuple): Mark it up for GC.
1169         (interface_htab): It is really a struct interface_tuple.
1171 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
1172             Mike Stump  <mrs@apple.com>
1174         Yet more Objective-C++...
1176         * objc-act.c (objc_finish_try_stmt): Add return value.
1177         (objc_build_synchronized): Likewise.
1179         * objc-act.c (objc_is_gcable_type): Add.
1180         (objc_substitute_decl): Add.
1181         (objc_build_ivar_assignment): Add.
1182         (objc_build_global_assignment): Add.
1183         (objc_build_strong_cast_assignment): Add.
1184         (objc_is_ivar_reference_p): Add.
1185         (objc_is_global_reference_p): Add.
1186         (objc_generate_write_barrier): Add.
1187         (objc_rewrite_function_call): Add.
1188         (objc_gimplify_expr): Add Objective-C++ support.
1189         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
1190         (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
1191         (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
1192         (DUP_TYPE_OBJC_INFO): Likewise.
1193         (struct imp_entry): Add field has_cxx_cdtors.
1194         (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
1195         OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
1196         OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
1197         OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
1198         OCTI_ASSIGN_STRONGCAST_DECL.
1199         (umsg_fast_decl): Add.
1200         (objc_assign_ivar_decl): Add.
1201         (objc_assign_ivar_fast_decl): Add.
1202         (objc_assign_global_decl): Add.
1203         (objc_assign_strong_cast_decl): Add.
1204         (objc_method_list_ptr): Add.
1205         (objc_method_proto_list_ptr): Add.
1206         (objc_ivar_list_ptr): Add.
1208         * objc-act.c (should_call_super_dealloc): Add.
1209         (OBJC_VERSION): Bump to 6.
1210         (objc_is_gcable_type): Add.
1211         (objc_substitute_decl): Add.
1212         (objc_build_ivar_assignment): Add.
1213         (objc_build_global_assignment): Add.
1214         (objc_build_strong_cast_assignment): Add.
1215         (objc_is_gcable_p): Add.
1216         (objc_is_ivar_reference_p): Add.
1217         (objc_is_global_reference_p): Add.
1218         (generate_shared_structures): Add flags parameter.
1219         (objc_generate_cxx_ctor_or_dtor): Add.
1220         (objc_generate_cxx_cdtors): Add.
1221         (add_class): Add name parameter.
1222         (objc_types_share_size_and_alignment): Add.
1223         (comp_proto_with_proto): Add strict parameter.
1224         (CLS_HAS_CXX_STRUCTORS): Add.
1225         (TAG_ASSIGNIVAR): Add.
1226         (TAG_ASSIGNGLOBAL): Add.
1227         (TAG_ASSIGNSTRONGCAST): Add.
1228         (TAG_MSGSEND_FAST): Add.
1229         (TAG_ASSIGNIVAR_FAST): Add.
1230         (TAG_CXX_CONSTRUCT): Add.
1231         (TAG_CXX_DESTRUCT): Add.
1232         (OBJC_LOOKUP_CLASS): Add.
1233         (OBJC_LOOKUP_NO_SUPER): Add.
1234         (objc_finish_file): Add pch support.
1235         (objc_finish_implementation): Add Objective-C++ support.
1236         (synth_module_prologue): Likewise.
1237         (synth_module_prologue): Add fast dispatching.
1238         (objc_get_class_reference): Add Objective-C++ support.
1239         (objc_generate_write_barrier): Likewise.
1240         (next_sjlj_build_enter_and_setjmp): Likewise.
1241         (objc_begin_try_stmt): Likewise.
1242         (build_next_objc_exception_stuff): Add fast ivar support.
1243         (build_private_template): Mark the record as used so debug
1244         information is generated.
1245         (build_protocol_template): Add Objective-C++ support.
1246         (objc_method_parm_type) Likewise.
1247         (objc_generate_cxx_ctor_or_dtor): Likewise.
1248         (objc_generate_cxx_cdtors): Likewise.
1249         (build_protocol_initializer): Likewise.
1250         (build_category_template): Likewise.
1251         (build_class_template): Likewise.
1252         (build_method_list_template): Likewise.
1253         (build_category_initializer): Likewise.
1254         (build_shared_structure_initializer): Likewise.
1255         (objc_finish_message_expr): Likewise.
1256         (build_objc_method_call): Add fast dispatch support.
1257         (lookup_method_static): Add support to end search at superclasses.
1258         (add_method_to_hash_list): Add strict parameter to
1259         comp_proto_with_proto.
1260         (objc_add_method): Likewise.
1261         (objc_add_method): Also set the interface_value.
1262         (add_instance_variable): Add Objective-C++ support.
1263         (objc_is_public): Likewise.
1264         (start_class): Likewise.
1265         (continue_class): Likewise.
1266         (encode_aggregate_within): Likewise.
1267         (start_method_def): Likewise.
1268         (objc_start_function): Clear current_function_returns_value
1269         and current_function_returns_null.
1270         (really_start_method): Add Objective-C++ support.
1271         (objc_finish_method_definition): Add warning for missing
1272         [super dealloc].
1273         (finish_objc): Add Objective-C++ support.
1274         (generate_objc_image_info): Likewise.
1275         (objc_lookup_ivar): Likewise.
1276         * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
1277         (INIT_TYPE_OBJC_INFO): Likewise.
1278         (DUP_TYPE_OBJC_INFO): Likewise.
1280 2005-04-23  DJ Delorie  <dj@redhat.com>
1282         * objc-act.c: Adjust warning() callers.
1284 2005-04-21  Roger Sayle  <roger@eyesopen.com>
1286         * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
1287         this field of an objc method decl.
1288         * objc-act.c (build_method_decl): Take an additional "ellipsis"
1289         argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
1290         (objc_build_method_signature): Accept additional "ellipsis"
1291         argument and pass it to build_method_decl.
1292         (get_arg_type_list, start_method_def, gen_method_decl): Use
1293         the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
1294         TREE_OVERFLOW field of a TREE_LIST node.
1296 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
1298         PR c/12913
1299         * objc-act.c (objc_start_function): Create stack level for context
1300         of identifiers with variably modified type.
1302 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
1304         PR c/772
1305         PR c/17913
1306         * objc-act.c (objc_start_function): Push context on
1307         label_context_stack.
1309 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
1311         * objc-act.c (next_sjlj_build_enter_and_setjmp,
1312         next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
1313         Call c_common_truthvalue_conversion.
1315 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
1317         * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
1318         objc/objc-parse.c, objc/objc-parse.y): Remove
1319         (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
1320         objc.distclean, objc.maintainer-clean): Update for new parser.
1321         * config-lang.in (gtfiles): Update for new parser.
1323 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
1325         * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
1326         copyright.
1328 2005-01-27  Matt Austern  <austern@apple.com>
1330         * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
1331         calling instantiate_pending_templates.
1333 2005-01-26  Alexander Malmberg  <alexander@malmberg.org>
1335         PR objc/18862
1336         * objc-act.c (build_selector_translation_table): Use
1337         input_location in the diagnostic for the GNU runtime or if
1338         TREE_PURPOSE (chain) is NULL.
1340 2005-01-25  Alexander Malmberg  <alexander@malmberg.org>
1342         PR objc/18408
1343         * objc-act.c (objc_types_compatible_p): New function.
1344         * objc-act.h (objc_types_compatible_p): Declare.
1345         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
1347 2005-01-16  Ziemowit Laski  <zlaski@apple.com>
1349         * objc-act.c (objc_push_parm): Call c_type_promotes_to()
1350         via a lang-hook.
1352 2005-01-15  Ziemowit Laski  <zlaski@apple.com>
1354         PR objc/19321
1355         * objc-act.c (get_arg_type_list): Decay function arguments into
1356         pointers.
1357         (objc_push_parm): Likewise; bring PARM_DECL construction closer
1358         in line with what the C front-end does.
1359         (objc_get_parm_info): Call pushdecl() and finish_decl() on
1360         each PARM_DECL, like the C front-end does.
1361         (start_method_def): Remove redundant ARRAY_TYPE decay.
1362         (objc_start_function): Bring closer in line with what the
1363         C front-end does for functions.
1365 2005-01-14  Mike Stump  <mrs@apple.com>
1367         * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
1368         that -fobjc-exceptions is accepted.
1370 2004-12-30  Ziemowit Laski  <zlaski@apple.com>
1372         PR objc/18971
1373         * objc-act.c (get_arg_type_list, start_method_def): Decay
1374         array arguments into pointers.
1375         (gen_type_name_0): Learn to pretty-print array types.
1377 2004-12-15  Ziemowit Laski  <zlaski@apple.com>
1379         * objc-act.c (build_private_template): Change to return 'void'; do
1380         not set ivar_context, uprivate_record or objc_instance_type.
1381         (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
1382         retrieve protocol list from the pointee rather than the pointer itself;
1383         check TYPE_HAS_OBJC_INFO(...) precondition before accessing
1384         TYPE_OBJC_PROTOCOL_LIST.
1385         (objc_get_protocol_qualified_type): For types 'id' and 'Class',
1386         construct a variant of the pointee as well as the pointer, and
1387         store protocol information in the former.  When creating variants
1388         of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
1389         TYPE_OBJC_INTERFACE information.
1390         (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
1391         underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
1392         for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
1393         holding an IDENTIFIER_NODE.
1394         (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
1395         accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
1396         of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
1397         an IDENTIFIER_NODE (meaning a @class forward-declaration only).
1398         (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
1399         lookup_interface().
1400         (continue_class): For @implementations, set ivar_context,
1401         uprivate_record and objc_instance_type, for @interfaces, call
1402         build_private_template().
1403         (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
1404         TYPE_OBJC_INTERFACE.
1405         (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
1406         accessing TYPE_OBJC_PROTOCOL_LIST.
1407         * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
1408         DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
1409         SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
1410         (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
1411         to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
1412         (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
1413         TYPE_LANG_SPECIFIC(...).
1414         (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
1415         (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
1416         TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
1417         adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
1418         instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
1420 2004-11-29  Joseph Myers  <joseph@codesourcery.com>
1422         PR c/7544
1423         * Make-lang.in (objc/objc-act.o): Update dependencies.
1424         * objc-act.c (objc_finish_file): Call
1425         maybe_apply_pending_pragma_weaks if not OBJCPLUS.
1427 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
1429         PR objc/18406
1430         * obj-act.c (encode_type): 96bits doubles are encoded the
1431         same way as 64bit and 128bit doubles are.
1433 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
1435         * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
1437 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
1439         PR objc/16546
1440         * objc-act.c (generate_method_descriptors): Remove setting
1441         the new decls' type to variable_length_type.
1442         (generate_ivar_lists): Likewise.
1443         (generate_dispatch_tables): Likewise.
1445 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
1447         * objc-act.c (objc_lookup_ivar): The new OTHER parameter
1448         contains the result of the ID lookup by the C or C++
1449         front-end; in class methods, use OTHER if it exists;
1450         in instance methods, use OTHER only if it is locally
1451         declared.
1453 2004-10-26  Ziemowit Laski  <zlaski@apple.com>
1455         * objc-act.c (finish_class): Do not synthesize bogus
1456         'extern objc_object *_Foo;' declarations for @interface Foo.
1458 2004-10-25  Ziemowit Laski  <zlaski@apple.com>
1459             David Ayers  <d.ayers@inode.at>
1461         * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
1462         instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
1463         'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
1464         'Class <Protocol> == id' and 'Class <Protocol> == Class'.
1465         (objc_is_id): Add test for 'super'.
1466         (objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
1467         receivers; if class methods are not found in protocol lists, search
1468         for instance methods therein and warn if one is found.  Look in
1469         global hash tables for suitable method as a last resort when messaging
1470         'id <Proto>', 'Class <Proto>' and invalid receiver types.
1471         (objc_add_method): Insert instance methods listed in protocols into
1472         the global class method hash table.
1473         * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
1474         IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
1475         addition to 'id <Proto>'.
1477 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
1479         PR objc/17923
1480         * objc-act.c (objc_build_string_object): Create a CONST_DECL
1481         for the NeXT runtime case.
1483 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
1485         * objc-act.c: Fix comment typos.
1487 2004-09-24  Ziemowit Laski  <zlaski@apple.com>
1489         * objc-act.c (init_objc_symtab, init_module_descriptor,
1490         build_shared_structure_initializer): When initializing 'long'
1491         fields, ensure that the initializer value is also 'long'.
1493 2004-09-24  Zack Weinberg  <zack@codesourcery.com>
1495         * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
1496         throughout.
1497         (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
1498         (build_selector_translation_table): Use %J in diagnostic
1499         instead of diddling input_line.  Fix spelling.
1501 2004-09-21  Ziemowit Laski  <zlaski@apple.com>
1503         * objc-act.c (objc_fold_objc_type_ref): New function.
1504         * objc-act.h (objc_fold_objc_type_ref): New prototype.
1506 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1508         * objc-act.c (objc_start_function, really_start_method,
1509         objc_get_parm_info, start_method_def): Update to new arg_info
1510         structures.
1512 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
1514         * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
1515         objc/objc-act.h.
1516         (objc/objc-act.o): Depend on $(HASHTAB_H).
1517         * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
1518         objcp-decl.h instead of c-tree.h.
1519         (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
1520         error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
1521         build_protocol_template): Adjust prototypes.
1522         (build_module_initializer_routine, start_class, continue_class,
1523         finish_class, start_method_def, objc_start_function, start_protocol,
1524         build_method_decl, objc_add_method, add_instance_variable,
1525         build_ivar_reference, is_ivar, is_private, get_super_receiver,
1526         build_selector_table_decl, objc_push_parm, objc_get_parm_info,
1527         gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
1528         create_field_decl): New prototypes.
1529         (objc_expand_function_end, comp_method_with_proto, objc_expr_last,
1530         gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
1531         define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
1532         (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
1533         (CLASS_TYPEDEF_NAME): New.
1534         (TAG_EXECCLASS): Change from a global variable to a #define.
1535         (TAG_RETURN_STRUCT): Delete.
1536         (TAG_GNUINIT): New, holds '__objc_gnu_init' name.
1537         (objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
1538         (string_descriptor): New struct.
1539         (string_htab): New hash table.
1540         (string_hash, string_eq): New prototypes.
1541         (generate_struct_by_value_array): Call create_field_decl() instead of
1542         create_builtin_decl().
1543         (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
1544         In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
1545         (objc_finish_file): In ObjC++, call instantiate_pending_templates()
1546         and cp_finish_file().
1547         (define_decl, get_static_reference, get_protocol_reference,
1548         create_builtin_decl): Remove functions.
1549         (objc_start_class_interface, objc_start_category_interface,
1550         objc_start_protocol, objc_continue_interface, objc_finish_interface,
1551         objc_start_class_implementation, objc_start_category_implementation,
1552         objc_continue_implementation, objc_finish_implementation,
1553         objc_set_visibility, objc_set_method_type,
1554         objc_build_method_signature, objc_add_method_declaration,
1555         objc_start_method_definition, objc_add_instance_variable,
1556         objc_get_protocol_qualified_type, create_field_decl,
1557         start_var_decl, finish_var_decl): New functions.
1558         (setup_string_decl): Simplify since it is only called once.
1559         (synth_module_prologue): Call build_class_template(); predefine 'id'
1560         and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
1561         hooks for duration of function; fix GNU runtime messenger signatures
1562         to correspond to reality; forward-declare '__objc_exec_class' for the
1563         GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
1564         'extern "C" { ... }' wrappers around synthesized declarations; call
1565         build_protocol_template() and build_category_template().
1566         (string_hash, string_eq): New functions.
1567         (objc_build_string_object): Check metaclass correctness only once;
1568         store string literals in hash table.
1569         (objc_build_constructor): Do not convert initializer elements;
1570         adjust for ObjC++ impedance mismatch.
1571         (build_objc_symtab_template): Call create_field_decl() instead of
1572         create_builtin_decl().
1573         (init_objc_symtab): Add missing conversion to initializer element.
1574         (build_metadata_decl): Call start_var_decl() instead of define_decl().
1575         (generate_objc_symtab_decl): Do not call build_category_template();
1576         call start_var_decl() and finish_var_decl() instead of start_decl()
1577         and finish_decl().
1578         (build_module_descriptor): Call create_field_decl() instead of
1579         grokfield(); call start_var_decl() and finish_var_decl() instead of
1580         start_decl() and finish_decl(); always mark module descriptor as
1581         used; move GNU runtime-specific functionality to
1582         build_module_initializer_routine().
1583         (build_module_initializer_routine): New function, broken off of
1584         build_module_descriptor().
1585         (objc_static_init_needed_p, objc_generate_static_init_call): New
1586         functions.
1587         (generate_static_references, generate_strings,
1588         build_selector_translation_table, generate_descriptor_table,
1589         generate_ivars_list, generate_dispatch_table, generate_category): Call
1590         start_var_decl() and finish_var_decl() instead of start_decl() and
1591         finish_decl(); build a type directly instead of via groktypename().
1592         (build_selector_reference_decl, build_selector_table_decl,
1593         build_class_reference_decl, build_protocol_reference,
1594         generate_objc_image_info): Call start_var_decl() instead of
1595         build_decl().
1596         (build_selector_reference): For GNU runtime, do not call
1597         build_selector_reference_decl().
1598         (build_selector, build_typed_selector_reference): Always convert
1599         result to the selector type.
1600         (add_objc_string): Cast return value to 'char *'.
1601         (build_method_prototype_template, build_selector_template,
1602         build_method_template): Use actual selector type for fields
1603         pointing to selectors.
1604         (finish_objc): For GNU runtime, call
1605         build_module_initializer_routine() after build_module_descriptor().
1606         (generate_protocol_list, generate_shared_structures): Call
1607         start_var_decl() and finish_var_decl() instead of start_decl() and
1608         finish_decl(); build a type directly instead of via
1609         groktypename().
1610         (synth_id_with_class_suffix): Return a string.
1611         (get_arg_type_list): For instance methods, use the instance type for
1612         'self'; do not call groktypename_in_parm_context().
1613         (build_objc_string_decl): Squash redeclaration errors in ObjC++.
1614         (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
1615         handle RECORD_TYPEs in ObjC as well as ObjC++.
1616         (objc_is_id): New function.
1617         (objc_is_object_ptr): Return the canonical type node.
1618         (objc_get_class_ivars): Simplify using get_class_ivars().
1619         (get_class_ivars): Remove second parameter; create a fresh copy
1620         of the ivar list for each call; do not check for existence of
1621         super class.
1622         (objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
1623         (objc_init_exceptions): When using SJLJ-style exceptions, require
1624         the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
1625         exceptions.
1626         (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
1627         objc_object_type instead of objc_id_type.
1628         (objc_begin_catch_clause): Convert the incoming PARM_DECL into
1629         a VAR_DECL before placing it in the appropriate scope; do not
1630         call define_decl(); adjust call to c_begin_compound_stmt();
1631         use objc_object_type instead of objc_id_type.
1632         (build_next_objc_exception_stuff): Call create_field_decl() instead
1633         of create_builtin_decl(); construct type directly instead of calling
1634         groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
1635         (build_private_template): Adjust call to get_class_ivars(); build
1636         a type directly instead of via groktypename().
1637         (build_protocol_template, build_method_prototype_list_template,
1638         build_method_prototype_template, build_category_template,
1639         build_selector_template, build_class_template, build_super_template,
1640         build_ivar_template, build_ivar_list_template,
1641         build_method_list_template, build_method_template):
1642         Call create_field_decl() instead of grokfield().
1643         (objc_method_parm_type): Do not call groktypename().
1644         (generate_descriptor_table): Call start_var_decl() and
1645         finish_var_decl() instead of start_decl() and finish_decl().
1646         (generate_method_descriptors, build_protocol_initializer,
1647         generate_dispatch_tables, build_category_initializer,
1648         build_shared_structure_initializer): Do not call groktypename().
1649         (generate_protocols): Call start_var_decl() and finish_var_decl()
1650         instead of start_decl() and finish_decl(); do not call groktypename().
1651         (error_with_ivar): Remove last parameter.
1652         (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
1653         to CLASS_IVARS lists; adjust calls to error_with_ivar().
1654         (generate_ivar_lists): Convert one of the initializer elements; do
1655         not call groktypename().
1656         (get_arg_type_list, start_method_def, gen_method_def): Account for
1657         new representation of variable arguments and '...' in Objective-C
1658         methods; add Objective-C++ impedance matching code.
1659         (is_objc_type_qualifier): Remove function.
1660         (adjust_type_for_id_default): Simplify; there is no longer a need to
1661         wade through declspecs.
1662         (lookup_interface, start_class, continue_class,
1663         finish_class, start_method_def, start_protocol, build_method_decl,
1664         objc_add_method, add_instance_variable, build_ivar_reference,
1665         is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
1666         Make into static functions.
1667         (receiver_is_class_object): Use new IS_CLASS() macro.
1668         (objc_build_message_expr): Tweak ObjC++ message argument handling;
1669         call objc_finish_message_expr() instead of finish_message_expr().
1670         (finish_message_expr): Rename to objc_finish_message_expr(); use
1671         OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
1672         call gen_type_name() instead of gen_declaration(); call objc_is_id()
1673         instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
1674         calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
1675         (build_objc_method_call, warn_with_method): Do not call groktypename().
1676         (build_ivar_reference): Call convert() instead of clobbering in a
1677         type.
1678         (hash_init): Initialize string_htab hash table.
1679         (add_instance_variable): Simplify parameter list; do not call grokfield();
1680         do not populate CLASS_IVARS list.
1681         (start_class): Check for the existence of super class, if one was specified.
1682         (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
1683         call build_class_template(); adjust call to get_class_ivars(); call
1684         build_decl(), pushdecl() and finish_decl() instead of define_decl().
1685         (finish_class): Call build_decl(), pushdecl() and finish_decl() instead
1686         of define_decl().
1687         (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
1688         (start_protocol): Do not call build_protocol_template(); use
1689         PROTOCOL_BINFO_ELTS for the tree vector size.
1690         (encode_type_qualifiers): Do not handle the 'const' qualifier here.
1691         (encode_pointer): Encode 'const char *' as 'r*', for backwards
1692         compatibility.
1693         (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
1694         (encode_type): Handle the 'const' qualifier here.
1695         (objc_parmlist): New global variable, sued by objc_push_parm and
1696         objc_get_parm_info().
1697         (objc_push_parm, objc_get_parm_info): New functions.
1698         (objc_expr_last): Remove function.
1699         (synth_self_and_ucmd_args): For instance methods, use the instance
1700         type for 'self'; call objc_push_parm() instead of push_parm_decl().
1701         (start_method_def): Do not call push_scope(), declare_parm_level(),
1702         pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
1703         just use objc_push_parm() and objc_get_parm_info().
1704         (comp_method_with_proto): Remove function.
1705         (objc_types_are_equivalent): Strip away indirections before comparing
1706         underlying types.
1707         (comp_proto_with_proto): Do not call groktypename(); types are no
1708         longer in raw declspec format.
1709         (objc_start_function): New function.
1710         (really_start_method): Call comp_proto_with_proto() instead of
1711         comp_method_with_proto(); call objc_start_function() instead of
1712         hand-crafting a function declarator.
1713         (continue_method_def, objc_expand_function_end): Remove functions.
1714         (get_super_receiver): Call objc_get_current_scope() instead of
1715         get_current_scope(); reference 'super_class' field (instead of
1716         'class').
1717         (finish_method_def): Rename to objc_finish_method_definition() and
1718         add a function decl parameter; move method encoding call from
1719         objc_expand_function_end().
1720         (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
1721         gen_declaration_1): Remove functions.
1722         (tmpbuf, RAW_DECLSPEC): Remove.
1723         (gen_declaration): Remove second parameter; simplify to deal
1724         with TYPE_P nodes instead of raw declspecs.
1725         (gen_type_name, gen_type_name_0): New functions.
1726         (gen_method_decl): Remove second parameter; call gen_type_name()
1727         instead of gen_declaration_1().
1728         (dump_interface): Adjust calls to gen_declaration() and
1729         gen_method_decl(); do not allocate a separate string buffer.
1730         (init_objc): Allocate a larger string buffer to accommodate
1731         dump_interface(); adjust call to build_module_descriptor();
1732         add call to build_module_initializer_routine() for the GNU
1733         runtime.
1734         (generate_classref_translation_entry): Do not call start_decl(); call
1735         finish_var_decl() instead of finish_decl(); call convert() instead of
1736         build_c_cast().
1737         * objc-act.h (CLASS_OWN_IVARS): Remove accessor.
1738         (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
1739         gone.
1740         (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
1741         (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
1742         (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
1743         objc_object_type and objc_object_name, respectively.
1744         (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
1745         objc_class_name): New.
1746         (IS_CLASS): New macro.
1747         (IS_ID, IS_SUPER): Robustify.
1748         (OCTI_EXECCLASS_DECL, execclass_decl): New.
1749         (finish_file, start_class, continue_class, finish_class,
1750         start_method_def, continue_method_def, finish_method_def,
1751         start_protocol, finish_protocol, objc_build_throw_stmt,
1752         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
1753         objc_build_synchronized_epilogue, objc_build_try_prologue,
1754         objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
1755         objc_build_finally_prologue, objc_build_finally_epilogue,
1756         is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
1757         get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
1758         get_class_reference, get_static_reference, get_object_reference,
1759         build_message_expr, finish_message_expr, build_selector_expr,
1760         build_ivar_reference, build_keyword_decl, build_method_decl,
1761         build_protocol_expr, build_objc_string_object, objc_declare_alias,
1762         objc_declare_class, objc_declare_protocols, objc_comptypes,
1763         objc_check_decl, build_encode_expr): Remove prototypes.
1764         (imp_count, cat_count): Make GGC-aware.
1765         (OBJC_SET_TYPE_NAME): New macro.
1767 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
1769         * config-lang.in: Update copyright notice.
1770         (lang_requires): Indicate that ObjC requires C to be built first.
1772 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
1774         * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
1775         TYPE_NAME.
1776         (build_objc_string_object): Rename to objc_build_string_object().
1777         (get_class_reference): Rename to objc_get_class_reference().
1778         (get_class_ivars_from_name): Rename to objc_get_class_ivars().
1779         (next_sjlj_build_catch_list, get_super_receiver): Call
1780         objc_get_class_reference() instead of get_class_reference().
1781         (build_keyword_decl): Rename to objc_build_keyword_decl().
1782         (build_message_expr): Rename to objc_build_message_expr().
1783         (build_protocol_expr): Rename to objc_build_protocol_expr().
1784         (build_selector_expr): Rename to objc_build_selector_expr().
1785         (build_encode_expr): Rename to objc_build_encode_expr().
1786         * objc-act.h (get_class_ivars_from_name): Rename prototype to
1787         objc_get_class_ivars().
1788         (get_class_reference): Rename prototype to objc_get_class_reference().
1789         (build_message_expr): Rename prototype to objc_build_message_expr().
1790         (build_selector_expr): Rename prototype to objc_build_selector_expr().
1791         (build_keyword_decl): Rename prototype to objc_build_keyword_decl().
1792         (build_protocol_expr): Rename prototype to objc_build_prototype_expr().
1793         (build_objc_string_object): Rename prototype to
1794         objc_build_string_object().
1796 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
1798         * objc-act.c (lookup_interface): Make function 'static' and add a
1799         local prototype.
1800         (objc_check_decl, get_class_reference, objc_declare_alias,
1801         objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
1802         instead of is_class_name().
1803         (get_super_receiver, objc_clear_super_receiver): Call
1804         objc_get_current_scope() instead of get_current_scope().
1805         (is_class_name): Rename to objc_is_class_name.
1806         (lookup_objc_ivar): Rename to objc_lookup_ivar.
1808 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
1810         * objc-act.c (objc_is_reserved_word): New function.
1812 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
1814         * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
1815         $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
1816         (objc/objc-parse.o): Do not depend on gtype-objc.h.
1817         * objc-act.c: Do not include gtype-objc.h.
1818         (finish_file): Rename to objc_finish_file().
1819         * objc-act.h (finish_file): Update copyright notice; remove prototype.
1820         * objc-lang.c: Update copyright notice; include diagnostic.h,
1821         c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
1822         toplev.h.
1823         (finish_file): New hook routine.
1824         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
1825         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
1826         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
1827         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
1828         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
1829         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
1830         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
1831         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
1832         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
1833         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1834         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
1835         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1836         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1837         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
1838         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
1839         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
1840         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
1841         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
1842         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
1843         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
1844         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
1845         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
1846         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
1847         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
1848         Move to c-objc-common.h.
1851 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
1853 Copying and distribution of this file, with or without modification,
1854 are permitted in any medium without royalty provided the copyright
1855 notice and this notice are preserved.