]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/objc/ChangeLog
toplevel/
[thirdparty/gcc.git] / gcc / objc / ChangeLog
CommitLineData
e53d55e7 12012-06-29 Steven Bosscher <steven@gcc.gnu.org>
2
3 * Make-ang.in: Adjust for move of C front-end files.
4 * config-lang.in: Likewise.
5 * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h
6 and c-lang.h in c/.
7 * objc-runtime-shared-support.c: Likewise.
8 * objc-next-runtime-abi-01.c: Likewise.
9 * objc-next-runtime-abi-02.c: Likewise.
10 * objc-gnu-runtime-abi-01.c: Likewise.
11 * objc-act.c: Likewise.
12 * objc-lang.c: Likewise.
13
ff6624bc 142012-06-19 Steven Bosscher <steven@gcc.gnu.org>
15
16 * objc-next-runtime-abi-01.c: Do not include tm.h and output.h.
17 Include c-family/c-target.h.
18 (handle_next_class_ref): Rewrite to emit top-level asm statements.
19 (handle_next_impent): Likewise.
20 * objc/Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o.
21
b5369b7d 222012-05-31 Steven Bosscher <steven@gcc.gnu.org>
23
24 * objc-act.c: Do not include output.h.
25
009ec0e5 262012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
27
28 PR objc++/53388
29 * objc-act.c (objc_get_class_reference, objc_build_message_expr):
30 Use build_min_nt_loc.
31
8efa224a 322012-04-20 Jan Hubicka <jh@suse.cz>
33
009ec0e5 34 * objc-act.c (mark_referenced_methods); Use
8efa224a 35 cgraph_mark_force_output_node.
36
a864ddec 372012-03-21 Steven Bosscher <steven@gcc.gnu.org>
38
39 * objc-act (objc_build_ivar_assignment): Do not call assemble_external.
40 (objc_build_global_assignment): Likewise.
41 (objc_build_strong_cast_assignment): Likewise.
42 * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external.
43 * objc-next-runtime-abi-02.c: Likewise.
44 * objc-gnu-runtime-abi-01.c: Likewise.
45
35efe5bd 462012-03-05 Jason Merrill <jason@redhat.com>
47
48 * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't
49 call _stat functions without MEM_STAT_INFO.
50
1583f3af 512011-11-12 Iain Sandoe <iains@gcc.gnu.org>
52
53 * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality
54 for Objective-C m32.
55
8a8f7a54 562011-10-29 Iain Sandoe <iains@gcc.gnu.org>
57
58 PR target/47997
59 * objc-act.c (objc_build_string_object): Remove redundant second
60 call to fix_string_type (). Add a checking assert that we are,
61 indeed, passed a STRING_CST.
62
d69c64b7 632011-10-18 Mikael Pettersson <mikpe@it.uu.se>
64
65 PR objc/50743
66 * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
67 size_t to avoid signed/unsigned
68 comparison.
69 (insert_method_into_method_map): Likewise.
70
f41791cf 712011-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
72
73 * objc-map.h: New file.
74 * objc-map.c: New file.
75 * config-lang.in (gtfiles): Added objc-map.h.
76 * Make-lang.in (OBJC_OBJS): Added objc-map.o.
77 (objc/objc-map.o): New rule.
78 (objc/objc-act.o): Depend on objc/objc-map.h.
79 * objc-next-runtime-abi-02.c: Added a TODO comment.
80 * objc-act.c: Include objc-map.h.
81 (nst_method_hash_list, cls_method_hash_list): Removed.
82 (instance_method_map, class_method_map): New.
83 (cls_name_hash_list, als_name_hash_list): Removed.
84 (class_name_map, alias_name_map): Removed.
85 (ivar_offset_hash_list): Removed.
86 (hash_class_name_enter, hash_class_name_lookup, hash_enter,
87 hash_lookup, hash_add_attr, add_method_to_hash_list): Removed.
88 (interface_hash_init): New.
89 (objc_init): Call interface_hash_init.
90 (objc_write_global_declarations): Iterate over class_method_map
91 and instance_method_map instead of cls_method_hash_list and
92 nst_method_hash_list.
93 (objc_declare_alias): Use alias_name_map instead of
94 cls_name_hash_list.
95 (objc_is_class_name): Use class_name_map and alias_name_map
96 instead of cls_name_hash_list and als_name_hash_list.
97 (interface_tuple, interface_htab, hash_interface, eq_interface):
98 Removed.
99 (interface_map): New.
100 (add_class): Renamed to add_interface. Use interface_map instead
101 of interface_htab.
102 (lookup_interface): Use interface_map instead of interface_htab.
103 (check_duplicates): Changed first argument to be a tree,
104 potentially a TREE_VEC, instead of a hash. Changed implementation
105 to match.
106 (lookup_method_in_hash_lists): Use class_method_map and
107 instance_method_map instead of cls_method_hash_list and
108 nst_method_hash_list.
109 (objc_build_selector_expr): Likewise.
110 (hash_func): Removed.
111 (hash_init): Create instance_method_map, class_method_map,
112 class_name_map, and alias_name_map. Do not create
113 nst_method_hash_list, cls_method_hash_list, cls_name_hash_list,
114 als_name_hash_list, and ivar_offset_hash_list.
115 (insert_method_into_method_map): New.
116 (objc_add_method): Use insert_method_into_method_map instead of
117 add_method_to_hash_list.
118 (start_class): Call add_interface instead of add_class.
119 * objc-act.h (cls_name_hash_list, als_name_hash_list,
120 nst_method_hash_list, cls_method_hash_list): Removed.
121
b9a16870 1222011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
123
124 * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old
125 interface with two parallel arrays to hold standard builtin
126 declarations, and replace it with a function based interface that
127 can support creating builtins on the fly in the future. Change
128 all uses, and poison the old names. Make sure 0 is not a
129 legitimate builtin index.
130 * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto.
131 * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto.
132
2cc66f2a 1332011-07-19 Richard Guenther <rguenther@suse.de>
134
135 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
136 Use fold_build_pointer_plus.
137 (objc2_build_ehtype_initializer): Likewise.
138
32ed3798 1392011-07-11 Nicola Pero <nicola.pero@meta-innovation.com>
140
141 * objc-encoding.h (obstack.h): Do not include.
142 (util_obstack, util_firstobj): Do not declare.
143 (encode_field_decl): Updated prototype to return a tree and take a
144 single tree argument. Updated comments.
145 * objc-encoding.c (util_obstack, util_firstobj): Made static.
146 (objc_encoding_init): New.
147 (encode_field_decl): Existing function renamed to encode_field and
148 made static. New encode_field_decl wrapper function added.
149 (encode_aggregate_fields): Update call to encode_field_decl to
150 call encode_field.
151 * objc-next-runtime-abi-02.c (obstack.h): Do not include.
152 (util_obstack, util_firstobj): Do not declare.
153 (build_v2_ivar_list_initializer): Updated call to
154 encode_field_decl.
155 * objc-runtime-shared-support.c (obstack.h): Do not include.
156 (util_obstack, util_firstobj): Do not declare.
157 (build_ivar_list_initializer): Updated call to encode_field_decl.
158 * objc-act.c (objc_init): Use objc_encoding_init.
159 * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
160 on OBSTACK_H.
161 (objc/objc-gnu-runtime-abi-01.o): Likewise.
162 (objc/objc-next-runtime-abi-01.o): Likewise.
163 (objc/objc-next-runtime-abi-02.o): Likewise.
164 (objc/objc-act.o): Likewise.
165
f572c7ba 1662011-07-04 Nicola Pero <nicola.pero@meta-innovation.com>
167
168 Refactored encoding code into objc-encoding.h and objc-encoding.c.
169 * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers,
170 encode_type, generating_instance_variables, objc_method_parm_type,
171 objc_encoded_type_size, encode_method_prototype,
172 objc_build_encode_expr, pointee_is_readonly, encode_pointer,
173 encode_array, encode_vector, encode_aggregate_fields,
174 encode_aggregate_within, encode_next_bitfield,
175 encode_gnu_bitfield, encode_field_decl,
176 objc_v2_encode_property_attr): Moved to objc-encoding.h and
177 objc-encoding.c. No change in the actual code.
178 Include objc-encoding.h.
179 (objc_init): Added TODO.
180 (objc_build_property_setter_name): Made non-static so it can be
181 called from objc-encoding.c.
182 * objc-act.h (OBJC_ENCODE_INLINE_DEFS,
183 OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h.
184 * objc-runtime-shared-support.h (objc_v2_encode_property_attr,
185 encode_method_prototype, encode_field_decl,
186 generating_instance_variables): Moved to objc-encoding.h.
187 (objc_build_property_setter_name): Declare.
188 * objc-encoding.c: New.
189 * objc-encoding.h: New.
190 * objc-gnu-runtime-abi-01.c: Include objc-encoding.h.
191 * objc-next-runtime-abi-01.c: Likewise.
192 * objc-next-runtime-abi-02.c: Likewise.
193 * objc-runtime-shared-support.c: Likewise.
194 * Make-lang.in (OBJC_OBJS): Added objc-encoding.o.
195 (objc/objc-lang.o): Reordered dependencies.
196 (objc/objc-runtime-shared-support.o): Reordered dependencies.
197 Added dependencies on objc-encoding.h and on $(GGC_H),
198 $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h.
199 (objc/objc-gnu-runtime-abi-01.o): Likewise.
200 (objc/objc-next-runtime-abi-01.o): Likewise.
201 (objc/objc-next-runtime-abi-02.o): Likewise.
202 (objc/objc-act.o): Reordered dependencies. Added dependency on
203 objc-encoding.h.
204 (objc/objc-encoding.o): New rule.
205
206 * objc-encoding.c (encode_type): Use "%<%T%>" format when printing
207 warning "unknown type %<%T%> found during Objective-C encoding"
208 instead of using gen_type_name.
209
7e23366d 2102011-06-05 Nicola Pero <nicola.pero@meta-innovation.com>
211
212 * objc-act.c (receiver_is_class_object): Expanded comment.
213 (objc_finish_message_expr): Likewise.
214
a53aa046 2152011-06-02 Nicola Pero <nicola.pero@meta-innovation.com>
216
217 PR objc/48539
218 * objc-act.c (objc_finish_message_expr): Warn if messaging a class
219 that was only declared using @class without an @interface. Warn
220 if messaging an instance of a class that was only declared using
221 @class without an @interface, unless the receiver was also typed
222 with a protocol list.
223
5aaf62c7 2242011-06-01 Nicola Pero <nicola.pero@meta-innovation.com>
225
226 * objc-act.c (objc_decl_method_attributes): Implement nonnull
227 attribute for Objective-C methods.
228
d53e999e 2292011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
230
231 * config-lang.in (gtfiles): Updated order of files to fix building
232 when the gcc/cp directory is missing, as in the case of some
233 release tarballs.
234
dffb24a6 2352011-05-20 Nathan Froyd <froydnj@codesourcery.com>
236
237 * objc-act.c (objc_compare_types): Use function_args_iterator
238 instead of TYPE_ARG_TYPES to compare function argument types.
239
cfeb95f9 2402011-05-13 Toon Moene <toon@moene.org>
241
242 * objc-next-runtime-abi-02.c (newabi_append_ro):
243 Add const qualifier to constant variable pointer declaration.
244
8f2eb9e1 2452011-05-11 Nathan Froyd <froydnj@codesourcery.com>
246
247 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
248 (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
249 (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.
250
5318d5a9 2512011-05-05 Nathan Froyd <froydnj@codesourcery.com>
252
253 * objc-runtime-shared-support.h (get_arg_type_list): Delete.
254 (build_function_type_for_method): Declare.
255 * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change
256 type of get_arg_type_base_list field.
257 * objc-act.h (OBJC_VOID_AT_END): Delete.
258 * objc-act.c (get_arg_type_list): Delete.
259 (build_function_type_for_method): New function.
260 (objc_decl_method_attributes): Call build_function_type_for_method.
261 (really_start_method): Likewise.
262 * objc-gnu-runtime-abi-01.c
263 (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and
264 adjust function accordingly. Update header comment.
265 (build_objc_method_call): Call build_function_type_for_method.
266 * objc-next-runtime-abi-01.c
267 (next_runtime_abi_01_get_type_arg_list_base): Change prototype and
268 adjust function accordingly. Update header comment.
269 (build_objc_method_call): Call build_function_type_for_method.
270 * objc-next-runtime-abi-02.c
271 (next_runtime_abi_02_get_type_arg_list_base): Change prototype and
272 adjust function accordingly. Update header comment.
273 (objc_copy_to_temp_side_effect_params): Take fntype instead of a
274 typelist. Use function_args_iterator for traversing fntype.
275 (build_v2_build_objc_method_call): Adjust call to it.
276 Call build_function_type_for_method
277
4232a958 2782011-05-05 Joseph Myers <joseph@codesourcery.com>
279
280 * objc-act.c (objc_start_method_definition): Add parameter expr.
281 Update call to start_method_def.
282 (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter,
283 objc_synthesize_setter) Update calls to
284 objc_start_method_definition.
285 (objc_get_parm_info): Add parameter expr. Update call to
286 get_parm_info.
287 (start_method_def): Add parameter expr. Update call to
288 objc_get_parm_info.
289 * objc-gnu-runtime-abi-01.c (build_module_initializer_routine):
290 Update call to objc_get_parm_info.
291 * objc-runtime-shared-support.h (objc_get_parm_info): Add extra
292 parameter.
293
922f4a59 2942011-04-26 Jason Merrill <jason@redhat.com>
295
296 * objc-act.c (objc_fold_objc_type_ref): Remove.
297 * objc-act.h: Remove prototype.
298
820ecd67 2992011-04-21 Nathan Froyd <froydnj@codesourcery.com>
300
301 * objc-act.c (synth_module_prologue): Call build_function_type_list
302 instead of build_function_type.
303 * objc-next-runtime-abi-02.c (next_runtime_02_initialize):
304 Likewise.
305
cfc77d33 3062011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
307
308 * objc-act.c (ivar_of_class): New.
309 (objc_is_public): Use ivar_of_class.
310
394dd737 3112011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
312
313 * objc-act.c (objc_get_interface_ivars): Removed.
314 (objc_detect_field_duplicates): New.
315 (hash_instance_variable): New.
316 (eq_instance_variable): New.
6bbb4715 317
a758bf7d 3182011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
319
320 * objc-act.c (objc_declare_protocols): Renamed to
321 objc_declare_protocol. Changed first argument to be an identifier
322 instead of a tree chain of identifiers, so that callers don't have
323 to create a temporary tree chain.
324
29d7200d 3252011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
326
327 * objc-act.c (objc_declare_class): Changed to take a single
328 identifier as argument instead of a tree list. This means callers
329 don't have to build temporary tree lists to call this function.
330 (synth_module_prologue): Updated calls to objc_declare_class.
6bbb4715 331
d546b341 3322011-04-13 Nicola Pero <nicola.pero@meta-innovation.com>
333
334 * objc-act.c (build_keyword_selector): Use get_identifier_with_length
335 instead of get_identifier.
336
9b88d08d 3372011-04-12 Nathan Froyd <froydnj@codesourcery.com>
338
339 * objc-lang.c (objc_init_ts): Move code for this function...
340 * objc-act.c (objc_common_init_ts): ...here. Define.
341 * objc-act.h (objc_common_init_ts): Declare.
342
4185cf58 3432011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
344
345 * objc-act.c (objc_build_message_expr): Accept two arguments
346 instead of one so that callers can simply pass the arguments
347 without having to create a temporary chain to hold them.
348
bfb15295 3492011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
350
351 * objc-act.c (comp_proto_with_proto): Do not create and use
352 inefficient temporary argument lists. Compare the arguments
353 directly. (match_proto_with_proto): Removed; incorporated into
354 comp_proto_with_proto ().
6bbb4715 355
cc79dae3 3562011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
357
358 * objc-act.c (printable_ivar_name): New.
359 (add_instance_variable): Call printable_ivar_name() when an error
360 message needs to be printed. Do not prepare the instance variable
361 for printing unless there is an actual error.
362
05ca272f 3632011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
364
365 * objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
366 avoid calling identifier_global_value() multiple times.
367
5a90471f 3682011-04-12 Martin Jambor <mjambor@suse.cz>
369
370 * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
371 instead of cgraph_node.
372
c94b1d0e 3732011-04-06 Joseph Myers <joseph@codesourcery.com>
374
375 * objc-act.c: Include c-target.h instead of target.h.
376 * Make-lang.in (objc/objc-act.o): Update dependencies.
377
e5c4da6f 3782011-03-06 Joseph Myers <joseph@codesourcery.com>
379
380 * lang-specs.h: Match -save-temps* instead of -save-temps.
381
a67d1cef 3822011-02-26 Nicola Pero <nicola.pero@meta-innovation.com>
383
384 * objc-act.c (objc_v2_encode_prop_attr): Rewritten.
6bbb4715 385
41aea009 3862011-02-23 Nicola Pero <nicola.pero@meta-innovation.com>
387
388 * objc-act.c (build_private_template): Do not copy the
389 CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
390 * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
391 TYPE_LANG_SLOT_0.
392
7840e94f 3932011-02-22 Nicola Pero <nicola.pero@meta-innovation.com>
394
395 PR objc/47832
396 * objc-act.c (flexible_array_type_p): New.
397 (add_instance_variable): Produce an error if an instance variable
398 uses flexible array members.
399 (encode_array): Do not emit an error if encoding a flexible array
400 type while generating instance variables.
401
64b39c0c 4022011-02-21 Mike Stump <mikestump@comcast.net>
403
a67d1cef 404 * Make-lang.in (check_objc_parallelize): Refine for 4 processor
405 machines.
64b39c0c 406
86ea8248 4072011-02-20 Nicola Pero <nicola.pero@meta-innovation.com>
f6593d66 408
7840e94f 409 * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed
410 usage of padding fields. Do not include tm.h.
411 * objc-act.c (objc_write_global_declaration): Set input_location
412 to BUILTINS_LOCATION while generating runtime metadata.
f6593d66 413
86ea8248 4142011-01-20 Nicola Pero <nicola.pero@meta-innovation.com>
d098f394 415
416 PR objc/47784
417 * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
418 effects, do not use a temporary variable.
419
dca79b12 4202011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
421
422 * objc-next-runtime-abi-01.c: Updated comments.
423 * objc-next-runtime-abi-02.c: Same.
424
3c2c63b4 4252011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
426
427 * objc-act.c (objc_init, generate_struct_by_value_array): Updated
428 comments.
429
a0aa15e7 4302011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
431
432 * objc-act.c: Updated comments.
433 * objc-next-runtime-abi-02.c: Same.
434 * objc-runtime-shared-support.c: Same.
435 * objc-runtime-hooks.h: Same.
436 * objc-act.h: Same.
437 * objc-gnu-runtime-abi-01.c: Same.
438
05b2272e 4392011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
440
441 * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
442 not generate metadata if there is nothing to put into it.
443
267785bc 4442011-02-17 Iain Sandoe <iains@gcc.gnu.org>
445
446 * config-lang.in (gtfiles): Updated.
447 * Make-lang.in (START_HDRS): New.
448 (OBJC_OBJS): Added new object files.
449 (objc/objc-act.o): Updated prerequisites.
450 (objc/objc-lang.o): Updated prerequisites.
451 (objc/objc-runtime-shared-support.o): New.
452 (objc/objc-gnu-runtime-abi-01.o): New.
453 (objc/objc-next-runtime-abi-01.o): New.
454 (objc/objc-next-runtime-abi-02.o): New.
455 * objc-runtime-hooks.h: New.
456 * objc-runtime-shared-support.h: New.
457 * objc-runtime-shared-support.c: New.
458 * objc-gnu-runtime-abi-01.c: New.
459 * objc-next-metadata-tags.h: New.
460 * objc-next-runtime-abi-01.c: New.
461 * objc-next-runtime-abi-02.c: New.
462 * objc-lang.c: Include c-lang.h.
463 (LANG_HOOKS_EH_PERSONALITY): Removed.
464 * objc-act.h: Moved many declarations and code from objc-act.c
465 into objc-act.h to make them available outside objc-act.c.
466 (objc_eh_runtime_type): Removed.
467 (objc_eh_personality): Removed.
468 (CLASS_HAS_EXCEPTION_ATTR): New.
469 (OCTI_SUPER_SUPERFIELD_ID): New.
470 (OCTI_V1_PROP_LIST_TEMPL): New.
471 (OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
472 (super_superclassfield_id): New.
473 (objc_prop_list_ptr): New.
474 (prop_names_attr_chain): New.
475 * objc-act.c: Include new runtime headers. Moved many #defines
476 and declarations into objc-act.h and
477 objc-runtime-shared-support.h. Made some corresponding functions
478 non-static, and moved some others into
479 objc-runtime-shared-support.c. Moved metadata generation code
480 into the new runtime hook files.
481 (ivar_offset_hash_list): New.
482 (objc_init): Call generate_struct_value_by_array() before doing
483 any runtime initialization. Create the appropriate runtime hook
484 structures.
485 (init_objc): Removed. Code moved directly into objc_init.
486 (finish_objc): Removed. Code moved directly into
487 objc_write_global_declarations.
488 (objc_write_global_declarations): Do the warn_selector checks
489 before emitting metadata. Use a runtime hook to emit the
490 metadata. Do not emit the metadata or do -gen-decls processing if
491 -fsyntax-only or we are producing a PCH.
492 (build_objc_exception_stuff): Renamed to
493 build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from
494 objc_exception_throw_decl.
495 (synth_module_prologue): Call runtime initialize hook instead of
496 building runtime declarations here. Use the
497 default_constant_string_class_name runtime hook to set the
498 constant string class name.
499 (objc_build_string_object): Call the setup_const_string_class_decl
500 runtime hook instead of setup_string_decl. Call the
501 build_const_string_constructor runtime hook instead of building
502 the string object here.
503 (get_objc_string_decl): Added prop_names_attr case. Removed
504 gcc_unreachable() at the end.
505 (objc_begin_catch_clause): Distinguish between @catch (...) and
506 @catch (id x). Call the begin_catch runtime hook instead of
507 building the CATCH_EXPR here.
508 (objc_finish_catch_clause): Call the finish_catch runtime hook
509 instead of adding the catch here.
510 (objc_finish_try_stmt): Call the finish_try_stmt runtime hook
511 instead of doing it here.
512 (objc_build_throw_stmt): Bail out early for error_mark_node. Call
513 the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
514 Call the build_throw_stmt runtime hook instead of building the
515 throw call here.
516 (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
517 as well.
518 (get_arg_type_list): Call the get_arg_type_list_base runtime hook
519 instead of building the list of arguments here.
520 (receiver_is_class_object): Call the receiver_is_class_object
521 runtime hook instead of doing the check here. Call the
522 tag_getclass runtime hook instead of using TAG_GETCLASS.
523 (objc_finish_message_expr): Call the build_objc_method_call
524 runtime hook.
525 (objc_build_protocol_expr): Call the get_protocol_reference
526 runtime hook.
527 (objc_build_selector_expr): Call the build_selector_reference
528 runtime hook.
529 (build_ivar_reference): Call the build_ivar_reference runtime
530 hook.
531 (hash_init): Set up ivar_offset_hash_list.
532 (start_class): Recognize the objc_exception attribute and store
533 it.
534 (continue_class): Use the class_decl and metaclass_decl runtime
535 hooks.
536 (build_objc_property_accessor_helpers): Renamed to
537 build_common_objc_property_accessor_helpers. Do not build
538 objc_copyStruct_decl, objc_getPropertyStruct_decl and
539 objc_setPropertyStruct_decl.
540 (objc_synthesize_getter): Check what struct setter/getter helper
541 is available instead of checking the type of runtime.
542 (get_super_receiver): Use the super_superclassfield_ident runtime
543 hook. Added assert. Use the get_class_super_ref and
544 get_category_super_ref runtime hooks.
545 (objc_v2_encode_prop_attr): New.
6bbb4715 546
8e8bbfb1 5472011-01-17 Nicola Pero <nicola.pero@meta-innovation.com>
548
549 PR objc/47314
550 * objc-act.c (finish_objc): When calling check_duplicates to check
551 duplicated instance methods, set 'is_class' to 0, not 1.
552
86d3c909 5532011-01-14 Ben Elliston <bje@au.ibm.com>
554
07a6dfdb 555 PR 19162
86d3c909 556 * objc-act.c (generate_struct_by_value_array): Do not output a
557 definition for struct_forward_array.
558
2999f661 5592011-01-08 Iain Sandoe <iains@gcc.gnu.org>
560
561 * objc-act.c (objc_finish_foreach_loop): Mark collection expression
562 as read.
563
0d3a8ed4 5642011-01-02 H.J. Lu <hongjiu.lu@intel.com>
565
566 * objc-act.c (check_that_protocol_is_defined): Fix a typo.
567
56c83d77 5682011-01-02 Nicola Pero <nicola.pero@meta-innovation.com>
569
570 * objc-act.c (check_that_protocol_is_defined): New.
571 (lookup_protocol): Call check_that_protocol_is_defined.
572
c4823a85 5732010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
574
575 * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
576 lists. Check them two-ways to fix comparisons when one protocol
577 implements the other one, or when one list contains duplicated
578 protocols.
579
9436777e 5802010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
581
582 * objc-act.c (objc_add_method): When emitting an error because a
583 method with the same name but conflicting types is found in the
584 same class or category interface, print a note with the location
585 of the original method. Also, improved the error message to
586 clearly state that the conflict is due to conflicting types, and
587 produce it for protocols as well. Emit an error if two identical
588 methods are declared in a protocol, but one is @required and the
e4079fba 589 other one is @optional.
9436777e 590
5912010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
e488ff21 592
593 * objc-act.c (start_class): Warn when a class attribute is
594 ignored.
595 (objc_declare_protocols): Warn when a protocol attribute in a
596 protocol forward-declaration is ignored.
597 (start_protocol): Warn when a protocol attribute is ignored.
598
d2389fe7 5992010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
600
601 * objc-act.c (objc_set_method_opt): Tidy up error messages. In
602 particular, explicitly mention whether the error is due to the
603 @optional or @required keyword instead of mentioning
604 "@optional/@required".
605
5cada957 6062010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
607
608 PR objc/47118
609 * objc-act.c (objc_build_synchronized): Check the argument of
610 @synchronized and emit an appropriate error if it is not a valid
611 Objective-C object. Deal gracefully with that case. Updated
612 comments and variable names.
613
d67e8485 6142010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
615
616 PR objc/47075
617 * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
618 * objc-tree.def (PROPERTY_REF): Increased the number of operands
619 from 3 to 4.
620 * objc-act.c (objc_finish_message_expr): Added optional argument
621 allowing to return the deprecated method prototype for deprecated
622 methods, instead of immediately emitting the deprecation warning.
623 (objc_maybe_build_component_ref): Do not warn for a deprecated
624 property. When building the getter call, get the deprecated
625 method prototype from objc_finish_message_expr() and put it into
626 the PROPERTY_REF.
627 (objc_build_class_component_ref): Same change.
628 (finish_class): Mark the getter and setter as deprecated if they
629 are generated from a deprecated property.
630 (objc_gimplify_property_ref): If the getter is deprecated, emit a
631 deprecation warning.
632 (objc_build_setter_call, objc_build_message_expr,
633 objc_finish_foreach_loop): Updated call to
634 objc_finish_message_expr.
6bbb4715 635
89e83a91 6362010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
637
638 PR objc/47076
639 * objc-act.c (lookup_protocol): Added 'definition_required'
640 argument. If 'definition_required', and the protocol is not
641 defined, emit a warning.
642 (objc_declare_protocols): Updated call to lookup_protocol.
643 (start_protocol): Same change.
644 (check_protocol_recursively): Same change.
645 (objc_build_protocol_expr): Same change.
646 (lookup_and_install_protocols): Added definition_required argument.
647 Pass it to lookup_protocol.
648 (objc_get_protocol_qualified_type): Updated call to
649 lookup_and_install_protocols.
650 (start_class): Updated calls to lookup_and_install_protocols; pass
651 true to 'definition_required' to get the warnings.
652 (start_protocol): Updated calls to lookup_and_install_protocols.
653
598d5210 6542010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
655
656 * objc-act.c (objc_start_category_interface): Produce an error if
657 a class extension is found after the class @implementation.
658
39c05f29 6592010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
660
661 PR objc/47073
662 * objc-act.c (encode_method_prototype): Fixed both location and
663 format string of error "type %qT does not have a known size".
664
5d8940e8 6652010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
666
667 * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
668
a36cf284 6692010-12-22 Nathan Froyd <froydnj@codesourcery.com>
670
671 * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
672
33b3681f 6732010-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
674
675 * objc-act.c (objc_init): Call using_eh_for_cleanups.
676 (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do
677 not call using_eh_for_cleanups.
678 (objc_begin_try_stmt): Do not call objc_init_exceptions.
679 (objc_build_throw_stmt): Updated call to
680 objc_maybe_warn_exceptions.
681
a654f093 6822010-12-18 Iain Sandoe <iains@gcc.gnu.org>
683
684 * objc/objc-act.c (objc_eh_personality): Select personality name on
685 runtime.
686 (objc_init_exceptions): New.
687 (objc_begin_try_stmt): Use objc_init_exceptions.
688 (objc_build_throw_stmt): Likewise.
689
e16610d0 6902010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
691
692 * objc-act.c (objc_in_class_extension): New.
693 (objc_start_category_interface): If -fobjc-std=objc1
694 was specified, produce an error if a class extension is used.
695 (objc_finish_interface): Reset objc_in_class_extension to false.
696 (objc_add_property_declaration): Allow a class extension to extend
697 readonly properties in the main @interface to be readwrite.
698 (start_class): Added code to deal with class extensions. In that
699 case, return the existing interface after adding any additional
700 protocols to it and setting objc_in_class_extension to true.
701 (continue_class): If in a class extension, do not generate the
702 instance variable template.
703
40ec327c 7042010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
705
706 * objc-act.c (objc_build_throw_stmt): Check that the argument of
707 @throw is an object and emit an error if not.
708
693f2197 7092010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
710
711 * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
712 error() when printing an error about the iterating variable or
713 collection not being an object.
714
81976f54 7152010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
716
717 * objc-act.c (objc_finish_foreach_loop): Mark the
718 object_expression as used.
719
6c536c4f 7202010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
721
722 * objc-act.c: Include c-family/c-objc.h.
723 * objc-lang.c: Same change.
724 * Make-lang.in (objc/objc-act.o): Depend on
725 c-family/c-objc.h.
726 (objc/objc-lang.o): Same change.
727 * config-lang.in (gtfiles): Added c-family/c-objc.h.
6bbb4715 728
f1a0bc73 7292010-12-02 Joseph Myers <joseph@codesourcery.com>
730
731 * lang-specs.h: Don't handle -ftraditional.
732
dee9f0c7 7332010-12-02 Nicola Pero <nicola.pero@meta-innovation.com>
734
735 * objc-act.c (objc_build_throw_stmt): Return error_mark_node and
736 not NULL_TREE when a @throw is used outside of a @catch block.
737
d7489d8d 7382010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
739
740 * objc-act.c (objc_build_volatilized_type): Removed.
741 (objc_non_volatilized_type): Removed.
742 (objc_type_quals_match): Removed.
743 (local_variables_to_volatilize): New.
744 (objc_volatilize_decl): Add the decl to volatilize to
745 local_variables_to_volatilize, but don't volatilize it yet.
746 (objc_finish_function): New.
747 * objc-act.h (local_variables_to_volatilize): New.
748
1569aee5 7492010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
750 Mike Stump <mikestump@comcast.net>
751
752 Allow 'make check-objc -j2'
753 * Make-lang.in (lang_checks_parallelized): New.
754 (check_objc_parallelize): New.
6bbb4715 755
1cd5e6ab 7562010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
757
758 * objc-act.c (start_class): When a class is reimplemented,
759 generate an error and avoid adding the class to the list of
760 implemented classes again, but do not return error_mark_node.
761
1a19222c 7622010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
763
764 * objc-act.c (objc_maybe_build_component_ref): Removed TODO.
765
b3d2d312 7662010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
767
768 * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
769 is passed as argument.
770 (objc_begin_catch_clause): Added code to deal with an
771 error_mark_node or NULL_TREE argument. Improved checks for
772 invalid arguments. Added code to traverse typedefs.
773
9aa91c6c 7742010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
775
776 * objc-act.c (objc_demangle): Return immediately if the string is
777 too short. Detect names that do not need demangling, and return
778 them unchanged.
779
db496216 7802010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
781
782 Implemented optional properties.
783 * objc-act.h (PROPERTY_OPTIONAL): New.
784 * objc-act.c (objc_add_property_declaration): Set
785 PROPERTY_OPTIONAL if appropriate.
786 (finish_class): When generating definitions of setter and getter
787 methods associated with a property for a protocol, mark them as
788 optional if the property is optional.
789 (maybe_make_artificial_property_decl): Added 'getter_name'
790 argument. Set PROPERTY_OPTIONAL.
791 (objc_maybe_build_component_ref): Updated calls to
792 maybe_make_artificial_property_decl. Added code for optional,
793 readonly properties.
794 (objc_build_class_component_ref): Updated call to
795 maybe_make_artificial_property_decl.
6bbb4715 796
2f78a7ce 7972010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
798
799 * objc-act.c (objc_build_struct): Fixed loops that save and
800 restore TYPE_OBJC_INFO to iterate over all variants of the type; a
801 special case for the current type is then no longer required.
802 Duplicate TYPE_LANG_SPECIFIC for each type before restoring
803 TYPE_OBJC_INFO.
804 (objc_get_protocol_qualified_type): Updated comments.
6bbb4715 805
39bf7c51 8062010-11-25 Nicola Pero <nicola.pero@meta-innovation.com>
807
808 * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
809 after finish_struct, not before, otherwise it may be wiped out by
810 it. This fixes spurious warnings when a class has more than 15
811 instance variables.
812
e71ec76d 8132010-11-23 Nicola Pero <nicola.pero@meta-innovation.com>
814
815 PR objc/24358
816 * lang-specs.h: Added objective-c-cpp-output. Mapped .mi to
817 objective-c-cpp-output instead of objc-cpp-output. Print a
818 deprecation note every time objc-cpp-output is requested.
819
cc4fa57a 8202010-11-22 Joseph Myers <joseph@codesourcery.com>
821
822 * objc-act.c (write_symbols): Don't declare here.
823
6cbcc94e 8242010-11-22 Nicola Pero <nicola.pero@meta-innovation.com>
825
826 PR objc/41108
827 * objc-act.c (objc_generate_write_barrier): Added assert to make sure
828 this function is only called with the next runtime.
829
02191613 8302010-11-20 Jakub Jelinek <jakub@redhat.com>
831
832 PR c/46547
833 * objc-act.c (in_late_binary_op): Remove.
834
aed3bc0e 8352010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
c213e196 836
c1cfb0f5 837 * objc-act.c (objc_start_class_interface): Do not warn that class
838 attributes are unimplemented. Pass the attributes to start_class.
839 (objc_start_category_interface): Updated call to start_class.
840 (objc_start_class_implementation): Same change.
841 (objc_start_category_implementation): Same change.
842 (objc_build_class_component_ref): Warn if the class is deprecated.
843 (build_private_template): Mark the template as deprecated if the
844 class is deprecated.
845 (start_class): Added 'attributes' argument. Emit a warning if
846 using a deprecated class as superclass of a class, or original
847 class of a category. Recognize the 'deprecated' attribute when
848 starting and interface, and mark the interface with
849 TREE_DEPRECATED if present. Store attributes in the interface.
6bbb4715 850
8512010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
c1cfb0f5 852
c213e196 853 * objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
854 argument. If it is 'true' and the protocol is deprecated, emit a
855 deprecation warning.
856 (objc_start_protocol): Do not warn that protocol attributes are
857 unimplemented. Pass the attributes to start_protocol.
858 (start_protocol): Added attributes argument. Recognize the
859 'deprecated' attribute and mark the protocols with TREE_DEPRECATED
860 if present. Store attributes in the protocol.
861 (objc_declare_protocols): Added 'attributes' argument. Recognize
862 the 'deprecated' attribute and mark the protocols with
863 TREE_DEPRECATED if present. Store attributes in the protocol.
864 Updated call to lookup_protocol.
865 (objc_build_protocol_expr): Updated call to lookup_protocol.
866 (check_protocol_recursively): Same change.
867 (lookup_and_install_protocols): Same change.
868 * objc-act.h: Updated comments.
6bbb4715 869
53cd8676 8702010-11-17 Nicola Pero <nicola.pero@meta-innovation.com>
871
872 * objc-act.c (lookup_method_in_protocol_list): Search methods in
873 PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
874 they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
875
6d922cb7 8762010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
877
878 * objc-act.c (objc_build_setter_call): New.
879 (objc_maybe_build_modify_expr): Rewritten to build a compound
880 statement.
881 (objc_build_incr_expr_for_property_ref): Updated calls to
882 objc_maybe_build_modify_expr to call objc_build_setter_call
883 instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR,
884 ...). Use convert () instead of build1 (NOP_EXPR, ...). Use
885 TREE_NO_WARNING on the final compound statement to silence C++
886 warnings.
887
e4a7640a 8882010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
889
890 * objc-act.c (objc_build_incr_expr_for_property_ref): New.
891 (objc_create_temporary_var): Moved it towards the beginning of the
892 file so that objc_build_incr_expr_for_property_ref can use it.
893
25bf0383 8942010-11-14 Nicola Pero <nicola.pero@meta-innovation.com>
895
896 * objc-act.c (objc_add_property_declaration): Check that the decl
897 we received from the parser is a FIELD_DECL; reject array and
898 bitfield properties. Convert the warning when a property is
899 readonly and a setter is specified into an error. Convert errors
900 when a property declaration does not match a property declaration
901 in a superclass into warnings.
902 (objc_add_synthesize_declaration_for_property): Use
903 DECL_BIT_FIELD_TYPE to determine the type of an instance variable
904 if it is a bitfield. Throw an error if we are asked to synthesize
905 setters/getters for a bitfield instance variable but the property
906 is not appropriate - it must be assign and nonatomic. If the
907 property is readonly, allow the instance variable type to be a
908 specialization of the property type.
909 (objc_type_valid_for_messaging): Fixed returning 'false' for a
910 Class qualified with a protocol when the 'accept_classes' argument
911 is 'false'.
912
e5479368 9132010-11-13 Nicola Pero <nicola.pero@meta-innovation.com>
914
915 * objc-act.c (objc_get_protocol_qualified_type): detect cases
916 where we are asked to attach a protocol to something which is not
917 an Objective-C object type, and produce an error.
918
ad312852 9192010-11-11 Nicola Pero <nicola.pero@meta-innovation.com>
920
921 * objc-act.c (objc_add_property_declaration): Check that the type
922 of a property and of an inherited property match.
923 (objc_maybe_build_component_ref): Tidied up indentation and
924 comments.
925 (objc_common_type): Added new type of check (-5).
926 (objc_add_synthesize_declaration_for_property): Check that the
927 property to synthesize and the instance variable to use have the
928 same type.
6bbb4715 929
bf776685 9302010-11-10 Joseph Myers <joseph@codesourcery.com>
931
932 * objc-act.c (objc_init): Use %' in diagnostic.
933 (objc_set_method_opt): Remove trailing '.' from diagnostic.
934
6bd9d862 9352010-11-10 Joseph Myers <joseph@codesourcery.com>
936
937 * objc-act.c (dump_base_name): Don't declare here.
938
99da7d7e 9392010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
940
941 * objc-act.c (objc_add_dynamic_declaration_for_property): Do not
942 search for the @property declation only in the current context,
943 but also in inherited properties. Do not mark the original
944 PROPERTY_DECL in the @interface or @protocol with
945 PROPERTY_DYNAMIC.
946 (check_methods): To check if a method is associated with a
947 @dynamic property, search for the property in IMPL_PROPERTY_DECL.
948 (check_accessible_methods): Same change.
949 * objc-act.h: Updated comment.
950
c84ce30a 9512010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
952
953 * objc-act.c (objc_add_synthesize_declaration_for_property):
954 Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
955 checking for an existing @synthesize or @dynamic declaration.
956 Search for an inherited @property declaration if none is found in
957 the local interface. If the required instance variable does not
958 exist, return instead of trying to continue to prevent a compiler
959 crash later. Check that the instance variable is not already
960 being used by another @synthesize.
961 (objc_add_dynamic_declaration_for_property): Iterate over
962 IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
963 existing @synthesize or @dynamic declaration.
964 (objc_synthesize_getter): Search for the getter declaration in
965 protocols and superclasses as well.
966 (objc_synthesize_setter): Search for the setter declaration in
967 protocols and superclasses as well.
6bbb4715 968
7f5203a8 9692010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
970
971 * objc-act.c (lookup_property): When checking categories, also
972 check the protocols attached to each.
973 (objc_add_property_declaration): Determine the
974 PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up
975 error message. Search for an existing property declaration with
976 the same name which would be inherited from the class hiearchy,
977 and produce an error if it has incompatible attributes.
978 (check_methods): Changed second parameter. If the method is a
979 getter or setter for a property, do not warn if it is inherited as
980 opposed to implemented directly in the class.
981 (check_protocol): Updated calls to check_methods.
982 (finish_class): Do not determine the PROPERTY_SETTER_NAME and
983 PROPERTY_GETTER_NAME here; this is now done earlier, in
984 objc_add_property_declaration.
985 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
6bbb4715 986
736dea43 9872010-11-06 Nicola Pero <nicola.pero@meta-innovation.com>
988
f3fefa12 989 Fixed using the Objective-C 2.0 dot-syntax with self and super.
736dea43 990 * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
991 (maybe_make_artificial_property_decl): Added 'implementation'
992 argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
993 looking up getters or setters for a class. If an implementation
994 is specified, search it as well for a getter or setter.
995 (objc_maybe_build_component_ref): Updated calls to
996 maybe_make_artificial_property_decl; added code to deal with
997 'self' and 'super' and with methods declared locally in the
998 implementation. Store the getter call expression in the
999 PROPERTY_REF instead of throwing it away.
1000 (objc_build_class_component_ref): Updated calls to
1001 maybe_make_artificial_property_decl, and store the getter call
1002 expression in PROPERTY_REF instead of throwing it away.
1003 (lookup_method_static): Implemented
1004 OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
1005 (objc_gimplify_property_ref): Do not build the getter method call
1006 here; instead use the one stored in the PROPERTY_REF. If it's not
1007 there, produce helpful error messages.
1008 * objc-tree.def (PROPERTY_REF): Increased the number of operands
1009 from 2 to 3. Updated comments.
1010 * objc-act.h (PROPERTY_REF_GETTER_CALL): New.
6bbb4715 1011
1f6616ee 10122010-11-06 Iain Sandoe <iains@gcc.gnu.org>
1013
1014 PR target/44981
1015 * objc-act.c (objc_build_string_object): Amend for renamed hook.
1016 (objc_string_ref_type_p): New.
1017 (objc_check_format_arg): New.
1018
b0d0931f 10192010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
1020
6bbb4715 1021 Fixed using the Objective-C 2.0 dot-syntax with class names.
b0d0931f 1022 * objc-act.c (objc_build_class_component_ref): New.
1023
f26877d5 10242010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
1025
1026 * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
1027 category.
1028 (objc_type_valid_for_messaging): Added 'accept_classes' argument;
1029 if set to 'true', return 'true' for Class objects. Do not remove
1030 more than on pointer indirection.
1031 (objc_add_property_declaration): Only warn about 'assign'
1032 semantics for Objective-C objects if warn_property_assign_default;
1033 and do not warn if the property is readonly or if the type is a Class.
1034 (objc_finish_foreach_loop): Updated calls to
1035 objc_type_valid_for_messaging.
6bbb4715 1036
1ef143b6 10372010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
1038
1039 Implemented -fobjc-std=objc1 flag.
1040 * objc-act.c (objc_start_class_interface): If attributes are
1041 specified when flag_objc1_only is set, print an error.
1042 (objc_start_category_interface): Same change.
1043 (objc_start_protocol): Same change.
1044 (objc_add_method_declaration): Same change.
1045 (objc_start_method_definition): Same change.
1046 (objc_build_keyword_decl): Same change.
1047 (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
1048 flag_objc1_set is set, print an error.
1049 (objc_set_method_opt): If flag_objc1_only is set, print an error.
1050 (objc_add_property_declaration): Same change.
1051 (objc_add_synthesize_declaration): Same change.
1052 (objc_add_dynamic_declaration): Same change.
1053 (objc_finish_foreach_loop): Same change.
1054 (objc_maybe_build_component_ref): If flag_objc1_only is set,
1055 return immediately.
1056
890881e7 10572010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
1058
1059 * objc-act.c (maybe_make_artificial_property_decl): New.
1060 (objc_maybe_build_component_ref): Call
1061 maybe_make_artificial_property_decl if a property can not be
1062 found. Do not call objc_finish_message_expr if
1063 PROPERTY_HAS_NO_GETTER.
1064 * objc-act.h Updated comments.
1065 (PROPERTY_HAS_NO_GETTER): New.
1066 (PROPERTY_HAS_NO_SETTER): New.
1067 * objc-tree.def: Updated comment.
6bbb4715 1068
8c582e4f 10692010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
1070
1071 Implemented format and noreturn attributes for Objective-C methods.
1072 * objc-act.c (objc_start_method_definition): If method attributes
1073 are specified emit a warning and ignore them.
1074 (build_objc_method_call): Moved deprecation warnings from here ...
1075 (objc_finish_message_expr): to here. Do not emit deprecation
1076 warnings if the receiver is of type 'id'.
1077 (really_start_method): Install 'deprecation' and 'noreturn'
1078 attributes.
1079 (objc_decl_method_attributes): Carefully filter out the list of
1080 attributes, allowing only "noreturn", "format", "sentinel" and
1081 "deprecated". In the case of "format", adjust the arguments.
1082 Always process the attributes in the same way no matter if
1083 "sentinel" is in the list or not.
6bbb4715 1084
cb92539e 10852010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
1086
1087 * objc-act.c (objc_maybe_build_component_ref): Warn about using
1088 deprecated properties.
1089 (objc_maybe_printable_name): Support PROPERTY_DECL.
6bbb4715 1090
7fd68cee 10912010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
1092
6bbb4715 1093 Implemented Objective-C 2.0 property accessors.
7fd68cee 1094 * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
1095 OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
1096 OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
1097 (objc_getProperty_decl): New.
1098 (objc_setProperty_decl): New.
1099 (objc_copyStruct_decl): New.
1100 (objc_getPropertyStruct_decl): New.
1101 (objc_setPropertyStruct_decl): New.
1102 * objc-act.c (build_objc_property_accessor_helpers): New.
1103 (synth_module_prologue): Call
1104 build_objc_property_accessor_helpers.
1105 (lookup_ivar): New.
1106 (objc_synthesize_getter): Implemented synthesizing getters that
1107 work with properties that are not nonatomic, assign properties.
1108 (objc_synthesize_setter): Implemented synthesizing setters that
1109 work with properties that are not nonatomic, assign properties.
6bbb4715 1110
9d9f5bb3 11112010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
1112
1113 Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
1114 * objc-tree.def (PROPERTY_REF): New.
1115 * objc-act.h: Added comments for all the PROPERTY_ macros.
1116 (PROPERTY_NAME): Use DECL_NAME.
1117 (PROPERTY_COPIES): Removed.
1118 (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
1119 (PROPERTY_NONATOMIC): New.
1120 (objc_property_assign_semantics): Make it a typedef.
1121 (PROPERTY_ASSIGN_SEMANTICS): New.
1122 (PROPERTY_DYNAMIC): New.
1123 (PROPERTY_REF_OBJECT): New.
1124 (PROPERTY_REF_PROPERTY_DECL): New.
1125 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
1126 (in_objc_property_setter_name_context): Removed.
1127 (objc_add_property_declaration): Removed copies and ivar arguments
1128 and code supporting them. Fixed recovering when readonly and
1129 setter attributes are specified. Removed support for @property in
1130 @implementation context. Updated error message. Double-check
1131 that a property does not have a DECL_INITIAL. Validate the
1132 property assign semantics and emit appropriate errors and
1133 warnings. Check for duplicate property declarations. Set
1134 DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
1135 PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
1136 PROPERTY_DECL. Do not set PROPERTY_COPIES. Set
1137 PROPERTY_IVAR_NAME to NULL_TREE.
1138 (objc_build_getter_call): Renamed to
1139 objc_maybe_build_component_ref. If the property is not found in
1140 the interface, search in the protocol list. Do not generate the
1141 getter call; instead, build and return a PROPERTY_REF.
1142 (objc_is_property_ref): New.
1143 (objc_setter_func_call): Removed.
1144 (get_selector_from_reference): Removed.
1145 (is_property): Removed.
1146 (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
1147 Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
1148 the PROPERTY_REF. Generate an error if the property is read-only.
1149 (build_property_reference): Removed.
1150 (objc_finish_message_expr): Removed check to produce "readonly
1151 property can not be set" error when
1152 in_objc_property_setter_name_context. We now generate the error
1153 earlier, in objc_maybe_build_modify_expr, which will only generate
1154 the setter call if the property is readwrite.
1155 (check_methods): Recognize dynamic properties.
1156 (check_methods_accessible): Same change.
1157 (objc_build_property_ivar_name): Removed.
1158 (objc_build_property_setter_name): Dropped bool argument. Always
1159 add the ':' at the end.
1160 (objc_gen_one_property_datum): Removed.
1161 (objc_process_getter_setter): Removed.
1162 (objc_synthesize_getter): Mark 'klass' argument as unused. Use
1163 PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the
1164 DECL_SOURCE_LOCATION of the new method to be the same as the one
1165 for the @synthesize. Always use PROPERTY_IVAR_NAME as it is
1166 instead of trying to guess what it should be. Removed use of
1167 CLASS_IVARS. Use the location of @synthesize for c_finish_return
1168 and c_end_compound_statement.
1169 (objc_synthesize_setter): Mark 'klass' argument as unused. Use
1170 PROPERTY_SETTER_NAME instead of trying to guess what it should be.
1171 Set the DECL_SOURCE_LOCATION of the new method to be the same as
1172 the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it
1173 is instead of trying to guess what it should be. Removed use of
1174 CLASS_IVARS. Use the location of @synthesize for c_finish_return
1175 and c_end_compound_statement. Emit an error and keep going,
1176 instead of aborting, if the setter prototype does not have the
1177 expected argument.
1178 (objc_add_synthesize_declaration_for_property): New.
1179 (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
1180 all arguments. Improved error message. Filled in the rest of the
1181 function, which used to be a placeholder, with an actual
1182 implementation.
1183 (objc_add_dynamic_declaration_for_property): New.
1184 (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
1185 arguments. Improved error message. Filled in the rest of the
1186 function, which used to be a placeholder, with an actual
1187 implementation.
1188 (objc_gen_property_data): Rewritten.
1189 (finish_class): Added explicit switch cases for
1190 CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
1191 PROTOCOL_INTERFACE_TYPE. Added a default switch case which is
1192 gcc_unreachable. Rewritten the processing of properties, in
1193 particular to not synthesize prototypes for getters and setters if
1194 they already exist and to install the getter and setter names into
1195 PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate
1196 warnings about setter, getter and ivar property attributes.
1197 (objc_lookup_ivar): Removed support for properties.
1198 (objc_gimplify_property_ref): New.
1199 (objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call
1200 objc_gimplify_property_ref.
6bbb4715 1201
7590f0e5 12022010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
1203
1204 * objc-act.c (objc_add_property_declaration): Added arguments to
1205 pass the various property attributes that were parsed with the
1206 property declaration. Process arguments to determine the final
1207 property attributes and produce error messages as appropriate.
1208 Added temporary code to keep the compiler silent about variables
1209 set but not used - for new attributes that are only checked but
1210 have no effect yet.
1211 (property_readonly): Removed.
1212 (property_setter): Removed.
1213 (property_getter): Removed.
1214 (property_ivar): Removed.
6bbb4715 1215 (property_copies): Removed.
7590f0e5 1216 (objc_set_property_attr): Removed.
1217 * objc-act.h (enum property_assign_semantics): New.
6bbb4715 1218
1d894bcf 12192010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
1220
1221 * objc-act.c (objc_add_property_variable): Renamed to
1222 objc_add_property_declaration. Added location argument. Updated
1223 warnings and errors to use it. Use error, not fatal_error, if a
1224 property declaration is found outside an interface or
1225 implementation context.
6bbb4715 1226
601154bb 12272010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
1228
1229 * objc-act.c (objc_build_keyword_decl): Updated comments. Do not
1230 emit a warning that method parameter attributes are unimplemented.
1231 Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
1232 (start_method_def): Copy attributes from each KEYWORD_DECL into
1233 the corresponding PARM_DECL.
1234 (objc_warn_deprecated_use): Removed.
1235 (build_objc_method_call): Call warn_deprecated_use, not
1236 objc_warn_deprecated_use.
1237 (objc_maybe_printable_name): Do not try to get the identifier name
1238 of DECLs that we don't recognize. Immediately return NULL for them.
1239 (objc_printable_name): Removed C++-specific case, which is no
1240 longer used. Updated comments.
6bbb4715 1241
e23bf1fb 12422010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
1243
1244 * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
1245 (objc_demangle): Return NULL if demangling can not be done because
1246 the string to demangle is not an Objective-C mangled method name.
1247 Be smarter in demangling method names so that at least for methods
1248 with no arguments we are able to almost always demangle '_' correctly.
1249 Updated comments.
1250 (objc_maybe_printable_name): New.
1251 (objc_printable_name): Call objc_maybe_printable_name. If it
1252 returns NULL, call cxx_printable_name in Objective-C++.
1253
d4238e8b 12542010-10-21 Iain Sandoe <iains@gcc.gnu.org>
1255
1256 Based on the CFString implementation in FSF apple/trunk branch.
6bbb4715 1257
d4238e8b 1258 * objc/objc-act.c (objc_build_string_object): Handle CFStrings.
1259
29d8eac9 12602010-10-21 Nicola Pero <nicola.pero@meta-innovation.com>
1261
1262 * objc-act.c (get_objc_string_decl): Use a switch instead of a
1263 chain of ifs. Use gcc_unreachable instead of abort.
1264 (add_objc_string): Same change.
1265 (generate_protocol_list): Same change - twice.
1266 (synth_id_with_class_suffix): Same change.
1267 (build_keyword_selector): Same change - twice.
1268 (objc_build_message_expr): Same change.
1269 (objc_build_selector_expr): Same change.
1270 (check_methods): Same change - and added missing gcc_unreachable
1271 for default case.
1272 (check_methods_accessible): Same change - twice, and added missing
1273 gcc_unreachable for default case in one of them.
1274 (start_class): Same change - and added missing gcc_unreachable for
1275 default case.
1276 (continue_class): Same change.
1277 (objc_gen_property_data): Same change.
1278 (finish_class): Same change.
1279 (encode_type_qualifiers): Added missing gcc_unreachable.
1280 (encode_type): Small code tidy up to reduce duplicated code. Use
1281 gcc_unreachable instead of abort - twice.
1282 (encode_gnu_bitfield): Use a switch instead of a chain of ifs -
1283 twice. Added missing gcc_unreachable for default case - twice.
1284 (dump_interface): Use a switch instead of a chain of ifs.
1285 (handle_impent): Same change.
6bbb4715 1286
45b2b110 12872010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1288
1289 * objc-act.h (objc_inherit_code): Removed.
1290 * objc-act.c (objc_inherit_code): Removed.
1291 (objc_set_method_type): Removed.
1292 (objc_build_method_signature): Added is_class_method argument.
1293 Use it instead of the global objc_inherit_code variable.
1294 (objc_add_method_declaration): Same change.
1295 (objc_start_method_definition): Same change.
1296 (objc_generate_cxx_ctor_or_dtor): Updated call to
1297 objc_start_method_definition. Do not call objc_set_method_type.
1298 (adjust_type_for_id_default): Mark as inline.
1299 (objc_synthesize_getter): Updated call to
1300 objc_start_method_definition. Do not set objc_inherit_code.
1301 (objc_synthesize_setter): Updated call to
6bbb4715 1302 objc_start_method_definition. Do not set objc_inherit_code.
1303
e9e7c336 13042010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1305
1306 Merge from 'apple/trunk' branch on FSF servers. Obvious updates
1307 to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
1308 get it to compile in the current trunk.
1309
1310 2006-01-27 Fariborz Jahanian <fjahanian@apple.com>
1311
1312 Radar 4345837
1313 * objc/objc-act.c (hash_class_name_enter): New.
1314 (hash_class_name_lookup): New.
1315 (objc_declare_alias): Enter alias name into hash table.
1316 (objc_declare_class): Enter class name into hash table.
1317 (objc_is_class_name): Do a hash look up of class name.
1318 (hash_init): Initialize the two new hash tables.
6bbb4715 1319 * objc-act.h: Added cls_name_hash_list and als_name_hash_list
1320 declarations, removed class_chain and alias_chain.
e9e7c336 1321
64cd9619 13222010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1323
1324 * objc-lang.c (finish_file): Removed.
1325 * objc-act.c (objc_finish_file): Renamed to
1326 objc_write_global_declarations. Do not try to instantiate C++
1327 templates when compiling Objective-C++ as this is now
1328 automatically done before this function is called. Do not check
1329 for syntax-only run or PCH generation as this is done by the
1330 callers.
1331 * objc-act.h (objc_finish_file): Removed.
6bbb4715 1332
e1f293c0 13332010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1334
1335 Implemented parsing @synthesize and @dynamic for
1336 Objective-C/Objective-C++.
1337 * objc-act.c (objc_add_synthesize_declaration): New.
1338 (objc_add_dynamic_declaration): New.
1339
6bbb4715 13402010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
e1f293c0 1341
1342 * objc-act.c (lookup_and_install_protocols): Return NULL if passed
1343 error_mark_node.
6bbb4715 1344
69b07042 13452010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1346
1347 Merge from 'apple/trunk' branch on FSF servers.
a1176db9 1348
1349 2006-03-10 Fariborz Jahanian <fjahanian@apple.com>
1350
1351 Radar 4407151
1352 * objc/objc-act.c (objc_is_class_name): template parameter is not
1353 an objective class name.
1354 (objc_generate_cxx_cdtors): Check for the null
6bbb4715 1355 objc_implementation_context.
a1176db9 1356
13572010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1358
6bbb4715 1359 Merge from 'apple/trunk' branch on FSF servers.
1360
69b07042 1361 2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
1362
1363 Radar 4330422
1364 * objc/objc-act.c (objc_non_volatilized_type): New
1365
1366 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
6bbb4715 1367
69b07042 1368 Radar 4204796
1369 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
1370 types with proper attribute set and correctly.
1371 (objc_volatilize_decl): Remove unneeded code.
1372 (objc_type_quals_match): Use the new attribute to check on
1373 'volatilzed' type.
1374 (hash_init): removed unneeded code.
6bbb4715 1375
f15f2e56 13762010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1377
1378 Merge from 'apple/trunk' branch on FSF servers.
6bbb4715 1379
f15f2e56 1380 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1381
1382 Radar 4133425
1383 * objc-act.c (objc_diagnose_private_ivar): New.
1384
4a8875ed 13852010-10-17 Iain Sandoe <iains@gcc.gnu.org>
1386
1387 * objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and
6bbb4715 1388 make its type 'objc_ivar_visibility_kind'.
4a8875ed 1389 (objc_start_class_interface): Update to use visibility enum.
1390 (objc_start_class_implementation): Likewise.
6bbb4715 1391 (objc_set_visibility): Update to use visibility enum, warn that
4a8875ed 1392 @package is handle as per @public.
1393 (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
1394 * objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and
1395 make its type 'objc_ivar_visibility_kind'.
1396
86c110ac 13972010-10-14 Iain Sandoe <iains@gcc.gnu.org>
1398
6bbb4715 1399 merge from FSF apple 'trunk' branch.
86c110ac 1400 2006 Fariborz Jahanian <fjahanian@apple.com>
6bbb4715 1401
86c110ac 1402 Radars 4436866, 4505126, 4506903, 4517826
1403 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New.
1404 property_readonly, property_getter, property_setter, property_ivar,
1405 property_copies, in_objc_property_setter_name_context: New vars.
1406 (objc_set_property_attr): New.
1407 (objc_add_property_variable): New.
1408 (lookup_property_in_list): New.
1409 (lookup_property): New.
1410 (objc_build_getter_call): New.
1411 (objc_setter_func_call): New.
1412 (get_selector_from_reference): New.
1413 (objc_build_setter_call): New.
1414 (is_property): New.
1415 (build_property_reference): New.
1416 (objc_finish_message_expr): Detect readonly property and warn.
1417 (objc_build_property_ivar_name): New.
1418 (objc_build_property_setter_name): New.
1419 (objc_gen_one_property_datum): New.
1420 (objc_process_getter_setter): New.
1421 (objc_synthesize_getter): New.
1422 (objc_synthesize_setter): New.
1423 (objc_gen_property_data): New.
1424 (finish_class): Generate property data.
1425 (comp_proto_with_proto): Separated from ...
1426 (match_proto_with_proto): ... New.
1427 (objc_lookup_ivar): Handle properties.
1428 * objc-tree.def (PROPERTY_DECL): New tree code.
1429 * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size.
1430 (METHOD_PROPERTY_CONTEXT): New.
1431 (PROPERTY_NAME): New.
1432 (PROPERTY_GETTER_NAME): New.
1433 (PROPERTY_SETTER_NAME): New.
1434 (PROPERTY_IVAR_NAME): New.
1435 (PROPERTY_READONLY): New.
1436 (PROPERTY_COPIES): New.
1437 (TOTAL_CLASS_RAW_IVARS): New.
1438 (CLASS_PROPERTY_DECL): New.
1439 (IMPL_PROPERTY_DECL): New.
1440 * objc-lang.c (objc_init_ts): Update fields for property_decl.
1441
382597e4 14422010-10-13 Richard Henderson <rth@redhat.com>
1443
1444 * objc-act.c (objc_eh_personality): Update call to
1445 build_personality_function.
1446
40c8d1dd 14472010-10-13 Iain Sandoe <iains@gcc.gnu.org>
1448
6bbb4715 1449 merge from FSF apple 'trunk' branch.
40c8d1dd 1450
1451 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
1452 Radar 3803157 (method attributes)
1453 * objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
1454 * objc/objc-act.c (objc_decl_method_attributes): New.
1455 (objc_add_method_declaration): Process method's attribute.
1456 (objc_start_method_definition): Ditto.
1457 (build_objc_method_call): Inject method attribute into
1458 built function type.
1459 (objc_method_decl): New.
1460 (objc_warn_deprecated)use): New.
1461
18cfeada 14622010-10-07 Andi Kleen <ak@linux.intel.com>
1463
1464 * Make-lang.in (cc1obj-dummy): Remove.
1465 (cc1obj-checksum): Change to run checksum over object files
1466 and options only.
1467
31a38208 14682010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
1469
1470 PR objc/45925
1471 * objc-act.c (objc_finish_foreach_loop): Convert return value of
1472 countByEnumeratingWithState:objects:count: to long unsigned int.
1473
b79b475d 14742010-10-07 Iain Sandoe <iains@gcc.gnu.org>
1475
6bbb4715 1476 * objc-act.c (build_objc_method_call): Replace calls to
40d49b18 1477 build_function_call () with the VEC equivalent. Construct parameter
1478 lists as VECs.
1479
14802010-10-07 Iain Sandoe <iains@gcc.gnu.org>
1481
6bbb4715 1482 * objc-act.c (objc_build_message_expr): Call mark_exp_read () to
40d49b18 1483 signal that the receiver has been used.
b79b475d 1484
e1aa4dab 14852010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
1486
1487 * README: Obsolete file removed.
1488
0a65c3bb 14892010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
1490
1491 Implemented fast enumeration for Objective-C.
1492 * objc-act.c (build_fast_enumeration_state_template): New.
1493 (TAG_ENUMERATION_MUTATION): New.
1494 (TAG_FAST_ENUMERATION_STATE): New.
1495 (synth_module_prologue): Call build_fast_enumeration_state_template() and set up
1496 objc_enumeration_mutation_decl.
1497 (objc_create_temporary_var): Allow providing a name to temporary
1498 variables.
1499 (objc_build_exc_ptr): Updated calls to
1500 objc_create_temporary_var().
1501 (next_sjlj_build_try_catch_finally): Same change.
1502 (objc_finish_foreach_loop): New.
1503 * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
1504 OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
1505 objc_enumeration_mutation_decl.
1506
1507 Merge from 'apple/trunk' branch on FSF servers.
1508
1509 2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
1510
1511 Radar 4507230
1512 * objc-act.c (objc_type_valid_for_messaging): New routine to check
1513 for valid objc object types.
1514 (objc_finish_foreach_loop): Check for invalid objc objects in
1515 foreach header.
6bbb4715 1516
06517bd4 15172010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
1518
1519 Merge from 'apple/trunk' branch on FSF servers.
1520
1521 2005-10-17 Fariborz Jahanian <fjahanian@apple.com>
1522
1523 Radar 4290840
0a65c3bb 1524 * objc-act.c (objc_start_method_definition): Check for
1525 error_mark_node for the selector name and make a quick exit.
6bbb4715 1526
70293f47 15272010-10-04 Andi Kleen <ak@linux.intel.com>
1528
1529 * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
1530
069761fb 15312010-09-30 Iain Sandoe <iains@gcc.gnu.org>
1532
1533 merge from FSF 'apple/trunk' branch.
1534 2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
1535
1536 Radar 4386773
1537 * objc/objc-act.c (objc_set_method_opt): New function.
1538 (objc_start_protocol, objc_finish_interface): Reset
1539 objc_method_optional_flag flag.
1540 (objc_add_method_declaration): Pass on the new
1541 flag to objc_add_method.
1542 (objc_add_method): Add optional methods to new chain in
1543 the protocol class.
1544 * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS,
1545 CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
1546 class's optional method chains.
6bbb4715 1547
180bb2c0 15482010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
1549
1550 Merge from 'apple/trunk' branch on FSF servers.
1551
1552 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
1553
1554 Radar 4278236
1555 * objc-act.c (objc_declare_class): Pick the right
1556 type tree.
1557
3511333e 15582010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
e147d6aa 1559
1560 Merge from 'apple/trunk' branch on FSF servers.
1561
1562 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
1563
1564 Radar 4281748
1565 * objc-act.c (objc_check_global_decl): New
1566
b27e241e 15672010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
1568
1569 * objc-act.c (objc_is_reserved_word): Removed.
1570
03fc2271 15712010-09-28 Iain Sandoe <iains@gcc.gnu.org>
6bbb4715 1572
1573 * objc-act.c (objc_add_method_declaration): Handle and ignore
03fc2271 1574 attributes.
1575 (objc_start_method_definition): Likewise.
1576 (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
1577 (objc_build_keyword_decl): Handle and ignore attributes.
1578
cc7d6aed 15792010-09-28 Richard Henderson <rth@redhat.com>
1580
1581 * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
1582
a336eb4b 15832010-09-28 Iain Sandoe <iains@gcc.gnu.org>
1584
1585 * objc-act.c (objc_start_class_interface): Handle and ignore attributes.
1586 (objc_start_category_interface): Likewise.
1587 (objc_start_protocol): Likewise.
1588
ea446b0b 15892010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
1590
1591 Merge from 'apple/trunk' branch on FSF servers.
1592
1593 2005-08-23 Stuart Hastings <stuart@apple.com>
1594 Ziemowit Laski <zlaski@apple.com>
1595
1596 Radar 4209854
1597 * objc-act.c (objc_decay_parm_type): New function.
1598 (get_arg_type_list): Decay types for all named arguments.
1599 (objc_push_parm): Rebuild the PARM_DECL if its type has
6bbb4715 1600 been decayed.
ea446b0b 1601
9bc9b0a9 16022010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
c4bdb14e 1603
1604 * objc-act.c (encode_type): Fixed encoding enums with the next
1605 runtime.
1606
a198e083 16072010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
1608
1609 Merge from 'apple/trunk' branch on FSF servers.
1610
1611 2005-07-18 Ziemowit Laski <zlaski@apple.com>
1612
1613 Radar 4175534
1614 * objc-act.c (objc_compare_types): A new silent comparison
1615 mode (-4), differing from regular comparison (-3) in that
1616 'false' is returned instead of issuing warnings.
6bbb4715 1617
eb855c7a 16182010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
1619
1620 * objc-act.c (encode_type): Do not add 'r' with the next runtime.
1621 (encode_aggregate_within): Reorganized code to be more readable.
1622 (encode_aggregate_fields): Updated second argument to be 'bool'
1623 instead of 'int'.
1624
f8ee0563 16252010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
1626
1627 PR objc/45763
1628 PR objc/25450
1629 PR objc/25464
1630 * objc-act.c: Improved comments for encoding functions.
1631 (encode_aggregate_within): For the GNU runtime, rewritten some
1632 obsfuscated code to clarify the various cases.
1633 (encode_aggregate): Function removed.
1634 (encode_array): Generate an error if asked to encode an incomplete
1635 array as part of generating instance variables. Else, when
1636 encoding an incomplete array inside a structure, encode it as an
1637 array of zero size.
1638 (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
1639 '^c' instead of '*'.
1640 (encode_gnu_bitfield): Encode enumerated types exactly in the same
1641 type as integer types instead of using a hardcoded 'i'. If asked
1642 to encode a non-integer type as a bitfield, do not abort
1643 compilation immediately; instead generate an error, then skip the
1644 type.
1645 (encode_type): Use a 'switch' instead of a sequence of 'if's.
1646 Added a 'default' clause that gets executed if the type can not be
1647 matched, and that encodes it as '?' (unknown) and produces a
1648 warning. For the GNU runtime, encode enumerated types exactly in
1649 the same way as integer types instead of using a hardcoded 'i'.
1650 Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'.
1651 Encode C++ reference types as pointers. Call encode_vector to
1652 encode vectors.
1653 (encode_vector): New function.
6bbb4715 1654
f8ee0563 16552010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
1656
1657 Merge from 'apple/trunk' branch on FSF servers. I modified the
1658 changes to be used only when compiling for the NeXT runtime.
1659
1660 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
1661
1662 Radar 4301047
1663
1664 * objc-act.c (encode_type): Remove the hack.
6bbb4715 1665
f8ee0563 1666 2005-07-20 Ziemowit Laski <zlaski@apple.com>
1667
1668 Radar 4136935
1669 * objc-act.c (pointee_is_readonly): New function.
1670 (encode_pointer, encode_aggregate_within, encode_type):
1671 Attempt to emulate GCC 3.3 when generating type encodings.
1672
4abfc532 16732010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
1674
1675 Merge from 'apple/trunk' branch on FSF servers.
1676
1677 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
1678
1679 Radar 4229905
1680 * objc-act.c (objc_have_common_types): New function.
6bbb4715 1681
4abfc532 1682 2005-06-22 Ziemowit Laski <zlaski@apple.com>
1683
1684 Radar 4154928
1685 * objc-act.c (objc_common_type): New function.
6bbb4715 1686
059410d7 16872010-09-27 Richard Guenther <rguenther@suse.de>
1688
1689 * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
1690 (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
1691
5ed38d93 16922010-09-26 Nicola Pero <nicola.pero@meta-innovation.com>
1693
1694 * objc-act.c: Removed historical, obsolete comment at the top of
1695 the file.
1696
d4a8fb25 16972010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
1698
1699 PR objc/23710
1700 * objc-act.c (objc_start_method_definition): Do not abort upon a
1701 'method definition not in @implementation context' error. Return
1702 'false' instead.
1703
e93ea189 17042010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
1705
1706 PR objc/25965
1707 * objc-act.c (objc_get_interface_ivars): New function.
1708 (objc_collecting_ivars): New variable.
1709 (continue_class): Set and reset objc_collecting_ivars for context.
6bbb4715 1710
b24ba8fa 17112010-09-15 Nicola Pero <nicola.pero@meta-innovation.com>
1712
1713 Merge from 'apple/trunk' branch on FSF servers.
1714
1715 2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
1716
1717 Radar 4457381
1718 * objc/objc-act.c (objc_finish_message_expr): Look for message in
1719 @class's protocol list.
1720
1721 2006-02-07 Fariborz Jahanian <fjahanian@apple.com>
1722
1723 Radar 4219590
1724 * objc/objc-act.c (objc_start_method_definition): Initialize
1725 break/continue labels.
1726
1727 2005-08-22 Ziemowit Laski <zlaski@apple.com>
1728
1729 Radar 4174166
1730 * objc-act.c (objc_compare_types): Compare function
1731 pointers; indicate success if the right-hand side has
1732 a return type that is covariant, and the argument types
1733 contravariant, with those of the left side.
1734
1735 2005-08-22 Ziemowit Laski <zlaski@apple.com>
1736
1737 Radar 4216500
1738 * objc-act.c (objc_get_protocol_qualified_type): When looking
1739 at a typedef, retrieve the precise type it describes (rather
1740 than merely looking up a class by name).
6bbb4715 1741
48ca71c2 17422010-09-10 Nicola Pero <nicola.pero@meta-innovation.com>
1743
1744 * objc/objc-act.c (objc_begin_try_stmt): Generate an error if
1745 -fobjc-exceptions was not used. (objc_build_throw_stmt): Same
1746 change.
1747
1767a056 17482010-07-15 Nathan Froyd <froydnj@codesourcery.com>
1749
1750 * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
1751
c4796e8b 17522010-07-10 Iain Sandoe <iains@gcc.gnu.org>
1753
1754 PR objc/44140
1755 * objc-act.c: build_objc_string_decl() remove declaration.
1756 (finish_var_decl): Remove forcing of var output and marking
6bbb4715 1757 as "Used".
1758 (init_def_list): Use integer_zero_node.
c4796e8b 1759 (init_objc_symtab): Use integer_zero_node, make the short
1760 integer type specific on relevant nodes.
6bbb4715 1761 (generate_objc_symtab_decl): Remove call to
c4796e8b 1762 forward_declare_categories(). Use null_pointer_node where
6bbb4715 1763 appropriate.
1764 (build_module_descriptor): Comment and mark this item as
1765 DECL_PRESERVE_P.
c4796e8b 1766 (generate_static_references): Use gcc_unreachable instead of
6bbb4715 1767 abort ().
c4796e8b 1768 (diagnose_missing_method): New.
1769 (build_next_selector_translation_table): New.
1770 (build_gnu_selector_translation_table): New.
1771 (add_objc_string): Merge code from build_objc_string_decl...
1772 ... and delete build_objc_string_decl().
1773 (generate_dispatch_table): Make integer types explicit.
1774 (generate_category): Pass implent and arrange for the data
6bbb4715 1775 to be extracted within the routine. Do not start new vars,
c4796e8b 1776 but finish the ones collcted during parsing.
1777 (generate_shared_structures): Likewise.
1778 (finish_objc): Reorder code so that we finish variables before
1779 referencing them. Save the global data before calling meta-data
6bbb4715 1780 creation routines, and pass the current reference to the two
1781 main routines. Only call generate_objc_image_info () for the
c4796e8b 1782 NeXT runtime.
1783 (generate_classref_translation_entry): Comment on and make this
1784 item DECL_PRESERVE_P.
1785 (handle_class_ref): Use varpool interfaces, comment on and make
1786 this item DECL_PRESERVE_P.
1787 (handle_impent): Likewise.
6bbb4715 1788 (generate_objc_image_info): Only generate when the content is
c4796e8b 1789 non-zero. Make integer types explict.
1790
6ab3a6e6 17912010-07-03 Nathan Froyd <froydnj@codesourcery.com>
1792
1793 PR objc/24867
1794 * objc-act.c (build_sized_array_type): New function.
1795 (add_objc_string): Use it.
1796 (generate_protocol_list): Likewise.
1797 (generate_objc_image_info): Likewise.
1798 (add_field_decl): New function.
1799 (objc_build_struct): Use a VEC rather than building a TREE_LIST.
1800 (generate_struct_by_value_array): Use add_field_decl.
1801 (build_objc_symtab_template): Likewise.
1802 (build_module_descriptor): Likewise.
1803 (build_objc_exception_stuff): Likewise.
1804 (build_protocol_template): Likewise.
1805 (build_method_prototype_list_template): Likewise.
1806 (build_method_prototype_template): Likewise.
1807 (build_category_template): Likewise.
1808 (build_selector_template): Likewise.
1809 (build_class_template): Likewise.
1810 (build_super_template): Likewise.
1811 (build_ivar_template): Likewise.
1812 (build_ivar_list_template): Likewise.
1813 (build_method_list_template): Likewise.
1814 (build_method_template): Likewise.
1815
596981c8 18162010-06-28 Steven Bosscher <steven@gcc.gnu.org>
1817
1818 * objc-act.c: Do not include except.h.
1819
ba72912a 18202010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1821
1822 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
1823 allocation.
1824
1825 * objc-act.c (objc_volatilize_decl): Likewise.
1826 (objc_build_string_object): Likewise.
1827 (hash_init): Likewise.
1828 (hash_enter): Likewise.
1829 (hash_add_attr): Likewise.
1830 (add_class): Likewise.
1831 (start_class): Likewise.
1832
7bedc3a0 18332010-06-05 Steven Bosscher <steven@gcc.gnu.org>
1834
1835 * objc-act.c: Update include path for moved files.
1836 * objc-lang.c: Likewise.
1837 * config-lang.in: Update paths in gtfiles for files in c-family/.
1838
70b3bc87 18392010-06-01 Nathan Froyd <froydnj@codesourcery.com>
1840
1841 * objc-act.c (build_next_objc_exception_stuff): Give setjmp a
1842 varargs type instead of a zero-argument type.
1843
a2c73aa9 18442010-05-30 Nathan Froyd <froydnj@codesourcery.com>
1845
1846 * objc-act.c (synth_module_prologue): Use build_function_type_list
1847 instead of build_function_type.
1848 (build_module_initializer_routine): Likewise.
1849 (build_next_objc_exception_stuff): Likewise.
1850 (build_objc_exception_stuff): Likewise.
1851
852f689e 18522010-05-27 Joseph Myers <joseph@codesourcery.com>
1853
1854 * objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
1855 * Make-lang.in (objc/objc-act.o): Update dependencies.
1856
c4b9c21a 18572010-05-25 Steven Bosscher <steven@gcc.gnu.org>
1858
1859 * objc-act.h: Do not include gimple.h.
1860 * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
1861 Include gimple.h. Explain why except.h has to be included.
1862 * objc-lang.c: Do not include diagnostics.h.
1863 * Make-lang.in: Update dependencies.
1864
d3f0a7c5 18652010-05-25 Nathan Froyd <froydnj@codesourcery.com>
1866
1867 * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
1868 mismatch code for VECs.
1869
4c6b0360 18702010-05-25 Nathan Froyd <froydnj@codesourcery.com>
1871
1872 * objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
1873 Use build_constructor instead of build_constructor_from_list.
1874 (objc_build_string_object): Build a VEC argument for
1875 objc_build_constructor.
1876 (init_def_list): Likewise.
1877 (init_objc_symtab): Likewise.
1878 (init_module_descriptor): Likewise.
1879 (generate_static_references): Likewise.
1880 (build_selector_translation_table): Likewise.
1881 (build_descriptor_table_initializer): Likewise.
1882 (generate_descriptor_table): Likewise.
1883 (build_protocol_initializer): Likewise.
1884 (build_ivar_list_initializer): Likewise.
1885 (generate_ivars_list): Likewise.
1886 (build_dispatch_table_initializer): Likewise.
1887 (generate_dispatch_table): Likewise.
1888 (generate_protocol_list): Likewise.
1889 (build_category_initializer): Likewise.
1890 (build_shared_structure_initializer): Likewise.
1891 (generate_objc_image_info): Likewise.
1892
da1ad6a6 18932010-04-30 Iain Sandoe <iains@gcc.gnu.org>
1894
1895 PR objc++/32052
1896 * objc-act.c (encode_aggregate_within): Encode structure tags
1897 with template args for ObjC++.
1898
3f9da559 18992010-04-30 Steven Bosscher <steven@gcc.gnu.org>
1900
1901 * objc-act.c: Do not include varray.h.
1902
abc6c64f 19032010-04-07 Jakub Jelinek <jakub@redhat.com>
1904
1905 PR c/18624
1906 * objc-act.c (finish_var_decl, objc_begin_catch_clause,
1907 really_start_method, get_super_receiver, handle_class_ref): Set
1908 DECL_READ_P in addition to TREE_USED.
1909
421351fb 19102010-04-07 Iain Sandoe <iains@gcc.gnu.org>
1911
1912 PR objc/35996
1913 * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
1914 -fgnu-runtime and set flag_objc_gc to zero.
1915
1ecc1105 19162010-04-07 Iain Sandoe <iains@gcc.gnu.org>
1917
1918 PR objc++/23716
1919 * objc-act.c (build_module_initializer_routine): Make the argument
1920 to objc_start_function NULL_TREE when compiling ObjC++.
1921
44434890 19222010-02-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1923 Mike Stump <mikestump@comcast.net>
1924
8f071285 1925 PR objc/43061
44434890 1926 * objc-act.c (finish_var_decl): Set the generated symbols as "used".
1927
535059dc 19282009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
1929
1930 * objc-act.c (objc_substitute_decl, build_ivar_reference,
1931 get_super_receiver): Update build_indirect_ref calls.
1932
2b03c8ee 19332009-11-28 Jakub Jelinek <jakub@redhat.com>
1934
f018d957 1935 * objc-act.c (generate_shared_structures): Remove unused sc_spec and
1936 decl_specs variables.
1937 (objc_build_message_expr): Remove unused loc variable.
1938 (objc_finish_message_expr): Remove unused saved_rtype variable.
1939 (encode_field_decl): Remove unused type variable.
1940
2b03c8ee 1941 PR obj-c++/42156
1942 * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
1943 type variants that don't have it initialized yet.
1944
078c3ef3 19452009-09-14 Jan Hubicka <jh@suse.cz>
1946
1947 * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
1948
e38def9c 19492009-09-14 Richard Henderson <rth@redhat.com>
1950
1951 * objc-act.c (objc_init_exceptions): Don't call
1952 default_init_unwind_resume_libfunc.
1953 (objc_build_exc_ptr): Use __builtin_eh_pointer.
1954
58d82cd0 19552009-09-13 Richard Guenther <rguenther@suse.de>
1956 Rafael Avila de Espindola <espindola@google.com>
1957
1958 * objc-act.c (objc_eh_runtime_type): Export.
1959 (objc_init_exceptions): Remove. Move warning code ...
1960 (objc_begin_try_stmt): ... here
1961 (objc_build_throw_stmt): ... and here.
1962 (objc_eh_personality_decl): New.
1963 (objc_eh_personality): New function.
1964 * objc-act.h (objc_eh_runtime_type): Declare.
1965 (objc_eh_personality): Likewise.
1966 * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
1967 (LANG_HOOKS_EH_PERSONALITY): Likewise.
1968
34e5cced 19692009-09-03 Diego Novillo <dnovillo@google.com>
1970
1971 * objc-lang.c (lang_hooks): Remove const qualifier.
1972
874993a5 19732009-08-20 Richard Guenther <rguenther@suse.de>
1974
1975 * objc-act.c: Include c-lang.h
1976 * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
1977
389dd41b 19782009-07-17 Aldy Hernandez <aldyh@redhat.com>
1979 Manuel López-Ibáñez <manu@gcc.gnu.org>
1980
6bbb4715 1981 PR 40435
389dd41b 1982 * objc-act.c: Add location argument to all calls to
1983 build_fold_addr_expr.
6bbb4715 1984
c02b6f4e 19852009-07-14 Taras Glek <tglek@mozilla.com>
1986 Rafael Espindola <espindola@google.com>
1987
1988 * Make-lang.in (objc.install-plugin): New target for
1989 installing plugin headers.
1990
1cf1742e 19912009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1992
1993 * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
1994 EXPR_LOCATION.
6bbb4715 1995
712d2297 19962009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1997
1998 * objc-act.c: Replace %J by an explicit location. Update all
1999 calls.
6bbb4715 2000
5fb6a912 20012009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2002
2003 * objc-act.c: Replace %H by an explicit location. Update all
2004 calls.
6bbb4715 2005
61a9d3ca 20062009-06-22 Steven Bosscher <steven@gcc.gnu.org>
2007
2008 PR objc/28050
2009 * objc-act.c (objc_build_message_args): Return if ARGS is the
2010 error_mark_node.
6bbb4715 2011
843bd2fa 20122009-06-19 Ian Lance Taylor <iant@google.com>
2013
2014 * objc-act.c (objc_in_struct, objc_struct_types): Remove.
2015 (objc_struct_info): New static variable.
2016 (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
2017 and &objc_struct_types, to start_struct.
2018 (objc_finish_struct): Likewise for finish_struct.
2019
f805d53d 20202009-06-15 Ian Lance Taylor <iant@google.com>
2021
2022 * objc-act.c (objc_start_function): Don't set
2023 label_context_stack_se or label_context_stack_vm.
2024
e60a6f7b 20252009-06-12 Aldy Hernandez <aldyh@redhat.com>
6bbb4715 2026
e60a6f7b 2027 * objc-act.c (finish_var_decl): Pass location to finish_decl.
2028 (objc_get_parm_info): Same.
2029 (get_super_receiver): Same.
2030 * objc-act.c (objc_build_component_ref): Pass location to
2031 build_compound_ref.
2032 (build_module_initializer_routine): Pass location to
2033 c_end_compound_stmt.
2034 (objc_generate_static_init_call): Pass location to build_stmt.
2035 (build_typed_selector_reference): New location argument.
2036 (build_selector_reference): Same.
2037 (objc_substitute_decl): Pass location to build_array_ref.
2038 (next_sjlj_build_try_catch_finally): Pass location to build_stmt.
2039 (objc_begin_catch_clause): Same.
2040 (objc_finish_try_stmt): Same.
2041 (objc_finish_catch_clause): Pass location to c_end_compound_stmt.
2042 (objc_build_throw_stmt): New argument.
2043 (generate_shared_structures): Pass location to build_c_cast.
2044 (objc_build_message_expr): Use local location.
2045 (objc_finish_message_expr): Use input_location.
2046 (build_objc_method_call): New argument.
2047 (objc_build_selector_expr): Same.
2048 (get_super_receiver): Pass location to build_c_cast,
2049 build_modify_expr, build_compound_expr.
2050 * objc-act.c: Add location to all calls to start_struct, build_decl,
2051 finish_struct.
6bbb4715 2052
d5b637fa 20532009-06-09 Ian Lance Taylor <iant@google.com>
2054
2055 * objc-act.c (objc_gimplify_expr): Change return type to int.
2056 * objc-act.h: Update declaration.
2057
71278019 20582009-06-08 Alexandre Oliva <aoliva@redhat.com>
2059
2060 * objc-act.c (objc_init): Skip print_struct_values during
2061 -fcompare-debug-second.
2062
cd819d2f 20632009-06-03 Ian Lance Taylor <iant@google.com>
2064
2065 * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
2066 $(SYSTEM_H).
2067
40b6e20e 20682009-05-27 Ian Lance Taylor <iant@google.com>
2069
2070 * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
2071 $(LINKER).
2072 (cc1obj$(exeext)): Likewise.
2073
585d4848 20742009-05-26 Ian Lance Taylor <iant@google.com>
2075
2076 * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
2077 (cc1obj$(exeext)): Likewise.
2078
f352a3fb 20792009-05-20 Ian Lance Taylor <iant@google.com>
2080
2081 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
2082 than NULL_TREE to build_special_member_call.
2083
0b09525f 20842009-05-10 Ian Lance Taylor <iant@google.com>
2085
2086 * objc-act.c (objc_building_struct): New static variable.
2087 (objc_in_struct, objc_struct_types): New static variables.
2088 (objc_start_struct, objc_finish_struct): New static functions.
2089 (generate_struct_by_value_array): Call objc_start_struct instead
2090 of start_struct, and call objc_finish_struct instead of
2091 finish_struct.
2092 (objc_build_struct, build_objc_symtab_template): Likewise.
2093 (build_module_descriptor): Likewise.
2094 (build_next_objc_exception_stuff): Likewise.
2095 (build_protocol_template): Likewise.
2096 (build_method_prototype_list_template): Likewise.
2097 (build_method_prototype_template): Likewise.
2098 (build_category_template, build_selector_template): Likewise.
2099 (build_class_template, build_super_template): Likewise.
2100 (build_ivar_template, build_ivar_list_template): Likewise.
2101 (build_method_list_template): Likewise.
2102 (build_method_template): Likewise.
2103
a608187f 21042009-05-10 Joseph Myers <joseph@codesourcery.com>
2105
2106 * objc-act.c: Include intl.h.
2107 (objc_lookup_protocol): Use complete sentences for diagnostics
2108 with %qE for identifiers and translating results of
2109 gen_type_name_0 to locale character set.
2110 (objc_check_decl, check_protocol_recursively,
2111 lookup_and_install_protocols, objc_build_string_object,
2112 objc_get_class_reference, objc_declare_alias, objc_declare_class,
2113 objc_get_class_ivars, error_with_ivar, check_duplicates,
2114 objc_finish_message_expr, objc_build_protocol_expr,
2115 objc_build_selector_expr, build_ivar_reference, objc_add_method,
2116 add_category, add_instance_variable, objc_is_public,
2117 check_methods, check_methods_accessible, check_protocol,
2118 start_class, finish_class, start_protocol, really_start_method,
2119 get_super_receiver, objc_lookup_ivar): Use %E and %qE for
2120 identifiers in diagnostics. Translate generated text to locale
2121 character set as needed.
2122 (check_protocol, check_protocols): Change name parameter to type
2123 tree.
2124 (lang_report_error_function): Remove.
2125
bc620c5c 21262009-04-27 Ian Lance Taylor <iant@google.com>
2127
2128 * objc-act.c (objc_gimplify_expr): Add casts to enum type.
2129
8458f4ca 21302009-04-24 Ian Lance Taylor <iant@google.com>
2131
2132 * objc-act.c (get_super_receiver): Update calls to
2133 build_modify_expr to pass new argument.
2134
fb1e4f4a 21352009-04-21 Taras Glek <tglek@mozilla.com>
2136
2137 * objc-act.c: Update GTY annotations to new syntax
2138 * objc-act.h: Likewise
2139
7dfbd804 21402009-04-21 Joseph Myers <joseph@codesourcery.com>
2141
2142 * ChangeLog: Add copyright and license notices.
2143
b9c74b4d 21442009-04-20 Ian Lance Taylor <iant@google.com>
2145
2146 * objc-act.c (objc_rewrite_function_call): Change parameter from
2147 params to first_param. Change all callers.
2148
a3cad4e4 21492009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr>
2150
2151 PR bootstrap/39583
2152 * objc-act.c (in_late_binary_op): Define for Objective-C++.
2153
a75b1c71 21542009-03-29 Joseph Myers <joseph@codesourcery.com>
2155
2156 PR c/456
2157 PR c/5675
2158 PR c/19976
2159 PR c/29116
2160 PR c/31871
2161 PR c/35198
2162 * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
2163
9322d72e 21642008-12-05 Sebastian Pop <sebastian.pop@amd.com>
29bb3e39 2165
2166 PR bootstrap/38262
2167 * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
2168 remove GMPLIBS.
2169
b6889cb0 21702008-10-06 Aldy Hernandez <aldyh@redhat.com>
2171
2172 * objc-act.c (objc_build_string_object): Pass location to
2173 build_unary_op.
2174 (init_def_list): Same.
2175 (init_objc_symtab): Same.
2176 (init_module_descriptor): Same.
2177 (build_module_initializer_routine): Same.
2178 (generate_static_references): Same.
2179 (build_typed_selector_reference): Same.
2180 (add_objc_string): Same.
2181 (objc_substitute_decl): Same.
2182 (objc_build_ivar_assignment): Same.
2183 (objc_build_global_assignment): Same.
2184 (objc_build_strong_cast_assignment): Same.
2185 (generate_protocols): Same.
2186 (build_protocol_initializer): Same.
2187 (build_dispatch_table_initializer): Same.
2188 (generate_protocol_list): Same.
2189 (build_category_initializer): Same.
2190 (build_shared_structure_initializer): Same.
2191 (generate_shared_structures): Same.
2192 (objc_build_protocol_expr): Same.
2193 (build_ivar_reference): Same.
2194 (get_super_receiver): Same.
2195
8e70fb09 21962008-09-23 Aldy Hernandez <aldyh@redhat.com>
2197
2198 * objc-act.c (next_sjlj_build_enter_and_setjmp): Call
2199 c_common_truthvalue_conversion with location.
2200 (next_sjlj_build_catch_list): Same.
2201 (next_sjlj_build_try_catch_finally): Same.
2202
4cd62850 22032008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2204
2205 PR objc/37460
2206 * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
2207 * objc-act.h (objc_get_callee_fndecl): Remove prototype.
2208 * objc-act.c (objc_get_callee_fndecl): Kill.
2209
73b5e722 22102008-09-17 Jan Hubicka <jh@suse.cz>
2211
2212 PR c++/18071
2213 * objc/objc-act.c (objc_finish_method_definition): Do not set
2214 DECL_INLINE.
2215
dda49785 22162008-09-01 Aldy Hernandez <aldyh@redhat.com>
2217
2218 * objc-act.c (build_typed_selector_reference): Pass input_location to
2219 build_unary_op calls.
2220 (build_selector_reference): Same, but to build_array_ref.
2221 (objc_substitute_decl): Same.
2222 (build_ivar_reference): Same, but to build_indirect_ref.
2223 (get_super_receiver): Same.
2224
75a70cf9 22252008-07-28 Richard Guenther <rguenther@suse.de>
2226
2227 Merge from gimple-tuples-branch.
2228
2229 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
2230
2231 * Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
2232 (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
2233 * objc-act.h: Include gimple.h instead of tree-gimple.h.
2234 * ipa-reference.c: Same.
2235
2236 2007-11-10 Aldy Hernandez <aldyh@redhat.com>
2237
2238 * objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
2239 * objc-act.h (objc_gimplify_expr): Change prototype accordingly.
2240
08cc44e7 22412008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2242
2243 * objc-act.c: Fix comment typos.
2244
ceb0f408 22452008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2246
2247 * objc-act.c (objc_start_class_interface,
2248 objc_start_category_interface, objc_start_class_implementation,
2249 objc_start_category_implementation, objc_build_struct,
2250 generate_static_references, build_private_template,
2251 lookup_category, objc_add_method, add_category,
2252 add_instance_variable, objc_is_public, conforms_to_protocol,
2253 start_class, continue_class, finish_class): Avoid C++ keywords.
2254
b4d6f57b 22552008-07-14 Jason Merrill <jason@redhat.com>
2256
2257 PR objc++/36723
2258 * objc-act.c (objc_build_constructor): Update C++ tweak.
2259
d3eff7bb 22602007-07-14 Rafael Ávila de Espíndola <espindola@google.com>
7cb6f926 2261
2262 * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
2263 of DECL_IN_SYSTEM_HEADER.
2264
5c6e5756 22652008-07-11 Ian Lance Taylor <iant@google.com>
2266
2267 * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
2268 etc., not just when OBJCPLUS is defined.
2269
25a1c410 22702008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2271
2272 * objc-act.c (setup_string_decl, objc_build_string_object,
2273 hash_interface, eq_interface, objc_begin_try_stmt,
2274 encode_method_prototype, build_ivar_list_initializer,
2275 objc_build_encode_expr): Fix for -Wc++-compat.
2276
92cce2b2 22772008-05-12 Tomas Bily <tbily@suse.cz>
2278
2279 * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
2280 Use CONVERT_EXPR_P.
2281
c7d4e749 22822008-04-23 Paolo Bonzini <bonzini@gnu.org>
2283
2284 * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
2285
6fb2153a 22862008-04-03 Tom Tromey <tromey@redhat.com>
2287
2288 * Make-lang.in (objc_OBJS): New variable.
2289
21886706 22902008-03-27 Tom Tromey <tromey@redhat.com>
2291
2292 * Make-lang.in: Revert automatic dependency patch.
2293
717ecce9 22942008-03-27 Douglas Gregor <doug.gregor@gmail.com>
2295
2296 PR obj-c++/35704
2297 * objc-act.c (objc_build_component_ref): Fix call to
2298 finish_class_member_access_expr.
2299 (objc_generate_cxx_ctor_or_dtor): Fix call to
2300 build_special_member_call.
2301
e226f54f 23022008-03-25 Andrew Pinski <pinskia@gmail.com>
2303
2304 PR objc/29197
2305 * objc-act.c (encode_type): Handle when type is error_mark_node.
2306 (objc_push_parm): Handle when the type of parm is error_mark_node.
2307
277b05bb 23082008-03-25 Tom Tromey <tromey@redhat.com>
2309
2310 * Make-lang.in (objc_OBJS): New variable.
2311 (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
2312
3594ce91 23132008-03-21 Andreas Tobler <a.tobler@schweiz.org>
2314
2315 PR bootstrap/35660
2316 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
2317 MAYBE_CLASS_TYPE_P.
2318 (objc_generate_cxx_cdtors): Likewise.
2319 (add_instance_variable): Likewise.
2320
9c85a98a 23212008-02-26 Tom Tromey <tromey@redhat.com>
2322
2323 * objc-act.c (objc_init): Remove old location code.
2324
6ca01c3b 23252008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2326
2327 PR other/35107
2328 * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
2329
c3adda75 23302007-07-30 Nick Clifton <nickc@redhat.com>
2331
2332 * Make-lang.in: Change copyright header to refer to version 3 of
2333 the GNU General Public License and to point readers at the
2334 COPYING3 file and the FSF's license web page.
2335 * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
2336 config-lang.in, objc-lang.c: Likewise.
2337
b7bf20db 23382007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2339
2340 * objc-act.c (objc_get_callee_fndecl): Constify.
2341 * objc-act.h (objc_get_callee_fndecl): Likewise.
2342
aae87fc3 23432007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2344
2345 * objc-act.c (volatilized_hash, volatilized_eq, string_hash,
2346 string_eq): Constify.
2347
2a3c85c8 23482007-04-04 Stuart Hastings <stuart@apple.com>
2349
2350 PR 31281
2351 * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
2352
52df3169 23532007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2354
2355 * Make-lang.in: Add dummy lang.install-pdf target.
2356
97419919 23572007-02-18 Kazu Hirata <kazu@codesourcery.com>
2358
2359 * objc/objc-act.c: Fix comment typos.
2360
c2f47e15 23612007-02-15 Sandra Loosemore <sandra@codesourcery.com>
2362 Brooks Moses <brooks.moses@codesourcery.com>
2363 Lee Millward <lee.millward@codesourcery.com>
2364
2365 * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
2366 (objc_get_callee_fndecl): Likewise.
2367
da2f0f2c 23682007-01-23 Andrew Pinski <pinskia@gmail.com>
2369
2370 PR objc/27438
2371 * objc-act.c (objc_add_static_instance): Mark the decl as
2372 TREE_USED.
2373
7eb56ad3 23742007-01-20 Andrew Pinski <pinskia@gmail.com>
2375
2376 PR objc/30479
2377 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
2378 of htab_hash_pointer.
2379 (lookup_interface): Likewise.
2380 (add_class): Likewise.
2381
6753bca0 23822007-01-02 Douglas Gregor <doug.gregor@gmail.com>
6bbb4715 2383
6753bca0 2384 * objc-act.c (objc_build_volatilized_type): Keep track of
2385 canonical types.
2386 (objc_get_protocol_qualified_type): Ditto.
6bbb4715 2387
718149a3 23882006-11-02 Andreas Tobler <a.tobler@schweiz.org>
2389
2390 * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
2391 content where we called cp_finish_file.
2392
d3eff7bb 23932006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
54be5d7e 2394
2395 * objc-act.c (synth_module_prologue): Replace calls to
2396 builtin_function with add_builtin_function.
2397 (build_next_objc_exception_stuff): Replace calls to
2398 builtin_function with add_builtin_function.
2399 (build_objc_exception_stuff): Replace calls to
2400 builtin_function with add_builtin_function.
2401
51f93521 24022006-10-10 Brooks Moses <bmoses@stanford.edu>
2403
2404 * Make-lang.in: Added empty "objc.pdf" target.
2405
ea028b59 24062006-09-26 Andrew Pinski <pinskia@physics.uc.edu>
2407
2408 PR objc/29195
2409 * objc-act.c (objc_push_parm): If we change the type of the
2410 decl, relayout the decl.
2411
6db57367 24122006-09-19 Eric Christopher <echristo@apple.com>
2413
2414 * objc-act.c (JBLEN): Rename to OBJC_JBLEN,
2415 default to something innocuous.
2416 (build_next_objc_exception_stuff): Rename JBLEN.
2417
e85b0b9f 24182006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2419
2420 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2421
77874a3c 24222006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2423
2424 PR obj-c++/28434
2425 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
2426
15b5961f 24272006-06-06 Mike Stump <mrs@apple.com>
2428
2429 * objc-act.c: Remove prototype for objc_build_volatilized_type.
2430
8d6b10e2 24312006-05-24 Mike Stump <mrs@apple.com>
2432
2433 * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
2434
ed672485 24352006-05-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2436
2437 PR objc/27240
2438 * objc-act.c (objc_is_public): Return early on invalid type.
2439
30f66f51 24402006-03-02 Fariborz Jahanian <fjahanian@apple.com>
2441
2442 * objc-act.c (init_module_descriptor): Remove file name from
2443 module descriptor.
2444 (gen_type_name_0): Fix ICE when issuing warning.
2445
d3eff7bb 24462006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
9f30f9e7 2447 * Make-lang.in (OBJC): Remove
2448 (OBJECTIVE-C): Remove
2449 (objective-c): Remove
2450 (.PHONY): Remove objective-c and ObjC
2451
0ee579cd 24522005-12-14 Andrew Pinski <pinskia@physics.uc.edu>
2453
2454 PR objc/25360
8d6b10e2 2455 * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed
2456 by the inner type.
0ee579cd 2457
c4e3ffb1 24582005-12-12 Andrew Pinski <pinskia@physics.uc.edu>
2459
2460 PR objc/25348
2461 * objc-act.c (encode_array): Handle arrays to zero sized types.
2462
d3eff7bb 24632005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
ae6555f9 2464
2465 * Make-lang.in (objc.all.build, objc.install-normal): Remove.
2466
d3eff7bb 24672005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
758e52e0 2468
2469 * Make-lang.in: Remove all dependencies on s-gtype.
2470
a3a36c39 24712005-12-02 Richard Guenther <rguenther@suse.de>
2472
2473 * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
2474 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2475 next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
2476 build_objc_method_call, objc_rewrite_function_call): Use buildN
2477 instead of build.
2478
41cac6ed 24792005-10-20 Geoffrey Keating <geoffk@apple.com>
2480
2481 * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
2482 on objc_msgSend and like builtin functions.
2483
53d4f63c 24842005-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
2485
fdf0e229 2486 * objc-act.c (objc_build_component_ref): Adjust call to
53d4f63c 2487 finish_class_member_access_expr due to a changed prototype.
2488
1cff51e3 24892005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
2490
2491 PR objc/23306
2492 * objc-act.c (generate_strings): Remove and move code to
2493 finish decl to ...
2494 (add_objc_string): here when creating a new string decl.
2495 (finish_objc): Don't call generate_strings.
2496
c2400746 24972005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
2498
2499 PR objc/23381
2500 * objc-act.c (next_sjlj_build_try_catch_finally): Set
2501 TREE_SIDE_EFFECTS on catch_seq after building it.
2502
9d44cae2 25032005-08-09 Andrew Pinski <pinskia@physics.uc.edu>
2504
2505 part of PR objc/21992
2506 * objc-act.c (handle_class_ref): The ref decl is always referenced.
2507
c75b4594 25082005-07-20 Giovanni Bajo <giovannibajo@libero.it>
2509
2510 Make CONSTRUCTOR use VEC to store initializers.
2511 * objc-act.c (objc_build_constructor): Use build_constructor_from_list
2512 instead of build_constructor.
2513
5ded8c6f 25142005-07-08 Daniel Berlin <dberlin@dberlin.org>
fdf0e229 2515
5ded8c6f 2516 * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
2517 removed.
2518 * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
2519 (KEYWORD_KEY_NAME): Use decl_minimal.
2520 (METHOD_SEL_NAME): Ditto..
2521 (METHOD_SEL_ARGS): Use decl_non_common.
2522 (METHOD_ADD_ARGS): Ditto.
2523 (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
2524 (METHOD_DEFINITION): Ditto.
2525 (METHOD_ENCODING): Ditto.
2526 * objc-lang.c: (objc_init_ts): New function.
2527
8e1be677 25282005-07-07 Ziemowit Laski <zlaski@apple.com>
2529
2530 * objc-act.c (objc_build_struct): Pass in an actual @interface
2531 instead of its name, and annotate the struct created (and all
2532 existing variants thereof) with the @interface.
2533 (objc_compare_types): Treat forward-declared ObjC classes
2534 as stand-alone (root) classes for purposes of type comparisons.
2535 (build_private_template): Move some code to objc_build_struct().
2536
99469381 25372005-07-07 Ziemowit Laski <zlaski@apple.com>
2538
2539 PR objc/22274
2540 * objc-act.c (objc_build_string_object): For GNU-style constants,
2541 use the @interface type rather than the built-in type.
2542
bd06ecb6 25432005-07-03 Kazu Hirata <kazu@codesourcery.com>
2544
2545 * Make-lang.in (cc1plus-checksum.c): Use
2546 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
2547
3284a242 25482005-07-02 Joseph S. Myers <joseph@codesourcery.com>
2549
2550 * objc-act.c: Use %q to quote in diagnostics.
2551
3cf8b391 25522005-07-02 Joseph S. Myers <joseph@codesourcery.com>
2553
2554 * objc-act.c: Use '+' flag instead of %J. Use 'q' flag for
2555 quoting.
2556
4dfa7ebc 25572005-06-30 Ziemowit Laski <zlaski@apple.com>
2558
2559 * objc-act.c (objc_build_volatilized_type): New function.
2560 (objc_volatilize_decl): Call objc_build_volatilized_type()
2561 instead of build_qualified_type().
2562
0616a948 25632005-06-29 Ziemowit Laski <zlaski@apple.com>
2564
2565 * objc-act.c (objc_build_internal_const_str_type): New function.
2566 (check_string_class_template): Use objc_get_class_ivars() instead
2567 of TYPE_FIELDS() to retrieve ivar list.
2568 (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
2569 than the field itself.
2570 (objc_build_string_object): Synthesize a "__builtin_ObjCString"
2571 type and use it to lay out compile-time string objects.
2572 * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
2573 New.
2574
1774763d 25752005-06-28 Paul Brook <paul@codesourcery.com>
2576
2577 * objc-act.c (objc_init_exceptions): Call
2578 default_init_unwind_resume_libfunc.
2579
0bee387e 25802005-06-27 Ziemowit Laski <zlaski@apple.com>
2581
2582 * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
2583 portion of TYPE_LANG_SPECIFIC info for all variants of
2584 a class before calling finish_struct(), and restore
2585 same TYPE_OBJC_INFO afterwards.
2586
85b2164b 25872005-06-25 Kelley Cook <kcook@gcc.gnu.org>
2588
2589 * all files: Update FSF address in copyright headers.
2590
f14c8207 25912005-06-15 Joseph S. Myers <joseph@codesourcery.com>
2592
2593 * objc-act.c (my_build_string_pointer): New.
2594 (objc_get_class_reference, get_super_receiver): Call
2595 my_build_string_pointer instead of my_build_string when building
2596 function arguments.
2597
737a4756 25982005-05-25 Mike Stump <mrs@mrs.kithrup.com>
2599
2600 * objc-act.c (volatilized_hash): Avoid warnings on 64-bit
2601 machines.
2602
499ea517 26032005-05-24 Ziemowit Laski <zlaski@apple.com>
2604
2605 * objc-act.c (objc_build_struct): New function.
2606 (objc_derived_from_p): Likewise.
2607 (objc_build_component_ref): Likewise.
2608 (objc_copy_binfo): Likewise.
2609 (objc_xref_basetypes): Likewise.
2610 (objc_lookup_protocol): Likewise.
2611 (objc_compare_protocols): Likewise.
2612 (objc_volatilize_decl): Likewise.
2613 (encode_aggregate_fields): Likewise.
2614 (volatilized_hash): Likewise.
2615 (volatilized_eq): Likewise.
2616 (objc_compare_types): Likewise.
2617 (objc_type_quals_match): Likewise.
2618 (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
2619 of same name.
2620 (get_class_ivars): Add second parameter indicating if entire
2621 hierarchy is desired.
2622 (struct volatilized_type): New type.
2623 (volatilized_htab): New hash table.
2624 (objc_types_compatible_p, objc_comptypes): Remove functions.
2625 (synth_module_prologue): Do not initialize 'unused_list'.
2626 (objc_get_class_reference): Fix ObjC++ impedance mismatches.
2627 (objc_declare_alias): Implement as a typedef.
2628 (objc_substitute_decl, objc_gimplify_expr): Reformat.
2629 (objc_get_class_ivars): Adjust call to get_class_ivars().
2630 (next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
2631 build_ivar_reference, get_super_receiver): Call
2632 objc_build_component_ref() instead of build_component_ref().
2633 (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
2634 objc_comptypes().
2635 (build_private_template): Call objc_build_struct() instead of
2636 start_struct() and finish_struct().
2637 (hash_init): Initialize volatilized_htab.
2638 (objc_is_public): Adjust calls to objc_get_ivars(); adjust
2639 ObjC++ impedance mismatches.
2640 (encode_aggregate_within): Streamline by calling
2641 encode_aggregate_fields().
2642 * objc-act.h (objc_types_compatible_p): Remove prototype.
2643 (OCTI_UNUSED_LIST, unused_list): Remove slot.
2644 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
2645
f1035767 26462005-05-18 Geoffrey Keating <geoffk@apple.com>
2647
2648 * Make-lang.in (cc1obj-dummy): New.
2649 (cc1obj-checksum.c): New.
2650 (cc1obj-checksum.o): New.
2651 (cc1obj): Add cc1obj-checksum.o.
2652
3c905014 26532005-05-18 Mike Stump <mrs@apple.com>
2654
2655 PR objc/21641
2656 * objc-act.c (struct interface_tuple): Mark it up for GC.
2657 (interface_htab): It is really a struct interface_tuple.
2658
82c07781 26592005-05-17 Ziemowit Laski <zlaski@apple.com>
2660 Mike Stump <mrs@apple.com>
0ced0389 2661
2662 Yet more Objective-C++...
2663
2664 * objc-act.c (objc_finish_try_stmt): Add return value.
2665 (objc_build_synchronized): Likewise.
2666
2667 * objc-act.c (objc_is_gcable_type): Add.
2668 (objc_substitute_decl): Add.
2669 (objc_build_ivar_assignment): Add.
2670 (objc_build_global_assignment): Add.
2671 (objc_build_strong_cast_assignment): Add.
2672 (objc_is_ivar_reference_p): Add.
2673 (objc_is_global_reference_p): Add.
2674 (objc_generate_write_barrier): Add.
2675 (objc_rewrite_function_call): Add.
2676 (objc_gimplify_expr): Add Objective-C++ support.
2677 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
2678 (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
2679 (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
2680 (DUP_TYPE_OBJC_INFO): Likewise.
2681 (struct imp_entry): Add field has_cxx_cdtors.
2682 (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
2683 OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
2684 OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
2685 OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
2686 OCTI_ASSIGN_STRONGCAST_DECL.
2687 (umsg_fast_decl): Add.
2688 (objc_assign_ivar_decl): Add.
2689 (objc_assign_ivar_fast_decl): Add.
2690 (objc_assign_global_decl): Add.
2691 (objc_assign_strong_cast_decl): Add.
2692 (objc_method_list_ptr): Add.
2693 (objc_method_proto_list_ptr): Add.
2694 (objc_ivar_list_ptr): Add.
2695
2696 * objc-act.c (should_call_super_dealloc): Add.
2697 (OBJC_VERSION): Bump to 6.
2698 (objc_is_gcable_type): Add.
2699 (objc_substitute_decl): Add.
2700 (objc_build_ivar_assignment): Add.
2701 (objc_build_global_assignment): Add.
2702 (objc_build_strong_cast_assignment): Add.
2703 (objc_is_gcable_p): Add.
2704 (objc_is_ivar_reference_p): Add.
2705 (objc_is_global_reference_p): Add.
2706 (generate_shared_structures): Add flags parameter.
2707 (objc_generate_cxx_ctor_or_dtor): Add.
2708 (objc_generate_cxx_cdtors): Add.
2709 (add_class): Add name parameter.
2710 (objc_types_share_size_and_alignment): Add.
2711 (comp_proto_with_proto): Add strict parameter.
2712 (CLS_HAS_CXX_STRUCTORS): Add.
2713 (TAG_ASSIGNIVAR): Add.
2714 (TAG_ASSIGNGLOBAL): Add.
2715 (TAG_ASSIGNSTRONGCAST): Add.
2716 (TAG_MSGSEND_FAST): Add.
2717 (TAG_ASSIGNIVAR_FAST): Add.
2718 (TAG_CXX_CONSTRUCT): Add.
2719 (TAG_CXX_DESTRUCT): Add.
2720 (OBJC_LOOKUP_CLASS): Add.
2721 (OBJC_LOOKUP_NO_SUPER): Add.
2722 (objc_finish_file): Add pch support.
2723 (objc_finish_implementation): Add Objective-C++ support.
2724 (synth_module_prologue): Likewise.
2725 (synth_module_prologue): Add fast dispatching.
2726 (objc_get_class_reference): Add Objective-C++ support.
2727 (objc_generate_write_barrier): Likewise.
2728 (next_sjlj_build_enter_and_setjmp): Likewise.
2729 (objc_begin_try_stmt): Likewise.
2730 (build_next_objc_exception_stuff): Add fast ivar support.
2731 (build_private_template): Mark the record as used so debug
2732 information is generated.
2733 (build_protocol_template): Add Objective-C++ support.
2734 (objc_method_parm_type) Likewise.
2735 (objc_generate_cxx_ctor_or_dtor): Likewise.
2736 (objc_generate_cxx_cdtors): Likewise.
2737 (build_protocol_initializer): Likewise.
2738 (build_category_template): Likewise.
2739 (build_class_template): Likewise.
2740 (build_method_list_template): Likewise.
2741 (build_category_initializer): Likewise.
2742 (build_shared_structure_initializer): Likewise.
2743 (objc_finish_message_expr): Likewise.
2744 (build_objc_method_call): Add fast dispatch support.
2745 (lookup_method_static): Add support to end search at superclasses.
2746 (add_method_to_hash_list): Add strict parameter to
2747 comp_proto_with_proto.
2748 (objc_add_method): Likewise.
2749 (objc_add_method): Also set the interface_value.
2750 (add_instance_variable): Add Objective-C++ support.
2751 (objc_is_public): Likewise.
2752 (start_class): Likewise.
2753 (continue_class): Likewise.
2754 (encode_aggregate_within): Likewise.
2755 (start_method_def): Likewise.
2756 (objc_start_function): Clear current_function_returns_value
2757 and current_function_returns_null.
2758 (really_start_method): Add Objective-C++ support.
2759 (objc_finish_method_definition): Add warning for missing
2760 [super dealloc].
2761 (finish_objc): Add Objective-C++ support.
2762 (generate_objc_image_info): Likewise.
2763 (objc_lookup_ivar): Likewise.
2764 * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
2765 (INIT_TYPE_OBJC_INFO): Likewise.
2766 (DUP_TYPE_OBJC_INFO): Likewise.
2767
c3ceba8e 27682005-04-23 DJ Delorie <dj@redhat.com>
2769
2770 * objc-act.c: Adjust warning() callers.
2771
450302fe 27722005-04-21 Roger Sayle <roger@eyesopen.com>
2773
2774 * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
2775 this field of an objc method decl.
2776 * objc-act.c (build_method_decl): Take an additional "ellipsis"
2777 argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
2778 (objc_build_method_signature): Accept additional "ellipsis"
2779 argument and pass it to build_method_decl.
2780 (get_arg_type_list, start_method_def, gen_method_decl): Use
2781 the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
2782 TREE_OVERFLOW field of a TREE_LIST node.
2783
f5d156fd 27842005-04-20 Joseph S. Myers <joseph@codesourcery.com>
2785
2786 PR c/12913
2787 * objc-act.c (objc_start_function): Create stack level for context
2788 of identifiers with variably modified type.
2789
f08c7a57 27902005-03-30 Joseph S. Myers <joseph@codesourcery.com>
2791
2792 PR c/772
2793 PR c/17913
2794 * objc-act.c (objc_start_function): Push context on
2795 label_context_stack.
2796
45a78cc0 27972005-03-23 Joseph S. Myers <joseph@codesourcery.com>
2798
2799 * objc-act.c (next_sjlj_build_enter_and_setjmp,
2800 next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
2801 Call c_common_truthvalue_conversion.
2802
1576dec7 28032005-02-25 Joseph S. Myers <joseph@codesourcery.com>
2804
2805 * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
2806 objc/objc-parse.c, objc/objc-parse.y): Remove
2807 (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
2808 objc.distclean, objc.maintainer-clean): Update for new parser.
2809 * config-lang.in (gtfiles): Update for new parser.
2810
578ae71d 28112005-01-29 Kazu Hirata <kazu@cs.umass.edu>
2812
2813 * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
2814 copyright.
2815
aac6b86a 28162005-01-27 Matt Austern <austern@apple.com>
2817
2818 * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
2819 calling instantiate_pending_templates.
fdf0e229 2820
0bd2c21c 28212005-01-26 Alexander Malmberg <alexander@malmberg.org>
2822
2823 PR objc/18862
2824 * objc-act.c (build_selector_translation_table): Use
2825 input_location in the diagnostic for the GNU runtime or if
2826 TREE_PURPOSE (chain) is NULL.
2827
d7c168e8 28282005-01-25 Alexander Malmberg <alexander@malmberg.org>
2829
2830 PR objc/18408
2831 * objc-act.c (objc_types_compatible_p): New function.
2832 * objc-act.h (objc_types_compatible_p): Declare.
2833 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2834
7e176567 28352005-01-16 Ziemowit Laski <zlaski@apple.com>
2836
2837 * objc-act.c (objc_push_parm): Call c_type_promotes_to()
2838 via a lang-hook.
2839
53832dfa 28402005-01-15 Ziemowit Laski <zlaski@apple.com>
2841
2842 PR objc/19321
2843 * objc-act.c (get_arg_type_list): Decay function arguments into
2844 pointers.
2845 (objc_push_parm): Likewise; bring PARM_DECL construction closer
2846 in line with what the C front-end does.
2847 (objc_get_parm_info): Call pushdecl() and finish_decl() on
2848 each PARM_DECL, like the C front-end does.
2849 (start_method_def): Remove redundant ARRAY_TYPE decay.
2850 (objc_start_function): Bring closer in line with what the
2851 C front-end does for functions.
2852
67f3526e 28532005-01-14 Mike Stump <mrs@apple.com>
2854
2855 * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
2856 that -fobjc-exceptions is accepted.
2857
b5266a0c 28582004-12-30 Ziemowit Laski <zlaski@apple.com>
2859
2860 PR objc/18971
2861 * objc-act.c (get_arg_type_list, start_method_def): Decay
2862 array arguments into pointers.
2863 (gen_type_name_0): Learn to pretty-print array types.
2864
6972a3bc 28652004-12-15 Ziemowit Laski <zlaski@apple.com>
2866
2867 * objc-act.c (build_private_template): Change to return 'void'; do
2868 not set ivar_context, uprivate_record or objc_instance_type.
2869 (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
2870 retrieve protocol list from the pointee rather than the pointer itself;
2871 check TYPE_HAS_OBJC_INFO(...) precondition before accessing
2872 TYPE_OBJC_PROTOCOL_LIST.
2873 (objc_get_protocol_qualified_type): For types 'id' and 'Class',
2874 construct a variant of the pointee as well as the pointer, and
2875 store protocol information in the former. When creating variants
2876 of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
2877 TYPE_OBJC_INTERFACE information.
2878 (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
2879 underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
2880 for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
2881 holding an IDENTIFIER_NODE.
2882 (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
2883 accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
2884 of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
2885 an IDENTIFIER_NODE (meaning a @class forward-declaration only).
2886 (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
2887 lookup_interface().
2888 (continue_class): For @implementations, set ivar_context,
2889 uprivate_record and objc_instance_type, for @interfaces, call
2890 build_private_template().
2891 (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
2892 TYPE_OBJC_INTERFACE.
2893 (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
2894 accessing TYPE_OBJC_PROTOCOL_LIST.
2895 * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
fdf0e229 2896 DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
6972a3bc 2897 SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
2898 (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
2899 to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
2900 (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
2901 TYPE_LANG_SPECIFIC(...).
2902 (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
2903 (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
2904 TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
2905 adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
2906 instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
2907
b42190bc 29082004-11-29 Joseph Myers <joseph@codesourcery.com>
2909
2910 PR c/7544
2911 * Make-lang.in (objc/objc-act.o): Update dependencies.
2912 * objc-act.c (objc_finish_file): Call
2913 maybe_apply_pending_pragma_weaks if not OBJCPLUS.
2914
02fc645a 29152004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
2916
2917 PR objc/18406
2918 * obj-act.c (encode_type): 96bits doubles are encoded the
2919 same way as 64bit and 128bit doubles are.
2920
1e5fcbe2 29212004-11-09 Joseph S. Myers <joseph@codesourcery.com>
2922
2923 * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
2924
0aaa3c91 29252004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
2926
2927 PR objc/16546
2928 * objc-act.c (generate_method_descriptors): Remove setting
2929 the new decls' type to variable_length_type.
2930 (generate_ivar_lists): Likewise.
2931 (generate_dispatch_tables): Likewise.
2932
e913c82d 29332004-10-30 Ziemowit Laski <zlaski@apple.com>
2934
2935 * objc-act.c (objc_lookup_ivar): The new OTHER parameter
2936 contains the result of the ID lookup by the C or C++
2937 front-end; in class methods, use OTHER if it exists;
2938 in instance methods, use OTHER only if it is locally
2939 declared.
2940
49bd32dc 29412004-10-26 Ziemowit Laski <zlaski@apple.com>
2942
2943 * objc-act.c (finish_class): Do not synthesize bogus
2944 'extern objc_object *_Foo;' declarations for @interface Foo.
2945
9e8a7e85 29462004-10-25 Ziemowit Laski <zlaski@apple.com>
2947 David Ayers <d.ayers@inode.at>
2948
2949 * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
2950 instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
2951 'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
2952 'Class <Protocol> == id' and 'Class <Protocol> == Class'.
2953 (objc_is_id): Add test for 'super'.
2954 (objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
2955 receivers; if class methods are not found in protocol lists, search
2956 for instance methods therein and warn if one is found. Look in
2957 global hash tables for suitable method as a last resort when messaging
2958 'id <Proto>', 'Class <Proto>' and invalid receiver types.
2959 (objc_add_method): Insert instance methods listed in protocols into
2960 the global class method hash table.
2961 * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
2962 IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
2963 addition to 'id <Proto>'.
2964
6e030094 29652004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
2966
2967 PR objc/17923
2968 * objc-act.c (objc_build_string_object): Create a CONST_DECL
2969 for the NeXT runtime case.
2970
9f9a4117 29712004-10-02 Kazu Hirata <kazu@cs.umass.edu>
2972
2973 * objc-act.c: Fix comment typos.
2974
4b6a1df9 29752004-09-24 Ziemowit Laski <zlaski@apple.com>
2976
2977 * objc-act.c (init_objc_symtab, init_module_descriptor,
2978 build_shared_structure_initializer): When initializing 'long'
2979 fields, ensure that the initializer value is also 'long'.
2980
775e7a4e 29812004-09-24 Zack Weinberg <zack@codesourcery.com>
2982
2983 * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
2984 throughout.
2985 (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
2986 (build_selector_translation_table): Use %J in diagnostic
2987 instead of diddling input_line. Fix spelling.
2988
e151b250 29892004-09-21 Ziemowit Laski <zlaski@apple.com>
2990
2991 * objc-act.c (objc_fold_objc_type_ref): New function.
2992 * objc-act.h (objc_fold_objc_type_ref): New prototype.
2993
ac206aff 29942004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
2995
2996 * objc-act.c (objc_start_function, really_start_method,
2997 objc_get_parm_info, start_method_def): Update to new arg_info
2998 structures.
2999
13dcc150 30002004-09-07 Ziemowit Laski <zlaski@apple.com>
3001
3002 * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
3003 objc/objc-act.h.
3004 (objc/objc-act.o): Depend on $(HASHTAB_H).
3005 * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
3006 objcp-decl.h instead of c-tree.h.
3007 (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
3008 error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
3009 build_protocol_template): Adjust prototypes.
3010 (build_module_initializer_routine, start_class, continue_class,
3011 finish_class, start_method_def, objc_start_function, start_protocol,
3012 build_method_decl, objc_add_method, add_instance_variable,
3013 build_ivar_reference, is_ivar, is_private, get_super_receiver,
3014 build_selector_table_decl, objc_push_parm, objc_get_parm_info,
3015 gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
3016 create_field_decl): New prototypes.
3017 (objc_expand_function_end, comp_method_with_proto, objc_expr_last,
3018 gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
3019 define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
3020 (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
3021 (CLASS_TYPEDEF_NAME): New.
3022 (TAG_EXECCLASS): Change from a global variable to a #define.
3023 (TAG_RETURN_STRUCT): Delete.
3024 (TAG_GNUINIT): New, holds '__objc_gnu_init' name.
3025 (objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
3026 (string_descriptor): New struct.
3027 (string_htab): New hash table.
3028 (string_hash, string_eq): New prototypes.
3029 (generate_struct_by_value_array): Call create_field_decl() instead of
3030 create_builtin_decl().
3031 (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
3032 In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
3033 (objc_finish_file): In ObjC++, call instantiate_pending_templates()
3034 and cp_finish_file().
3035 (define_decl, get_static_reference, get_protocol_reference,
3036 create_builtin_decl): Remove functions.
3037 (objc_start_class_interface, objc_start_category_interface,
3038 objc_start_protocol, objc_continue_interface, objc_finish_interface,
3039 objc_start_class_implementation, objc_start_category_implementation,
3040 objc_continue_implementation, objc_finish_implementation,
3041 objc_set_visibility, objc_set_method_type,
3042 objc_build_method_signature, objc_add_method_declaration,
3043 objc_start_method_definition, objc_add_instance_variable,
3044 objc_get_protocol_qualified_type, create_field_decl,
3045 start_var_decl, finish_var_decl): New functions.
3046 (setup_string_decl): Simplify since it is only called once.
3047 (synth_module_prologue): Call build_class_template(); predefine 'id'
3048 and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
3049 hooks for duration of function; fix GNU runtime messenger signatures
3050 to correspond to reality; forward-declare '__objc_exec_class' for the
3051 GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
3052 'extern "C" { ... }' wrappers around synthesized declarations; call
3053 build_protocol_template() and build_category_template().
3054 (string_hash, string_eq): New functions.
3055 (objc_build_string_object): Check metaclass correctness only once;
3056 store string literals in hash table.
3057 (objc_build_constructor): Do not convert initializer elements;
3058 adjust for ObjC++ impedance mismatch.
3059 (build_objc_symtab_template): Call create_field_decl() instead of
3060 create_builtin_decl().
3061 (init_objc_symtab): Add missing conversion to initializer element.
3062 (build_metadata_decl): Call start_var_decl() instead of define_decl().
3063 (generate_objc_symtab_decl): Do not call build_category_template();
3064 call start_var_decl() and finish_var_decl() instead of start_decl()
3065 and finish_decl().
3066 (build_module_descriptor): Call create_field_decl() instead of
3067 grokfield(); call start_var_decl() and finish_var_decl() instead of
3068 start_decl() and finish_decl(); always mark module descriptor as
3069 used; move GNU runtime-specific functionality to
3070 build_module_initializer_routine().
3071 (build_module_initializer_routine): New function, broken off of
3072 build_module_descriptor().
3073 (objc_static_init_needed_p, objc_generate_static_init_call): New
3074 functions.
3075 (generate_static_references, generate_strings,
3076 build_selector_translation_table, generate_descriptor_table,
3077 generate_ivars_list, generate_dispatch_table, generate_category): Call
3078 start_var_decl() and finish_var_decl() instead of start_decl() and
3079 finish_decl(); build a type directly instead of via groktypename().
3080 (build_selector_reference_decl, build_selector_table_decl,
3081 build_class_reference_decl, build_protocol_reference,
3082 generate_objc_image_info): Call start_var_decl() instead of
3083 build_decl().
3084 (build_selector_reference): For GNU runtime, do not call
3085 build_selector_reference_decl().
3086 (build_selector, build_typed_selector_reference): Always convert
3087 result to the selector type.
3088 (add_objc_string): Cast return value to 'char *'.
3089 (build_method_prototype_template, build_selector_template,
3090 build_method_template): Use actual selector type for fields
3091 pointing to selectors.
3092 (finish_objc): For GNU runtime, call
3093 build_module_initializer_routine() after build_module_descriptor().
3094 (generate_protocol_list, generate_shared_structures): Call
3095 start_var_decl() and finish_var_decl() instead of start_decl() and
3096 finish_decl(); build a type directly instead of via
3097 groktypename().
3098 (synth_id_with_class_suffix): Return a string.
3099 (get_arg_type_list): For instance methods, use the instance type for
3100 'self'; do not call groktypename_in_parm_context().
3101 (build_objc_string_decl): Squash redeclaration errors in ObjC++.
3102 (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
3103 handle RECORD_TYPEs in ObjC as well as ObjC++.
3104 (objc_is_id): New function.
3105 (objc_is_object_ptr): Return the canonical type node.
3106 (objc_get_class_ivars): Simplify using get_class_ivars().
3107 (get_class_ivars): Remove second parameter; create a fresh copy
3108 of the ivar list for each call; do not check for existence of
3109 super class.
3110 (objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
3111 (objc_init_exceptions): When using SJLJ-style exceptions, require
3112 the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
3113 exceptions.
3114 (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
3115 objc_object_type instead of objc_id_type.
3116 (objc_begin_catch_clause): Convert the incoming PARM_DECL into
3117 a VAR_DECL before placing it in the appropriate scope; do not
3118 call define_decl(); adjust call to c_begin_compound_stmt();
3119 use objc_object_type instead of objc_id_type.
3120 (build_next_objc_exception_stuff): Call create_field_decl() instead
3121 of create_builtin_decl(); construct type directly instead of calling
3122 groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
3123 (build_private_template): Adjust call to get_class_ivars(); build
3124 a type directly instead of via groktypename().
3125 (build_protocol_template, build_method_prototype_list_template,
3126 build_method_prototype_template, build_category_template,
3127 build_selector_template, build_class_template, build_super_template,
3128 build_ivar_template, build_ivar_list_template,
3129 build_method_list_template, build_method_template):
3130 Call create_field_decl() instead of grokfield().
3131 (objc_method_parm_type): Do not call groktypename().
3132 (generate_descriptor_table): Call start_var_decl() and
3133 finish_var_decl() instead of start_decl() and finish_decl().
3134 (generate_method_descriptors, build_protocol_initializer,
3135 generate_dispatch_tables, build_category_initializer,
3136 build_shared_structure_initializer): Do not call groktypename().
3137 (generate_protocols): Call start_var_decl() and finish_var_decl()
3138 instead of start_decl() and finish_decl(); do not call groktypename().
3139 (error_with_ivar): Remove last parameter.
3140 (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
3141 to CLASS_IVARS lists; adjust calls to error_with_ivar().
3142 (generate_ivar_lists): Convert one of the initializer elements; do
3143 not call groktypename().
3144 (get_arg_type_list, start_method_def, gen_method_def): Account for
3145 new representation of variable arguments and '...' in Objective-C
3146 methods; add Objective-C++ impedance matching code.
3147 (is_objc_type_qualifier): Remove function.
3148 (adjust_type_for_id_default): Simplify; there is no longer a need to
3149 wade through declspecs.
3150 (lookup_interface, start_class, continue_class,
3151 finish_class, start_method_def, start_protocol, build_method_decl,
3152 objc_add_method, add_instance_variable, build_ivar_reference,
3153 is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
3154 Make into static functions.
3155 (receiver_is_class_object): Use new IS_CLASS() macro.
3156 (objc_build_message_expr): Tweak ObjC++ message argument handling;
3157 call objc_finish_message_expr() instead of finish_message_expr().
3158 (finish_message_expr): Rename to objc_finish_message_expr(); use
3159 OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
3160 call gen_type_name() instead of gen_declaration(); call objc_is_id()
3161 instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
3162 calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
3163 (build_objc_method_call, warn_with_method): Do not call groktypename().
3164 (build_ivar_reference): Call convert() instead of clobbering in a
3165 type.
3166 (hash_init): Initialize string_htab hash table.
3167 (add_instance_variable): Simplify parameter list; do not call grokfield();
3168 do not populate CLASS_IVARS list.
3169 (start_class): Check for the existence of super class, if one was specified.
3170 (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
3171 call build_class_template(); adjust call to get_class_ivars(); call
3172 build_decl(), pushdecl() and finish_decl() instead of define_decl().
3173 (finish_class): Call build_decl(), pushdecl() and finish_decl() instead
3174 of define_decl().
3175 (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
3176 (start_protocol): Do not call build_protocol_template(); use
3177 PROTOCOL_BINFO_ELTS for the tree vector size.
3178 (encode_type_qualifiers): Do not handle the 'const' qualifier here.
3179 (encode_pointer): Encode 'const char *' as 'r*', for backwards
3180 compatibility.
3181 (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
3182 (encode_type): Handle the 'const' qualifier here.
3183 (objc_parmlist): New global variable, sued by objc_push_parm and
3184 objc_get_parm_info().
3185 (objc_push_parm, objc_get_parm_info): New functions.
3186 (objc_expr_last): Remove function.
3187 (synth_self_and_ucmd_args): For instance methods, use the instance
3188 type for 'self'; call objc_push_parm() instead of push_parm_decl().
3189 (start_method_def): Do not call push_scope(), declare_parm_level(),
3190 pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
3191 just use objc_push_parm() and objc_get_parm_info().
3192 (comp_method_with_proto): Remove function.
3193 (objc_types_are_equivalent): Strip away indirections before comparing
3194 underlying types.
3195 (comp_proto_with_proto): Do not call groktypename(); types are no
3196 longer in raw declspec format.
3197 (objc_start_function): New function.
3198 (really_start_method): Call comp_proto_with_proto() instead of
3199 comp_method_with_proto(); call objc_start_function() instead of
3200 hand-crafting a function declarator.
3201 (continue_method_def, objc_expand_function_end): Remove functions.
3202 (get_super_receiver): Call objc_get_current_scope() instead of
3203 get_current_scope(); reference 'super_class' field (instead of
3204 'class').
3205 (finish_method_def): Rename to objc_finish_method_definition() and
3206 add a function decl parameter; move method encoding call from
3207 objc_expand_function_end().
3208 (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
3209 gen_declaration_1): Remove functions.
3210 (tmpbuf, RAW_DECLSPEC): Remove.
3211 (gen_declaration): Remove second parameter; simplify to deal
3212 with TYPE_P nodes instead of raw declspecs.
3213 (gen_type_name, gen_type_name_0): New functions.
3214 (gen_method_decl): Remove second parameter; call gen_type_name()
3215 instead of gen_declaration_1().
775e7a4e 3216 (dump_interface): Adjust calls to gen_declaration() and
13dcc150 3217 gen_method_decl(); do not allocate a separate string buffer.
3218 (init_objc): Allocate a larger string buffer to accommodate
3219 dump_interface(); adjust call to build_module_descriptor();
3220 add call to build_module_initializer_routine() for the GNU
3221 runtime.
3222 (generate_classref_translation_entry): Do not call start_decl(); call
3223 finish_var_decl() instead of finish_decl(); call convert() instead of
3224 build_c_cast().
3225 * objc-act.h (CLASS_OWN_IVARS): Remove accessor.
3226 (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
3227 gone.
3228 (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
3229 (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
3230 (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
3231 objc_object_type and objc_object_name, respectively.
3232 (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
3233 objc_class_name): New.
3234 (IS_CLASS): New macro.
3235 (IS_ID, IS_SUPER): Robustify.
3236 (OCTI_EXECCLASS_DECL, execclass_decl): New.
3237 (finish_file, start_class, continue_class, finish_class,
3238 start_method_def, continue_method_def, finish_method_def,
3239 start_protocol, finish_protocol, objc_build_throw_stmt,
3240 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
3241 objc_build_synchronized_epilogue, objc_build_try_prologue,
3242 objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
3243 objc_build_finally_prologue, objc_build_finally_epilogue,
3244 is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
3245 get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
3246 get_class_reference, get_static_reference, get_object_reference,
3247 build_message_expr, finish_message_expr, build_selector_expr,
3248 build_ivar_reference, build_keyword_decl, build_method_decl,
3249 build_protocol_expr, build_objc_string_object, objc_declare_alias,
3250 objc_declare_class, objc_declare_protocols, objc_comptypes,
3251 objc_check_decl, build_encode_expr): Remove prototypes.
3252 (imp_count, cat_count): Make GGC-aware.
3253 (OBJC_SET_TYPE_NAME): New macro.
775e7a4e 3254
89359403 32552004-09-03 Ziemowit Laski <zlaski@apple.com>
3256
3257 * config-lang.in: Update copyright notice.
3258 (lang_requires): Indicate that ObjC requires C to be built first.
3259
66eb9e7e 32602004-09-01 Ziemowit Laski <zlaski@apple.com>
3261
3262 * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
3263 TYPE_NAME.
3264 (build_objc_string_object): Rename to objc_build_string_object().
3265 (get_class_reference): Rename to objc_get_class_reference().
3266 (get_class_ivars_from_name): Rename to objc_get_class_ivars().
3267 (next_sjlj_build_catch_list, get_super_receiver): Call
3268 objc_get_class_reference() instead of get_class_reference().
3269 (build_keyword_decl): Rename to objc_build_keyword_decl().
3270 (build_message_expr): Rename to objc_build_message_expr().
3271 (build_protocol_expr): Rename to objc_build_protocol_expr().
3272 (build_selector_expr): Rename to objc_build_selector_expr().
3273 (build_encode_expr): Rename to objc_build_encode_expr().
3274 * objc-act.h (get_class_ivars_from_name): Rename prototype to
3275 objc_get_class_ivars().
3276 (get_class_reference): Rename prototype to objc_get_class_reference().
3277 (build_message_expr): Rename prototype to objc_build_message_expr().
3278 (build_selector_expr): Rename prototype to objc_build_selector_expr().
3279 (build_keyword_decl): Rename prototype to objc_build_keyword_decl().
3280 (build_protocol_expr): Rename prototype to objc_build_prototype_expr().
3281 (build_objc_string_object): Rename prototype to
3282 objc_build_string_object().
775e7a4e 3283
99d7d801 32842004-09-01 Ziemowit Laski <zlaski@apple.com>
3285
3286 * objc-act.c (lookup_interface): Make function 'static' and add a
3287 local prototype.
3288 (objc_check_decl, get_class_reference, objc_declare_alias,
3289 objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
3290 instead of is_class_name().
775e7a4e 3291 (get_super_receiver, objc_clear_super_receiver): Call
99d7d801 3292 objc_get_current_scope() instead of get_current_scope().
3293 (is_class_name): Rename to objc_is_class_name.
3294 (lookup_objc_ivar): Rename to objc_lookup_ivar.
3295
11a35d8f 32962004-08-28 Ziemowit Laski <zlaski@apple.com>
3297
3298 * objc-act.c (objc_is_reserved_word): New function.
3299
800b56f2 33002004-08-15 Ziemowit Laski <zlaski@apple.com>
3301
3302 * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
3303 $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
3304 (objc/objc-parse.o): Do not depend on gtype-objc.h.
3305 * objc-act.c: Do not include gtype-objc.h.
3306 (finish_file): Rename to objc_finish_file().
3307 * objc-act.h (finish_file): Update copyright notice; remove prototype.
3308 * objc-lang.c: Update copyright notice; include diagnostic.h,
3309 c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
3310 toplev.h.
3311 (finish_file): New hook routine.
3312 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
3313 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
3314 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
775e7a4e 3315 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
3316 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
800b56f2 3317 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
3318 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
775e7a4e 3319 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
800b56f2 3320 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
3321 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3322 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
3323 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3324 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3325 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
3326 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
3327 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3328 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
3329 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3330 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
3331 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
3332 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
3333 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
3334 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
3335 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
3336 Move to c-objc-common.h.
7dfbd804 3337
3338\f
92199abb 3339Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
3340Free Software Foundation, Inc.
7dfbd804 3341
3342Copying and distribution of this file, with or without modification,
3343are permitted in any medium without royalty provided the copyright
3344notice and this notice are preserved.