OSDN Git Service

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