OSDN Git Service

fix PR23716
[pf3gnuchains/gcc-fork.git] / gcc / objc / ChangeLog
1 2010-04-07  Iain Sandoe <iains@gcc.gnu.org>
2
3         PR objc++/23716
4         * objc-act.c (build_module_initializer_routine): Make the argument
5         to objc_start_function NULL_TREE when compiling ObjC++.
6
7 2010-02-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
8             Mike Stump  <mikestump@comcast.net>
9
10         PR objc/43061
11         * objc-act.c (finish_var_decl): Set the generated symbols as "used".
12
13 2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
14
15         * objc-act.c (objc_substitute_decl, build_ivar_reference,
16         get_super_receiver): Update build_indirect_ref calls.
17
18 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
19
20         * objc-act.c (generate_shared_structures): Remove unused sc_spec and
21         decl_specs variables.
22         (objc_build_message_expr): Remove unused loc variable.
23         (objc_finish_message_expr): Remove unused saved_rtype variable.
24         (encode_field_decl): Remove unused type variable.
25
26         PR obj-c++/42156
27         * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
28         type variants that don't have it initialized yet.
29
30 2009-09-14  Jan Hubicka  <jh@suse.cz>
31
32         * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
33
34 2009-09-14  Richard Henderson  <rth@redhat.com>
35
36         * objc-act.c (objc_init_exceptions): Don't call
37         default_init_unwind_resume_libfunc.
38         (objc_build_exc_ptr): Use __builtin_eh_pointer.
39
40 2009-09-13  Richard Guenther  <rguenther@suse.de>
41         Rafael Avila de Espindola  <espindola@google.com>
42
43         * objc-act.c (objc_eh_runtime_type): Export.
44         (objc_init_exceptions): Remove.  Move warning code ...
45         (objc_begin_try_stmt): ... here
46         (objc_build_throw_stmt): ... and here.
47         (objc_eh_personality_decl): New.
48         (objc_eh_personality): New function.
49         * objc-act.h (objc_eh_runtime_type): Declare.
50         (objc_eh_personality): Likewise.
51         * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
52         (LANG_HOOKS_EH_PERSONALITY): Likewise.
53
54 2009-09-03  Diego Novillo  <dnovillo@google.com>
55
56         * objc-lang.c (lang_hooks): Remove const qualifier.
57
58 2009-08-20  Richard Guenther  <rguenther@suse.de>
59
60         * objc-act.c: Include c-lang.h
61         * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
62
63 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
64             Manuel López-Ibáñez  <manu@gcc.gnu.org>
65
66         PR 40435 
67         * objc-act.c: Add location argument to all calls to
68         build_fold_addr_expr.
69         
70 2009-07-14  Taras Glek  <tglek@mozilla.com>
71             Rafael Espindola  <espindola@google.com>
72
73         * Make-lang.in (objc.install-plugin): New target for
74         installing plugin headers.
75
76 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
77
78         * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
79         EXPR_LOCATION.
80         
81 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
82
83         * objc-act.c: Replace %J by an explicit location. Update all
84         calls.
85         
86 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
87
88         * objc-act.c: Replace %H by an explicit location. Update all
89         calls.
90         
91 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
92
93         PR objc/28050
94         * objc-act.c (objc_build_message_args): Return if ARGS is the
95         error_mark_node.
96         
97 2009-06-19  Ian Lance Taylor  <iant@google.com>
98
99         * objc-act.c (objc_in_struct, objc_struct_types): Remove.
100         (objc_struct_info): New static variable.
101         (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
102         and &objc_struct_types, to start_struct.
103         (objc_finish_struct): Likewise for finish_struct.
104
105 2009-06-15  Ian Lance Taylor  <iant@google.com>
106
107         * objc-act.c (objc_start_function): Don't set
108         label_context_stack_se or label_context_stack_vm.
109
110 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
111         
112         * objc-act.c (finish_var_decl): Pass location to finish_decl.
113         (objc_get_parm_info): Same.
114         (get_super_receiver): Same.
115         * objc-act.c (objc_build_component_ref): Pass location to
116         build_compound_ref.
117         (build_module_initializer_routine): Pass location to
118         c_end_compound_stmt.
119         (objc_generate_static_init_call): Pass location to build_stmt.
120         (build_typed_selector_reference): New location argument.
121         (build_selector_reference): Same.
122         (objc_substitute_decl): Pass location to build_array_ref.
123         (next_sjlj_build_try_catch_finally): Pass location to build_stmt.
124         (objc_begin_catch_clause): Same.
125         (objc_finish_try_stmt): Same.
126         (objc_finish_catch_clause): Pass location to c_end_compound_stmt.
127         (objc_build_throw_stmt): New argument.
128         (generate_shared_structures): Pass location to build_c_cast.
129         (objc_build_message_expr): Use local location.
130         (objc_finish_message_expr): Use input_location.
131         (build_objc_method_call): New argument.
132         (objc_build_selector_expr): Same.
133         (get_super_receiver): Pass location to build_c_cast,
134         build_modify_expr, build_compound_expr.
135         * objc-act.c: Add location to all calls to start_struct, build_decl,
136         finish_struct.
137         
138 2009-06-09  Ian Lance Taylor  <iant@google.com>
139
140         * objc-act.c (objc_gimplify_expr): Change return type to int.
141         * objc-act.h: Update declaration.
142
143 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
144
145         * objc-act.c (objc_init): Skip print_struct_values during
146         -fcompare-debug-second.
147
148 2009-06-03  Ian Lance Taylor  <iant@google.com>
149
150         * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
151         $(SYSTEM_H).
152
153 2009-05-27  Ian Lance Taylor  <iant@google.com>
154
155         * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
156         $(LINKER).
157         (cc1obj$(exeext)): Likewise.
158
159 2009-05-26  Ian Lance Taylor  <iant@google.com>
160
161         * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
162         (cc1obj$(exeext)): Likewise.
163
164 2009-05-20  Ian Lance Taylor  <iant@google.com>
165
166         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
167         than NULL_TREE to build_special_member_call.
168
169 2009-05-10  Ian Lance Taylor  <iant@google.com>
170
171         * objc-act.c (objc_building_struct): New static variable.
172         (objc_in_struct, objc_struct_types): New static variables.
173         (objc_start_struct, objc_finish_struct): New static functions.
174         (generate_struct_by_value_array): Call objc_start_struct instead
175         of start_struct, and call objc_finish_struct instead of
176         finish_struct.
177         (objc_build_struct, build_objc_symtab_template): Likewise.
178         (build_module_descriptor): Likewise.
179         (build_next_objc_exception_stuff): Likewise.
180         (build_protocol_template): Likewise.
181         (build_method_prototype_list_template): Likewise.
182         (build_method_prototype_template): Likewise.
183         (build_category_template, build_selector_template): Likewise.
184         (build_class_template, build_super_template): Likewise.
185         (build_ivar_template, build_ivar_list_template): Likewise.
186         (build_method_list_template): Likewise.
187         (build_method_template): Likewise.
188
189 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
190
191         * objc-act.c: Include intl.h.
192         (objc_lookup_protocol): Use complete sentences for diagnostics
193         with %qE for identifiers and translating results of
194         gen_type_name_0 to locale character set.
195         (objc_check_decl, check_protocol_recursively,
196         lookup_and_install_protocols, objc_build_string_object,
197         objc_get_class_reference, objc_declare_alias, objc_declare_class,
198         objc_get_class_ivars, error_with_ivar, check_duplicates,
199         objc_finish_message_expr, objc_build_protocol_expr,
200         objc_build_selector_expr, build_ivar_reference, objc_add_method,
201         add_category, add_instance_variable, objc_is_public,
202         check_methods, check_methods_accessible, check_protocol,
203         start_class, finish_class, start_protocol, really_start_method,
204         get_super_receiver, objc_lookup_ivar): Use %E and %qE for
205         identifiers in diagnostics.  Translate generated text to locale
206         character set as needed.
207         (check_protocol, check_protocols): Change name parameter to type
208         tree.
209         (lang_report_error_function): Remove.
210
211 2009-04-27  Ian Lance Taylor  <iant@google.com>
212
213         * objc-act.c (objc_gimplify_expr): Add casts to enum type.
214
215 2009-04-24  Ian Lance Taylor  <iant@google.com>
216
217         * objc-act.c (get_super_receiver): Update calls to
218         build_modify_expr to pass new argument.
219
220 2009-04-21  Taras Glek <tglek@mozilla.com>
221
222         * objc-act.c: Update GTY annotations to new syntax
223         * objc-act.h: Likewise
224
225 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
226
227         * ChangeLog: Add copyright and license notices.
228
229 2009-04-20  Ian Lance Taylor  <iant@google.com>
230
231         * objc-act.c (objc_rewrite_function_call): Change parameter from
232         params to first_param.  Change all callers.
233
234 2009-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
235
236         PR bootstrap/39583
237         * objc-act.c (in_late_binary_op): Define for Objective-C++.
238
239 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
240
241         PR c/456
242         PR c/5675
243         PR c/19976
244         PR c/29116
245         PR c/31871
246         PR c/35198
247         * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
248
249 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
250
251         PR bootstrap/38262
252         * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
253         remove GMPLIBS.
254
255 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
256
257         * objc-act.c (objc_build_string_object): Pass location to
258         build_unary_op.
259         (init_def_list): Same.
260         (init_objc_symtab): Same.
261         (init_module_descriptor): Same.
262         (build_module_initializer_routine): Same.
263         (generate_static_references): Same.
264         (build_typed_selector_reference): Same.
265         (add_objc_string): Same.
266         (objc_substitute_decl): Same.
267         (objc_build_ivar_assignment): Same.
268         (objc_build_global_assignment): Same.
269         (objc_build_strong_cast_assignment): Same.
270         (generate_protocols): Same.
271         (build_protocol_initializer): Same.
272         (build_dispatch_table_initializer): Same.
273         (generate_protocol_list): Same.
274         (build_category_initializer): Same.
275         (build_shared_structure_initializer): Same.
276         (generate_shared_structures): Same.
277         (objc_build_protocol_expr): Same.
278         (build_ivar_reference): Same.
279         (get_super_receiver): Same.
280
281 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
282
283         * objc-act.c (next_sjlj_build_enter_and_setjmp): Call
284         c_common_truthvalue_conversion with location.
285         (next_sjlj_build_catch_list): Same.
286         (next_sjlj_build_try_catch_finally): Same.
287
288 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
289
290         PR objc/37460
291         * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
292         * objc-act.h (objc_get_callee_fndecl): Remove prototype.
293         * objc-act.c (objc_get_callee_fndecl): Kill.
294
295 2008-09-17  Jan Hubicka  <jh@suse.cz>
296
297         PR c++/18071
298         * objc/objc-act.c (objc_finish_method_definition): Do not set
299         DECL_INLINE.
300
301 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
302
303         * objc-act.c (build_typed_selector_reference): Pass input_location to
304         build_unary_op calls.
305         (build_selector_reference): Same, but to build_array_ref.
306         (objc_substitute_decl): Same.
307         (build_ivar_reference): Same, but to build_indirect_ref.
308         (get_super_receiver): Same.
309
310 2008-07-28  Richard Guenther  <rguenther@suse.de>
311
312         Merge from gimple-tuples-branch.
313
314         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
315
316         * Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
317         (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
318         * objc-act.h: Include gimple.h instead of tree-gimple.h.
319         * ipa-reference.c: Same.
320
321         2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
322
323         * objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
324         * objc-act.h (objc_gimplify_expr): Change prototype accordingly.
325
326 2008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
327
328         * objc-act.c: Fix comment typos.
329
330 2008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
331
332         * objc-act.c (objc_start_class_interface,
333         objc_start_category_interface, objc_start_class_implementation,
334         objc_start_category_implementation, objc_build_struct,
335         generate_static_references, build_private_template,
336         lookup_category, objc_add_method, add_category,
337         add_instance_variable, objc_is_public, conforms_to_protocol,
338         start_class, continue_class, finish_class): Avoid C++ keywords.
339
340 2008-07-14  Jason Merrill  <jason@redhat.com>
341
342         PR objc++/36723
343         * objc-act.c (objc_build_constructor): Update C++ tweak.
344
345 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
346
347         * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
348         of DECL_IN_SYSTEM_HEADER.
349
350 2008-07-11  Ian Lance Taylor  <iant@google.com>
351
352         * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
353         etc., not just when OBJCPLUS is defined.
354
355 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
356
357         * objc-act.c (setup_string_decl, objc_build_string_object,
358         hash_interface, eq_interface, objc_begin_try_stmt,
359         encode_method_prototype, build_ivar_list_initializer,
360         objc_build_encode_expr): Fix for -Wc++-compat.
361
362 2008-05-12  Tomas Bily  <tbily@suse.cz>
363
364         * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
365         Use CONVERT_EXPR_P.
366
367 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
368
369         * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
370
371 2008-04-03  Tom Tromey  <tromey@redhat.com>
372
373         * Make-lang.in (objc_OBJS): New variable.
374
375 2008-03-27  Tom Tromey  <tromey@redhat.com>
376
377         * Make-lang.in: Revert automatic dependency patch.
378
379 2008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
380
381         PR obj-c++/35704
382         * objc-act.c (objc_build_component_ref): Fix call to
383         finish_class_member_access_expr.
384         (objc_generate_cxx_ctor_or_dtor): Fix call to
385         build_special_member_call.
386
387 2008-03-25  Andrew Pinski  <pinskia@gmail.com>
388
389         PR objc/29197
390         * objc-act.c (encode_type): Handle when type is error_mark_node.
391         (objc_push_parm): Handle when the type of parm is error_mark_node.
392
393 2008-03-25  Tom Tromey  <tromey@redhat.com>
394
395         * Make-lang.in (objc_OBJS): New variable.
396         (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
397
398 2008-03-21  Andreas Tobler  <a.tobler@schweiz.org>
399
400         PR bootstrap/35660
401         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
402         MAYBE_CLASS_TYPE_P.
403         (objc_generate_cxx_cdtors): Likewise.
404         (add_instance_variable): Likewise.
405
406 2008-02-26  Tom Tromey  <tromey@redhat.com>
407
408         * objc-act.c (objc_init): Remove old location code.
409
410 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
411
412         PR other/35107
413         * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
414
415 2007-07-30  Nick Clifton  <nickc@redhat.com>
416
417         * Make-lang.in: Change copyright header to refer to version 3 of
418         the GNU General Public License and to point readers at the
419         COPYING3 file and the FSF's license web page.
420         * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
421         config-lang.in, objc-lang.c: Likewise.
422
423 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
424
425         * objc-act.c (objc_get_callee_fndecl): Constify.
426         * objc-act.h (objc_get_callee_fndecl): Likewise.
427
428 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
429
430         * objc-act.c (volatilized_hash, volatilized_eq, string_hash,
431         string_eq): Constify.
432
433 2007-04-04  Stuart Hastings  <stuart@apple.com>
434
435         PR 31281
436         * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
437
438 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
439
440         * Make-lang.in: Add dummy lang.install-pdf target.
441
442 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
443
444         * objc/objc-act.c: Fix comment typos.
445
446 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
447             Brooks Moses  <brooks.moses@codesourcery.com>
448             Lee Millward  <lee.millward@codesourcery.com>
449
450         * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
451         (objc_get_callee_fndecl): Likewise.
452
453 2007-01-23  Andrew Pinski  <pinskia@gmail.com>
454
455         PR objc/27438
456         * objc-act.c (objc_add_static_instance): Mark the decl as
457         TREE_USED.
458
459 2007-01-20  Andrew Pinski  <pinskia@gmail.com>
460
461         PR objc/30479
462         * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
463         of htab_hash_pointer.
464         (lookup_interface): Likewise.
465         (add_class): Likewise.
466
467 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
468         
469         * objc-act.c (objc_build_volatilized_type): Keep track of
470         canonical types.
471         (objc_get_protocol_qualified_type): Ditto.
472         
473 2006-11-02  Andreas Tobler  <a.tobler@schweiz.org>
474
475         * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
476         content where we called cp_finish_file.
477
478 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
479
480         * objc-act.c (synth_module_prologue): Replace calls to
481         builtin_function with add_builtin_function.
482         (build_next_objc_exception_stuff): Replace calls to
483         builtin_function with add_builtin_function.
484         (build_objc_exception_stuff): Replace calls to
485         builtin_function with add_builtin_function.
486
487 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
488
489         * Make-lang.in: Added empty "objc.pdf" target.
490
491 2006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>
492
493         PR objc/29195
494         * objc-act.c (objc_push_parm): If we change the type of the
495         decl, relayout the decl.
496
497 2006-09-19  Eric Christopher  <echristo@apple.com>
498
499         * objc-act.c (JBLEN): Rename to OBJC_JBLEN,
500         default to something innocuous.
501         (build_next_objc_exception_stuff): Rename JBLEN.
502
503 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
504
505         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
506
507 2006-07-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
508
509         PR obj-c++/28434
510         * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
511
512 2006-06-06  Mike Stump  <mrs@apple.com>
513
514         * objc-act.c: Remove prototype for objc_build_volatilized_type.
515
516 2006-05-24  Mike Stump  <mrs@apple.com>
517
518         * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
519
520 2006-05-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
521
522         PR objc/27240
523         * objc-act.c (objc_is_public): Return early on invalid type.
524
525 2006-03-02 Fariborz Jahanian <fjahanian@apple.com>
526
527         * objc-act.c (init_module_descriptor): Remove file name from
528         module descriptor.
529         (gen_type_name_0): Fix ICE when issuing warning.
530
531 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
532         * Make-lang.in (OBJC): Remove
533         (OBJECTIVE-C): Remove
534         (objective-c): Remove
535         (.PHONY): Remove objective-c and ObjC
536
537 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
538
539         PR objc/25360
540         * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed
541         by the inner type.
542
543 2005-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
544
545         PR objc/25348
546         * objc-act.c (encode_array): Handle arrays to zero sized types.
547
548 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
549
550         * Make-lang.in (objc.all.build, objc.install-normal): Remove.
551
552 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
553
554         * Make-lang.in: Remove all dependencies on s-gtype.
555
556 2005-12-02  Richard Guenther  <rguenther@suse.de>
557
558         * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
559         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
560         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
561         build_objc_method_call, objc_rewrite_function_call): Use buildN
562         instead of build.
563
564 2005-10-20  Geoffrey Keating  <geoffk@apple.com>
565
566         * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
567         on objc_msgSend and like builtin functions.
568
569 2005-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
570
571         * objc-act.c (objc_build_component_ref): Adjust call to
572         finish_class_member_access_expr due to a changed prototype.
573
574 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
575
576         PR objc/23306
577         * objc-act.c (generate_strings): Remove and move code to
578         finish decl to ...
579         (add_objc_string): here when creating a new string decl.
580         (finish_objc): Don't call generate_strings.
581
582 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
583
584         PR objc/23381
585         * objc-act.c (next_sjlj_build_try_catch_finally): Set
586         TREE_SIDE_EFFECTS on catch_seq after building it.
587
588 2005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
589
590         part of PR objc/21992
591         * objc-act.c (handle_class_ref): The ref decl is always referenced.
592
593 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
594
595         Make CONSTRUCTOR use VEC to store initializers.
596         * objc-act.c (objc_build_constructor): Use build_constructor_from_list
597         instead of build_constructor.
598
599 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
600
601         * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
602         removed.
603         * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
604         (KEYWORD_KEY_NAME): Use decl_minimal.
605         (METHOD_SEL_NAME): Ditto..
606         (METHOD_SEL_ARGS): Use decl_non_common.
607         (METHOD_ADD_ARGS): Ditto.
608         (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
609         (METHOD_DEFINITION): Ditto.
610         (METHOD_ENCODING): Ditto.
611         * objc-lang.c: (objc_init_ts): New function.
612
613 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
614
615         * objc-act.c (objc_build_struct): Pass in an actual @interface
616         instead of its name, and annotate the struct created (and all
617         existing variants thereof) with the @interface.
618         (objc_compare_types): Treat forward-declared ObjC classes
619         as stand-alone (root) classes for purposes of type comparisons.
620         (build_private_template): Move some code to objc_build_struct().
621
622 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
623
624         PR objc/22274
625         * objc-act.c (objc_build_string_object): For GNU-style constants,
626         use the @interface type rather than the built-in type.
627
628 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
629
630         * Make-lang.in (cc1plus-checksum.c): Use
631         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
632
633 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
634
635         * objc-act.c: Use %q to quote in diagnostics.
636
637 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
638
639         * objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
640         quoting.
641
642 2005-06-30  Ziemowit Laski  <zlaski@apple.com>
643
644         * objc-act.c (objc_build_volatilized_type): New function.
645         (objc_volatilize_decl): Call objc_build_volatilized_type()
646         instead of build_qualified_type().
647
648 2005-06-29  Ziemowit Laski  <zlaski@apple.com>
649
650         * objc-act.c (objc_build_internal_const_str_type): New function.
651         (check_string_class_template): Use objc_get_class_ivars() instead
652         of TYPE_FIELDS() to retrieve ivar list.
653         (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
654         than the field itself.
655         (objc_build_string_object): Synthesize a "__builtin_ObjCString"
656         type and use it to lay out compile-time string objects.
657         * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
658         New.
659
660 2005-06-28  Paul Brook  <paul@codesourcery.com>
661
662         * objc-act.c (objc_init_exceptions): Call
663         default_init_unwind_resume_libfunc.
664
665 2005-06-27  Ziemowit Laski  <zlaski@apple.com>
666
667         * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
668         portion of TYPE_LANG_SPECIFIC info for all variants of
669         a class before calling finish_struct(), and restore
670         same TYPE_OBJC_INFO afterwards.
671
672 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
673
674         * all files: Update FSF address in copyright headers.
675
676 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
677
678         * objc-act.c (my_build_string_pointer): New.
679         (objc_get_class_reference, get_super_receiver): Call
680         my_build_string_pointer instead of my_build_string when building
681         function arguments.
682
683 2005-05-25  Mike Stump  <mrs@mrs.kithrup.com>
684
685         * objc-act.c (volatilized_hash): Avoid warnings on 64-bit
686         machines.
687
688 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
689
690         * objc-act.c (objc_build_struct): New function.
691         (objc_derived_from_p): Likewise.
692         (objc_build_component_ref): Likewise.
693         (objc_copy_binfo): Likewise.
694         (objc_xref_basetypes): Likewise.
695         (objc_lookup_protocol): Likewise.
696         (objc_compare_protocols): Likewise.
697         (objc_volatilize_decl): Likewise.
698         (encode_aggregate_fields): Likewise.
699         (volatilized_hash): Likewise.
700         (volatilized_eq): Likewise.
701         (objc_compare_types): Likewise.
702         (objc_type_quals_match): Likewise.
703         (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
704         of same name.
705         (get_class_ivars): Add second parameter indicating if entire
706         hierarchy is desired.
707         (struct volatilized_type): New type.
708         (volatilized_htab): New hash table.
709         (objc_types_compatible_p, objc_comptypes): Remove functions.
710         (synth_module_prologue): Do not initialize 'unused_list'.
711         (objc_get_class_reference): Fix ObjC++ impedance mismatches.
712         (objc_declare_alias): Implement as a typedef.
713         (objc_substitute_decl, objc_gimplify_expr): Reformat.
714         (objc_get_class_ivars): Adjust call to get_class_ivars().
715         (next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
716         build_ivar_reference, get_super_receiver): Call
717         objc_build_component_ref() instead of build_component_ref().
718         (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
719         objc_comptypes().
720         (build_private_template): Call objc_build_struct() instead of
721         start_struct() and finish_struct().
722         (hash_init): Initialize volatilized_htab.
723         (objc_is_public): Adjust calls to objc_get_ivars(); adjust
724         ObjC++ impedance mismatches.
725         (encode_aggregate_within): Streamline by calling
726         encode_aggregate_fields().
727         * objc-act.h (objc_types_compatible_p): Remove prototype.
728         (OCTI_UNUSED_LIST, unused_list): Remove slot.
729         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
730
731 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
732
733         * Make-lang.in (cc1obj-dummy): New.
734         (cc1obj-checksum.c): New.
735         (cc1obj-checksum.o): New.
736         (cc1obj): Add cc1obj-checksum.o.
737
738 2005-05-18  Mike Stump  <mrs@apple.com>
739
740         PR objc/21641
741         * objc-act.c (struct interface_tuple): Mark it up for GC.
742         (interface_htab): It is really a struct interface_tuple.
743
744 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
745             Mike Stump  <mrs@apple.com>
746
747         Yet more Objective-C++...
748
749         * objc-act.c (objc_finish_try_stmt): Add return value.
750         (objc_build_synchronized): Likewise.
751
752         * objc-act.c (objc_is_gcable_type): Add.
753         (objc_substitute_decl): Add.
754         (objc_build_ivar_assignment): Add.
755         (objc_build_global_assignment): Add.
756         (objc_build_strong_cast_assignment): Add.
757         (objc_is_ivar_reference_p): Add.
758         (objc_is_global_reference_p): Add.
759         (objc_generate_write_barrier): Add.
760         (objc_rewrite_function_call): Add.
761         (objc_gimplify_expr): Add Objective-C++ support.
762         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
763         (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
764         (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
765         (DUP_TYPE_OBJC_INFO): Likewise.
766         (struct imp_entry): Add field has_cxx_cdtors.
767         (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
768         OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
769         OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
770         OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
771         OCTI_ASSIGN_STRONGCAST_DECL.
772         (umsg_fast_decl): Add.
773         (objc_assign_ivar_decl): Add.
774         (objc_assign_ivar_fast_decl): Add.
775         (objc_assign_global_decl): Add.
776         (objc_assign_strong_cast_decl): Add.
777         (objc_method_list_ptr): Add.
778         (objc_method_proto_list_ptr): Add.
779         (objc_ivar_list_ptr): Add.
780
781         * objc-act.c (should_call_super_dealloc): Add.
782         (OBJC_VERSION): Bump to 6.
783         (objc_is_gcable_type): Add.
784         (objc_substitute_decl): Add.
785         (objc_build_ivar_assignment): Add.
786         (objc_build_global_assignment): Add.
787         (objc_build_strong_cast_assignment): Add.
788         (objc_is_gcable_p): Add.
789         (objc_is_ivar_reference_p): Add.
790         (objc_is_global_reference_p): Add.
791         (generate_shared_structures): Add flags parameter.
792         (objc_generate_cxx_ctor_or_dtor): Add.
793         (objc_generate_cxx_cdtors): Add.
794         (add_class): Add name parameter.
795         (objc_types_share_size_and_alignment): Add.
796         (comp_proto_with_proto): Add strict parameter.
797         (CLS_HAS_CXX_STRUCTORS): Add.
798         (TAG_ASSIGNIVAR): Add.
799         (TAG_ASSIGNGLOBAL): Add.
800         (TAG_ASSIGNSTRONGCAST): Add.
801         (TAG_MSGSEND_FAST): Add.
802         (TAG_ASSIGNIVAR_FAST): Add.
803         (TAG_CXX_CONSTRUCT): Add.
804         (TAG_CXX_DESTRUCT): Add.
805         (OBJC_LOOKUP_CLASS): Add.
806         (OBJC_LOOKUP_NO_SUPER): Add.
807         (objc_finish_file): Add pch support.
808         (objc_finish_implementation): Add Objective-C++ support.
809         (synth_module_prologue): Likewise.
810         (synth_module_prologue): Add fast dispatching.
811         (objc_get_class_reference): Add Objective-C++ support.
812         (objc_generate_write_barrier): Likewise.
813         (next_sjlj_build_enter_and_setjmp): Likewise.
814         (objc_begin_try_stmt): Likewise.
815         (build_next_objc_exception_stuff): Add fast ivar support.
816         (build_private_template): Mark the record as used so debug
817         information is generated.
818         (build_protocol_template): Add Objective-C++ support.
819         (objc_method_parm_type) Likewise.
820         (objc_generate_cxx_ctor_or_dtor): Likewise.
821         (objc_generate_cxx_cdtors): Likewise.
822         (build_protocol_initializer): Likewise.
823         (build_category_template): Likewise.
824         (build_class_template): Likewise.
825         (build_method_list_template): Likewise.
826         (build_category_initializer): Likewise.
827         (build_shared_structure_initializer): Likewise.
828         (objc_finish_message_expr): Likewise.
829         (build_objc_method_call): Add fast dispatch support.
830         (lookup_method_static): Add support to end search at superclasses.
831         (add_method_to_hash_list): Add strict parameter to
832         comp_proto_with_proto.
833         (objc_add_method): Likewise.
834         (objc_add_method): Also set the interface_value.
835         (add_instance_variable): Add Objective-C++ support.
836         (objc_is_public): Likewise.
837         (start_class): Likewise.
838         (continue_class): Likewise.
839         (encode_aggregate_within): Likewise.
840         (start_method_def): Likewise.
841         (objc_start_function): Clear current_function_returns_value
842         and current_function_returns_null.
843         (really_start_method): Add Objective-C++ support.
844         (objc_finish_method_definition): Add warning for missing
845         [super dealloc].
846         (finish_objc): Add Objective-C++ support.
847         (generate_objc_image_info): Likewise.
848         (objc_lookup_ivar): Likewise.
849         * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
850         (INIT_TYPE_OBJC_INFO): Likewise.
851         (DUP_TYPE_OBJC_INFO): Likewise.
852
853 2005-04-23  DJ Delorie  <dj@redhat.com>
854
855         * objc-act.c: Adjust warning() callers.
856
857 2005-04-21  Roger Sayle  <roger@eyesopen.com>
858
859         * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
860         this field of an objc method decl.
861         * objc-act.c (build_method_decl): Take an additional "ellipsis"
862         argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
863         (objc_build_method_signature): Accept additional "ellipsis"
864         argument and pass it to build_method_decl.
865         (get_arg_type_list, start_method_def, gen_method_decl): Use
866         the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
867         TREE_OVERFLOW field of a TREE_LIST node.
868
869 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
870
871         PR c/12913
872         * objc-act.c (objc_start_function): Create stack level for context
873         of identifiers with variably modified type.
874
875 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
876
877         PR c/772
878         PR c/17913
879         * objc-act.c (objc_start_function): Push context on
880         label_context_stack.
881
882 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
883
884         * objc-act.c (next_sjlj_build_enter_and_setjmp,
885         next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
886         Call c_common_truthvalue_conversion.
887
888 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
889
890         * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
891         objc/objc-parse.c, objc/objc-parse.y): Remove
892         (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
893         objc.distclean, objc.maintainer-clean): Update for new parser.
894         * config-lang.in (gtfiles): Update for new parser.
895
896 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
897
898         * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
899         copyright.
900
901 2005-01-27  Matt Austern  <austern@apple.com>
902
903         * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
904         calling instantiate_pending_templates.
905
906 2005-01-26  Alexander Malmberg  <alexander@malmberg.org>
907
908         PR objc/18862
909         * objc-act.c (build_selector_translation_table): Use
910         input_location in the diagnostic for the GNU runtime or if
911         TREE_PURPOSE (chain) is NULL.
912
913 2005-01-25  Alexander Malmberg  <alexander@malmberg.org>
914
915         PR objc/18408
916         * objc-act.c (objc_types_compatible_p): New function.
917         * objc-act.h (objc_types_compatible_p): Declare.
918         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
919
920 2005-01-16  Ziemowit Laski  <zlaski@apple.com>
921
922         * objc-act.c (objc_push_parm): Call c_type_promotes_to()
923         via a lang-hook.
924
925 2005-01-15  Ziemowit Laski  <zlaski@apple.com>
926
927         PR objc/19321
928         * objc-act.c (get_arg_type_list): Decay function arguments into
929         pointers.
930         (objc_push_parm): Likewise; bring PARM_DECL construction closer
931         in line with what the C front-end does.
932         (objc_get_parm_info): Call pushdecl() and finish_decl() on
933         each PARM_DECL, like the C front-end does.
934         (start_method_def): Remove redundant ARRAY_TYPE decay.
935         (objc_start_function): Bring closer in line with what the
936         C front-end does for functions.
937
938 2005-01-14  Mike Stump  <mrs@apple.com>
939
940         * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
941         that -fobjc-exceptions is accepted.
942
943 2004-12-30  Ziemowit Laski  <zlaski@apple.com>
944
945         PR objc/18971
946         * objc-act.c (get_arg_type_list, start_method_def): Decay
947         array arguments into pointers.
948         (gen_type_name_0): Learn to pretty-print array types.
949
950 2004-12-15  Ziemowit Laski  <zlaski@apple.com>
951
952         * objc-act.c (build_private_template): Change to return 'void'; do
953         not set ivar_context, uprivate_record or objc_instance_type.
954         (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
955         retrieve protocol list from the pointee rather than the pointer itself;
956         check TYPE_HAS_OBJC_INFO(...) precondition before accessing
957         TYPE_OBJC_PROTOCOL_LIST.
958         (objc_get_protocol_qualified_type): For types 'id' and 'Class',
959         construct a variant of the pointee as well as the pointer, and
960         store protocol information in the former.  When creating variants
961         of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
962         TYPE_OBJC_INTERFACE information.
963         (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
964         underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
965         for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
966         holding an IDENTIFIER_NODE.
967         (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
968         accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
969         of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
970         an IDENTIFIER_NODE (meaning a @class forward-declaration only).
971         (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
972         lookup_interface().
973         (continue_class): For @implementations, set ivar_context,
974         uprivate_record and objc_instance_type, for @interfaces, call
975         build_private_template().
976         (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
977         TYPE_OBJC_INTERFACE.
978         (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
979         accessing TYPE_OBJC_PROTOCOL_LIST.
980         * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
981         DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
982         SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
983         (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
984         to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
985         (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
986         TYPE_LANG_SPECIFIC(...).
987         (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
988         (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
989         TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
990         adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
991         instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
992
993 2004-11-29  Joseph Myers  <joseph@codesourcery.com>
994
995         PR c/7544
996         * Make-lang.in (objc/objc-act.o): Update dependencies.
997         * objc-act.c (objc_finish_file): Call
998         maybe_apply_pending_pragma_weaks if not OBJCPLUS.
999
1000 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
1001
1002         PR objc/18406
1003         * obj-act.c (encode_type): 96bits doubles are encoded the
1004         same way as 64bit and 128bit doubles are.
1005
1006 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
1007
1008         * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
1009
1010 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
1011
1012         PR objc/16546
1013         * objc-act.c (generate_method_descriptors): Remove setting
1014         the new decls' type to variable_length_type.
1015         (generate_ivar_lists): Likewise.
1016         (generate_dispatch_tables): Likewise.
1017
1018 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
1019
1020         * objc-act.c (objc_lookup_ivar): The new OTHER parameter
1021         contains the result of the ID lookup by the C or C++
1022         front-end; in class methods, use OTHER if it exists;
1023         in instance methods, use OTHER only if it is locally
1024         declared.
1025
1026 2004-10-26  Ziemowit Laski  <zlaski@apple.com>
1027
1028         * objc-act.c (finish_class): Do not synthesize bogus
1029         'extern objc_object *_Foo;' declarations for @interface Foo.
1030
1031 2004-10-25  Ziemowit Laski  <zlaski@apple.com>
1032             David Ayers  <d.ayers@inode.at>
1033
1034         * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
1035         instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
1036         'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
1037         'Class <Protocol> == id' and 'Class <Protocol> == Class'.
1038         (objc_is_id): Add test for 'super'.
1039         (objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
1040         receivers; if class methods are not found in protocol lists, search
1041         for instance methods therein and warn if one is found.  Look in
1042         global hash tables for suitable method as a last resort when messaging
1043         'id <Proto>', 'Class <Proto>' and invalid receiver types.
1044         (objc_add_method): Insert instance methods listed in protocols into
1045         the global class method hash table.
1046         * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
1047         IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
1048         addition to 'id <Proto>'.
1049
1050 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
1051
1052         PR objc/17923
1053         * objc-act.c (objc_build_string_object): Create a CONST_DECL
1054         for the NeXT runtime case.
1055
1056 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
1057
1058         * objc-act.c: Fix comment typos.
1059
1060 2004-09-24  Ziemowit Laski  <zlaski@apple.com>
1061
1062         * objc-act.c (init_objc_symtab, init_module_descriptor,
1063         build_shared_structure_initializer): When initializing 'long'
1064         fields, ensure that the initializer value is also 'long'.
1065
1066 2004-09-24  Zack Weinberg  <zack@codesourcery.com>
1067
1068         * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
1069         throughout.
1070         (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
1071         (build_selector_translation_table): Use %J in diagnostic
1072         instead of diddling input_line.  Fix spelling.
1073
1074 2004-09-21  Ziemowit Laski  <zlaski@apple.com>
1075
1076         * objc-act.c (objc_fold_objc_type_ref): New function.
1077         * objc-act.h (objc_fold_objc_type_ref): New prototype.
1078
1079 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1080
1081         * objc-act.c (objc_start_function, really_start_method,
1082         objc_get_parm_info, start_method_def): Update to new arg_info
1083         structures.
1084
1085 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
1086
1087         * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
1088         objc/objc-act.h.
1089         (objc/objc-act.o): Depend on $(HASHTAB_H).
1090         * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
1091         objcp-decl.h instead of c-tree.h.
1092         (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
1093         error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
1094         build_protocol_template): Adjust prototypes.
1095         (build_module_initializer_routine, start_class, continue_class,
1096         finish_class, start_method_def, objc_start_function, start_protocol,
1097         build_method_decl, objc_add_method, add_instance_variable,
1098         build_ivar_reference, is_ivar, is_private, get_super_receiver,
1099         build_selector_table_decl, objc_push_parm, objc_get_parm_info,
1100         gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
1101         create_field_decl): New prototypes.
1102         (objc_expand_function_end, comp_method_with_proto, objc_expr_last,
1103         gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
1104         define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
1105         (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
1106         (CLASS_TYPEDEF_NAME): New.
1107         (TAG_EXECCLASS): Change from a global variable to a #define.
1108         (TAG_RETURN_STRUCT): Delete.
1109         (TAG_GNUINIT): New, holds '__objc_gnu_init' name.
1110         (objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
1111         (string_descriptor): New struct.
1112         (string_htab): New hash table.
1113         (string_hash, string_eq): New prototypes.
1114         (generate_struct_by_value_array): Call create_field_decl() instead of
1115         create_builtin_decl().
1116         (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
1117         In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
1118         (objc_finish_file): In ObjC++, call instantiate_pending_templates()
1119         and cp_finish_file().
1120         (define_decl, get_static_reference, get_protocol_reference,
1121         create_builtin_decl): Remove functions.
1122         (objc_start_class_interface, objc_start_category_interface,
1123         objc_start_protocol, objc_continue_interface, objc_finish_interface,
1124         objc_start_class_implementation, objc_start_category_implementation,
1125         objc_continue_implementation, objc_finish_implementation,
1126         objc_set_visibility, objc_set_method_type,
1127         objc_build_method_signature, objc_add_method_declaration,
1128         objc_start_method_definition, objc_add_instance_variable,
1129         objc_get_protocol_qualified_type, create_field_decl,
1130         start_var_decl, finish_var_decl): New functions.
1131         (setup_string_decl): Simplify since it is only called once.
1132         (synth_module_prologue): Call build_class_template(); predefine 'id'
1133         and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
1134         hooks for duration of function; fix GNU runtime messenger signatures
1135         to correspond to reality; forward-declare '__objc_exec_class' for the
1136         GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
1137         'extern "C" { ... }' wrappers around synthesized declarations; call
1138         build_protocol_template() and build_category_template().
1139         (string_hash, string_eq): New functions.
1140         (objc_build_string_object): Check metaclass correctness only once;
1141         store string literals in hash table.
1142         (objc_build_constructor): Do not convert initializer elements;
1143         adjust for ObjC++ impedance mismatch.
1144         (build_objc_symtab_template): Call create_field_decl() instead of
1145         create_builtin_decl().
1146         (init_objc_symtab): Add missing conversion to initializer element.
1147         (build_metadata_decl): Call start_var_decl() instead of define_decl().
1148         (generate_objc_symtab_decl): Do not call build_category_template();
1149         call start_var_decl() and finish_var_decl() instead of start_decl()
1150         and finish_decl().
1151         (build_module_descriptor): Call create_field_decl() instead of
1152         grokfield(); call start_var_decl() and finish_var_decl() instead of
1153         start_decl() and finish_decl(); always mark module descriptor as
1154         used; move GNU runtime-specific functionality to
1155         build_module_initializer_routine().
1156         (build_module_initializer_routine): New function, broken off of
1157         build_module_descriptor().
1158         (objc_static_init_needed_p, objc_generate_static_init_call): New
1159         functions.
1160         (generate_static_references, generate_strings,
1161         build_selector_translation_table, generate_descriptor_table,
1162         generate_ivars_list, generate_dispatch_table, generate_category): Call
1163         start_var_decl() and finish_var_decl() instead of start_decl() and
1164         finish_decl(); build a type directly instead of via groktypename().
1165         (build_selector_reference_decl, build_selector_table_decl,
1166         build_class_reference_decl, build_protocol_reference,
1167         generate_objc_image_info): Call start_var_decl() instead of
1168         build_decl().
1169         (build_selector_reference): For GNU runtime, do not call
1170         build_selector_reference_decl().
1171         (build_selector, build_typed_selector_reference): Always convert
1172         result to the selector type.
1173         (add_objc_string): Cast return value to 'char *'.
1174         (build_method_prototype_template, build_selector_template,
1175         build_method_template): Use actual selector type for fields
1176         pointing to selectors.
1177         (finish_objc): For GNU runtime, call
1178         build_module_initializer_routine() after build_module_descriptor().
1179         (generate_protocol_list, generate_shared_structures): Call
1180         start_var_decl() and finish_var_decl() instead of start_decl() and
1181         finish_decl(); build a type directly instead of via
1182         groktypename().
1183         (synth_id_with_class_suffix): Return a string.
1184         (get_arg_type_list): For instance methods, use the instance type for
1185         'self'; do not call groktypename_in_parm_context().
1186         (build_objc_string_decl): Squash redeclaration errors in ObjC++.
1187         (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
1188         handle RECORD_TYPEs in ObjC as well as ObjC++.
1189         (objc_is_id): New function.
1190         (objc_is_object_ptr): Return the canonical type node.
1191         (objc_get_class_ivars): Simplify using get_class_ivars().
1192         (get_class_ivars): Remove second parameter; create a fresh copy
1193         of the ivar list for each call; do not check for existence of
1194         super class.
1195         (objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
1196         (objc_init_exceptions): When using SJLJ-style exceptions, require
1197         the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
1198         exceptions.
1199         (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
1200         objc_object_type instead of objc_id_type.
1201         (objc_begin_catch_clause): Convert the incoming PARM_DECL into
1202         a VAR_DECL before placing it in the appropriate scope; do not
1203         call define_decl(); adjust call to c_begin_compound_stmt();
1204         use objc_object_type instead of objc_id_type.
1205         (build_next_objc_exception_stuff): Call create_field_decl() instead
1206         of create_builtin_decl(); construct type directly instead of calling
1207         groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
1208         (build_private_template): Adjust call to get_class_ivars(); build
1209         a type directly instead of via groktypename().
1210         (build_protocol_template, build_method_prototype_list_template,
1211         build_method_prototype_template, build_category_template,
1212         build_selector_template, build_class_template, build_super_template,
1213         build_ivar_template, build_ivar_list_template,
1214         build_method_list_template, build_method_template):
1215         Call create_field_decl() instead of grokfield().
1216         (objc_method_parm_type): Do not call groktypename().
1217         (generate_descriptor_table): Call start_var_decl() and
1218         finish_var_decl() instead of start_decl() and finish_decl().
1219         (generate_method_descriptors, build_protocol_initializer,
1220         generate_dispatch_tables, build_category_initializer,
1221         build_shared_structure_initializer): Do not call groktypename().
1222         (generate_protocols): Call start_var_decl() and finish_var_decl()
1223         instead of start_decl() and finish_decl(); do not call groktypename().
1224         (error_with_ivar): Remove last parameter.
1225         (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
1226         to CLASS_IVARS lists; adjust calls to error_with_ivar().
1227         (generate_ivar_lists): Convert one of the initializer elements; do
1228         not call groktypename().
1229         (get_arg_type_list, start_method_def, gen_method_def): Account for
1230         new representation of variable arguments and '...' in Objective-C
1231         methods; add Objective-C++ impedance matching code.
1232         (is_objc_type_qualifier): Remove function.
1233         (adjust_type_for_id_default): Simplify; there is no longer a need to
1234         wade through declspecs.
1235         (lookup_interface, start_class, continue_class,
1236         finish_class, start_method_def, start_protocol, build_method_decl,
1237         objc_add_method, add_instance_variable, build_ivar_reference,
1238         is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
1239         Make into static functions.
1240         (receiver_is_class_object): Use new IS_CLASS() macro.
1241         (objc_build_message_expr): Tweak ObjC++ message argument handling;
1242         call objc_finish_message_expr() instead of finish_message_expr().
1243         (finish_message_expr): Rename to objc_finish_message_expr(); use
1244         OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
1245         call gen_type_name() instead of gen_declaration(); call objc_is_id()
1246         instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
1247         calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
1248         (build_objc_method_call, warn_with_method): Do not call groktypename().
1249         (build_ivar_reference): Call convert() instead of clobbering in a
1250         type.
1251         (hash_init): Initialize string_htab hash table.
1252         (add_instance_variable): Simplify parameter list; do not call grokfield();
1253         do not populate CLASS_IVARS list.
1254         (start_class): Check for the existence of super class, if one was specified.
1255         (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
1256         call build_class_template(); adjust call to get_class_ivars(); call
1257         build_decl(), pushdecl() and finish_decl() instead of define_decl().
1258         (finish_class): Call build_decl(), pushdecl() and finish_decl() instead
1259         of define_decl().
1260         (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
1261         (start_protocol): Do not call build_protocol_template(); use
1262         PROTOCOL_BINFO_ELTS for the tree vector size.
1263         (encode_type_qualifiers): Do not handle the 'const' qualifier here.
1264         (encode_pointer): Encode 'const char *' as 'r*', for backwards
1265         compatibility.
1266         (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
1267         (encode_type): Handle the 'const' qualifier here.
1268         (objc_parmlist): New global variable, sued by objc_push_parm and
1269         objc_get_parm_info().
1270         (objc_push_parm, objc_get_parm_info): New functions.
1271         (objc_expr_last): Remove function.
1272         (synth_self_and_ucmd_args): For instance methods, use the instance
1273         type for 'self'; call objc_push_parm() instead of push_parm_decl().
1274         (start_method_def): Do not call push_scope(), declare_parm_level(),
1275         pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
1276         just use objc_push_parm() and objc_get_parm_info().
1277         (comp_method_with_proto): Remove function.
1278         (objc_types_are_equivalent): Strip away indirections before comparing
1279         underlying types.
1280         (comp_proto_with_proto): Do not call groktypename(); types are no
1281         longer in raw declspec format.
1282         (objc_start_function): New function.
1283         (really_start_method): Call comp_proto_with_proto() instead of
1284         comp_method_with_proto(); call objc_start_function() instead of
1285         hand-crafting a function declarator.
1286         (continue_method_def, objc_expand_function_end): Remove functions.
1287         (get_super_receiver): Call objc_get_current_scope() instead of
1288         get_current_scope(); reference 'super_class' field (instead of
1289         'class').
1290         (finish_method_def): Rename to objc_finish_method_definition() and
1291         add a function decl parameter; move method encoding call from
1292         objc_expand_function_end().
1293         (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
1294         gen_declaration_1): Remove functions.
1295         (tmpbuf, RAW_DECLSPEC): Remove.
1296         (gen_declaration): Remove second parameter; simplify to deal
1297         with TYPE_P nodes instead of raw declspecs.
1298         (gen_type_name, gen_type_name_0): New functions.
1299         (gen_method_decl): Remove second parameter; call gen_type_name()
1300         instead of gen_declaration_1().
1301         (dump_interface): Adjust calls to gen_declaration() and
1302         gen_method_decl(); do not allocate a separate string buffer.
1303         (init_objc): Allocate a larger string buffer to accommodate
1304         dump_interface(); adjust call to build_module_descriptor();
1305         add call to build_module_initializer_routine() for the GNU
1306         runtime.
1307         (generate_classref_translation_entry): Do not call start_decl(); call
1308         finish_var_decl() instead of finish_decl(); call convert() instead of
1309         build_c_cast().
1310         * objc-act.h (CLASS_OWN_IVARS): Remove accessor.
1311         (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
1312         gone.
1313         (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
1314         (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
1315         (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
1316         objc_object_type and objc_object_name, respectively.
1317         (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
1318         objc_class_name): New.
1319         (IS_CLASS): New macro.
1320         (IS_ID, IS_SUPER): Robustify.
1321         (OCTI_EXECCLASS_DECL, execclass_decl): New.
1322         (finish_file, start_class, continue_class, finish_class,
1323         start_method_def, continue_method_def, finish_method_def,
1324         start_protocol, finish_protocol, objc_build_throw_stmt,
1325         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
1326         objc_build_synchronized_epilogue, objc_build_try_prologue,
1327         objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
1328         objc_build_finally_prologue, objc_build_finally_epilogue,
1329         is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
1330         get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
1331         get_class_reference, get_static_reference, get_object_reference,
1332         build_message_expr, finish_message_expr, build_selector_expr,
1333         build_ivar_reference, build_keyword_decl, build_method_decl,
1334         build_protocol_expr, build_objc_string_object, objc_declare_alias,
1335         objc_declare_class, objc_declare_protocols, objc_comptypes,
1336         objc_check_decl, build_encode_expr): Remove prototypes.
1337         (imp_count, cat_count): Make GGC-aware.
1338         (OBJC_SET_TYPE_NAME): New macro.
1339
1340 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
1341
1342         * config-lang.in: Update copyright notice.
1343         (lang_requires): Indicate that ObjC requires C to be built first.
1344
1345 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
1346
1347         * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
1348         TYPE_NAME.
1349         (build_objc_string_object): Rename to objc_build_string_object().
1350         (get_class_reference): Rename to objc_get_class_reference().
1351         (get_class_ivars_from_name): Rename to objc_get_class_ivars().
1352         (next_sjlj_build_catch_list, get_super_receiver): Call
1353         objc_get_class_reference() instead of get_class_reference().
1354         (build_keyword_decl): Rename to objc_build_keyword_decl().
1355         (build_message_expr): Rename to objc_build_message_expr().
1356         (build_protocol_expr): Rename to objc_build_protocol_expr().
1357         (build_selector_expr): Rename to objc_build_selector_expr().
1358         (build_encode_expr): Rename to objc_build_encode_expr().
1359         * objc-act.h (get_class_ivars_from_name): Rename prototype to
1360         objc_get_class_ivars().
1361         (get_class_reference): Rename prototype to objc_get_class_reference().
1362         (build_message_expr): Rename prototype to objc_build_message_expr().
1363         (build_selector_expr): Rename prototype to objc_build_selector_expr().
1364         (build_keyword_decl): Rename prototype to objc_build_keyword_decl().
1365         (build_protocol_expr): Rename prototype to objc_build_prototype_expr().
1366         (build_objc_string_object): Rename prototype to
1367         objc_build_string_object().
1368
1369 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
1370
1371         * objc-act.c (lookup_interface): Make function 'static' and add a
1372         local prototype.
1373         (objc_check_decl, get_class_reference, objc_declare_alias,
1374         objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
1375         instead of is_class_name().
1376         (get_super_receiver, objc_clear_super_receiver): Call
1377         objc_get_current_scope() instead of get_current_scope().
1378         (is_class_name): Rename to objc_is_class_name.
1379         (lookup_objc_ivar): Rename to objc_lookup_ivar.
1380
1381 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
1382
1383         * objc-act.c (objc_is_reserved_word): New function.
1384
1385 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
1386
1387         * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
1388         $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
1389         (objc/objc-parse.o): Do not depend on gtype-objc.h.
1390         * objc-act.c: Do not include gtype-objc.h.
1391         (finish_file): Rename to objc_finish_file().
1392         * objc-act.h (finish_file): Update copyright notice; remove prototype.
1393         * objc-lang.c: Update copyright notice; include diagnostic.h,
1394         c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
1395         toplev.h.
1396         (finish_file): New hook routine.
1397         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
1398         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
1399         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
1400         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
1401         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
1402         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
1403         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
1404         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
1405         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
1406         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1407         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
1408         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1409         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1410         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
1411         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
1412         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
1413         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
1414         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
1415         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
1416         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
1417         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
1418         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
1419         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
1420         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
1421         Move to c-objc-common.h.
1422
1423 \f
1424 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
1425
1426 Copying and distribution of this file, with or without modification,
1427 are permitted in any medium without royalty provided the copyright
1428 notice and this notice are preserved.