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