OSDN Git Service

In gcc/:
[pf3gnuchains/gcc-fork.git] / gcc / objc / ChangeLog
1 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
2
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.
18
19         Merge from 'apple/trunk' branch on FSF servers.
20
21         2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
22
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>
30
31         Merge from 'apple/trunk' branch on FSF servers.
32
33         2005-10-17  Fariborz Jahanian <fjahanian@apple.com>
34
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>
40
41         * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
42
43 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
44
45         merge from FSF 'apple/trunk' branch.
46         2006-01-30  Fariborz Jahanian <fjahanian@apple.com>
47
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>
61
62         Merge from 'apple/trunk' branch on FSF servers.
63
64         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
65
66         Radar 4278236
67         * objc-act.c (objc_declare_class): Pick the right
68         type tree.
69
70 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
71
72         Merge from 'apple/trunk' branch on FSF servers.
73
74         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
75
76         Radar 4281748
77         * objc-act.c (objc_check_global_decl): New
78
79 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
80
81         * objc-act.c (objc_is_reserved_word): Removed.
82
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.
90
91 2010-09-28  Richard Henderson  <rth@redhat.com>
92
93         * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
94
95 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
96
97         * objc-act.c (objc_start_class_interface): Handle and ignore attributes.
98         (objc_start_category_interface): Likewise.
99         (objc_start_protocol): Likewise.
100
101 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
102
103         Merge from 'apple/trunk' branch on FSF servers.
104
105         2005-08-23  Stuart Hastings <stuart@apple.com>
106                     Ziemowit Laski  <zlaski@apple.com>
107
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.   
113
114 2010-09-28  Nicola Pero  <nicola@nicola.brainstorm.co.uk>
115
116         * objc-act.c (encode_type): Fixed encoding enums with the next
117         runtime.
118
119 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
120
121         Merge from 'apple/trunk' branch on FSF servers.
122
123         2005-07-18  Ziemowit Laski  <zlaski@apple.com>
124
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>
131
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'.
136
137 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
138
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>
168
169         Merge from 'apple/trunk' branch on FSF servers.  I modified the
170         changes to be used only when compiling for the NeXT runtime.
171
172         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
173
174         Radar 4301047
175
176         * objc-act.c (encode_type): Remove the hack.
177         
178         2005-07-20  Ziemowit Laski  <zlaski@apple.com>
179
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.
184
185 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
186
187         Merge from 'apple/trunk' branch on FSF servers.
188
189         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
190
191         Radar 4229905
192         * objc-act.c (objc_have_common_types): New function.
193         
194         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
195
196         Radar 4154928
197         * objc-act.c (objc_common_type): New function.
198         
199 2010-09-27  Richard Guenther  <rguenther@suse.de>
200
201         * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
202         (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
203
204 2010-09-26  Nicola Pero  <nicola.pero@meta-innovation.com>
205
206         * objc-act.c: Removed historical, obsolete comment at the top of
207         the file.
208
209 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
210
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.
215
216 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
217
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>
224
225         Merge from 'apple/trunk' branch on FSF servers.
226
227         2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
228
229         Radar 4457381
230         * objc/objc-act.c (objc_finish_message_expr): Look for message in
231         @class's protocol list.
232
233         2006-02-07  Fariborz Jahanian <fjahanian@apple.com>
234
235         Radar 4219590
236         * objc/objc-act.c (objc_start_method_definition): Initialize
237         break/continue labels.
238
239         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
240
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.
246
247         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
248
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>
255
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.
259
260 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
261
262         * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
263
264 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
265
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.
302
303 2010-07-03  Nathan Froyd  <froydnj@codesourcery.com>
304
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.
327
328 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
329
330         * objc-act.c: Do not include except.h.
331
332 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
333
334         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
335         allocation.
336
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.
344
345 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
346
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/.
350
351 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
352
353         * objc-act.c (build_next_objc_exception_stuff): Give setjmp a
354         varargs type instead of a zero-argument type.
355
356 2010-05-30  Nathan Froyd  <froydnj@codesourcery.com>
357
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.
363
364 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
365
366         * objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
367         * Make-lang.in (objc/objc-act.o): Update dependencies.
368
369 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
370
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.
376
377 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
378
379         * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
380         mismatch code for VECs.
381
382 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
383
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.
404
405 2010-04-30  Iain Sandoe  <iains@gcc.gnu.org>
406
407         PR objc++/32052
408         * objc-act.c (encode_aggregate_within): Encode structure tags
409         with template args for ObjC++.
410
411 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
412
413         * objc-act.c: Do not include varray.h.
414
415 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
416
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.
421
422 2010-04-07  Iain Sandoe <iains@gcc.gnu.org>
423
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.
427
428 2010-04-07  Iain Sandoe <iains@gcc.gnu.org>
429
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++.
433
434 2010-02-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
435             Mike Stump  <mikestump@comcast.net>
436
437         PR objc/43061
438         * objc-act.c (finish_var_decl): Set the generated symbols as "used".
439
440 2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
441
442         * objc-act.c (objc_substitute_decl, build_ivar_reference,
443         get_super_receiver): Update build_indirect_ref calls.
444
445 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
446
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.
452
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.
456
457 2009-09-14  Jan Hubicka  <jh@suse.cz>
458
459         * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
460
461 2009-09-14  Richard Henderson  <rth@redhat.com>
462
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.
466
467 2009-09-13  Richard Guenther  <rguenther@suse.de>
468         Rafael Avila de Espindola  <espindola@google.com>
469
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.
480
481 2009-09-03  Diego Novillo  <dnovillo@google.com>
482
483         * objc-lang.c (lang_hooks): Remove const qualifier.
484
485 2009-08-20  Richard Guenther  <rguenther@suse.de>
486
487         * objc-act.c: Include c-lang.h
488         * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
489
490 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
491             Manuel López-Ibáñez  <manu@gcc.gnu.org>
492
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>
499
500         * Make-lang.in (objc.install-plugin): New target for
501         installing plugin headers.
502
503 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
504
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>
509
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>
514
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>
519
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>
525
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.
531
532 2009-06-15  Ian Lance Taylor  <iant@google.com>
533
534         * objc-act.c (objc_start_function): Don't set
535         label_context_stack_se or label_context_stack_vm.
536
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>
566
567         * objc-act.c (objc_gimplify_expr): Change return type to int.
568         * objc-act.h: Update declaration.
569
570 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
571
572         * objc-act.c (objc_init): Skip print_struct_values during
573         -fcompare-debug-second.
574
575 2009-06-03  Ian Lance Taylor  <iant@google.com>
576
577         * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
578         $(SYSTEM_H).
579
580 2009-05-27  Ian Lance Taylor  <iant@google.com>
581
582         * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
583         $(LINKER).
584         (cc1obj$(exeext)): Likewise.
585
586 2009-05-26  Ian Lance Taylor  <iant@google.com>
587
588         * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
589         (cc1obj$(exeext)): Likewise.
590
591 2009-05-20  Ian Lance Taylor  <iant@google.com>
592
593         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
594         than NULL_TREE to build_special_member_call.
595
596 2009-05-10  Ian Lance Taylor  <iant@google.com>
597
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.
615
616 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
617
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.
637
638 2009-04-27  Ian Lance Taylor  <iant@google.com>
639
640         * objc-act.c (objc_gimplify_expr): Add casts to enum type.
641
642 2009-04-24  Ian Lance Taylor  <iant@google.com>
643
644         * objc-act.c (get_super_receiver): Update calls to
645         build_modify_expr to pass new argument.
646
647 2009-04-21  Taras Glek <tglek@mozilla.com>
648
649         * objc-act.c: Update GTY annotations to new syntax
650         * objc-act.h: Likewise
651
652 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
653
654         * ChangeLog: Add copyright and license notices.
655
656 2009-04-20  Ian Lance Taylor  <iant@google.com>
657
658         * objc-act.c (objc_rewrite_function_call): Change parameter from
659         params to first_param.  Change all callers.
660
661 2009-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
662
663         PR bootstrap/39583
664         * objc-act.c (in_late_binary_op): Define for Objective-C++.
665
666 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
667
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.
675
676 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
677
678         PR bootstrap/38262
679         * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
680         remove GMPLIBS.
681
682 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
683
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.
707
708 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
709
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.
714
715 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
716
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.
721
722 2008-09-17  Jan Hubicka  <jh@suse.cz>
723
724         PR c++/18071
725         * objc/objc-act.c (objc_finish_method_definition): Do not set
726         DECL_INLINE.
727
728 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
729
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.
736
737 2008-07-28  Richard Guenther  <rguenther@suse.de>
738
739         Merge from gimple-tuples-branch.
740
741         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
742
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.
747
748         2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
749
750         * objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
751         * objc-act.h (objc_gimplify_expr): Change prototype accordingly.
752
753 2008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
754
755         * objc-act.c: Fix comment typos.
756
757 2008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
758
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.
766
767 2008-07-14  Jason Merrill  <jason@redhat.com>
768
769         PR objc++/36723
770         * objc-act.c (objc_build_constructor): Update C++ tweak.
771
772 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
773
774         * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
775         of DECL_IN_SYSTEM_HEADER.
776
777 2008-07-11  Ian Lance Taylor  <iant@google.com>
778
779         * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
780         etc., not just when OBJCPLUS is defined.
781
782 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
783
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.
788
789 2008-05-12  Tomas Bily  <tbily@suse.cz>
790
791         * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
792         Use CONVERT_EXPR_P.
793
794 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
795
796         * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
797
798 2008-04-03  Tom Tromey  <tromey@redhat.com>
799
800         * Make-lang.in (objc_OBJS): New variable.
801
802 2008-03-27  Tom Tromey  <tromey@redhat.com>
803
804         * Make-lang.in: Revert automatic dependency patch.
805
806 2008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
807
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.
813
814 2008-03-25  Andrew Pinski  <pinskia@gmail.com>
815
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.
819
820 2008-03-25  Tom Tromey  <tromey@redhat.com>
821
822         * Make-lang.in (objc_OBJS): New variable.
823         (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
824
825 2008-03-21  Andreas Tobler  <a.tobler@schweiz.org>
826
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.
832
833 2008-02-26  Tom Tromey  <tromey@redhat.com>
834
835         * objc-act.c (objc_init): Remove old location code.
836
837 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
838
839         PR other/35107
840         * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
841
842 2007-07-30  Nick Clifton  <nickc@redhat.com>
843
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.
849
850 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
851
852         * objc-act.c (objc_get_callee_fndecl): Constify.
853         * objc-act.h (objc_get_callee_fndecl): Likewise.
854
855 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
856
857         * objc-act.c (volatilized_hash, volatilized_eq, string_hash,
858         string_eq): Constify.
859
860 2007-04-04  Stuart Hastings  <stuart@apple.com>
861
862         PR 31281
863         * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
864
865 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
866
867         * Make-lang.in: Add dummy lang.install-pdf target.
868
869 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
870
871         * objc/objc-act.c: Fix comment typos.
872
873 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
874             Brooks Moses  <brooks.moses@codesourcery.com>
875             Lee Millward  <lee.millward@codesourcery.com>
876
877         * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
878         (objc_get_callee_fndecl): Likewise.
879
880 2007-01-23  Andrew Pinski  <pinskia@gmail.com>
881
882         PR objc/27438
883         * objc-act.c (objc_add_static_instance): Mark the decl as
884         TREE_USED.
885
886 2007-01-20  Andrew Pinski  <pinskia@gmail.com>
887
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.
893
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>
901
902         * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
903         content where we called cp_finish_file.
904
905 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
906
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.
913
914 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
915
916         * Make-lang.in: Added empty "objc.pdf" target.
917
918 2006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>
919
920         PR objc/29195
921         * objc-act.c (objc_push_parm): If we change the type of the
922         decl, relayout the decl.
923
924 2006-09-19  Eric Christopher  <echristo@apple.com>
925
926         * objc-act.c (JBLEN): Rename to OBJC_JBLEN,
927         default to something innocuous.
928         (build_next_objc_exception_stuff): Rename JBLEN.
929
930 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
931
932         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
933
934 2006-07-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
935
936         PR obj-c++/28434
937         * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
938
939 2006-06-06  Mike Stump  <mrs@apple.com>
940
941         * objc-act.c: Remove prototype for objc_build_volatilized_type.
942
943 2006-05-24  Mike Stump  <mrs@apple.com>
944
945         * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
946
947 2006-05-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
948
949         PR objc/27240
950         * objc-act.c (objc_is_public): Return early on invalid type.
951
952 2006-03-02 Fariborz Jahanian <fjahanian@apple.com>
953
954         * objc-act.c (init_module_descriptor): Remove file name from
955         module descriptor.
956         (gen_type_name_0): Fix ICE when issuing warning.
957
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
963
964 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
965
966         PR objc/25360
967         * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed
968         by the inner type.
969
970 2005-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
971
972         PR objc/25348
973         * objc-act.c (encode_array): Handle arrays to zero sized types.
974
975 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
976
977         * Make-lang.in (objc.all.build, objc.install-normal): Remove.
978
979 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
980
981         * Make-lang.in: Remove all dependencies on s-gtype.
982
983 2005-12-02  Richard Guenther  <rguenther@suse.de>
984
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.
990
991 2005-10-20  Geoffrey Keating  <geoffk@apple.com>
992
993         * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
994         on objc_msgSend and like builtin functions.
995
996 2005-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
997
998         * objc-act.c (objc_build_component_ref): Adjust call to
999         finish_class_member_access_expr due to a changed prototype.
1000
1001 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
1002
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.
1008
1009 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
1010
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.
1014
1015 2005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
1016
1017         part of PR objc/21992
1018         * objc-act.c (handle_class_ref): The ref decl is always referenced.
1019
1020 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
1021
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.
1025
1026 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
1027
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.
1039
1040 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
1041
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().
1048
1049 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
1050
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.
1054
1055 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
1056
1057         * Make-lang.in (cc1plus-checksum.c): Use
1058         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1059
1060 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
1061
1062         * objc-act.c: Use %q to quote in diagnostics.
1063
1064 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
1065
1066         * objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
1067         quoting.
1068
1069 2005-06-30  Ziemowit Laski  <zlaski@apple.com>
1070
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().
1074
1075 2005-06-29  Ziemowit Laski  <zlaski@apple.com>
1076
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.
1086
1087 2005-06-28  Paul Brook  <paul@codesourcery.com>
1088
1089         * objc-act.c (objc_init_exceptions): Call
1090         default_init_unwind_resume_libfunc.
1091
1092 2005-06-27  Ziemowit Laski  <zlaski@apple.com>
1093
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.
1098
1099 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1100
1101         * all files: Update FSF address in copyright headers.
1102
1103 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
1104
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.
1109
1110 2005-05-25  Mike Stump  <mrs@mrs.kithrup.com>
1111
1112         * objc-act.c (volatilized_hash): Avoid warnings on 64-bit
1113         machines.
1114
1115 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
1116
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.
1157
1158 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
1159
1160         * Make-lang.in (cc1obj-dummy): New.
1161         (cc1obj-checksum.c): New.
1162         (cc1obj-checksum.o): New.
1163         (cc1obj): Add cc1obj-checksum.o.
1164
1165 2005-05-18  Mike Stump  <mrs@apple.com>
1166
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.
1170
1171 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
1172             Mike Stump  <mrs@apple.com>
1173
1174         Yet more Objective-C++...
1175
1176         * objc-act.c (objc_finish_try_stmt): Add return value.
1177         (objc_build_synchronized): Likewise.
1178
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.
1207
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.
1279
1280 2005-04-23  DJ Delorie  <dj@redhat.com>
1281
1282         * objc-act.c: Adjust warning() callers.
1283
1284 2005-04-21  Roger Sayle  <roger@eyesopen.com>
1285
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.
1295
1296 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
1297
1298         PR c/12913
1299         * objc-act.c (objc_start_function): Create stack level for context
1300         of identifiers with variably modified type.
1301
1302 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
1303
1304         PR c/772
1305         PR c/17913
1306         * objc-act.c (objc_start_function): Push context on
1307         label_context_stack.
1308
1309 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
1310
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.
1314
1315 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
1316
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.
1322
1323 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
1324
1325         * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
1326         copyright.
1327
1328 2005-01-27  Matt Austern  <austern@apple.com>
1329
1330         * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
1331         calling instantiate_pending_templates.
1332
1333 2005-01-26  Alexander Malmberg  <alexander@malmberg.org>
1334
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.
1339
1340 2005-01-25  Alexander Malmberg  <alexander@malmberg.org>
1341
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.
1346
1347 2005-01-16  Ziemowit Laski  <zlaski@apple.com>
1348
1349         * objc-act.c (objc_push_parm): Call c_type_promotes_to()
1350         via a lang-hook.
1351
1352 2005-01-15  Ziemowit Laski  <zlaski@apple.com>
1353
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.
1364
1365 2005-01-14  Mike Stump  <mrs@apple.com>
1366
1367         * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
1368         that -fobjc-exceptions is accepted.
1369
1370 2004-12-30  Ziemowit Laski  <zlaski@apple.com>
1371
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.
1376
1377 2004-12-15  Ziemowit Laski  <zlaski@apple.com>
1378
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.
1419
1420 2004-11-29  Joseph Myers  <joseph@codesourcery.com>
1421
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.
1426
1427 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
1428
1429         PR objc/18406
1430         * obj-act.c (encode_type): 96bits doubles are encoded the
1431         same way as 64bit and 128bit doubles are.
1432
1433 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
1434
1435         * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
1436
1437 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
1438
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.
1444
1445 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
1446
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.
1452
1453 2004-10-26  Ziemowit Laski  <zlaski@apple.com>
1454
1455         * objc-act.c (finish_class): Do not synthesize bogus
1456         'extern objc_object *_Foo;' declarations for @interface Foo.
1457
1458 2004-10-25  Ziemowit Laski  <zlaski@apple.com>
1459             David Ayers  <d.ayers@inode.at>
1460
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>'.
1476
1477 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
1478
1479         PR objc/17923
1480         * objc-act.c (objc_build_string_object): Create a CONST_DECL
1481         for the NeXT runtime case.
1482
1483 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
1484
1485         * objc-act.c: Fix comment typos.
1486
1487 2004-09-24  Ziemowit Laski  <zlaski@apple.com>
1488
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'.
1492
1493 2004-09-24  Zack Weinberg  <zack@codesourcery.com>
1494
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.
1500
1501 2004-09-21  Ziemowit Laski  <zlaski@apple.com>
1502
1503         * objc-act.c (objc_fold_objc_type_ref): New function.
1504         * objc-act.h (objc_fold_objc_type_ref): New prototype.
1505
1506 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1507
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.
1511
1512 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
1513
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.
1766
1767 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
1768
1769         * config-lang.in: Update copyright notice.
1770         (lang_requires): Indicate that ObjC requires C to be built first.
1771
1772 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
1773
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().
1795
1796 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
1797
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.
1807
1808 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
1809
1810         * objc-act.c (objc_is_reserved_word): New function.
1811
1812 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
1813
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.
1849
1850 \f
1851 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
1852
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.