OSDN Git Service

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