OSDN Git Service

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