OSDN Git Service

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