]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/gcc-tumbl.git/blob - gcc/objc/ChangeLog
4401ce3ee09a0bbdc2093f6f63582054b87b3762
[fpga/lx-cpu1/gcc-tumbl.git] / gcc / objc / ChangeLog
1 2012-09-20  Release Manager
2
3         * GCC 4.7.2 released.
4
5 2012-06-14  Release Manager
6
7         * GCC 4.7.1 released.
8
9 2012-03-22  Release Manager
10
11         * GCC 4.7.0 released.
12
13 2011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
14
15         * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality
16         for Objective-C m32.
17
18 2011-10-29  Iain Sandoe  <iains@gcc.gnu.org>
19
20         PR target/47997
21         * objc-act.c (objc_build_string_object): Remove redundant second
22         call to fix_string_type ().  Add a checking assert that we are,
23         indeed, passed a STRING_CST.
24
25 2011-10-18  Mikael Pettersson  <mikpe@it.uu.se>
26
27         PR objc/50743
28         * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
29         size_t to avoid signed/unsigned
30         comparison.
31         (insert_method_into_method_map): Likewise.
32
33 2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
34
35         * objc-map.h: New file.
36         * objc-map.c: New file. 
37         * config-lang.in (gtfiles): Added objc-map.h.
38         * Make-lang.in (OBJC_OBJS): Added objc-map.o.
39         (objc/objc-map.o): New rule.
40         (objc/objc-act.o): Depend on objc/objc-map.h.
41         * objc-next-runtime-abi-02.c: Added a TODO comment.
42         * objc-act.c: Include objc-map.h.
43         (nst_method_hash_list, cls_method_hash_list): Removed.
44         (instance_method_map, class_method_map): New.
45         (cls_name_hash_list, als_name_hash_list): Removed.
46         (class_name_map, alias_name_map): Removed.
47         (ivar_offset_hash_list): Removed.
48         (hash_class_name_enter, hash_class_name_lookup, hash_enter,
49         hash_lookup, hash_add_attr, add_method_to_hash_list): Removed.
50         (interface_hash_init): New.
51         (objc_init): Call interface_hash_init.
52         (objc_write_global_declarations): Iterate over class_method_map
53         and instance_method_map instead of cls_method_hash_list and
54         nst_method_hash_list.
55         (objc_declare_alias): Use alias_name_map instead of
56         cls_name_hash_list.
57         (objc_is_class_name): Use class_name_map and alias_name_map
58         instead of cls_name_hash_list and als_name_hash_list.
59         (interface_tuple, interface_htab, hash_interface, eq_interface):
60         Removed.
61         (interface_map): New.
62         (add_class): Renamed to add_interface.  Use interface_map instead
63         of interface_htab.
64         (lookup_interface): Use interface_map instead of interface_htab.
65         (check_duplicates): Changed first argument to be a tree,
66         potentially a TREE_VEC, instead of a hash.  Changed implementation
67         to match.
68         (lookup_method_in_hash_lists): Use class_method_map and
69         instance_method_map instead of cls_method_hash_list and
70         nst_method_hash_list.
71         (objc_build_selector_expr): Likewise.
72         (hash_func): Removed.
73         (hash_init): Create instance_method_map, class_method_map,
74         class_name_map, and alias_name_map.  Do not create
75         nst_method_hash_list, cls_method_hash_list, cls_name_hash_list,
76         als_name_hash_list, and ivar_offset_hash_list.
77         (insert_method_into_method_map): New.
78         (objc_add_method): Use insert_method_into_method_map instead of
79         add_method_to_hash_list.
80         (start_class): Call add_interface instead of add_class.
81         * objc-act.h (cls_name_hash_list, als_name_hash_list,
82         nst_method_hash_list, cls_method_hash_list): Removed.
83
84 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
85
86         * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old
87         interface with two parallel arrays to hold standard builtin
88         declarations, and replace it with a function based interface that
89         can support creating builtins on the fly in the future.  Change
90         all uses, and poison the old names.  Make sure 0 is not a
91         legitimate builtin index.
92         * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto.
93         * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto.
94
95 2011-07-19  Richard Guenther  <rguenther@suse.de>
96
97         * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
98         Use fold_build_pointer_plus.
99         (objc2_build_ehtype_initializer): Likewise.
100
101 2011-07-11  Nicola Pero  <nicola.pero@meta-innovation.com>
102
103         * objc-encoding.h (obstack.h): Do not include.
104         (util_obstack, util_firstobj): Do not declare.
105         (encode_field_decl): Updated prototype to return a tree and take a
106         single tree argument.  Updated comments.
107         * objc-encoding.c (util_obstack, util_firstobj): Made static.
108         (objc_encoding_init): New.
109         (encode_field_decl): Existing function renamed to encode_field and
110         made static.  New encode_field_decl wrapper function added.
111         (encode_aggregate_fields): Update call to encode_field_decl to
112         call encode_field.
113         * objc-next-runtime-abi-02.c (obstack.h): Do not include.
114         (util_obstack, util_firstobj): Do not declare.
115         (build_v2_ivar_list_initializer): Updated call to
116         encode_field_decl.
117         * objc-runtime-shared-support.c (obstack.h): Do not include.
118         (util_obstack, util_firstobj): Do not declare.
119         (build_ivar_list_initializer): Updated call to encode_field_decl.
120         * objc-act.c (objc_init): Use objc_encoding_init.
121         * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
122         on OBSTACK_H.
123         (objc/objc-gnu-runtime-abi-01.o): Likewise.
124         (objc/objc-next-runtime-abi-01.o): Likewise.
125         (objc/objc-next-runtime-abi-02.o): Likewise.
126         (objc/objc-act.o): Likewise.
127         
128 2011-07-04  Nicola Pero  <nicola.pero@meta-innovation.com>
129
130         Refactored encoding code into objc-encoding.h and objc-encoding.c.
131         * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers,
132         encode_type, generating_instance_variables, objc_method_parm_type,
133         objc_encoded_type_size, encode_method_prototype,
134         objc_build_encode_expr, pointee_is_readonly, encode_pointer,
135         encode_array, encode_vector, encode_aggregate_fields,
136         encode_aggregate_within, encode_next_bitfield,
137         encode_gnu_bitfield, encode_field_decl,
138         objc_v2_encode_property_attr): Moved to objc-encoding.h and
139         objc-encoding.c.  No change in the actual code.
140         Include objc-encoding.h.
141         (objc_init): Added TODO.
142         (objc_build_property_setter_name): Made non-static so it can be
143         called from objc-encoding.c.
144         * objc-act.h (OBJC_ENCODE_INLINE_DEFS,
145         OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h.
146         * objc-runtime-shared-support.h (objc_v2_encode_property_attr,
147         encode_method_prototype, encode_field_decl,
148         generating_instance_variables): Moved to objc-encoding.h.       
149         (objc_build_property_setter_name): Declare.
150         * objc-encoding.c: New.
151         * objc-encoding.h: New.
152         * objc-gnu-runtime-abi-01.c: Include objc-encoding.h.
153         * objc-next-runtime-abi-01.c: Likewise.
154         * objc-next-runtime-abi-02.c: Likewise. 
155         * objc-runtime-shared-support.c: Likewise.
156         * Make-lang.in (OBJC_OBJS): Added objc-encoding.o.
157         (objc/objc-lang.o): Reordered dependencies.
158         (objc/objc-runtime-shared-support.o): Reordered dependencies.
159         Added dependencies on objc-encoding.h and on $(GGC_H),
160         $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h.
161         (objc/objc-gnu-runtime-abi-01.o): Likewise.
162         (objc/objc-next-runtime-abi-01.o): Likewise.
163         (objc/objc-next-runtime-abi-02.o): Likewise.
164         (objc/objc-act.o): Reordered dependencies.  Added dependency on
165         objc-encoding.h.
166         (objc/objc-encoding.o): New rule.
167
168         * objc-encoding.c (encode_type): Use "%<%T%>" format when printing
169         warning "unknown type %<%T%> found during Objective-C encoding"
170         instead of using gen_type_name.
171         
172 2011-06-05  Nicola Pero  <nicola.pero@meta-innovation.com>
173
174         * objc-act.c (receiver_is_class_object): Expanded comment.
175         (objc_finish_message_expr): Likewise.
176
177 2011-06-02  Nicola Pero  <nicola.pero@meta-innovation.com>
178
179         PR objc/48539
180         * objc-act.c (objc_finish_message_expr): Warn if messaging a class
181         that was only declared using @class without an @interface.  Warn
182         if messaging an instance of a class that was only declared using
183         @class without an @interface, unless the receiver was also typed
184         with a protocol list.
185
186 2011-06-01  Nicola Pero  <nicola.pero@meta-innovation.com>
187
188         * objc-act.c (objc_decl_method_attributes): Implement nonnull
189         attribute for Objective-C methods.
190
191 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
192
193         * config-lang.in (gtfiles): Updated order of files to fix building
194         when the gcc/cp directory is missing, as in the case of some
195         release tarballs.
196
197 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
198
199         * objc-act.c (objc_compare_types): Use function_args_iterator
200         instead of TYPE_ARG_TYPES to compare function argument types.
201
202 2011-05-13  Toon Moene  <toon@moene.org>
203
204         * objc-next-runtime-abi-02.c (newabi_append_ro):
205         Add const qualifier to constant variable pointer declaration.
206
207 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
208
209         * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
210         (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
211         (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.
212
213 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
214
215         * objc-runtime-shared-support.h (get_arg_type_list): Delete.
216         (build_function_type_for_method): Declare.
217         * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change
218         type of get_arg_type_base_list field.
219         * objc-act.h (OBJC_VOID_AT_END): Delete.
220         * objc-act.c (get_arg_type_list): Delete.
221         (build_function_type_for_method): New function.
222         (objc_decl_method_attributes): Call build_function_type_for_method.
223         (really_start_method): Likewise.
224         * objc-gnu-runtime-abi-01.c
225         (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and
226         adjust function accordingly.  Update header comment.
227         (build_objc_method_call): Call build_function_type_for_method.
228         * objc-next-runtime-abi-01.c
229         (next_runtime_abi_01_get_type_arg_list_base): Change prototype and
230         adjust function accordingly.  Update header comment.
231         (build_objc_method_call): Call build_function_type_for_method.
232         * objc-next-runtime-abi-02.c
233         (next_runtime_abi_02_get_type_arg_list_base): Change prototype and
234         adjust function accordingly.  Update header comment.
235         (objc_copy_to_temp_side_effect_params): Take fntype instead of a
236         typelist.  Use function_args_iterator for traversing fntype.
237         (build_v2_build_objc_method_call): Adjust call to it.
238         Call build_function_type_for_method
239
240 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
241
242         * objc-act.c (objc_start_method_definition): Add parameter expr.
243         Update call to start_method_def.
244         (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter,
245         objc_synthesize_setter) Update calls to
246         objc_start_method_definition.
247         (objc_get_parm_info): Add parameter expr.  Update call to
248         get_parm_info.
249         (start_method_def): Add parameter expr.  Update call to
250         objc_get_parm_info.
251         * objc-gnu-runtime-abi-01.c (build_module_initializer_routine):
252         Update call to objc_get_parm_info.
253         * objc-runtime-shared-support.h (objc_get_parm_info): Add extra
254         parameter.
255
256 2011-04-26  Jason Merrill  <jason@redhat.com>
257
258         * objc-act.c (objc_fold_objc_type_ref): Remove.
259         * objc-act.h: Remove prototype.
260
261 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
262
263         * objc-act.c (synth_module_prologue): Call build_function_type_list
264         instead of build_function_type.
265         * objc-next-runtime-abi-02.c (next_runtime_02_initialize):
266         Likewise.
267
268 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
269
270         * objc-act.c (ivar_of_class): New.
271         (objc_is_public): Use ivar_of_class.
272
273 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
274
275         * objc-act.c (objc_get_interface_ivars): Removed.
276         (objc_detect_field_duplicates): New.
277         (hash_instance_variable): New.
278         (eq_instance_variable): New.
279
280 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
281
282         * objc-act.c (objc_declare_protocols): Renamed to
283         objc_declare_protocol.  Changed first argument to be an identifier
284         instead of a tree chain of identifiers, so that callers don't have
285         to create a temporary tree chain.
286
287 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
288
289         * objc-act.c (objc_declare_class): Changed to take a single
290         identifier as argument instead of a tree list.  This means callers
291         don't have to build temporary tree lists to call this function.
292         (synth_module_prologue): Updated calls to objc_declare_class.
293
294 2011-04-13  Nicola Pero  <nicola.pero@meta-innovation.com>
295
296         * objc-act.c (build_keyword_selector): Use get_identifier_with_length
297         instead of get_identifier.
298
299 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
300
301         * objc-lang.c (objc_init_ts): Move code for this function...
302         * objc-act.c (objc_common_init_ts): ...here. Define.
303         * objc-act.h (objc_common_init_ts): Declare.
304
305 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
306
307         * objc-act.c (objc_build_message_expr): Accept two arguments
308         instead of one so that callers can simply pass the arguments
309         without having to create a temporary chain to hold them.
310
311 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
312
313         * objc-act.c (comp_proto_with_proto): Do not create and use
314         inefficient temporary argument lists.  Compare the arguments
315         directly.  (match_proto_with_proto): Removed; incorporated into
316         comp_proto_with_proto ().
317
318 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
319
320         * objc-act.c (printable_ivar_name): New.
321         (add_instance_variable): Call printable_ivar_name() when an error
322         message needs to be printed.  Do not prepare the instance variable
323         for printing unless there is an actual error.
324
325 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
326
327         * objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
328         avoid calling identifier_global_value() multiple times.
329
330 2011-04-12  Martin Jambor  <mjambor@suse.cz>
331
332         * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
333         instead of cgraph_node.
334
335 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
336
337         * objc-act.c: Include c-target.h instead of target.h.
338         * Make-lang.in (objc/objc-act.o): Update dependencies.
339
340 2011-03-06  Joseph Myers  <joseph@codesourcery.com>
341
342         * lang-specs.h: Match -save-temps* instead of -save-temps.
343
344 2011-02-26  Nicola Pero  <nicola.pero@meta-innovation.com>
345
346         * objc-act.c (objc_v2_encode_prop_attr): Rewritten.
347
348 2011-02-23  Nicola Pero  <nicola.pero@meta-innovation.com>
349
350         * objc-act.c (build_private_template): Do not copy the
351         CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
352         * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
353         TYPE_LANG_SLOT_0.
354
355 2011-02-22  Nicola Pero  <nicola.pero@meta-innovation.com>
356
357         PR objc/47832
358         * objc-act.c (flexible_array_type_p): New.
359         (add_instance_variable): Produce an error if an instance variable
360         uses flexible array members.
361         (encode_array): Do not emit an error if encoding a flexible array
362         type while generating instance variables.
363
364 2011-02-21  Mike Stump  <mikestump@comcast.net>
365
366         * Make-lang.in (check_objc_parallelize): Refine for 4 processor
367         machines.
368
369 2011-02-20  Nicola Pero  <nicola.pero@meta-innovation.com>
370
371         * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed.  Removed
372         usage of padding fields.  Do not include tm.h.
373         * objc-act.c (objc_write_global_declaration): Set input_location
374         to BUILTINS_LOCATION while generating runtime metadata.
375
376 2011-01-20  Nicola Pero  <nicola.pero@meta-innovation.com>
377
378         PR objc/47784
379         * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
380         effects, do not use a temporary variable.
381
382 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
383
384         * objc-next-runtime-abi-01.c: Updated comments.
385         * objc-next-runtime-abi-02.c: Same.
386
387 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
388
389         * objc-act.c (objc_init, generate_struct_by_value_array): Updated
390         comments.
391
392 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
393
394         * objc-act.c: Updated comments.
395         * objc-next-runtime-abi-02.c: Same.
396         * objc-runtime-shared-support.c: Same.
397         * objc-runtime-hooks.h: Same.
398         * objc-act.h: Same.
399         * objc-gnu-runtime-abi-01.c: Same.
400
401 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
402
403         * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
404         not generate metadata if there is nothing to put into it.
405
406 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
407
408         * config-lang.in (gtfiles): Updated.
409         * Make-lang.in (START_HDRS): New.
410         (OBJC_OBJS): Added new object files.
411         (objc/objc-act.o): Updated prerequisites.
412         (objc/objc-lang.o): Updated prerequisites.
413         (objc/objc-runtime-shared-support.o): New.
414         (objc/objc-gnu-runtime-abi-01.o): New.
415         (objc/objc-next-runtime-abi-01.o): New.
416         (objc/objc-next-runtime-abi-02.o): New.
417         * objc-runtime-hooks.h: New.
418         * objc-runtime-shared-support.h: New.
419         * objc-runtime-shared-support.c: New.
420         * objc-gnu-runtime-abi-01.c: New.
421         * objc-next-metadata-tags.h: New.
422         * objc-next-runtime-abi-01.c: New.
423         * objc-next-runtime-abi-02.c: New.
424         * objc-lang.c: Include c-lang.h.
425         (LANG_HOOKS_EH_PERSONALITY): Removed.
426         * objc-act.h: Moved many declarations and code from objc-act.c
427         into objc-act.h to make them available outside objc-act.c.
428         (objc_eh_runtime_type): Removed.
429         (objc_eh_personality): Removed.
430         (CLASS_HAS_EXCEPTION_ATTR): New.
431         (OCTI_SUPER_SUPERFIELD_ID): New.
432         (OCTI_V1_PROP_LIST_TEMPL): New.
433         (OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
434         (super_superclassfield_id): New.
435         (objc_prop_list_ptr): New.
436         (prop_names_attr_chain): New.
437         * objc-act.c: Include new runtime headers.  Moved many #defines
438         and declarations into objc-act.h and
439         objc-runtime-shared-support.h.  Made some corresponding functions
440         non-static, and moved some others into
441         objc-runtime-shared-support.c.  Moved metadata generation code
442         into the new runtime hook files.
443         (ivar_offset_hash_list): New.
444         (objc_init): Call generate_struct_value_by_array() before doing
445         any runtime initialization.  Create the appropriate runtime hook
446         structures.
447         (init_objc): Removed.  Code moved directly into objc_init.
448         (finish_objc): Removed.  Code moved directly into
449         objc_write_global_declarations.
450         (objc_write_global_declarations): Do the warn_selector checks
451         before emitting metadata.  Use a runtime hook to emit the
452         metadata.  Do not emit the metadata or do -gen-decls processing if
453         -fsyntax-only or we are producing a PCH.
454         (build_objc_exception_stuff): Renamed to
455         build_common_objc_exception_stuff.  Remove TREE_NOTHROW flag from
456         objc_exception_throw_decl.
457         (synth_module_prologue): Call runtime initialize hook instead of
458         building runtime declarations here.  Use the
459         default_constant_string_class_name runtime hook to set the
460         constant string class name.
461         (objc_build_string_object): Call the setup_const_string_class_decl
462         runtime hook instead of setup_string_decl.  Call the
463         build_const_string_constructor runtime hook instead of building
464         the string object here.
465         (get_objc_string_decl): Added prop_names_attr case.  Removed
466         gcc_unreachable() at the end.
467         (objc_begin_catch_clause): Distinguish between @catch (...) and
468         @catch (id x).  Call the begin_catch runtime hook instead of
469         building the CATCH_EXPR here.
470         (objc_finish_catch_clause): Call the finish_catch runtime hook
471         instead of adding the catch here.
472         (objc_finish_try_stmt): Call the finish_try_stmt runtime hook
473         instead of doing it here.
474         (objc_build_throw_stmt): Bail out early for error_mark_node.  Call
475         the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
476         Call the build_throw_stmt runtime hook instead of building the
477         throw call here.
478         (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
479         as well.
480         (get_arg_type_list): Call the get_arg_type_list_base runtime hook
481         instead of building the list of arguments here.
482         (receiver_is_class_object): Call the receiver_is_class_object
483         runtime hook instead of doing the check here.  Call the
484         tag_getclass runtime hook instead of using TAG_GETCLASS.
485         (objc_finish_message_expr): Call the build_objc_method_call
486         runtime hook.
487         (objc_build_protocol_expr): Call the get_protocol_reference
488         runtime hook.
489         (objc_build_selector_expr): Call the build_selector_reference
490         runtime hook.
491         (build_ivar_reference): Call the build_ivar_reference runtime
492         hook.
493         (hash_init): Set up ivar_offset_hash_list.
494         (start_class): Recognize the objc_exception attribute and store
495         it.
496         (continue_class): Use the class_decl and metaclass_decl runtime
497         hooks.
498         (build_objc_property_accessor_helpers): Renamed to
499         build_common_objc_property_accessor_helpers.  Do not build
500         objc_copyStruct_decl, objc_getPropertyStruct_decl and
501         objc_setPropertyStruct_decl.
502         (objc_synthesize_getter): Check what struct setter/getter helper
503         is available instead of checking the type of runtime.
504         (get_super_receiver): Use the super_superclassfield_ident runtime
505         hook.  Added assert.  Use the get_class_super_ref and
506         get_category_super_ref runtime hooks.
507         (objc_v2_encode_prop_attr): New.
508
509 2011-01-17  Nicola Pero  <nicola.pero@meta-innovation.com>
510
511         PR objc/47314
512         * objc-act.c (finish_objc): When calling check_duplicates to check
513         duplicated instance methods, set 'is_class' to 0, not 1.
514
515 2011-01-14  Ben Elliston  <bje@au.ibm.com>
516
517         PR 19162
518         * objc-act.c (generate_struct_by_value_array): Do not output a
519         definition for struct_forward_array.
520
521 2011-01-08  Iain Sandoe  <iains@gcc.gnu.org>
522
523         * objc-act.c (objc_finish_foreach_loop): Mark collection expression
524         as read.
525
526 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
527
528         * objc-act.c (check_that_protocol_is_defined): Fix a typo.
529
530 2011-01-02  Nicola Pero  <nicola.pero@meta-innovation.com>
531
532         * objc-act.c (check_that_protocol_is_defined): New.
533         (lookup_protocol): Call check_that_protocol_is_defined.
534
535 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
536
537         * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
538         lists.  Check them two-ways to fix comparisons when one protocol
539         implements the other one, or when one list contains duplicated
540         protocols.
541
542 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
543
544         * objc-act.c (objc_add_method): When emitting an error because a
545         method with the same name but conflicting types is found in the
546         same class or category interface, print a note with the location
547         of the original method.  Also, improved the error message to
548         clearly state that the conflict is due to conflicting types, and
549         produce it for protocols as well.  Emit an error if two identical
550         methods are declared in a protocol, but one is @required and the
551         other one is @optional.
552
553 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
554
555         * objc-act.c (start_class): Warn when a class attribute is
556         ignored.
557         (objc_declare_protocols): Warn when a protocol attribute in a
558         protocol forward-declaration is ignored.
559         (start_protocol): Warn when a protocol attribute is ignored.
560
561 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
562
563         * objc-act.c (objc_set_method_opt): Tidy up error messages.  In
564         particular, explicitly mention whether the error is due to the
565         @optional or @required keyword instead of mentioning
566         "@optional/@required".
567
568 2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
569
570         PR objc/47118
571         * objc-act.c (objc_build_synchronized): Check the argument of
572         @synchronized and emit an appropriate error if it is not a valid
573         Objective-C object.  Deal gracefully with that case.  Updated
574         comments and variable names.
575
576 2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
577
578         PR objc/47075
579         * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
580         * objc-tree.def (PROPERTY_REF): Increased the number of operands
581         from 3 to 4.
582         * objc-act.c (objc_finish_message_expr): Added optional argument
583         allowing to return the deprecated method prototype for deprecated
584         methods, instead of immediately emitting the deprecation warning.
585         (objc_maybe_build_component_ref): Do not warn for a deprecated
586         property.  When building the getter call, get the deprecated
587         method prototype from objc_finish_message_expr() and put it into
588         the PROPERTY_REF.
589         (objc_build_class_component_ref): Same change.
590         (finish_class): Mark the getter and setter as deprecated if they
591         are generated from a deprecated property.
592         (objc_gimplify_property_ref): If the getter is deprecated, emit a
593         deprecation warning.
594         (objc_build_setter_call, objc_build_message_expr,
595         objc_finish_foreach_loop): Updated call to
596         objc_finish_message_expr.
597
598 2010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
599
600         PR objc/47076
601         * objc-act.c (lookup_protocol): Added 'definition_required'
602         argument.  If 'definition_required', and the protocol is not
603         defined, emit a warning.
604         (objc_declare_protocols): Updated call to lookup_protocol.
605         (start_protocol): Same change.
606         (check_protocol_recursively): Same change.
607         (objc_build_protocol_expr): Same change.
608         (lookup_and_install_protocols): Added definition_required argument.
609         Pass it to lookup_protocol.
610         (objc_get_protocol_qualified_type): Updated call to
611         lookup_and_install_protocols.
612         (start_class): Updated calls to lookup_and_install_protocols; pass
613         true to 'definition_required' to get the warnings.
614         (start_protocol): Updated calls to lookup_and_install_protocols.
615
616 2010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
617
618         * objc-act.c (objc_start_category_interface): Produce an error if
619         a class extension is found after the class @implementation.
620
621 2010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
622
623         PR objc/47073
624         * objc-act.c (encode_method_prototype): Fixed both location and
625         format string of error "type %qT does not have a known size".
626
627 2010-12-26  Nicola Pero  <nicola.pero@meta-innovation.com>
628
629         * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
630
631 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
632
633         * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
634
635 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
636
637         * objc-act.c (objc_init): Call using_eh_for_cleanups.
638         (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions.  Do
639         not call using_eh_for_cleanups.
640         (objc_begin_try_stmt): Do not call objc_init_exceptions.
641         (objc_build_throw_stmt): Updated call to
642         objc_maybe_warn_exceptions.
643
644 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
645
646         * objc/objc-act.c (objc_eh_personality): Select personality name on
647         runtime.
648         (objc_init_exceptions): New.
649         (objc_begin_try_stmt): Use objc_init_exceptions.
650         (objc_build_throw_stmt): Likewise.
651
652 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
653
654         * objc-act.c (objc_in_class_extension): New.
655         (objc_start_category_interface): If -fobjc-std=objc1
656         was specified, produce an error if a class extension is used.
657         (objc_finish_interface): Reset objc_in_class_extension to false.
658         (objc_add_property_declaration): Allow a class extension to extend
659         readonly properties in the main @interface to be readwrite.
660         (start_class): Added code to deal with class extensions.  In that
661         case, return the existing interface after adding any additional
662         protocols to it and setting objc_in_class_extension to true.
663         (continue_class): If in a class extension, do not generate the
664         instance variable template.
665
666 2010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
667
668         * objc-act.c (objc_build_throw_stmt): Check that the argument of
669         @throw is an object and emit an error if not.
670
671 2010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
672
673         * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
674         error() when printing an error about the iterating variable or
675         collection not being an object.
676
677 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
678
679         * objc-act.c (objc_finish_foreach_loop): Mark the
680         object_expression as used.
681
682 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
683
684         * objc-act.c: Include c-family/c-objc.h.
685         * objc-lang.c: Same change.
686         * Make-lang.in (objc/objc-act.o): Depend on
687         c-family/c-objc.h.
688         (objc/objc-lang.o): Same change.
689         * config-lang.in (gtfiles): Added c-family/c-objc.h.
690
691 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
692
693         * lang-specs.h: Don't handle -ftraditional.
694
695 2010-12-02  Nicola Pero  <nicola.pero@meta-innovation.com>
696
697         * objc-act.c (objc_build_throw_stmt): Return error_mark_node and
698         not NULL_TREE when a @throw is used outside of a @catch block.
699
700 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
701
702         * objc-act.c (objc_build_volatilized_type): Removed.
703         (objc_non_volatilized_type): Removed.
704         (objc_type_quals_match): Removed.
705         (local_variables_to_volatilize): New.
706         (objc_volatilize_decl): Add the decl to volatilize to
707         local_variables_to_volatilize, but don't volatilize it yet.
708         (objc_finish_function): New.
709         * objc-act.h (local_variables_to_volatilize): New.
710
711 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
712             Mike Stump  <mikestump@comcast.net>
713
714         Allow 'make check-objc -j2'
715         * Make-lang.in (lang_checks_parallelized): New.
716         (check_objc_parallelize): New.
717
718 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
719
720         * objc-act.c (start_class): When a class is reimplemented,
721         generate an error and avoid adding the class to the list of
722         implemented classes again, but do not return error_mark_node.
723
724 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
725
726         * objc-act.c (objc_maybe_build_component_ref): Removed TODO.
727
728 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
729
730         * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
731         is passed as argument.
732         (objc_begin_catch_clause): Added code to deal with an
733         error_mark_node or NULL_TREE argument.  Improved checks for
734         invalid arguments.  Added code to traverse typedefs.
735
736 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
737
738         * objc-act.c (objc_demangle): Return immediately if the string is
739         too short.  Detect names that do not need demangling, and return
740         them unchanged.
741
742 2010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
743
744         Implemented optional properties.
745         * objc-act.h (PROPERTY_OPTIONAL): New.
746         * objc-act.c (objc_add_property_declaration): Set
747         PROPERTY_OPTIONAL if appropriate.
748         (finish_class): When generating definitions of setter and getter
749         methods associated with a property for a protocol, mark them as
750         optional if the property is optional.
751         (maybe_make_artificial_property_decl): Added 'getter_name'
752         argument.  Set PROPERTY_OPTIONAL.
753         (objc_maybe_build_component_ref): Updated calls to
754         maybe_make_artificial_property_decl.  Added code for optional,
755         readonly properties.
756         (objc_build_class_component_ref): Updated call to
757         maybe_make_artificial_property_decl.
758
759 2010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
760
761         * objc-act.c (objc_build_struct): Fixed loops that save and
762         restore TYPE_OBJC_INFO to iterate over all variants of the type; a
763         special case for the current type is then no longer required.
764         Duplicate TYPE_LANG_SPECIFIC for each type before restoring
765         TYPE_OBJC_INFO.
766         (objc_get_protocol_qualified_type): Updated comments.
767
768 2010-11-25  Nicola Pero  <nicola.pero@meta-innovation.com>
769
770         * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
771         after finish_struct, not before, otherwise it may be wiped out by
772         it.  This fixes spurious warnings when a class has more than 15
773         instance variables.
774
775 2010-11-23  Nicola Pero  <nicola.pero@meta-innovation.com>
776
777         PR objc/24358
778         * lang-specs.h: Added objective-c-cpp-output.  Mapped .mi to
779         objective-c-cpp-output instead of objc-cpp-output.  Print a
780         deprecation note every time objc-cpp-output is requested.
781
782 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
783
784         * objc-act.c (write_symbols): Don't declare here.
785
786 2010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
787
788         PR objc/41108
789         * objc-act.c (objc_generate_write_barrier): Added assert to make sure
790         this function is only called with the next runtime.
791
792 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
793
794         PR c/46547
795         * objc-act.c (in_late_binary_op): Remove.
796
797 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
798
799         * objc-act.c (objc_start_class_interface): Do not warn that class
800         attributes are unimplemented.  Pass the attributes to start_class.
801         (objc_start_category_interface): Updated call to start_class.
802         (objc_start_class_implementation): Same change.
803         (objc_start_category_implementation): Same change.
804         (objc_build_class_component_ref): Warn if the class is deprecated.
805         (build_private_template): Mark the template as deprecated if the
806         class is deprecated.
807         (start_class): Added 'attributes' argument.  Emit a warning if
808         using a deprecated class as superclass of a class, or original
809         class of a category.  Recognize the 'deprecated' attribute when
810         starting and interface, and mark the interface with
811         TREE_DEPRECATED if present.  Store attributes in the interface.
812
813 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
814
815         * objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
816         argument.  If it is 'true' and the protocol is deprecated, emit a
817         deprecation warning.
818         (objc_start_protocol): Do not warn that protocol attributes are
819         unimplemented.  Pass the attributes to start_protocol.
820         (start_protocol): Added attributes argument.  Recognize the
821         'deprecated' attribute and mark the protocols with TREE_DEPRECATED
822         if present.  Store attributes in the protocol.
823         (objc_declare_protocols): Added 'attributes' argument.  Recognize
824         the 'deprecated' attribute and mark the protocols with
825         TREE_DEPRECATED if present.  Store attributes in the protocol.
826         Updated call to lookup_protocol.
827         (objc_build_protocol_expr): Updated call to lookup_protocol.
828         (check_protocol_recursively): Same change.
829         (lookup_and_install_protocols): Same change.
830         * objc-act.h: Updated comments.
831
832 2010-11-17  Nicola Pero  <nicola.pero@meta-innovation.com>
833
834         * objc-act.c (lookup_method_in_protocol_list): Search methods in
835         PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
836         they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
837
838 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
839
840         * objc-act.c (objc_build_setter_call): New.
841         (objc_maybe_build_modify_expr): Rewritten to build a compound
842         statement.
843         (objc_build_incr_expr_for_property_ref): Updated calls to
844         objc_maybe_build_modify_expr to call objc_build_setter_call
845         instead.  Use build_modify_expr () instead of build2 (MODIFY_EXPR,
846         ...).  Use convert () instead of build1 (NOP_EXPR, ...).  Use
847         TREE_NO_WARNING on the final compound statement to silence C++
848         warnings.
849
850 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
851
852         * objc-act.c (objc_build_incr_expr_for_property_ref): New.
853         (objc_create_temporary_var): Moved it towards the beginning of the
854         file so that objc_build_incr_expr_for_property_ref can use it.
855
856 2010-11-14  Nicola Pero  <nicola.pero@meta-innovation.com>
857
858         * objc-act.c (objc_add_property_declaration): Check that the decl
859         we received from the parser is a FIELD_DECL; reject array and
860         bitfield properties.  Convert the warning when a property is
861         readonly and a setter is specified into an error.  Convert errors
862         when a property declaration does not match a property declaration
863         in a superclass into warnings.
864         (objc_add_synthesize_declaration_for_property): Use
865         DECL_BIT_FIELD_TYPE to determine the type of an instance variable
866         if it is a bitfield.  Throw an error if we are asked to synthesize
867         setters/getters for a bitfield instance variable but the property
868         is not appropriate - it must be assign and nonatomic.  If the
869         property is readonly, allow the instance variable type to be a
870         specialization of the property type.
871         (objc_type_valid_for_messaging): Fixed returning 'false' for a
872         Class qualified with a protocol when the 'accept_classes' argument
873         is 'false'.
874
875 2010-11-13  Nicola Pero  <nicola.pero@meta-innovation.com>
876
877         * objc-act.c (objc_get_protocol_qualified_type): detect cases
878         where we are asked to attach a protocol to something which is not
879         an Objective-C object type, and produce an error.
880
881 2010-11-11  Nicola Pero  <nicola.pero@meta-innovation.com>
882
883         * objc-act.c (objc_add_property_declaration): Check that the type
884         of a property and of an inherited property match.
885         (objc_maybe_build_component_ref): Tidied up indentation and
886         comments.
887         (objc_common_type): Added new type of check (-5).
888         (objc_add_synthesize_declaration_for_property): Check that the
889         property to synthesize and the instance variable to use have the
890         same type.
891
892 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
893
894         * objc-act.c (objc_init): Use %' in diagnostic.
895         (objc_set_method_opt): Remove trailing '.' from diagnostic.
896
897 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
898
899         * objc-act.c (dump_base_name): Don't declare here.
900
901 2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
902
903         * objc-act.c (objc_add_dynamic_declaration_for_property): Do not
904         search for the @property declation only in the current context,
905         but also in inherited properties.  Do not mark the original
906         PROPERTY_DECL in the @interface or @protocol with
907         PROPERTY_DYNAMIC.
908         (check_methods): To check if a method is associated with a
909         @dynamic property, search for the property in IMPL_PROPERTY_DECL.
910         (check_accessible_methods): Same change.
911         * objc-act.h: Updated comment.
912
913 2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
914
915         * objc-act.c (objc_add_synthesize_declaration_for_property):
916         Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
917         checking for an existing @synthesize or @dynamic declaration.
918         Search for an inherited @property declaration if none is found in
919         the local interface.  If the required instance variable does not
920         exist, return instead of trying to continue to prevent a compiler
921         crash later.  Check that the instance variable is not already
922         being used by another @synthesize.
923         (objc_add_dynamic_declaration_for_property): Iterate over
924         IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
925         existing @synthesize or @dynamic declaration.
926         (objc_synthesize_getter): Search for the getter declaration in
927         protocols and superclasses as well.
928         (objc_synthesize_setter): Search for the setter declaration in
929         protocols and superclasses as well.
930
931 2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
932
933         * objc-act.c (lookup_property): When checking categories, also
934         check the protocols attached to each.
935         (objc_add_property_declaration): Determine the
936         PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here.  Tidied up
937         error message.  Search for an existing property declaration with
938         the same name which would be inherited from the class hiearchy,
939         and produce an error if it has incompatible attributes.
940         (check_methods): Changed second parameter.  If the method is a
941         getter or setter for a property, do not warn if it is inherited as
942         opposed to implemented directly in the class.
943         (check_protocol): Updated calls to check_methods.
944         (finish_class): Do not determine the PROPERTY_SETTER_NAME and
945         PROPERTY_GETTER_NAME here; this is now done earlier, in
946         objc_add_property_declaration.
947         * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
948
949 2010-11-06  Nicola Pero  <nicola.pero@meta-innovation.com>
950
951         Fixed using the Objective-C 2.0 dot-syntax with self and super.
952         * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
953         (maybe_make_artificial_property_decl): Added 'implementation'
954         argument.  Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
955         looking up getters or setters for a class.  If an implementation
956         is specified, search it as well for a getter or setter.
957         (objc_maybe_build_component_ref): Updated calls to
958         maybe_make_artificial_property_decl; added code to deal with
959         'self' and 'super' and with methods declared locally in the
960         implementation.  Store the getter call expression in the
961         PROPERTY_REF instead of throwing it away.
962         (objc_build_class_component_ref): Updated calls to
963         maybe_make_artificial_property_decl, and store the getter call
964         expression in PROPERTY_REF instead of throwing it away.
965         (lookup_method_static): Implemented
966         OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
967         (objc_gimplify_property_ref): Do not build the getter method call
968         here; instead use the one stored in the PROPERTY_REF.  If it's not
969         there, produce helpful error messages.
970         * objc-tree.def (PROPERTY_REF): Increased the number of operands
971         from 2 to 3.  Updated comments.
972         * objc-act.h (PROPERTY_REF_GETTER_CALL): New.
973
974 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
975
976         PR target/44981
977         * objc-act.c (objc_build_string_object): Amend for renamed hook.
978         (objc_string_ref_type_p): New.
979         (objc_check_format_arg): New.
980
981 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
982
983         Fixed using the Objective-C 2.0 dot-syntax with class names.
984         * objc-act.c (objc_build_class_component_ref): New.
985
986 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
987
988         * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
989         category.
990         (objc_type_valid_for_messaging): Added 'accept_classes' argument;
991         if set to 'true', return 'true' for Class objects.  Do not remove
992         more than on pointer indirection.
993         (objc_add_property_declaration): Only warn about 'assign'
994         semantics for Objective-C objects if warn_property_assign_default;
995         and do not warn if the property is readonly or if the type is a Class.
996         (objc_finish_foreach_loop): Updated calls to
997         objc_type_valid_for_messaging.
998
999 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1000
1001         Implemented -fobjc-std=objc1 flag.
1002         * objc-act.c (objc_start_class_interface): If attributes are
1003         specified when flag_objc1_only is set, print an error.
1004         (objc_start_category_interface): Same change.
1005         (objc_start_protocol): Same change.
1006         (objc_add_method_declaration): Same change.
1007         (objc_start_method_definition): Same change.
1008         (objc_build_keyword_decl): Same change.
1009         (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
1010         flag_objc1_set is set, print an error.
1011         (objc_set_method_opt): If flag_objc1_only is set, print an error.
1012         (objc_add_property_declaration): Same change.
1013         (objc_add_synthesize_declaration): Same change.
1014         (objc_add_dynamic_declaration): Same change.
1015         (objc_finish_foreach_loop): Same change.
1016         (objc_maybe_build_component_ref): If flag_objc1_only is set,
1017         return immediately.
1018
1019 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1020
1021         * objc-act.c (maybe_make_artificial_property_decl): New.
1022         (objc_maybe_build_component_ref): Call
1023         maybe_make_artificial_property_decl if a property can not be
1024         found.  Do not call objc_finish_message_expr if
1025         PROPERTY_HAS_NO_GETTER.
1026         * objc-act.h Updated comments.
1027         (PROPERTY_HAS_NO_GETTER): New.
1028         (PROPERTY_HAS_NO_SETTER): New.
1029         * objc-tree.def: Updated comment.
1030
1031 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1032
1033         Implemented format and noreturn attributes for Objective-C methods.
1034         * objc-act.c (objc_start_method_definition): If method attributes
1035         are specified emit a warning and ignore them.
1036         (build_objc_method_call): Moved deprecation warnings from here ...
1037         (objc_finish_message_expr): to here.  Do not emit deprecation
1038         warnings if the receiver is of type 'id'.
1039         (really_start_method): Install 'deprecation' and 'noreturn'
1040         attributes.
1041         (objc_decl_method_attributes): Carefully filter out the list of
1042         attributes, allowing only "noreturn", "format", "sentinel" and
1043         "deprecated".  In the case of "format", adjust the arguments.
1044         Always process the attributes in the same way no matter if
1045         "sentinel" is in the list or not.
1046
1047 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1048
1049         * objc-act.c (objc_maybe_build_component_ref): Warn about using
1050         deprecated properties.
1051         (objc_maybe_printable_name): Support PROPERTY_DECL.
1052
1053 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1054
1055         Implemented Objective-C 2.0 property accessors.
1056         * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
1057         OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
1058         OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
1059         (objc_getProperty_decl): New.
1060         (objc_setProperty_decl): New.
1061         (objc_copyStruct_decl): New.
1062         (objc_getPropertyStruct_decl): New.
1063         (objc_setPropertyStruct_decl): New.
1064         * objc-act.c (build_objc_property_accessor_helpers): New.
1065         (synth_module_prologue): Call
1066         build_objc_property_accessor_helpers.
1067         (lookup_ivar): New.
1068         (objc_synthesize_getter): Implemented synthesizing getters that
1069         work with properties that are not nonatomic, assign properties.
1070         (objc_synthesize_setter): Implemented synthesizing setters that
1071         work with properties that are not nonatomic, assign properties.
1072
1073 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1074
1075         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
1076         * objc-tree.def (PROPERTY_REF): New.
1077         * objc-act.h: Added comments for all the PROPERTY_ macros.
1078         (PROPERTY_NAME): Use DECL_NAME.
1079         (PROPERTY_COPIES): Removed.
1080         (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
1081         (PROPERTY_NONATOMIC): New.
1082         (objc_property_assign_semantics): Make it a typedef.
1083         (PROPERTY_ASSIGN_SEMANTICS): New.
1084         (PROPERTY_DYNAMIC): New.
1085         (PROPERTY_REF_OBJECT): New.
1086         (PROPERTY_REF_PROPERTY_DECL): New.
1087         * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
1088         (in_objc_property_setter_name_context): Removed.
1089         (objc_add_property_declaration): Removed copies and ivar arguments
1090         and code supporting them.  Fixed recovering when readonly and
1091         setter attributes are specified.  Removed support for @property in
1092         @implementation context.  Updated error message.  Double-check
1093         that a property does not have a DECL_INITIAL.  Validate the
1094         property assign semantics and emit appropriate errors and
1095         warnings.  Check for duplicate property declarations.  Set
1096         DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
1097         PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
1098         PROPERTY_DECL.  Do not set PROPERTY_COPIES.  Set
1099         PROPERTY_IVAR_NAME to NULL_TREE.
1100         (objc_build_getter_call): Renamed to
1101         objc_maybe_build_component_ref.  If the property is not found in
1102         the interface, search in the protocol list.  Do not generate the
1103         getter call; instead, build and return a PROPERTY_REF.
1104         (objc_is_property_ref): New.
1105         (objc_setter_func_call): Removed.
1106         (get_selector_from_reference): Removed.
1107         (is_property): Removed.
1108         (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
1109         Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
1110         the PROPERTY_REF.  Generate an error if the property is read-only.
1111         (build_property_reference): Removed.
1112         (objc_finish_message_expr): Removed check to produce "readonly
1113         property can not be set" error when
1114         in_objc_property_setter_name_context.  We now generate the error
1115         earlier, in objc_maybe_build_modify_expr, which will only generate
1116         the setter call if the property is readwrite.
1117         (check_methods): Recognize dynamic properties.
1118         (check_methods_accessible): Same change.
1119         (objc_build_property_ivar_name): Removed.
1120         (objc_build_property_setter_name): Dropped bool argument.  Always
1121         add the ':' at the end.
1122         (objc_gen_one_property_datum): Removed.
1123         (objc_process_getter_setter): Removed.
1124         (objc_synthesize_getter): Mark 'klass' argument as unused.  Use
1125         PROPERTY_GETTER_NAME instead of PROPERTY_NAME.  Set the
1126         DECL_SOURCE_LOCATION of the new method to be the same as the one
1127         for the @synthesize.  Always use PROPERTY_IVAR_NAME as it is
1128         instead of trying to guess what it should be.  Removed use of
1129         CLASS_IVARS.  Use the location of @synthesize for c_finish_return
1130         and c_end_compound_statement.
1131         (objc_synthesize_setter): Mark 'klass' argument as unused.  Use
1132         PROPERTY_SETTER_NAME instead of trying to guess what it should be.
1133         Set the DECL_SOURCE_LOCATION of the new method to be the same as
1134         the one for the @synthesize.  Always use PROPERTY_IVAR_NAME as it
1135         is instead of trying to guess what it should be.  Removed use of
1136         CLASS_IVARS.  Use the location of @synthesize for c_finish_return
1137         and c_end_compound_statement.  Emit an error and keep going,
1138         instead of aborting, if the setter prototype does not have the
1139         expected argument.
1140         (objc_add_synthesize_declaration_for_property): New.
1141         (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
1142         all arguments.  Improved error message.  Filled in the rest of the
1143         function, which used to be a placeholder, with an actual
1144         implementation.
1145         (objc_add_dynamic_declaration_for_property): New.
1146         (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
1147         arguments.  Improved error message.  Filled in the rest of the
1148         function, which used to be a placeholder, with an actual
1149         implementation.
1150         (objc_gen_property_data): Rewritten.
1151         (finish_class): Added explicit switch cases for
1152         CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
1153         PROTOCOL_INTERFACE_TYPE.  Added a default switch case which is
1154         gcc_unreachable.  Rewritten the processing of properties, in
1155         particular to not synthesize prototypes for getters and setters if
1156         they already exist and to install the getter and setter names into
1157         PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME.  Do not generate
1158         warnings about setter, getter and ivar property attributes.
1159         (objc_lookup_ivar): Removed support for properties.
1160         (objc_gimplify_property_ref): New.
1161         (objc_gimplify_expr): Use a switch.  In case of a PROPERTY_REF, call
1162         objc_gimplify_property_ref.
1163
1164 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1165
1166         * objc-act.c (objc_add_property_declaration): Added arguments to
1167         pass the various property attributes that were parsed with the
1168         property declaration.  Process arguments to determine the final
1169         property attributes and produce error messages as appropriate.
1170         Added temporary code to keep the compiler silent about variables
1171         set but not used - for new attributes that are only checked but
1172         have no effect yet.
1173         (property_readonly): Removed.
1174         (property_setter): Removed.
1175         (property_getter): Removed.
1176         (property_ivar): Removed.
1177         (property_copies): Removed.
1178         (objc_set_property_attr): Removed.
1179         * objc-act.h (enum property_assign_semantics): New.
1180
1181 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1182
1183         * objc-act.c (objc_add_property_variable): Renamed to
1184         objc_add_property_declaration.  Added location argument.  Updated
1185         warnings and errors to use it.  Use error, not fatal_error, if a
1186         property declaration is found outside an interface or
1187         implementation context.
1188
1189 2010-10-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1190
1191         * objc-act.c (objc_build_keyword_decl): Updated comments.  Do not
1192         emit a warning that method parameter attributes are unimplemented.
1193         Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
1194         (start_method_def): Copy attributes from each KEYWORD_DECL into
1195         the corresponding PARM_DECL.
1196         (objc_warn_deprecated_use): Removed.
1197         (build_objc_method_call): Call warn_deprecated_use, not
1198         objc_warn_deprecated_use.
1199         (objc_maybe_printable_name): Do not try to get the identifier name
1200         of DECLs that we don't recognize.  Immediately return NULL for them.
1201         (objc_printable_name): Removed C++-specific case, which is no
1202         longer used.  Updated comments.
1203
1204 2010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
1205
1206         * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
1207         (objc_demangle): Return NULL if demangling can not be done because
1208         the string to demangle is not an Objective-C mangled method name.
1209         Be smarter in demangling method names so that at least for methods
1210         with no arguments we are able to almost always demangle '_' correctly.
1211         Updated comments.
1212         (objc_maybe_printable_name): New.
1213         (objc_printable_name): Call objc_maybe_printable_name.  If it
1214         returns NULL, call cxx_printable_name in Objective-C++.
1215
1216 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
1217
1218         Based on the CFString implementation in FSF apple/trunk branch.
1219
1220         * objc/objc-act.c (objc_build_string_object): Handle CFStrings.
1221
1222 2010-10-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1223
1224         * objc-act.c (get_objc_string_decl): Use a switch instead of a
1225         chain of ifs.  Use gcc_unreachable instead of abort.
1226         (add_objc_string): Same change.
1227         (generate_protocol_list): Same change - twice.
1228         (synth_id_with_class_suffix): Same change.
1229         (build_keyword_selector): Same change - twice.
1230         (objc_build_message_expr): Same change.
1231         (objc_build_selector_expr): Same change.
1232         (check_methods): Same change - and added missing gcc_unreachable
1233         for default case.
1234         (check_methods_accessible): Same change - twice, and added missing
1235         gcc_unreachable for default case in one of them.
1236         (start_class): Same change - and added missing gcc_unreachable for
1237         default case.
1238         (continue_class): Same change.
1239         (objc_gen_property_data): Same change.
1240         (finish_class): Same change.
1241         (encode_type_qualifiers): Added missing gcc_unreachable.
1242         (encode_type): Small code tidy up to reduce duplicated code.  Use
1243         gcc_unreachable instead of abort - twice.
1244         (encode_gnu_bitfield): Use a switch instead of a chain of ifs -
1245         twice.  Added missing gcc_unreachable for default case - twice.
1246         (dump_interface): Use a switch instead of a chain of ifs.
1247         (handle_impent): Same change.
1248
1249 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1250
1251         * objc-act.h (objc_inherit_code): Removed.
1252         * objc-act.c (objc_inherit_code): Removed.
1253         (objc_set_method_type): Removed.
1254         (objc_build_method_signature): Added is_class_method argument.
1255         Use it instead of the global objc_inherit_code variable.
1256         (objc_add_method_declaration): Same change.
1257         (objc_start_method_definition): Same change.
1258         (objc_generate_cxx_ctor_or_dtor): Updated call to
1259         objc_start_method_definition.  Do not call objc_set_method_type.
1260         (adjust_type_for_id_default): Mark as inline.
1261         (objc_synthesize_getter): Updated call to
1262         objc_start_method_definition.  Do not set objc_inherit_code.
1263         (objc_synthesize_setter): Updated call to
1264         objc_start_method_definition.  Do not set objc_inherit_code.
1265
1266 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1267
1268         Merge from 'apple/trunk' branch on FSF servers.  Obvious updates
1269         to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
1270         get it to compile in the current trunk.
1271
1272         2006-01-27 Fariborz Jahanian <fjahanian@apple.com>
1273
1274         Radar 4345837
1275         * objc/objc-act.c (hash_class_name_enter): New.
1276         (hash_class_name_lookup): New.
1277         (objc_declare_alias): Enter alias name into hash table.
1278         (objc_declare_class): Enter class name into hash table.
1279         (objc_is_class_name): Do a hash look up of class name.
1280         (hash_init): Initialize the two new hash tables.
1281         * objc-act.h: Added cls_name_hash_list and als_name_hash_list
1282         declarations, removed class_chain and alias_chain.
1283
1284 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1285
1286         * objc-lang.c (finish_file): Removed.
1287         * objc-act.c (objc_finish_file): Renamed to
1288         objc_write_global_declarations.  Do not try to instantiate C++
1289         templates when compiling Objective-C++ as this is now
1290         automatically done before this function is called.  Do not check
1291         for syntax-only run or PCH generation as this is done by the
1292         callers.
1293         * objc-act.h (objc_finish_file): Removed.
1294
1295 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1296
1297         Implemented parsing @synthesize and @dynamic for
1298         Objective-C/Objective-C++.
1299         * objc-act.c (objc_add_synthesize_declaration): New.
1300         (objc_add_dynamic_declaration): New.
1301
1302 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1303
1304         * objc-act.c (lookup_and_install_protocols): Return NULL if passed
1305         error_mark_node.
1306
1307 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1308
1309         Merge from 'apple/trunk' branch on FSF servers.
1310
1311         2006-03-10  Fariborz Jahanian <fjahanian@apple.com>
1312
1313         Radar 4407151
1314         * objc/objc-act.c (objc_is_class_name): template parameter is not
1315         an objective class name.
1316         (objc_generate_cxx_cdtors): Check for the null
1317         objc_implementation_context.
1318
1319 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1320
1321         Merge from 'apple/trunk' branch on FSF servers.
1322
1323         2005-11-08  Fariborz Jahanian <fjahanian@apple.com>
1324
1325         Radar 4330422
1326         * objc/objc-act.c (objc_non_volatilized_type): New
1327
1328         2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
1329
1330         Radar 4204796
1331         * objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
1332         types with proper attribute set and correctly.
1333         (objc_volatilize_decl): Remove unneeded code.
1334         (objc_type_quals_match): Use the new attribute to check on
1335         'volatilzed' type.
1336         (hash_init): removed unneeded code.
1337
1338 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1339
1340         Merge from 'apple/trunk' branch on FSF servers.
1341
1342         2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1343
1344         Radar 4133425
1345         * objc-act.c (objc_diagnose_private_ivar): New.
1346
1347 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
1348
1349         * objc-act.c: Rename 'objc_public_flag' to  objc_ivar_visibility and
1350         make its type 'objc_ivar_visibility_kind'.
1351         (objc_start_class_interface): Update to use visibility enum.
1352         (objc_start_class_implementation): Likewise.
1353         (objc_set_visibility): Update to use visibility enum, warn that
1354         @package is handle as per @public.
1355         (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
1356         * objc-act.h: Rename 'objc_public_flag' to  objc_ivar_visibility and
1357         make its type 'objc_ivar_visibility_kind'.
1358
1359 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1360
1361         merge from FSF apple 'trunk' branch.
1362         2006 Fariborz Jahanian <fjahanian@apple.com>
1363
1364         Radars 4436866, 4505126, 4506903, 4517826
1365         * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New.
1366         property_readonly, property_getter, property_setter, property_ivar,
1367         property_copies, in_objc_property_setter_name_context: New vars.
1368         (objc_set_property_attr): New.
1369         (objc_add_property_variable): New.
1370         (lookup_property_in_list): New.
1371         (lookup_property): New.
1372         (objc_build_getter_call): New.
1373         (objc_setter_func_call): New.
1374         (get_selector_from_reference): New.
1375         (objc_build_setter_call): New.
1376         (is_property): New.
1377         (build_property_reference): New.
1378         (objc_finish_message_expr): Detect readonly property and warn.
1379         (objc_build_property_ivar_name): New.
1380         (objc_build_property_setter_name): New.
1381         (objc_gen_one_property_datum): New.
1382         (objc_process_getter_setter): New.
1383         (objc_synthesize_getter): New.
1384         (objc_synthesize_setter): New.
1385         (objc_gen_property_data): New.
1386         (finish_class): Generate property data.
1387         (comp_proto_with_proto): Separated from ...
1388         (match_proto_with_proto): ... New.
1389         (objc_lookup_ivar): Handle properties.
1390         * objc-tree.def (PROPERTY_DECL): New tree code.
1391         * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size.
1392         (METHOD_PROPERTY_CONTEXT): New.
1393         (PROPERTY_NAME): New.
1394         (PROPERTY_GETTER_NAME): New.
1395         (PROPERTY_SETTER_NAME): New.
1396         (PROPERTY_IVAR_NAME): New.
1397         (PROPERTY_READONLY): New.
1398         (PROPERTY_COPIES): New.
1399         (TOTAL_CLASS_RAW_IVARS): New.
1400         (CLASS_PROPERTY_DECL): New.
1401         (IMPL_PROPERTY_DECL): New.
1402         * objc-lang.c (objc_init_ts): Update fields for property_decl.
1403
1404 2010-10-13  Richard Henderson  <rth@redhat.com>
1405
1406         * objc-act.c (objc_eh_personality): Update call to
1407         build_personality_function.
1408
1409 2010-10-13  Iain Sandoe  <iains@gcc.gnu.org>
1410
1411         merge from FSF apple 'trunk' branch.
1412
1413         2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
1414         Radar 3803157 (method attributes)
1415         * objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
1416         * objc/objc-act.c (objc_decl_method_attributes): New.
1417         (objc_add_method_declaration): Process method's attribute.
1418         (objc_start_method_definition): Ditto.
1419         (build_objc_method_call): Inject method attribute into
1420         built function type.
1421         (objc_method_decl): New.
1422         (objc_warn_deprecated)use): New.
1423
1424 2010-10-07  Andi Kleen  <ak@linux.intel.com>
1425
1426         * Make-lang.in (cc1obj-dummy): Remove.
1427         (cc1obj-checksum): Change to run checksum over object files
1428         and options only.
1429
1430 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1431
1432         PR objc/45925
1433         * objc-act.c (objc_finish_foreach_loop): Convert return value of
1434         countByEnumeratingWithState:objects:count: to long unsigned int.
1435
1436 2010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
1437
1438         * objc-act.c (build_objc_method_call): Replace calls to
1439         build_function_call () with the VEC equivalent.  Construct parameter
1440         lists as VECs.
1441
1442 2010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
1443
1444         * objc-act.c (objc_build_message_expr):  Call mark_exp_read () to
1445         signal that the receiver has been used.
1446
1447 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1448
1449         * README: Obsolete file removed.
1450
1451 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1452
1453         Implemented fast enumeration for Objective-C.
1454         * objc-act.c (build_fast_enumeration_state_template): New.
1455         (TAG_ENUMERATION_MUTATION): New.
1456         (TAG_FAST_ENUMERATION_STATE): New.
1457         (synth_module_prologue): Call build_fast_enumeration_state_template() and set up
1458         objc_enumeration_mutation_decl.
1459         (objc_create_temporary_var): Allow providing a name to temporary
1460         variables.
1461         (objc_build_exc_ptr): Updated calls to
1462         objc_create_temporary_var().
1463         (next_sjlj_build_try_catch_finally): Same change.
1464         (objc_finish_foreach_loop): New.
1465         * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
1466         OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
1467         objc_enumeration_mutation_decl.
1468
1469         Merge from 'apple/trunk' branch on FSF servers.
1470
1471         2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
1472
1473         Radar 4507230
1474         * objc-act.c (objc_type_valid_for_messaging): New routine to check
1475         for valid objc object types.
1476         (objc_finish_foreach_loop): Check for invalid objc objects in
1477         foreach header.
1478
1479 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
1480
1481         Merge from 'apple/trunk' branch on FSF servers.
1482
1483         2005-10-17  Fariborz Jahanian <fjahanian@apple.com>
1484
1485         Radar 4290840
1486         * objc-act.c (objc_start_method_definition): Check for
1487         error_mark_node for the selector name and make a quick exit.
1488
1489 2010-10-04  Andi Kleen <ak@linux.intel.com>
1490
1491         * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
1492
1493 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
1494
1495         merge from FSF 'apple/trunk' branch.
1496         2006-01-30  Fariborz Jahanian <fjahanian@apple.com>
1497
1498        Radar 4386773
1499        * objc/objc-act.c (objc_set_method_opt): New function.
1500        (objc_start_protocol, objc_finish_interface): Reset
1501        objc_method_optional_flag flag.
1502        (objc_add_method_declaration): Pass on the new
1503        flag to objc_add_method.
1504        (objc_add_method): Add optional methods to new chain in
1505        the protocol class.
1506        * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS,
1507        CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
1508        class's optional method chains.
1509
1510 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1511
1512         Merge from 'apple/trunk' branch on FSF servers.
1513
1514         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
1515
1516         Radar 4278236
1517         * objc-act.c (objc_declare_class): Pick the right
1518         type tree.
1519
1520 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1521
1522         Merge from 'apple/trunk' branch on FSF servers.
1523
1524         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
1525
1526         Radar 4281748
1527         * objc-act.c (objc_check_global_decl): New
1528
1529 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1530
1531         * objc-act.c (objc_is_reserved_word): Removed.
1532
1533 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1534
1535         * objc-act.c (objc_add_method_declaration): Handle and ignore
1536         attributes.
1537         (objc_start_method_definition): Likewise.
1538         (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
1539         (objc_build_keyword_decl): Handle and ignore attributes.
1540
1541 2010-09-28  Richard Henderson  <rth@redhat.com>
1542
1543         * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
1544
1545 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1546
1547         * objc-act.c (objc_start_class_interface): Handle and ignore attributes.
1548         (objc_start_category_interface): Likewise.
1549         (objc_start_protocol): Likewise.
1550
1551 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1552
1553         Merge from 'apple/trunk' branch on FSF servers.
1554
1555         2005-08-23  Stuart Hastings <stuart@apple.com>
1556                     Ziemowit Laski  <zlaski@apple.com>
1557
1558         Radar 4209854
1559         * objc-act.c (objc_decay_parm_type): New function.
1560         (get_arg_type_list): Decay types for all named arguments.
1561         (objc_push_parm): Rebuild the PARM_DECL if its type has
1562         been decayed.
1563
1564 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1565
1566         * objc-act.c (encode_type): Fixed encoding enums with the next
1567         runtime.
1568
1569 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1570
1571         Merge from 'apple/trunk' branch on FSF servers.
1572
1573         2005-07-18  Ziemowit Laski  <zlaski@apple.com>
1574
1575         Radar 4175534
1576         * objc-act.c (objc_compare_types): A new silent comparison
1577         mode (-4), differing from regular comparison (-3) in that
1578         'false' is returned instead of issuing warnings.
1579
1580 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1581
1582         * objc-act.c (encode_type): Do not add 'r' with the next runtime.
1583         (encode_aggregate_within): Reorganized code to be more readable.
1584         (encode_aggregate_fields): Updated second argument to be 'bool'
1585         instead of 'int'.
1586
1587 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1588
1589         PR objc/45763
1590         PR objc/25450
1591         PR objc/25464
1592         * objc-act.c: Improved comments for encoding functions.
1593         (encode_aggregate_within): For the GNU runtime, rewritten some
1594         obsfuscated code to clarify the various cases.
1595         (encode_aggregate): Function removed.
1596         (encode_array): Generate an error if asked to encode an incomplete
1597         array as part of generating instance variables.  Else, when
1598         encoding an incomplete array inside a structure, encode it as an
1599         array of zero size.
1600         (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
1601         '^c' instead of '*'.
1602         (encode_gnu_bitfield): Encode enumerated types exactly in the same
1603         type as integer types instead of using a hardcoded 'i'.  If asked
1604         to encode a non-integer type as a bitfield, do not abort
1605         compilation immediately; instead generate an error, then skip the
1606         type.
1607         (encode_type): Use a 'switch' instead of a sequence of 'if's.
1608         Added a 'default' clause that gets executed if the type can not be
1609         matched, and that encodes it as '?' (unknown) and produces a
1610         warning.  For the GNU runtime, encode enumerated types exactly in
1611         the same way as integer types instead of using a hardcoded 'i'.
1612         Encode long double as 'D'.  Encode 128-bit integers as 'T' or 't'.
1613         Encode C++ reference types as pointers.  Call encode_vector to
1614         encode vectors.
1615         (encode_vector): New function.
1616
1617 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1618
1619         Merge from 'apple/trunk' branch on FSF servers.  I modified the
1620         changes to be used only when compiling for the NeXT runtime.
1621
1622         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
1623
1624         Radar 4301047
1625
1626         * objc-act.c (encode_type): Remove the hack.
1627
1628         2005-07-20  Ziemowit Laski  <zlaski@apple.com>
1629
1630         Radar 4136935
1631         * objc-act.c (pointee_is_readonly): New function.
1632         (encode_pointer, encode_aggregate_within, encode_type):
1633         Attempt to emulate GCC 3.3 when generating type encodings.
1634
1635 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1636
1637         Merge from 'apple/trunk' branch on FSF servers.
1638
1639         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
1640
1641         Radar 4229905
1642         * objc-act.c (objc_have_common_types): New function.
1643
1644         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
1645
1646         Radar 4154928
1647         * objc-act.c (objc_common_type): New function.
1648
1649 2010-09-27  Richard Guenther  <rguenther@suse.de>
1650
1651         * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
1652         (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
1653
1654 2010-09-26  Nicola Pero  <nicola.pero@meta-innovation.com>
1655
1656         * objc-act.c: Removed historical, obsolete comment at the top of
1657         the file.
1658
1659 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1660
1661         PR objc/23710
1662         * objc-act.c (objc_start_method_definition): Do not abort upon a
1663         'method definition not in @implementation context' error.  Return
1664         'false' instead.
1665
1666 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1667
1668         PR objc/25965
1669         * objc-act.c (objc_get_interface_ivars): New function.
1670         (objc_collecting_ivars): New variable.
1671         (continue_class): Set and reset objc_collecting_ivars for context.
1672
1673 2010-09-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1674
1675         Merge from 'apple/trunk' branch on FSF servers.
1676
1677         2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
1678
1679         Radar 4457381
1680         * objc/objc-act.c (objc_finish_message_expr): Look for message in
1681         @class's protocol list.
1682
1683         2006-02-07  Fariborz Jahanian <fjahanian@apple.com>
1684
1685         Radar 4219590
1686         * objc/objc-act.c (objc_start_method_definition): Initialize
1687         break/continue labels.
1688
1689         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
1690
1691         Radar 4174166
1692         * objc-act.c (objc_compare_types): Compare function
1693         pointers; indicate success if the right-hand side has
1694         a return type that is covariant, and the argument types
1695         contravariant, with those of the left side.
1696
1697         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
1698
1699         Radar 4216500
1700         * objc-act.c (objc_get_protocol_qualified_type): When looking
1701         at a typedef, retrieve the precise type it describes (rather
1702         than merely looking up a class by name).
1703
1704 2010-09-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1705
1706         * objc/objc-act.c (objc_begin_try_stmt): Generate an error if
1707         -fobjc-exceptions was not used.  (objc_build_throw_stmt): Same
1708         change.
1709
1710 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
1711
1712         * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
1713
1714 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
1715
1716         PR objc/44140
1717         * objc-act.c: build_objc_string_decl() remove declaration.
1718         (finish_var_decl): Remove forcing of var output and marking
1719         as "Used".
1720         (init_def_list): Use integer_zero_node.
1721         (init_objc_symtab): Use integer_zero_node, make the short
1722         integer type specific on relevant nodes.
1723         (generate_objc_symtab_decl): Remove call to
1724         forward_declare_categories().  Use null_pointer_node where
1725         appropriate.
1726         (build_module_descriptor): Comment and mark this item as
1727         DECL_PRESERVE_P.
1728         (generate_static_references): Use gcc_unreachable instead of
1729         abort ().
1730         (diagnose_missing_method): New.
1731         (build_next_selector_translation_table): New.
1732         (build_gnu_selector_translation_table): New.
1733         (add_objc_string): Merge code from build_objc_string_decl...
1734         ... and delete build_objc_string_decl().
1735         (generate_dispatch_table): Make integer types explicit.
1736         (generate_category): Pass implent and arrange for the data
1737         to be extracted within the routine.  Do not start new vars,
1738         but finish the ones collcted during parsing.
1739         (generate_shared_structures): Likewise.
1740         (finish_objc):  Reorder code so that we finish variables before
1741         referencing them.  Save the global data before calling meta-data
1742         creation routines, and pass the current reference to the two
1743         main routines.  Only call generate_objc_image_info () for the
1744         NeXT runtime.
1745         (generate_classref_translation_entry): Comment on and make this
1746         item DECL_PRESERVE_P.
1747         (handle_class_ref): Use varpool interfaces, comment on and make
1748         this item DECL_PRESERVE_P.
1749         (handle_impent): Likewise.
1750         (generate_objc_image_info): Only generate when the content is
1751         non-zero.  Make integer types explict.
1752
1753 2010-07-03  Nathan Froyd  <froydnj@codesourcery.com>
1754
1755         PR objc/24867
1756         * objc-act.c (build_sized_array_type): New function.
1757         (add_objc_string): Use it.
1758         (generate_protocol_list): Likewise.
1759         (generate_objc_image_info): Likewise.
1760         (add_field_decl): New function.
1761         (objc_build_struct): Use a VEC rather than building a TREE_LIST.
1762         (generate_struct_by_value_array): Use add_field_decl.
1763         (build_objc_symtab_template): Likewise.
1764         (build_module_descriptor): Likewise.
1765         (build_objc_exception_stuff): Likewise.
1766         (build_protocol_template): Likewise.
1767         (build_method_prototype_list_template): Likewise.
1768         (build_method_prototype_template): Likewise.
1769         (build_category_template): Likewise.
1770         (build_selector_template): Likewise.
1771         (build_class_template): Likewise.
1772         (build_super_template): Likewise.
1773         (build_ivar_template): Likewise.
1774         (build_ivar_list_template): Likewise.
1775         (build_method_list_template): Likewise.
1776         (build_method_template): Likewise.
1777
1778 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
1779
1780         * objc-act.c: Do not include except.h.
1781
1782 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1783
1784         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
1785         allocation.
1786
1787         * objc-act.c (objc_volatilize_decl): Likewise.
1788         (objc_build_string_object): Likewise.
1789         (hash_init): Likewise.
1790         (hash_enter): Likewise.
1791         (hash_add_attr): Likewise.
1792         (add_class): Likewise.
1793         (start_class): Likewise.
1794
1795 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
1796
1797         * objc-act.c: Update include path for moved files.
1798         * objc-lang.c: Likewise.
1799         * config-lang.in: Update paths in gtfiles for files in c-family/.
1800
1801 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
1802
1803         * objc-act.c (build_next_objc_exception_stuff): Give setjmp a
1804         varargs type instead of a zero-argument type.
1805
1806 2010-05-30  Nathan Froyd  <froydnj@codesourcery.com>
1807
1808         * objc-act.c (synth_module_prologue): Use build_function_type_list
1809         instead of build_function_type.
1810         (build_module_initializer_routine): Likewise.
1811         (build_next_objc_exception_stuff): Likewise.
1812         (build_objc_exception_stuff): Likewise.
1813
1814 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
1815
1816         * objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
1817         * Make-lang.in (objc/objc-act.o): Update dependencies.
1818
1819 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
1820
1821         * objc-act.h: Do not include gimple.h.
1822         * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
1823         Include gimple.h.  Explain why except.h has to be included.
1824         * objc-lang.c: Do not include diagnostics.h.
1825         * Make-lang.in: Update dependencies.
1826
1827 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
1828
1829         * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
1830         mismatch code for VECs.
1831
1832 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
1833
1834         * objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
1835         Use build_constructor instead of build_constructor_from_list.
1836         (objc_build_string_object): Build a VEC argument for
1837         objc_build_constructor.
1838         (init_def_list): Likewise.
1839         (init_objc_symtab): Likewise.
1840         (init_module_descriptor): Likewise.
1841         (generate_static_references): Likewise.
1842         (build_selector_translation_table): Likewise.
1843         (build_descriptor_table_initializer): Likewise.
1844         (generate_descriptor_table): Likewise.
1845         (build_protocol_initializer): Likewise.
1846         (build_ivar_list_initializer): Likewise.
1847         (generate_ivars_list): Likewise.
1848         (build_dispatch_table_initializer): Likewise.
1849         (generate_dispatch_table): Likewise.
1850         (generate_protocol_list): Likewise.
1851         (build_category_initializer): Likewise.
1852         (build_shared_structure_initializer): Likewise.
1853         (generate_objc_image_info): Likewise.
1854
1855 2010-04-30  Iain Sandoe  <iains@gcc.gnu.org>
1856
1857         PR objc++/32052
1858         * objc-act.c (encode_aggregate_within): Encode structure tags
1859         with template args for ObjC++.
1860
1861 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1862
1863         * objc-act.c: Do not include varray.h.
1864
1865 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
1866
1867         PR c/18624
1868         * objc-act.c (finish_var_decl, objc_begin_catch_clause,
1869         really_start_method, get_super_receiver, handle_class_ref): Set
1870         DECL_READ_P in addition to TREE_USED.
1871
1872 2010-04-07  Iain Sandoe <iains@gcc.gnu.org>
1873
1874         PR objc/35996
1875         * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
1876         -fgnu-runtime and set flag_objc_gc to zero.
1877
1878 2010-04-07  Iain Sandoe <iains@gcc.gnu.org>
1879
1880         PR objc++/23716
1881         * objc-act.c (build_module_initializer_routine): Make the argument
1882         to objc_start_function NULL_TREE when compiling ObjC++.
1883
1884 2010-02-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1885             Mike Stump  <mikestump@comcast.net>
1886
1887         PR objc/43061
1888         * objc-act.c (finish_var_decl): Set the generated symbols as "used".
1889
1890 2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
1891
1892         * objc-act.c (objc_substitute_decl, build_ivar_reference,
1893         get_super_receiver): Update build_indirect_ref calls.
1894
1895 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
1896
1897         * objc-act.c (generate_shared_structures): Remove unused sc_spec and
1898         decl_specs variables.
1899         (objc_build_message_expr): Remove unused loc variable.
1900         (objc_finish_message_expr): Remove unused saved_rtype variable.
1901         (encode_field_decl): Remove unused type variable.
1902
1903         PR obj-c++/42156
1904         * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
1905         type variants that don't have it initialized yet.
1906
1907 2009-09-14  Jan Hubicka  <jh@suse.cz>
1908
1909         * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
1910
1911 2009-09-14  Richard Henderson  <rth@redhat.com>
1912
1913         * objc-act.c (objc_init_exceptions): Don't call
1914         default_init_unwind_resume_libfunc.
1915         (objc_build_exc_ptr): Use __builtin_eh_pointer.
1916
1917 2009-09-13  Richard Guenther  <rguenther@suse.de>
1918         Rafael Avila de Espindola  <espindola@google.com>
1919
1920         * objc-act.c (objc_eh_runtime_type): Export.
1921         (objc_init_exceptions): Remove.  Move warning code ...
1922         (objc_begin_try_stmt): ... here
1923         (objc_build_throw_stmt): ... and here.
1924         (objc_eh_personality_decl): New.
1925         (objc_eh_personality): New function.
1926         * objc-act.h (objc_eh_runtime_type): Declare.
1927         (objc_eh_personality): Likewise.
1928         * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
1929         (LANG_HOOKS_EH_PERSONALITY): Likewise.
1930
1931 2009-09-03  Diego Novillo  <dnovillo@google.com>
1932
1933         * objc-lang.c (lang_hooks): Remove const qualifier.
1934
1935 2009-08-20  Richard Guenther  <rguenther@suse.de>
1936
1937         * objc-act.c: Include c-lang.h
1938         * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
1939
1940 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
1941             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1942
1943         PR 40435
1944         * objc-act.c: Add location argument to all calls to
1945         build_fold_addr_expr.
1946
1947 2009-07-14  Taras Glek  <tglek@mozilla.com>
1948             Rafael Espindola  <espindola@google.com>
1949
1950         * Make-lang.in (objc.install-plugin): New target for
1951         installing plugin headers.
1952
1953 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1954
1955         * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
1956         EXPR_LOCATION.
1957
1958 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1959
1960         * objc-act.c: Replace %J by an explicit location. Update all
1961         calls.
1962
1963 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1964
1965         * objc-act.c: Replace %H by an explicit location. Update all
1966         calls.
1967
1968 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
1969
1970         PR objc/28050
1971         * objc-act.c (objc_build_message_args): Return if ARGS is the
1972         error_mark_node.
1973
1974 2009-06-19  Ian Lance Taylor  <iant@google.com>
1975
1976         * objc-act.c (objc_in_struct, objc_struct_types): Remove.
1977         (objc_struct_info): New static variable.
1978         (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
1979         and &objc_struct_types, to start_struct.
1980         (objc_finish_struct): Likewise for finish_struct.
1981
1982 2009-06-15  Ian Lance Taylor  <iant@google.com>
1983
1984         * objc-act.c (objc_start_function): Don't set
1985         label_context_stack_se or label_context_stack_vm.
1986
1987 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
1988
1989         * objc-act.c (finish_var_decl): Pass location to finish_decl.
1990         (objc_get_parm_info): Same.
1991         (get_super_receiver): Same.
1992         * objc-act.c (objc_build_component_ref): Pass location to
1993         build_compound_ref.
1994         (build_module_initializer_routine): Pass location to
1995         c_end_compound_stmt.
1996         (objc_generate_static_init_call): Pass location to build_stmt.
1997         (build_typed_selector_reference): New location argument.
1998         (build_selector_reference): Same.
1999         (objc_substitute_decl): Pass location to build_array_ref.
2000         (next_sjlj_build_try_catch_finally): Pass location to build_stmt.
2001         (objc_begin_catch_clause): Same.
2002         (objc_finish_try_stmt): Same.
2003         (objc_finish_catch_clause): Pass location to c_end_compound_stmt.
2004         (objc_build_throw_stmt): New argument.
2005         (generate_shared_structures): Pass location to build_c_cast.
2006         (objc_build_message_expr): Use local location.
2007         (objc_finish_message_expr): Use input_location.
2008         (build_objc_method_call): New argument.
2009         (objc_build_selector_expr): Same.
2010         (get_super_receiver): Pass location to build_c_cast,
2011         build_modify_expr, build_compound_expr.
2012         * objc-act.c: Add location to all calls to start_struct, build_decl,
2013         finish_struct.
2014
2015 2009-06-09  Ian Lance Taylor  <iant@google.com>
2016
2017         * objc-act.c (objc_gimplify_expr): Change return type to int.
2018         * objc-act.h: Update declaration.
2019
2020 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2021
2022         * objc-act.c (objc_init): Skip print_struct_values during
2023         -fcompare-debug-second.
2024
2025 2009-06-03  Ian Lance Taylor  <iant@google.com>
2026
2027         * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
2028         $(SYSTEM_H).
2029
2030 2009-05-27  Ian Lance Taylor  <iant@google.com>
2031
2032         * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
2033         $(LINKER).
2034         (cc1obj$(exeext)): Likewise.
2035
2036 2009-05-26  Ian Lance Taylor  <iant@google.com>
2037
2038         * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
2039         (cc1obj$(exeext)): Likewise.
2040
2041 2009-05-20  Ian Lance Taylor  <iant@google.com>
2042
2043         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
2044         than NULL_TREE to build_special_member_call.
2045
2046 2009-05-10  Ian Lance Taylor  <iant@google.com>
2047
2048         * objc-act.c (objc_building_struct): New static variable.
2049         (objc_in_struct, objc_struct_types): New static variables.
2050         (objc_start_struct, objc_finish_struct): New static functions.
2051         (generate_struct_by_value_array): Call objc_start_struct instead
2052         of start_struct, and call objc_finish_struct instead of
2053         finish_struct.
2054         (objc_build_struct, build_objc_symtab_template): Likewise.
2055         (build_module_descriptor): Likewise.
2056         (build_next_objc_exception_stuff): Likewise.
2057         (build_protocol_template): Likewise.
2058         (build_method_prototype_list_template): Likewise.
2059         (build_method_prototype_template): Likewise.
2060         (build_category_template, build_selector_template): Likewise.
2061         (build_class_template, build_super_template): Likewise.
2062         (build_ivar_template, build_ivar_list_template): Likewise.
2063         (build_method_list_template): Likewise.
2064         (build_method_template): Likewise.
2065
2066 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
2067
2068         * objc-act.c: Include intl.h.
2069         (objc_lookup_protocol): Use complete sentences for diagnostics
2070         with %qE for identifiers and translating results of
2071         gen_type_name_0 to locale character set.
2072         (objc_check_decl, check_protocol_recursively,
2073         lookup_and_install_protocols, objc_build_string_object,
2074         objc_get_class_reference, objc_declare_alias, objc_declare_class,
2075         objc_get_class_ivars, error_with_ivar, check_duplicates,
2076         objc_finish_message_expr, objc_build_protocol_expr,
2077         objc_build_selector_expr, build_ivar_reference, objc_add_method,
2078         add_category, add_instance_variable, objc_is_public,
2079         check_methods, check_methods_accessible, check_protocol,
2080         start_class, finish_class, start_protocol, really_start_method,
2081         get_super_receiver, objc_lookup_ivar): Use %E and %qE for
2082         identifiers in diagnostics.  Translate generated text to locale
2083         character set as needed.
2084         (check_protocol, check_protocols): Change name parameter to type
2085         tree.
2086         (lang_report_error_function): Remove.
2087
2088 2009-04-27  Ian Lance Taylor  <iant@google.com>
2089
2090         * objc-act.c (objc_gimplify_expr): Add casts to enum type.
2091
2092 2009-04-24  Ian Lance Taylor  <iant@google.com>
2093
2094         * objc-act.c (get_super_receiver): Update calls to
2095         build_modify_expr to pass new argument.
2096
2097 2009-04-21  Taras Glek <tglek@mozilla.com>
2098
2099         * objc-act.c: Update GTY annotations to new syntax
2100         * objc-act.h: Likewise
2101
2102 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2103
2104         * ChangeLog: Add copyright and license notices.
2105
2106 2009-04-20  Ian Lance Taylor  <iant@google.com>
2107
2108         * objc-act.c (objc_rewrite_function_call): Change parameter from
2109         params to first_param.  Change all callers.
2110
2111 2009-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
2112
2113         PR bootstrap/39583
2114         * objc-act.c (in_late_binary_op): Define for Objective-C++.
2115
2116 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2117
2118         PR c/456
2119         PR c/5675
2120         PR c/19976
2121         PR c/29116
2122         PR c/31871
2123         PR c/35198
2124         * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
2125
2126 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
2127
2128         PR bootstrap/38262
2129         * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
2130         remove GMPLIBS.
2131
2132 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
2133
2134         * objc-act.c (objc_build_string_object): Pass location to
2135         build_unary_op.
2136         (init_def_list): Same.
2137         (init_objc_symtab): Same.
2138         (init_module_descriptor): Same.
2139         (build_module_initializer_routine): Same.
2140         (generate_static_references): Same.
2141         (build_typed_selector_reference): Same.
2142         (add_objc_string): Same.
2143         (objc_substitute_decl): Same.
2144         (objc_build_ivar_assignment): Same.
2145         (objc_build_global_assignment): Same.
2146         (objc_build_strong_cast_assignment): Same.
2147         (generate_protocols): Same.
2148         (build_protocol_initializer): Same.
2149         (build_dispatch_table_initializer): Same.
2150         (generate_protocol_list): Same.
2151         (build_category_initializer): Same.
2152         (build_shared_structure_initializer): Same.
2153         (generate_shared_structures): Same.
2154         (objc_build_protocol_expr): Same.
2155         (build_ivar_reference): Same.
2156         (get_super_receiver): Same.
2157
2158 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
2159
2160         * objc-act.c (next_sjlj_build_enter_and_setjmp): Call
2161         c_common_truthvalue_conversion with location.
2162         (next_sjlj_build_catch_list): Same.
2163         (next_sjlj_build_try_catch_finally): Same.
2164
2165 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2166
2167         PR objc/37460
2168         * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
2169         * objc-act.h (objc_get_callee_fndecl): Remove prototype.
2170         * objc-act.c (objc_get_callee_fndecl): Kill.
2171
2172 2008-09-17  Jan Hubicka  <jh@suse.cz>
2173
2174         PR c++/18071
2175         * objc/objc-act.c (objc_finish_method_definition): Do not set
2176         DECL_INLINE.
2177
2178 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
2179
2180         * objc-act.c (build_typed_selector_reference): Pass input_location to
2181         build_unary_op calls.
2182         (build_selector_reference): Same, but to build_array_ref.
2183         (objc_substitute_decl): Same.
2184         (build_ivar_reference): Same, but to build_indirect_ref.
2185         (get_super_receiver): Same.
2186
2187 2008-07-28  Richard Guenther  <rguenther@suse.de>
2188
2189         Merge from gimple-tuples-branch.
2190
2191         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
2192
2193         * Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
2194         (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
2195         * objc-act.h: Include gimple.h instead of tree-gimple.h.
2196         * ipa-reference.c: Same.
2197
2198         2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
2199
2200         * objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
2201         * objc-act.h (objc_gimplify_expr): Change prototype accordingly.
2202
2203 2008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2204
2205         * objc-act.c: Fix comment typos.
2206
2207 2008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2208
2209         * objc-act.c (objc_start_class_interface,
2210         objc_start_category_interface, objc_start_class_implementation,
2211         objc_start_category_implementation, objc_build_struct,
2212         generate_static_references, build_private_template,
2213         lookup_category, objc_add_method, add_category,
2214         add_instance_variable, objc_is_public, conforms_to_protocol,
2215         start_class, continue_class, finish_class): Avoid C++ keywords.
2216
2217 2008-07-14  Jason Merrill  <jason@redhat.com>
2218
2219         PR objc++/36723
2220         * objc-act.c (objc_build_constructor): Update C++ tweak.
2221
2222 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
2223
2224         * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
2225         of DECL_IN_SYSTEM_HEADER.
2226
2227 2008-07-11  Ian Lance Taylor  <iant@google.com>
2228
2229         * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
2230         etc., not just when OBJCPLUS is defined.
2231
2232 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2233
2234         * objc-act.c (setup_string_decl, objc_build_string_object,
2235         hash_interface, eq_interface, objc_begin_try_stmt,
2236         encode_method_prototype, build_ivar_list_initializer,
2237         objc_build_encode_expr): Fix for -Wc++-compat.
2238
2239 2008-05-12  Tomas Bily  <tbily@suse.cz>
2240
2241         * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
2242         Use CONVERT_EXPR_P.
2243
2244 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2245
2246         * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
2247
2248 2008-04-03  Tom Tromey  <tromey@redhat.com>
2249
2250         * Make-lang.in (objc_OBJS): New variable.
2251
2252 2008-03-27  Tom Tromey  <tromey@redhat.com>
2253
2254         * Make-lang.in: Revert automatic dependency patch.
2255
2256 2008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
2257
2258         PR obj-c++/35704
2259         * objc-act.c (objc_build_component_ref): Fix call to
2260         finish_class_member_access_expr.
2261         (objc_generate_cxx_ctor_or_dtor): Fix call to
2262         build_special_member_call.
2263
2264 2008-03-25  Andrew Pinski  <pinskia@gmail.com>
2265
2266         PR objc/29197
2267         * objc-act.c (encode_type): Handle when type is error_mark_node.
2268         (objc_push_parm): Handle when the type of parm is error_mark_node.
2269
2270 2008-03-25  Tom Tromey  <tromey@redhat.com>
2271
2272         * Make-lang.in (objc_OBJS): New variable.
2273         (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
2274
2275 2008-03-21  Andreas Tobler  <a.tobler@schweiz.org>
2276
2277         PR bootstrap/35660
2278         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
2279         MAYBE_CLASS_TYPE_P.
2280         (objc_generate_cxx_cdtors): Likewise.
2281         (add_instance_variable): Likewise.
2282
2283 2008-02-26  Tom Tromey  <tromey@redhat.com>
2284
2285         * objc-act.c (objc_init): Remove old location code.
2286
2287 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2288
2289         PR other/35107
2290         * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
2291
2292 2007-07-30  Nick Clifton  <nickc@redhat.com>
2293
2294         * Make-lang.in: Change copyright header to refer to version 3 of
2295         the GNU General Public License and to point readers at the
2296         COPYING3 file and the FSF's license web page.
2297         * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
2298         config-lang.in, objc-lang.c: Likewise.
2299
2300 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2301
2302         * objc-act.c (objc_get_callee_fndecl): Constify.
2303         * objc-act.h (objc_get_callee_fndecl): Likewise.
2304
2305 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2306
2307         * objc-act.c (volatilized_hash, volatilized_eq, string_hash,
2308         string_eq): Constify.
2309
2310 2007-04-04  Stuart Hastings  <stuart@apple.com>
2311
2312         PR 31281
2313         * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
2314
2315 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2316
2317         * Make-lang.in: Add dummy lang.install-pdf target.
2318
2319 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
2320
2321         * objc/objc-act.c: Fix comment typos.
2322
2323 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2324             Brooks Moses  <brooks.moses@codesourcery.com>
2325             Lee Millward  <lee.millward@codesourcery.com>
2326
2327         * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
2328         (objc_get_callee_fndecl): Likewise.
2329
2330 2007-01-23  Andrew Pinski  <pinskia@gmail.com>
2331
2332         PR objc/27438
2333         * objc-act.c (objc_add_static_instance): Mark the decl as
2334         TREE_USED.
2335
2336 2007-01-20  Andrew Pinski  <pinskia@gmail.com>
2337
2338         PR objc/30479
2339         * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
2340         of htab_hash_pointer.
2341         (lookup_interface): Likewise.
2342         (add_class): Likewise.
2343
2344 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
2345
2346         * objc-act.c (objc_build_volatilized_type): Keep track of
2347         canonical types.
2348         (objc_get_protocol_qualified_type): Ditto.
2349
2350 2006-11-02  Andreas Tobler  <a.tobler@schweiz.org>
2351
2352         * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
2353         content where we called cp_finish_file.
2354
2355 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2356
2357         * objc-act.c (synth_module_prologue): Replace calls to
2358         builtin_function with add_builtin_function.
2359         (build_next_objc_exception_stuff): Replace calls to
2360         builtin_function with add_builtin_function.
2361         (build_objc_exception_stuff): Replace calls to
2362         builtin_function with add_builtin_function.
2363
2364 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
2365
2366         * Make-lang.in: Added empty "objc.pdf" target.
2367
2368 2006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>
2369
2370         PR objc/29195
2371         * objc-act.c (objc_push_parm): If we change the type of the
2372         decl, relayout the decl.
2373
2374 2006-09-19  Eric Christopher  <echristo@apple.com>
2375
2376         * objc-act.c (JBLEN): Rename to OBJC_JBLEN,
2377         default to something innocuous.
2378         (build_next_objc_exception_stuff): Rename JBLEN.
2379
2380 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2381
2382         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2383
2384 2006-07-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2385
2386         PR obj-c++/28434
2387         * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
2388
2389 2006-06-06  Mike Stump  <mrs@apple.com>
2390
2391         * objc-act.c: Remove prototype for objc_build_volatilized_type.
2392
2393 2006-05-24  Mike Stump  <mrs@apple.com>
2394
2395         * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
2396
2397 2006-05-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2398
2399         PR objc/27240
2400         * objc-act.c (objc_is_public): Return early on invalid type.
2401
2402 2006-03-02 Fariborz Jahanian <fjahanian@apple.com>
2403
2404         * objc-act.c (init_module_descriptor): Remove file name from
2405         module descriptor.
2406         (gen_type_name_0): Fix ICE when issuing warning.
2407
2408 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2409         * Make-lang.in (OBJC): Remove
2410         (OBJECTIVE-C): Remove
2411         (objective-c): Remove
2412         (.PHONY): Remove objective-c and ObjC
2413
2414 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
2415
2416         PR objc/25360
2417         * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed
2418         by the inner type.
2419
2420 2005-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
2421
2422         PR objc/25348
2423         * objc-act.c (encode_array): Handle arrays to zero sized types.
2424
2425 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2426
2427         * Make-lang.in (objc.all.build, objc.install-normal): Remove.
2428
2429 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2430
2431         * Make-lang.in: Remove all dependencies on s-gtype.
2432
2433 2005-12-02  Richard Guenther  <rguenther@suse.de>
2434
2435         * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
2436         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2437         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
2438         build_objc_method_call, objc_rewrite_function_call): Use buildN
2439         instead of build.
2440
2441 2005-10-20  Geoffrey Keating  <geoffk@apple.com>
2442
2443         * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
2444         on objc_msgSend and like builtin functions.
2445
2446 2005-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2447
2448         * objc-act.c (objc_build_component_ref): Adjust call to
2449         finish_class_member_access_expr due to a changed prototype.
2450
2451 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
2452
2453         PR objc/23306
2454         * objc-act.c (generate_strings): Remove and move code to
2455         finish decl to ...
2456         (add_objc_string): here when creating a new string decl.
2457         (finish_objc): Don't call generate_strings.
2458
2459 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
2460
2461         PR objc/23381
2462         * objc-act.c (next_sjlj_build_try_catch_finally): Set
2463         TREE_SIDE_EFFECTS on catch_seq after building it.
2464
2465 2005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
2466
2467         part of PR objc/21992
2468         * objc-act.c (handle_class_ref): The ref decl is always referenced.
2469
2470 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
2471
2472         Make CONSTRUCTOR use VEC to store initializers.
2473         * objc-act.c (objc_build_constructor): Use build_constructor_from_list
2474         instead of build_constructor.
2475
2476 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
2477
2478         * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
2479         removed.
2480         * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
2481         (KEYWORD_KEY_NAME): Use decl_minimal.
2482         (METHOD_SEL_NAME): Ditto..
2483         (METHOD_SEL_ARGS): Use decl_non_common.
2484         (METHOD_ADD_ARGS): Ditto.
2485         (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
2486         (METHOD_DEFINITION): Ditto.
2487         (METHOD_ENCODING): Ditto.
2488         * objc-lang.c: (objc_init_ts): New function.
2489
2490 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
2491
2492         * objc-act.c (objc_build_struct): Pass in an actual @interface
2493         instead of its name, and annotate the struct created (and all
2494         existing variants thereof) with the @interface.
2495         (objc_compare_types): Treat forward-declared ObjC classes
2496         as stand-alone (root) classes for purposes of type comparisons.
2497         (build_private_template): Move some code to objc_build_struct().
2498
2499 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
2500
2501         PR objc/22274
2502         * objc-act.c (objc_build_string_object): For GNU-style constants,
2503         use the @interface type rather than the built-in type.
2504
2505 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
2506
2507         * Make-lang.in (cc1plus-checksum.c): Use
2508         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
2509
2510 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2511
2512         * objc-act.c: Use %q to quote in diagnostics.
2513
2514 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2515
2516         * objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
2517         quoting.
2518
2519 2005-06-30  Ziemowit Laski  <zlaski@apple.com>
2520
2521         * objc-act.c (objc_build_volatilized_type): New function.
2522         (objc_volatilize_decl): Call objc_build_volatilized_type()
2523         instead of build_qualified_type().
2524
2525 2005-06-29  Ziemowit Laski  <zlaski@apple.com>
2526
2527         * objc-act.c (objc_build_internal_const_str_type): New function.
2528         (check_string_class_template): Use objc_get_class_ivars() instead
2529         of TYPE_FIELDS() to retrieve ivar list.
2530         (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
2531         than the field itself.
2532         (objc_build_string_object): Synthesize a "__builtin_ObjCString"
2533         type and use it to lay out compile-time string objects.
2534         * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
2535         New.
2536
2537 2005-06-28  Paul Brook  <paul@codesourcery.com>
2538
2539         * objc-act.c (objc_init_exceptions): Call
2540         default_init_unwind_resume_libfunc.
2541
2542 2005-06-27  Ziemowit Laski  <zlaski@apple.com>
2543
2544         * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
2545         portion of TYPE_LANG_SPECIFIC info for all variants of
2546         a class before calling finish_struct(), and restore
2547         same TYPE_OBJC_INFO afterwards.
2548
2549 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
2550
2551         * all files: Update FSF address in copyright headers.
2552
2553 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
2554
2555         * objc-act.c (my_build_string_pointer): New.
2556         (objc_get_class_reference, get_super_receiver): Call
2557         my_build_string_pointer instead of my_build_string when building
2558         function arguments.
2559
2560 2005-05-25  Mike Stump  <mrs@mrs.kithrup.com>
2561
2562         * objc-act.c (volatilized_hash): Avoid warnings on 64-bit
2563         machines.
2564
2565 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
2566
2567         * objc-act.c (objc_build_struct): New function.
2568         (objc_derived_from_p): Likewise.
2569         (objc_build_component_ref): Likewise.
2570         (objc_copy_binfo): Likewise.
2571         (objc_xref_basetypes): Likewise.
2572         (objc_lookup_protocol): Likewise.
2573         (objc_compare_protocols): Likewise.
2574         (objc_volatilize_decl): Likewise.
2575         (encode_aggregate_fields): Likewise.
2576         (volatilized_hash): Likewise.
2577         (volatilized_eq): Likewise.
2578         (objc_compare_types): Likewise.
2579         (objc_type_quals_match): Likewise.
2580         (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
2581         of same name.
2582         (get_class_ivars): Add second parameter indicating if entire
2583         hierarchy is desired.
2584         (struct volatilized_type): New type.
2585         (volatilized_htab): New hash table.
2586         (objc_types_compatible_p, objc_comptypes): Remove functions.
2587         (synth_module_prologue): Do not initialize 'unused_list'.
2588         (objc_get_class_reference): Fix ObjC++ impedance mismatches.
2589         (objc_declare_alias): Implement as a typedef.
2590         (objc_substitute_decl, objc_gimplify_expr): Reformat.
2591         (objc_get_class_ivars): Adjust call to get_class_ivars().
2592         (next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
2593         build_ivar_reference, get_super_receiver): Call
2594         objc_build_component_ref() instead of build_component_ref().
2595         (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
2596         objc_comptypes().
2597         (build_private_template): Call objc_build_struct() instead of
2598         start_struct() and finish_struct().
2599         (hash_init): Initialize volatilized_htab.
2600         (objc_is_public): Adjust calls to objc_get_ivars(); adjust
2601         ObjC++ impedance mismatches.
2602         (encode_aggregate_within): Streamline by calling
2603         encode_aggregate_fields().
2604         * objc-act.h (objc_types_compatible_p): Remove prototype.
2605         (OCTI_UNUSED_LIST, unused_list): Remove slot.
2606         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
2607
2608 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
2609
2610         * Make-lang.in (cc1obj-dummy): New.
2611         (cc1obj-checksum.c): New.
2612         (cc1obj-checksum.o): New.
2613         (cc1obj): Add cc1obj-checksum.o.
2614
2615 2005-05-18  Mike Stump  <mrs@apple.com>
2616
2617         PR objc/21641
2618         * objc-act.c (struct interface_tuple): Mark it up for GC.
2619         (interface_htab): It is really a struct interface_tuple.
2620
2621 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
2622             Mike Stump  <mrs@apple.com>
2623
2624         Yet more Objective-C++...
2625
2626         * objc-act.c (objc_finish_try_stmt): Add return value.
2627         (objc_build_synchronized): Likewise.
2628
2629         * objc-act.c (objc_is_gcable_type): Add.
2630         (objc_substitute_decl): Add.
2631         (objc_build_ivar_assignment): Add.
2632         (objc_build_global_assignment): Add.
2633         (objc_build_strong_cast_assignment): Add.
2634         (objc_is_ivar_reference_p): Add.
2635         (objc_is_global_reference_p): Add.
2636         (objc_generate_write_barrier): Add.
2637         (objc_rewrite_function_call): Add.
2638         (objc_gimplify_expr): Add Objective-C++ support.
2639         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
2640         (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
2641         (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
2642         (DUP_TYPE_OBJC_INFO): Likewise.
2643         (struct imp_entry): Add field has_cxx_cdtors.
2644         (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
2645         OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
2646         OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
2647         OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
2648         OCTI_ASSIGN_STRONGCAST_DECL.
2649         (umsg_fast_decl): Add.
2650         (objc_assign_ivar_decl): Add.
2651         (objc_assign_ivar_fast_decl): Add.
2652         (objc_assign_global_decl): Add.
2653         (objc_assign_strong_cast_decl): Add.
2654         (objc_method_list_ptr): Add.
2655         (objc_method_proto_list_ptr): Add.
2656         (objc_ivar_list_ptr): Add.
2657
2658         * objc-act.c (should_call_super_dealloc): Add.
2659         (OBJC_VERSION): Bump to 6.
2660         (objc_is_gcable_type): Add.
2661         (objc_substitute_decl): Add.
2662         (objc_build_ivar_assignment): Add.
2663         (objc_build_global_assignment): Add.
2664         (objc_build_strong_cast_assignment): Add.
2665         (objc_is_gcable_p): Add.
2666         (objc_is_ivar_reference_p): Add.
2667         (objc_is_global_reference_p): Add.
2668         (generate_shared_structures): Add flags parameter.
2669         (objc_generate_cxx_ctor_or_dtor): Add.
2670         (objc_generate_cxx_cdtors): Add.
2671         (add_class): Add name parameter.
2672         (objc_types_share_size_and_alignment): Add.
2673         (comp_proto_with_proto): Add strict parameter.
2674         (CLS_HAS_CXX_STRUCTORS): Add.
2675         (TAG_ASSIGNIVAR): Add.
2676         (TAG_ASSIGNGLOBAL): Add.
2677         (TAG_ASSIGNSTRONGCAST): Add.
2678         (TAG_MSGSEND_FAST): Add.
2679         (TAG_ASSIGNIVAR_FAST): Add.
2680         (TAG_CXX_CONSTRUCT): Add.
2681         (TAG_CXX_DESTRUCT): Add.
2682         (OBJC_LOOKUP_CLASS): Add.
2683         (OBJC_LOOKUP_NO_SUPER): Add.
2684         (objc_finish_file): Add pch support.
2685         (objc_finish_implementation): Add Objective-C++ support.
2686         (synth_module_prologue): Likewise.
2687         (synth_module_prologue): Add fast dispatching.
2688         (objc_get_class_reference): Add Objective-C++ support.
2689         (objc_generate_write_barrier): Likewise.
2690         (next_sjlj_build_enter_and_setjmp): Likewise.
2691         (objc_begin_try_stmt): Likewise.
2692         (build_next_objc_exception_stuff): Add fast ivar support.
2693         (build_private_template): Mark the record as used so debug
2694         information is generated.
2695         (build_protocol_template): Add Objective-C++ support.
2696         (objc_method_parm_type) Likewise.
2697         (objc_generate_cxx_ctor_or_dtor): Likewise.
2698         (objc_generate_cxx_cdtors): Likewise.
2699         (build_protocol_initializer): Likewise.
2700         (build_category_template): Likewise.
2701         (build_class_template): Likewise.
2702         (build_method_list_template): Likewise.
2703         (build_category_initializer): Likewise.
2704         (build_shared_structure_initializer): Likewise.
2705         (objc_finish_message_expr): Likewise.
2706         (build_objc_method_call): Add fast dispatch support.
2707         (lookup_method_static): Add support to end search at superclasses.
2708         (add_method_to_hash_list): Add strict parameter to
2709         comp_proto_with_proto.
2710         (objc_add_method): Likewise.
2711         (objc_add_method): Also set the interface_value.
2712         (add_instance_variable): Add Objective-C++ support.
2713         (objc_is_public): Likewise.
2714         (start_class): Likewise.
2715         (continue_class): Likewise.
2716         (encode_aggregate_within): Likewise.
2717         (start_method_def): Likewise.
2718         (objc_start_function): Clear current_function_returns_value
2719         and current_function_returns_null.
2720         (really_start_method): Add Objective-C++ support.
2721         (objc_finish_method_definition): Add warning for missing
2722         [super dealloc].
2723         (finish_objc): Add Objective-C++ support.
2724         (generate_objc_image_info): Likewise.
2725         (objc_lookup_ivar): Likewise.
2726         * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
2727         (INIT_TYPE_OBJC_INFO): Likewise.
2728         (DUP_TYPE_OBJC_INFO): Likewise.
2729
2730 2005-04-23  DJ Delorie  <dj@redhat.com>
2731
2732         * objc-act.c: Adjust warning() callers.
2733
2734 2005-04-21  Roger Sayle  <roger@eyesopen.com>
2735
2736         * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
2737         this field of an objc method decl.
2738         * objc-act.c (build_method_decl): Take an additional "ellipsis"
2739         argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
2740         (objc_build_method_signature): Accept additional "ellipsis"
2741         argument and pass it to build_method_decl.
2742         (get_arg_type_list, start_method_def, gen_method_decl): Use
2743         the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
2744         TREE_OVERFLOW field of a TREE_LIST node.
2745
2746 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
2747
2748         PR c/12913
2749         * objc-act.c (objc_start_function): Create stack level for context
2750         of identifiers with variably modified type.
2751
2752 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
2753
2754         PR c/772
2755         PR c/17913
2756         * objc-act.c (objc_start_function): Push context on
2757         label_context_stack.
2758
2759 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2760
2761         * objc-act.c (next_sjlj_build_enter_and_setjmp,
2762         next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
2763         Call c_common_truthvalue_conversion.
2764
2765 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
2766
2767         * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
2768         objc/objc-parse.c, objc/objc-parse.y): Remove
2769         (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
2770         objc.distclean, objc.maintainer-clean): Update for new parser.
2771         * config-lang.in (gtfiles): Update for new parser.
2772
2773 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
2774
2775         * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
2776         copyright.
2777
2778 2005-01-27  Matt Austern  <austern@apple.com>
2779
2780         * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
2781         calling instantiate_pending_templates.
2782
2783 2005-01-26  Alexander Malmberg  <alexander@malmberg.org>
2784
2785         PR objc/18862
2786         * objc-act.c (build_selector_translation_table): Use
2787         input_location in the diagnostic for the GNU runtime or if
2788         TREE_PURPOSE (chain) is NULL.
2789
2790 2005-01-25  Alexander Malmberg  <alexander@malmberg.org>
2791
2792         PR objc/18408
2793         * objc-act.c (objc_types_compatible_p): New function.
2794         * objc-act.h (objc_types_compatible_p): Declare.
2795         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2796
2797 2005-01-16  Ziemowit Laski  <zlaski@apple.com>
2798
2799         * objc-act.c (objc_push_parm): Call c_type_promotes_to()
2800         via a lang-hook.
2801
2802 2005-01-15  Ziemowit Laski  <zlaski@apple.com>
2803
2804         PR objc/19321
2805         * objc-act.c (get_arg_type_list): Decay function arguments into
2806         pointers.
2807         (objc_push_parm): Likewise; bring PARM_DECL construction closer
2808         in line with what the C front-end does.
2809         (objc_get_parm_info): Call pushdecl() and finish_decl() on
2810         each PARM_DECL, like the C front-end does.
2811         (start_method_def): Remove redundant ARRAY_TYPE decay.
2812         (objc_start_function): Bring closer in line with what the
2813         C front-end does for functions.
2814
2815 2005-01-14  Mike Stump  <mrs@apple.com>
2816
2817         * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
2818         that -fobjc-exceptions is accepted.
2819
2820 2004-12-30  Ziemowit Laski  <zlaski@apple.com>
2821
2822         PR objc/18971
2823         * objc-act.c (get_arg_type_list, start_method_def): Decay
2824         array arguments into pointers.
2825         (gen_type_name_0): Learn to pretty-print array types.
2826
2827 2004-12-15  Ziemowit Laski  <zlaski@apple.com>
2828
2829         * objc-act.c (build_private_template): Change to return 'void'; do
2830         not set ivar_context, uprivate_record or objc_instance_type.
2831         (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
2832         retrieve protocol list from the pointee rather than the pointer itself;
2833         check TYPE_HAS_OBJC_INFO(...) precondition before accessing
2834         TYPE_OBJC_PROTOCOL_LIST.
2835         (objc_get_protocol_qualified_type): For types 'id' and 'Class',
2836         construct a variant of the pointee as well as the pointer, and
2837         store protocol information in the former.  When creating variants
2838         of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
2839         TYPE_OBJC_INTERFACE information.
2840         (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
2841         underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
2842         for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
2843         holding an IDENTIFIER_NODE.
2844         (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
2845         accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
2846         of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
2847         an IDENTIFIER_NODE (meaning a @class forward-declaration only).
2848         (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
2849         lookup_interface().
2850         (continue_class): For @implementations, set ivar_context,
2851         uprivate_record and objc_instance_type, for @interfaces, call
2852         build_private_template().
2853         (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
2854         TYPE_OBJC_INTERFACE.
2855         (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
2856         accessing TYPE_OBJC_PROTOCOL_LIST.
2857         * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
2858         DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
2859         SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
2860         (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
2861         to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
2862         (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
2863         TYPE_LANG_SPECIFIC(...).
2864         (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
2865         (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
2866         TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
2867         adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
2868         instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
2869
2870 2004-11-29  Joseph Myers  <joseph@codesourcery.com>
2871
2872         PR c/7544
2873         * Make-lang.in (objc/objc-act.o): Update dependencies.
2874         * objc-act.c (objc_finish_file): Call
2875         maybe_apply_pending_pragma_weaks if not OBJCPLUS.
2876
2877 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
2878
2879         PR objc/18406
2880         * obj-act.c (encode_type): 96bits doubles are encoded the
2881         same way as 64bit and 128bit doubles are.
2882
2883 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
2884
2885         * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
2886
2887 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
2888
2889         PR objc/16546
2890         * objc-act.c (generate_method_descriptors): Remove setting
2891         the new decls' type to variable_length_type.
2892         (generate_ivar_lists): Likewise.
2893         (generate_dispatch_tables): Likewise.
2894
2895 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
2896
2897         * objc-act.c (objc_lookup_ivar): The new OTHER parameter
2898         contains the result of the ID lookup by the C or C++
2899         front-end; in class methods, use OTHER if it exists;
2900         in instance methods, use OTHER only if it is locally
2901         declared.
2902
2903 2004-10-26  Ziemowit Laski  <zlaski@apple.com>
2904
2905         * objc-act.c (finish_class): Do not synthesize bogus
2906         'extern objc_object *_Foo;' declarations for @interface Foo.
2907
2908 2004-10-25  Ziemowit Laski  <zlaski@apple.com>
2909             David Ayers  <d.ayers@inode.at>
2910
2911         * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
2912         instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
2913         'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
2914         'Class <Protocol> == id' and 'Class <Protocol> == Class'.
2915         (objc_is_id): Add test for 'super'.
2916         (objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
2917         receivers; if class methods are not found in protocol lists, search
2918         for instance methods therein and warn if one is found.  Look in
2919         global hash tables for suitable method as a last resort when messaging
2920         'id <Proto>', 'Class <Proto>' and invalid receiver types.
2921         (objc_add_method): Insert instance methods listed in protocols into
2922         the global class method hash table.
2923         * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
2924         IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
2925         addition to 'id <Proto>'.
2926
2927 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
2928
2929         PR objc/17923
2930         * objc-act.c (objc_build_string_object): Create a CONST_DECL
2931         for the NeXT runtime case.
2932
2933 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2934
2935         * objc-act.c: Fix comment typos.
2936
2937 2004-09-24  Ziemowit Laski  <zlaski@apple.com>
2938
2939         * objc-act.c (init_objc_symtab, init_module_descriptor,
2940         build_shared_structure_initializer): When initializing 'long'
2941         fields, ensure that the initializer value is also 'long'.
2942
2943 2004-09-24  Zack Weinberg  <zack@codesourcery.com>
2944
2945         * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
2946         throughout.
2947         (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
2948         (build_selector_translation_table): Use %J in diagnostic
2949         instead of diddling input_line.  Fix spelling.
2950
2951 2004-09-21  Ziemowit Laski  <zlaski@apple.com>
2952
2953         * objc-act.c (objc_fold_objc_type_ref): New function.
2954         * objc-act.h (objc_fold_objc_type_ref): New prototype.
2955
2956 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
2957
2958         * objc-act.c (objc_start_function, really_start_method,
2959         objc_get_parm_info, start_method_def): Update to new arg_info
2960         structures.
2961
2962 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
2963
2964         * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
2965         objc/objc-act.h.
2966         (objc/objc-act.o): Depend on $(HASHTAB_H).
2967         * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
2968         objcp-decl.h instead of c-tree.h.
2969         (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
2970         error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
2971         build_protocol_template): Adjust prototypes.
2972         (build_module_initializer_routine, start_class, continue_class,
2973         finish_class, start_method_def, objc_start_function, start_protocol,
2974         build_method_decl, objc_add_method, add_instance_variable,
2975         build_ivar_reference, is_ivar, is_private, get_super_receiver,
2976         build_selector_table_decl, objc_push_parm, objc_get_parm_info,
2977         gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
2978         create_field_decl): New prototypes.
2979         (objc_expand_function_end, comp_method_with_proto, objc_expr_last,
2980         gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
2981         define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
2982         (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
2983         (CLASS_TYPEDEF_NAME): New.
2984         (TAG_EXECCLASS): Change from a global variable to a #define.
2985         (TAG_RETURN_STRUCT): Delete.
2986         (TAG_GNUINIT): New, holds '__objc_gnu_init' name.
2987         (objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
2988         (string_descriptor): New struct.
2989         (string_htab): New hash table.
2990         (string_hash, string_eq): New prototypes.
2991         (generate_struct_by_value_array): Call create_field_decl() instead of
2992         create_builtin_decl().
2993         (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
2994         In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
2995         (objc_finish_file): In ObjC++, call instantiate_pending_templates()
2996         and cp_finish_file().
2997         (define_decl, get_static_reference, get_protocol_reference,
2998         create_builtin_decl): Remove functions.
2999         (objc_start_class_interface, objc_start_category_interface,
3000         objc_start_protocol, objc_continue_interface, objc_finish_interface,
3001         objc_start_class_implementation, objc_start_category_implementation,
3002         objc_continue_implementation, objc_finish_implementation,
3003         objc_set_visibility, objc_set_method_type,
3004         objc_build_method_signature, objc_add_method_declaration,
3005         objc_start_method_definition, objc_add_instance_variable,
3006         objc_get_protocol_qualified_type, create_field_decl,
3007         start_var_decl, finish_var_decl): New functions.
3008         (setup_string_decl): Simplify since it is only called once.
3009         (synth_module_prologue): Call build_class_template(); predefine 'id'
3010         and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
3011         hooks for duration of function; fix GNU runtime messenger signatures
3012         to correspond to reality; forward-declare '__objc_exec_class' for the
3013         GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
3014         'extern "C" { ... }' wrappers around synthesized declarations; call
3015         build_protocol_template() and build_category_template().
3016         (string_hash, string_eq): New functions.
3017         (objc_build_string_object): Check metaclass correctness only once;
3018         store string literals in hash table.
3019         (objc_build_constructor): Do not convert initializer elements;
3020         adjust for ObjC++ impedance mismatch.
3021         (build_objc_symtab_template): Call create_field_decl() instead of
3022         create_builtin_decl().
3023         (init_objc_symtab): Add missing conversion to initializer element.
3024         (build_metadata_decl): Call start_var_decl() instead of define_decl().
3025         (generate_objc_symtab_decl): Do not call build_category_template();
3026         call start_var_decl() and finish_var_decl() instead of start_decl()
3027         and finish_decl().
3028         (build_module_descriptor): Call create_field_decl() instead of
3029         grokfield(); call start_var_decl() and finish_var_decl() instead of
3030         start_decl() and finish_decl(); always mark module descriptor as
3031         used; move GNU runtime-specific functionality to
3032         build_module_initializer_routine().
3033         (build_module_initializer_routine): New function, broken off of
3034         build_module_descriptor().
3035         (objc_static_init_needed_p, objc_generate_static_init_call): New
3036         functions.
3037         (generate_static_references, generate_strings,
3038         build_selector_translation_table, generate_descriptor_table,
3039         generate_ivars_list, generate_dispatch_table, generate_category): Call
3040         start_var_decl() and finish_var_decl() instead of start_decl() and
3041         finish_decl(); build a type directly instead of via groktypename().
3042         (build_selector_reference_decl, build_selector_table_decl,
3043         build_class_reference_decl, build_protocol_reference,
3044         generate_objc_image_info): Call start_var_decl() instead of
3045         build_decl().
3046         (build_selector_reference): For GNU runtime, do not call
3047         build_selector_reference_decl().
3048         (build_selector, build_typed_selector_reference): Always convert
3049         result to the selector type.
3050         (add_objc_string): Cast return value to 'char *'.
3051         (build_method_prototype_template, build_selector_template,
3052         build_method_template): Use actual selector type for fields
3053         pointing to selectors.
3054         (finish_objc): For GNU runtime, call
3055         build_module_initializer_routine() after build_module_descriptor().
3056         (generate_protocol_list, generate_shared_structures): Call
3057         start_var_decl() and finish_var_decl() instead of start_decl() and
3058         finish_decl(); build a type directly instead of via
3059         groktypename().
3060         (synth_id_with_class_suffix): Return a string.
3061         (get_arg_type_list): For instance methods, use the instance type for
3062         'self'; do not call groktypename_in_parm_context().
3063         (build_objc_string_decl): Squash redeclaration errors in ObjC++.
3064         (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
3065         handle RECORD_TYPEs in ObjC as well as ObjC++.
3066         (objc_is_id): New function.
3067         (objc_is_object_ptr): Return the canonical type node.
3068         (objc_get_class_ivars): Simplify using get_class_ivars().
3069         (get_class_ivars): Remove second parameter; create a fresh copy
3070         of the ivar list for each call; do not check for existence of
3071         super class.
3072         (objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
3073         (objc_init_exceptions): When using SJLJ-style exceptions, require
3074         the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
3075         exceptions.
3076         (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
3077         objc_object_type instead of objc_id_type.
3078         (objc_begin_catch_clause): Convert the incoming PARM_DECL into
3079         a VAR_DECL before placing it in the appropriate scope; do not
3080         call define_decl(); adjust call to c_begin_compound_stmt();
3081         use objc_object_type instead of objc_id_type.
3082         (build_next_objc_exception_stuff): Call create_field_decl() instead
3083         of create_builtin_decl(); construct type directly instead of calling
3084         groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
3085         (build_private_template): Adjust call to get_class_ivars(); build
3086         a type directly instead of via groktypename().
3087         (build_protocol_template, build_method_prototype_list_template,
3088         build_method_prototype_template, build_category_template,
3089         build_selector_template, build_class_template, build_super_template,
3090         build_ivar_template, build_ivar_list_template,
3091         build_method_list_template, build_method_template):
3092         Call create_field_decl() instead of grokfield().
3093         (objc_method_parm_type): Do not call groktypename().
3094         (generate_descriptor_table): Call start_var_decl() and
3095         finish_var_decl() instead of start_decl() and finish_decl().
3096         (generate_method_descriptors, build_protocol_initializer,
3097         generate_dispatch_tables, build_category_initializer,
3098         build_shared_structure_initializer): Do not call groktypename().
3099         (generate_protocols): Call start_var_decl() and finish_var_decl()
3100         instead of start_decl() and finish_decl(); do not call groktypename().
3101         (error_with_ivar): Remove last parameter.
3102         (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
3103         to CLASS_IVARS lists; adjust calls to error_with_ivar().
3104         (generate_ivar_lists): Convert one of the initializer elements; do
3105         not call groktypename().
3106         (get_arg_type_list, start_method_def, gen_method_def): Account for
3107         new representation of variable arguments and '...' in Objective-C
3108         methods; add Objective-C++ impedance matching code.
3109         (is_objc_type_qualifier): Remove function.
3110         (adjust_type_for_id_default): Simplify; there is no longer a need to
3111         wade through declspecs.
3112         (lookup_interface, start_class, continue_class,
3113         finish_class, start_method_def, start_protocol, build_method_decl,
3114         objc_add_method, add_instance_variable, build_ivar_reference,
3115         is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
3116         Make into static functions.
3117         (receiver_is_class_object): Use new IS_CLASS() macro.
3118         (objc_build_message_expr): Tweak ObjC++ message argument handling;
3119         call objc_finish_message_expr() instead of finish_message_expr().
3120         (finish_message_expr): Rename to objc_finish_message_expr(); use
3121         OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
3122         call gen_type_name() instead of gen_declaration(); call objc_is_id()
3123         instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
3124         calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
3125         (build_objc_method_call, warn_with_method): Do not call groktypename().
3126         (build_ivar_reference): Call convert() instead of clobbering in a
3127         type.
3128         (hash_init): Initialize string_htab hash table.
3129         (add_instance_variable): Simplify parameter list; do not call grokfield();
3130         do not populate CLASS_IVARS list.
3131         (start_class): Check for the existence of super class, if one was specified.
3132         (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
3133         call build_class_template(); adjust call to get_class_ivars(); call
3134         build_decl(), pushdecl() and finish_decl() instead of define_decl().
3135         (finish_class): Call build_decl(), pushdecl() and finish_decl() instead
3136         of define_decl().
3137         (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
3138         (start_protocol): Do not call build_protocol_template(); use
3139         PROTOCOL_BINFO_ELTS for the tree vector size.
3140         (encode_type_qualifiers): Do not handle the 'const' qualifier here.
3141         (encode_pointer): Encode 'const char *' as 'r*', for backwards
3142         compatibility.
3143         (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
3144         (encode_type): Handle the 'const' qualifier here.
3145         (objc_parmlist): New global variable, sued by objc_push_parm and
3146         objc_get_parm_info().
3147         (objc_push_parm, objc_get_parm_info): New functions.
3148         (objc_expr_last): Remove function.
3149         (synth_self_and_ucmd_args): For instance methods, use the instance
3150         type for 'self'; call objc_push_parm() instead of push_parm_decl().
3151         (start_method_def): Do not call push_scope(), declare_parm_level(),
3152         pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
3153         just use objc_push_parm() and objc_get_parm_info().
3154         (comp_method_with_proto): Remove function.
3155         (objc_types_are_equivalent): Strip away indirections before comparing
3156         underlying types.
3157         (comp_proto_with_proto): Do not call groktypename(); types are no
3158         longer in raw declspec format.
3159         (objc_start_function): New function.
3160         (really_start_method): Call comp_proto_with_proto() instead of
3161         comp_method_with_proto(); call objc_start_function() instead of
3162         hand-crafting a function declarator.
3163         (continue_method_def, objc_expand_function_end): Remove functions.
3164         (get_super_receiver): Call objc_get_current_scope() instead of
3165         get_current_scope(); reference 'super_class' field (instead of
3166         'class').
3167         (finish_method_def): Rename to objc_finish_method_definition() and
3168         add a function decl parameter; move method encoding call from
3169         objc_expand_function_end().
3170         (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
3171         gen_declaration_1): Remove functions.
3172         (tmpbuf, RAW_DECLSPEC): Remove.
3173         (gen_declaration): Remove second parameter; simplify to deal
3174         with TYPE_P nodes instead of raw declspecs.
3175         (gen_type_name, gen_type_name_0): New functions.
3176         (gen_method_decl): Remove second parameter; call gen_type_name()
3177         instead of gen_declaration_1().
3178         (dump_interface): Adjust calls to gen_declaration() and
3179         gen_method_decl(); do not allocate a separate string buffer.
3180         (init_objc): Allocate a larger string buffer to accommodate
3181         dump_interface(); adjust call to build_module_descriptor();
3182         add call to build_module_initializer_routine() for the GNU
3183         runtime.
3184         (generate_classref_translation_entry): Do not call start_decl(); call
3185         finish_var_decl() instead of finish_decl(); call convert() instead of
3186         build_c_cast().
3187         * objc-act.h (CLASS_OWN_IVARS): Remove accessor.
3188         (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
3189         gone.
3190         (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
3191         (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
3192         (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
3193         objc_object_type and objc_object_name, respectively.
3194         (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
3195         objc_class_name): New.
3196         (IS_CLASS): New macro.
3197         (IS_ID, IS_SUPER): Robustify.
3198         (OCTI_EXECCLASS_DECL, execclass_decl): New.
3199         (finish_file, start_class, continue_class, finish_class,
3200         start_method_def, continue_method_def, finish_method_def,
3201         start_protocol, finish_protocol, objc_build_throw_stmt,
3202         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
3203         objc_build_synchronized_epilogue, objc_build_try_prologue,
3204         objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
3205         objc_build_finally_prologue, objc_build_finally_epilogue,
3206         is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
3207         get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
3208         get_class_reference, get_static_reference, get_object_reference,
3209         build_message_expr, finish_message_expr, build_selector_expr,
3210         build_ivar_reference, build_keyword_decl, build_method_decl,
3211         build_protocol_expr, build_objc_string_object, objc_declare_alias,
3212         objc_declare_class, objc_declare_protocols, objc_comptypes,
3213         objc_check_decl, build_encode_expr): Remove prototypes.
3214         (imp_count, cat_count): Make GGC-aware.
3215         (OBJC_SET_TYPE_NAME): New macro.
3216
3217 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
3218
3219         * config-lang.in: Update copyright notice.
3220         (lang_requires): Indicate that ObjC requires C to be built first.
3221
3222 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
3223
3224         * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
3225         TYPE_NAME.
3226         (build_objc_string_object): Rename to objc_build_string_object().
3227         (get_class_reference): Rename to objc_get_class_reference().
3228         (get_class_ivars_from_name): Rename to objc_get_class_ivars().
3229         (next_sjlj_build_catch_list, get_super_receiver): Call
3230         objc_get_class_reference() instead of get_class_reference().
3231         (build_keyword_decl): Rename to objc_build_keyword_decl().
3232         (build_message_expr): Rename to objc_build_message_expr().
3233         (build_protocol_expr): Rename to objc_build_protocol_expr().
3234         (build_selector_expr): Rename to objc_build_selector_expr().
3235         (build_encode_expr): Rename to objc_build_encode_expr().
3236         * objc-act.h (get_class_ivars_from_name): Rename prototype to
3237         objc_get_class_ivars().
3238         (get_class_reference): Rename prototype to objc_get_class_reference().
3239         (build_message_expr): Rename prototype to objc_build_message_expr().
3240         (build_selector_expr): Rename prototype to objc_build_selector_expr().
3241         (build_keyword_decl): Rename prototype to objc_build_keyword_decl().
3242         (build_protocol_expr): Rename prototype to objc_build_prototype_expr().
3243         (build_objc_string_object): Rename prototype to
3244         objc_build_string_object().
3245
3246 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
3247
3248         * objc-act.c (lookup_interface): Make function 'static' and add a
3249         local prototype.
3250         (objc_check_decl, get_class_reference, objc_declare_alias,
3251         objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
3252         instead of is_class_name().
3253         (get_super_receiver, objc_clear_super_receiver): Call
3254         objc_get_current_scope() instead of get_current_scope().
3255         (is_class_name): Rename to objc_is_class_name.
3256         (lookup_objc_ivar): Rename to objc_lookup_ivar.
3257
3258 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
3259
3260         * objc-act.c (objc_is_reserved_word): New function.
3261
3262 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
3263
3264         * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
3265         $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
3266         (objc/objc-parse.o): Do not depend on gtype-objc.h.
3267         * objc-act.c: Do not include gtype-objc.h.
3268         (finish_file): Rename to objc_finish_file().
3269         * objc-act.h (finish_file): Update copyright notice; remove prototype.
3270         * objc-lang.c: Update copyright notice; include diagnostic.h,
3271         c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
3272         toplev.h.
3273         (finish_file): New hook routine.
3274         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
3275         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
3276         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
3277         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
3278         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
3279         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
3280         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
3281         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
3282         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
3283         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3284         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
3285         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3286         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3287         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
3288         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
3289         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3290         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
3291         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3292         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
3293         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
3294         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
3295         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
3296         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
3297         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
3298         Move to c-objc-common.h.
3299
3300 \f
3301 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
3302 Free Software Foundation, Inc.
3303
3304 Copying and distribution of this file, with or without modification,
3305 are permitted in any medium without royalty provided the copyright
3306 notice and this notice are preserved.