OSDN Git Service

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