]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/objc/ChangeLog
Update ChangeLog and version files for release
[thirdparty/gcc.git] / gcc / objc / ChangeLog
CommitLineData
3defceaa 12019-05-03 Release Manager
2
3 * GCC 9.1.0 released.
4
a0b58a70 52019-04-05 Martin Liska <mliska@suse.cz>
6
07eefa79 7 PR translation/89936
a0b58a70 8 * objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in
9 order to wrap keywords or arguments.
10 (objc_add_synthesize_declaration_for_property): Likewise.
11
f4d3c071 122019-01-09 Sandra Loosemore <sandra@codesourcery.com>
13
14 PR other/16615
15
16 * objc-act.c: Mechanically replace "can not" with "cannot".
17
fbd26352 182019-01-01 Jakub Jelinek <jakub@redhat.com>
19
20 Update copyright years.
21
d582d140 222018-12-19 David Malcolm <dmalcolm@redhat.com>
23
24 PR c++/43064
25 PR c++/43486
26 * objc-act.c (objc_maybe_build_component_ref): Strip any location
27 wrapper before checking for UOBJC_SUPER_decl and self_decl.
28 (objc_finish_message_expr): Strip any location wrapper.
29 (gen_declaration): Strip location wrappers from "w".
30
bdb69048 312018-10-17 David Malcolm <dmalcolm@redhat.com>
32
33 * Make-lang.in (selftest-objc): New.
34
fa95965b 352018-04-20 Martin Liska <mliska@suse.cz>
36
37 PR objc/85476
38 * objc-act.c (finish_class): Do not overflow string buffer.
39
8e8f6434 402018-01-03 Jakub Jelinek <jakub@redhat.com>
41
42 Update copyright years.
43
7f38a6aa 442017-11-30 Jakub Jelinek <jakub@redhat.com>
45
46 * objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead
47 of ;;.
48
d8aad786 492017-11-10 Martin Sebor <msebor@redhat.com>
50
51 PR c/81117
52 * objc-encoding.c (encode_type): Use memcpy instead of strncpy.
53
3b6578b3 542017-10-31 David Malcolm <dmalcolm@redhat.com>
55
56 * objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use
57 UNKNOWN_LOCATION rather than 0.
58
6273fc17 592017-10-17 Nathan Sidwell <nathan@acm.org>
60
61 * objc-act.c (objc_common_tree_size): Return size of TYPE nodes.
62
e3d0f65c 632017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
64
65 * objc-act.c (objc_decl_method_attributes): Use wi::to_wide when
66 operating on trees as wide_ints.
67
52f26f82 682017-09-29 Jakub Jelinek <jakub@redhat.com>
69
70 * objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at
71 DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.
72
03b7a719 732017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
74 Alan Hayward <alan.hayward@arm.com>
75 David Sherwood <david.sherwood@arm.com>
76
77 * objc-encoding.c (encode_type): Use SCALAR_INT_TYPE_MODE.
78
299dd9fa 792017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
80 Alan Hayward <alan.hayward@arm.com>
81 David Sherwood <david.sherwood@arm.com>
82
83 * objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE
84 instead of TYPE_MODE.
85
916ace94 862017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
87 Alan Hayward <alan.hayward@arm.com>
88 David Sherwood <david.sherwood@arm.com>
89
90 * objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in
91 case statements.
92
cb4d9ee2 932017-08-09 Marek Polacek <polacek@redhat.com>
94
95 PR c/81417
96 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update
97 a call to build_conditional_expr.
98
30a86690 992017-08-08 Martin Liska <mliska@suse.cz>
100
101 * objc-gnu-runtime-abi-01.c: Include header files.
102 * objc-next-runtime-abi-01.c: Likewise.
103 * objc-next-runtime-abi-02.c: Likewise.
104
ab87ee8f 1052017-07-20 Nathan Sidwell <nathan@acm.org>
106
107 Remove TYPE_METHODS.
108 * objc-runtime-shared-support.c (build_ivar_list_initializer):
109 Don't presume first item is a FIELD_DECL.
110
c6f56d33 1112017-07-19 Nathan Sidwell <nathan@acm.org>
112
113 * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use
114 TYPE_{MIN,MAX}_VALUE_RAW.
115
d2346b1f 1162017-05-16 Sylvestre Ledru <sylvestre@debian.org>
117
118 * objc-runtime-shared-support.c (build_module_descriptor):
119 Remove unnecessary conditional when building instance of
120 objc_module. CID 1406758
121
cdf05a3f 1222017-05-09 Nathan Sidwell <nathan@acm.org>
123
124 * objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use
125 pushdecl lang_hook.
126
8c41abe8 1272017-05-04 Martin Sebor <msebor@redhat.com>
128
129 PR translation/80280
130 * objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing
131 quoting to directives.
132 * objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto.
133 * objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto.
134
aad93da1 1352017-01-01 Jakub Jelinek <jakub@redhat.com>
136
137 Update copyright years.
138
b1f04d34 1392016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
aad93da1 140 Richard Biener <rguenther@suse.de>
141
142 * config-lang.in (gtfiles): Add c/c-parser.h.
b1f04d34 143
0b72b025 1442016-09-27 Jakub Jelinek <jakub@redhat.com>
145
146 * objc-act.c (continue_class): Remove break after return.
147 (objc_maybe_printable_name): Likewise.
148
e3533433 1492016-08-12 Marek Polacek <polacek@redhat.com>
150
151 PR c/7652
152 * objc-encoding.c (encode_type): Add FALLTHRU.
153
7cfde92a 1542016-06-07 David Malcolm <dmalcolm@redhat.com>
155
156 * objc-act.c (objc_build_component_ref): Update call
157 to build_component_ref for added param, passing UNKNOWN_LOCATION.
158
5d4b30ea 1592016-04-18 Michael Matz <matz@suse.de>
160
161 * objc-act.c (objc_build_struct): Use SET_DECL_ALIGN.
162
67cf9b55 1632016-02-12 Jakub Jelinek <jakub@redhat.com>
164
165 * objc-act.c: Spelling fixes - behaviour -> behavior and
166 neighbour -> neighbor.
167 * objc-map.h: Likewise.
168
f1717362 1692016-01-04 Jakub Jelinek <jakub@redhat.com>
170
171 Update copyright years.
172
6e803544 1732015-11-11 Andrew MacLeod <amacleod@redhat.com>
174
175 * objc-act.c: Remove unused header files.
176 * objc-encoding.c: Likewise.
177 * objc-gnu-runtime-abi-01.c: Likewise.
178 * objc-lang.c: Likewise.
179 * objc-map.c: Likewise.
180 * objc-next-runtime-abi-01.c: Likewise.
181 * objc-next-runtime-abi-02.c: Likewise.
182 * objc-runtime-shared-support.c: Likewise.
183
5962bd28 1842015-11-09 Alan Modra <amodra@gmail.com>
185
186 * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free
187 return value.
188
4cba6f60 1892015-10-29 Andrew MacLeod <amacleod@redhat.com>
190
191 * objc-lang.c: Reorder #include's and remove duplicates.
192 * objc-map.c: Likewise.
193
6dc50383 1942015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
195
196 * objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h:
197 Remove useless typedefs.
198
47ae02b7 1992015-07-12 Aldy Hernandez <aldyh@redhat.com>
200
201 * objc-map.h: Fix double word typos.
202
9ef16211 2032015-07-07 Andrew MacLeod <amacleod@redhat.com>
204
205 * objc-act.c: Adjust includes.
206 * objc-encoding.c: Likewise.
207 * objc-gnu-runtime-abi-01.c: Likewise.
208 * objc-lang.c: Likewise.
209 * objc-map.c: Likewise.
210 * objc-next-runtime-abi-01.c: Likewise.
211 * objc-next-runtime-abi-02.c: Likewise.
212 * objc-runtime-shared-support.c: Likewise.
213
ec2e0095 2142015-06-25 Andrew MacLeod <amacleod@redhat.com>
215
216 * objc-act.c: Remove ipa-ref.h and plugin-api.h from include list.
217
b594087e 2182015-06-25 Richard Sandiford <richard.sandiford@arm.com>
219
220 * objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash
221 rather than ggc_hasher.
222
770ff93b 2232015-06-25 Richard Sandiford <richard.sandiford@arm.com>
224
225 * objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather
226 than typed_noop_remove. Remove redudant typedefs.
227
f2ab3bac 2282015-06-17 Andrew MacLeod <amacleod@redhat.com>
229
230 * objc-act.c: Do not include input.h, line-map.h or is-a.h.
231 * objc-encoding.c: Likewise.
232 * objc-gnu-runtime-abi-01.c: Likewise.
233 * objc-lang.c: Likewise.
234 * objc-map.c: Likewise.
235 * objc-next-runtime-abi-01.c: Likewise.
236 * objc-next-runtime-abi-02.c: Likewise.
237 * objc-runtime-shared-support.c: Likewise.
238
64486212 2392015-06-08 Andrew MacLeod <amacleod@redhat.com>
240
241 * objc-act.c : Adjust include files.
242 * objc-encoding.c : Likewise.
243 * objc-gnu-runtime-abi-01.c : Likewise.
244 * objc-lang.c : Likewise.
245 * objc-map.c : Likewise.
246 * objc-next-runtime-abi-01.c : Likewise.
247 * objc-next-runtime-abi-02.c : Likewise.
248 * objc-runtime-shared-support.c : Likewise.
249
eac25264 2502015-06-08 Aldy Hernandez <aldyh@redhat.com>
251
252 * objc-runtime-shared-support.c (build_module_descriptor): Set
253 TREE_USED on UOBJC_MODULES_decl.
254
3a1c9df2 2552015-06-05 Aldy Hernandez <aldyh@redhat.com>
256
257 * objc-act.c (objc_write_global_declarations): Adjust comment.
258 * objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set
259 TREE_USED bit.
260
f77c0292 2612015-06-04 Andrew MacLeod <amacleod@redhat.com>
262
263 * objc-act.c: Adjust includes for restructured coretypes.h.
264 * objc-encoding.c: Likewise.
265 * objc-gnu-runtime-abi-01.c: Likewise.
266 * objc-lang.c: Likewise.
267 * objc-map.c: Likewise.
268 * objc-next-runtime-abi-01.c: Likewise.
269 * objc-next-runtime-abi-02.c: Likewise.
270 * objc-runtime-shared-support.c: Likewise.
271
b1891a46 2722015-04-27 Jim Wilson <jim.wilson@linaro.org>
273
274 * Make-lang.in (objc.mostlyclean): Remove cc1obj.
275
9969c043 2762015-04-18 Trevor Saunders <tsaunders@mozilla.com>
277
278 * objc-act.c: Adjust for hash_table changes.
279
1f78217c 2802015-01-09 Michael Collison <michael.collison@linaro.org>
281
282 * objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
283 input.h, alias.h, symtab.h, options, fold-const.h,
284 wide-int.h, and inchash.h due to flattening of tree.h.
285 * objc-encoding.c: Ditto.
286 * objc-gnu-runtime-abi-01.c: Ditto.
287 * objc-lang.c: Ditto.
288 * objc-map.c: Ditto.
289 * objc-next-runtime-abi-01.c: Ditto.
290 * objc-next-runtime-abi-02.c: Ditto.
291 * objc-runtime-shared-support.c: Ditto.
292
d353bf18 2932015-01-05 Jakub Jelinek <jakub@redhat.com>
294
295 Update copyright years.
296
1140c305 2972014-10-28 Andrew MacLeod <amacleod@redhat.com>
298
299 * objc-act.c: Adjust include files.
300
cc0a8c77 3012014-10-22 Alan Modra <amodra@gmail.com>
302
303 * objc-encoding.c (encode_array): Cast result of obstack_base.
304 (encode_type): Likewise.
305
a3020f2f 3062014-10-16 Andrew MacLeod <amacleod@redhat.com>
307
308 * objc-act.c: Adjust include files.
309
2ef51f0e 3102014-10-12 Trevor Saunders <tsaunders@mozilla.com>
311
312 * objc-act.c: use hash_table instead of hashtab.
313
eb9bd3cc 3142014-09-15 Jakub Jelinek <jakub@redhat.com>
315
316 * Make-lang.in (check_objc_parallelize): Change to just an upper
317 bound number.
318
83c7dcd8 3192014-07-14 Jan Hubicka <hubicka@ucw.cz>
320
321 * objc-act.c (objc_common_tree_size): New function.
322 * objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type
323 checking.
324 (INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro.
325 (METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS,
cc0a8c77 326 METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING,
83c7dcd8 327 METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking.
328 (METHOD_SEL_ARGS): Use decl_common.size instead of
329 decl_non_common.result.
330 (PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME,
331 PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS,
332 PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER,
333 PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking.
334 (objc_common_tree_size): Declare.
335 * objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro.
336
d8d5c9af 3372014-06-24 Jan Hubicka <hubicka@ucw.cz>
338
339 * objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants,
340 too.
341
c1f445d2 3422014-06-24 Trevor Saunders <tsaunders@mozilla.com>
343
344 * objc-act.c: Adjust.
345
25a27413 3462014-05-17 Trevor Saunders <tsaunders@mozilla.com>
347
348 * objc-act.c (objc_build_string_object): Adjust.
349 (continue_class): Likewise.
350 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
351 * objc-map.c (objc_map_alloc_ggc): Likewise.
352 (objc_map_private_resize): Likewise.
353 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init):
354 Likewise.
355 (hash_name_enter): Likewise.
356
960d5a55 3572014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
358 Mike Stump <mikestump@comcast.net>
359 Richard Sandiford <rdsandiford@googlemail.com>
360
361 * objc-act.c: Include wide-int.h.
362 (objc_decl_method_attributes): Use wide-int interfaces.
363
06511efd 3642014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
365
d16bd0a9 366 PR objc/56044
06511efd 367 * objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add.
368 (objc_init): Initialize objc_default_ivar_visibility.
369 (objc_start_class_interface): Use objc_default_ivar_visibility.
370 (objc_start_class_implementation): Likewise.
371 (objc_lookup_ivar): Implement -fno-local-ivars.
372
ec761d5a 3732014-01-31 Marek Polacek <polacek@redhat.com>
374
375 PR c/59963
376 * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to
377 build_function_call_vec.
378 (finish_catch): Likewise.
379 (next_runtime_abi_02_get_class_reference): Likewise.
380 * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to
381 build_function_call_vec.
382 (build_throw_stmt): Likewise.
383 * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to
384 build_function_call_vec.
385 (build_throw_stmt): Likewise.
386
3aea1f79 3872014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
388
389 Update copyright years
390
a179a7dc 3912013-12-04 Joseph Myers <joseph@codesourcery.com>
392
393 PR c/52023
394 * objc-act.c (objc_synthesize_getter): Update calls to
395 c_sizeof_or_alignof_type.
396
bc61cadb 3972013-11-22 Andrew MacLeod <amacleod@redhat.com>
398
399 * objc/objc-act.c: Add required include files from gimple.h.
400
6a0712d4 4012013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
402
403 * objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi
404 throughout.
405
fcb97e84 4062013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
407
408 * objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with
409 tree_to_shwi throughout.
410
e795d6e1 4112013-11-14 Andrew MacLeod <amacleod@redhat.com>
412
413 * objc-act.c: Include only gimplify.h and gimple.h as needed.
414
9ed99284 4152013-11-14 Diego Novillo <dnovillo@google.com>
416
417 * objc-act.c: Include stringpool.h.
418 Include stor-layout.h.
419 Include attribs.h.
420 * objc-encoding.c: Include stringpool.h.
421 Include stor-layout.h.
422 * objc-gnu-runtime-abi-01.c: Include stringpool.h.
423 * objc-next-runtime-abi-01.c:
424 Include stringpool.h.
425 * objc-next-runtime-abi-02.c: Include stringpool.h.
426 * objc-runtime-shared-support.c: Include stringpool.h.
427
a8783bee 4282013-11-12 Andrew MacLeod <amacleod@redhat.com>
429
e795d6e1 430 * objc-act.c: Include gimplify.h.
a8783bee 431
b560fabd 4322013-11-07 Andrew MacLeod <amacleod@redhat.com>
433
434 * objc-act.c (objc_push_parm): Handle atomic qualifier.
435
a3a912d2 4362013-09-25 Tom Tromey <tromey@redhat.com>
437
438 * Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o)
439 (objc/objc-runtime-shared-support.o)
440 (objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o)
441 (objc/objc-next-runtime-abi-02.o, objc/objc-act.o)
442 (objc/objc-encoding.o, objc/objc-map.o): Remove.
443
236ce1d1 4442013-09-14 Iain Sandoe <iain@codesourcery.com>
445
446 PR target/48094
447 * objc-next-runtime-abi-01.c (generate_objc_image_info): Remove.
448 (objc_generate_v1_next_metadata): Remove generation of ImageInfo.
449 * objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove.
450 (objc_generate_v2_next_metadata): Remove generation of ImageInfo.
451
86d30f03 4522013-07-21 OndÅ\99ej Bílka <neleai@seznam.cz>
453
454 * objc-act.c: Fix typos.
455 * objc-encoding.c: Likewise.
456 * objc-gnu-runtime-abi-01.c: Likewise.
457 * objc-next-runtime-abi-01.c: Likewise.
458 * objc-next-runtime-abi-02.c: Likewise.
459
16b2cbfc 4602013-05-22 Paolo Carlini <paolo.carlini@oracle.com>
461
462 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call):
463 Fix build_conditional_expr call.
464
be5f9e46 4652013-05-16 Jason Merrill <jason@redhat.com>
466
467 * Make-lang.in (cc1obj$(exeext)): Use link mutex.
468
1e094109 4692012-11-20 Diego Novillo <dnovillo@google.com>
470
471 * objc-act.c: Replace all vec<T, A>() initializers with vNULL.
472
f1f41a6c 4732012-11-16 Diego Novillo <dnovillo@google.com>
474
475 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
476
477 * objc-act.c: Use new vec API in vec.h.
478 * objc-act.h: Likewise.
479 * objc-gnu-runtime-abi-01.c: Likewise.
480 * objc-next-runtime-abi-01.c: Likewise.
481 * objc-next-runtime-abi-02.c: Likewise.
482 * objc-runtime-hooks.h: Likewise.
483 * objc-runtime-shared-support.c: Likewise.
484 * objc-runtime-shared-support.h: Likewise.
485
d1455aa3 4862012-10-01 Lawrence Crowl <crowl@google.com>
487
488 * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o.
489 (objc-act.o): Add dependence on hash-table.h.
490 * objc-act.c (objc_detect_field_duplicates): Change to new type-safe
491 hash table.
492
e53d55e7 4932012-06-29 Steven Bosscher <steven@gcc.gnu.org>
494
495 * Make-ang.in: Adjust for move of C front-end files.
496 * config-lang.in: Likewise.
497 * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h
498 and c-lang.h in c/.
499 * objc-runtime-shared-support.c: Likewise.
500 * objc-next-runtime-abi-01.c: Likewise.
501 * objc-next-runtime-abi-02.c: Likewise.
502 * objc-gnu-runtime-abi-01.c: Likewise.
503 * objc-act.c: Likewise.
504 * objc-lang.c: Likewise.
505
ff6624bc 5062012-06-19 Steven Bosscher <steven@gcc.gnu.org>
507
508 * objc-next-runtime-abi-01.c: Do not include tm.h and output.h.
509 Include c-family/c-target.h.
510 (handle_next_class_ref): Rewrite to emit top-level asm statements.
511 (handle_next_impent): Likewise.
512 * objc/Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o.
513
b5369b7d 5142012-05-31 Steven Bosscher <steven@gcc.gnu.org>
515
516 * objc-act.c: Do not include output.h.
517
009ec0e5 5182012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
519
520 PR objc++/53388
521 * objc-act.c (objc_get_class_reference, objc_build_message_expr):
522 Use build_min_nt_loc.
523
8efa224a 5242012-04-20 Jan Hubicka <jh@suse.cz>
525
009ec0e5 526 * objc-act.c (mark_referenced_methods); Use
8efa224a 527 cgraph_mark_force_output_node.
528
a864ddec 5292012-03-21 Steven Bosscher <steven@gcc.gnu.org>
530
531 * objc-act (objc_build_ivar_assignment): Do not call assemble_external.
532 (objc_build_global_assignment): Likewise.
533 (objc_build_strong_cast_assignment): Likewise.
534 * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external.
535 * objc-next-runtime-abi-02.c: Likewise.
536 * objc-gnu-runtime-abi-01.c: Likewise.
537
35efe5bd 5382012-03-05 Jason Merrill <jason@redhat.com>
539
540 * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't
541 call _stat functions without MEM_STAT_INFO.
542
1583f3af 5432011-11-12 Iain Sandoe <iains@gcc.gnu.org>
544
545 * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality
546 for Objective-C m32.
547
8a8f7a54 5482011-10-29 Iain Sandoe <iains@gcc.gnu.org>
549
550 PR target/47997
551 * objc-act.c (objc_build_string_object): Remove redundant second
552 call to fix_string_type (). Add a checking assert that we are,
553 indeed, passed a STRING_CST.
554
d69c64b7 5552011-10-18 Mikael Pettersson <mikpe@it.uu.se>
556
557 PR objc/50743
558 * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
559 size_t to avoid signed/unsigned
560 comparison.
561 (insert_method_into_method_map): Likewise.
562
f41791cf 5632011-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
564
565 * objc-map.h: New file.
cc0a8c77 566 * objc-map.c: New file.
f41791cf 567 * config-lang.in (gtfiles): Added objc-map.h.
568 * Make-lang.in (OBJC_OBJS): Added objc-map.o.
569 (objc/objc-map.o): New rule.
570 (objc/objc-act.o): Depend on objc/objc-map.h.
571 * objc-next-runtime-abi-02.c: Added a TODO comment.
572 * objc-act.c: Include objc-map.h.
573 (nst_method_hash_list, cls_method_hash_list): Removed.
574 (instance_method_map, class_method_map): New.
575 (cls_name_hash_list, als_name_hash_list): Removed.
576 (class_name_map, alias_name_map): Removed.
577 (ivar_offset_hash_list): Removed.
578 (hash_class_name_enter, hash_class_name_lookup, hash_enter,
579 hash_lookup, hash_add_attr, add_method_to_hash_list): Removed.
580 (interface_hash_init): New.
581 (objc_init): Call interface_hash_init.
582 (objc_write_global_declarations): Iterate over class_method_map
583 and instance_method_map instead of cls_method_hash_list and
584 nst_method_hash_list.
585 (objc_declare_alias): Use alias_name_map instead of
586 cls_name_hash_list.
587 (objc_is_class_name): Use class_name_map and alias_name_map
588 instead of cls_name_hash_list and als_name_hash_list.
589 (interface_tuple, interface_htab, hash_interface, eq_interface):
590 Removed.
591 (interface_map): New.
592 (add_class): Renamed to add_interface. Use interface_map instead
593 of interface_htab.
594 (lookup_interface): Use interface_map instead of interface_htab.
595 (check_duplicates): Changed first argument to be a tree,
596 potentially a TREE_VEC, instead of a hash. Changed implementation
597 to match.
598 (lookup_method_in_hash_lists): Use class_method_map and
599 instance_method_map instead of cls_method_hash_list and
600 nst_method_hash_list.
601 (objc_build_selector_expr): Likewise.
602 (hash_func): Removed.
603 (hash_init): Create instance_method_map, class_method_map,
604 class_name_map, and alias_name_map. Do not create
605 nst_method_hash_list, cls_method_hash_list, cls_name_hash_list,
606 als_name_hash_list, and ivar_offset_hash_list.
607 (insert_method_into_method_map): New.
608 (objc_add_method): Use insert_method_into_method_map instead of
609 add_method_to_hash_list.
610 (start_class): Call add_interface instead of add_class.
611 * objc-act.h (cls_name_hash_list, als_name_hash_list,
612 nst_method_hash_list, cls_method_hash_list): Removed.
613
b9a16870 6142011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
615
616 * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old
617 interface with two parallel arrays to hold standard builtin
618 declarations, and replace it with a function based interface that
619 can support creating builtins on the fly in the future. Change
620 all uses, and poison the old names. Make sure 0 is not a
621 legitimate builtin index.
622 * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto.
623 * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto.
624
2cc66f2a 6252011-07-19 Richard Guenther <rguenther@suse.de>
626
627 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
628 Use fold_build_pointer_plus.
629 (objc2_build_ehtype_initializer): Likewise.
630
32ed3798 6312011-07-11 Nicola Pero <nicola.pero@meta-innovation.com>
632
633 * objc-encoding.h (obstack.h): Do not include.
634 (util_obstack, util_firstobj): Do not declare.
635 (encode_field_decl): Updated prototype to return a tree and take a
636 single tree argument. Updated comments.
637 * objc-encoding.c (util_obstack, util_firstobj): Made static.
638 (objc_encoding_init): New.
639 (encode_field_decl): Existing function renamed to encode_field and
640 made static. New encode_field_decl wrapper function added.
641 (encode_aggregate_fields): Update call to encode_field_decl to
642 call encode_field.
643 * objc-next-runtime-abi-02.c (obstack.h): Do not include.
644 (util_obstack, util_firstobj): Do not declare.
645 (build_v2_ivar_list_initializer): Updated call to
646 encode_field_decl.
647 * objc-runtime-shared-support.c (obstack.h): Do not include.
648 (util_obstack, util_firstobj): Do not declare.
649 (build_ivar_list_initializer): Updated call to encode_field_decl.
650 * objc-act.c (objc_init): Use objc_encoding_init.
651 * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
652 on OBSTACK_H.
653 (objc/objc-gnu-runtime-abi-01.o): Likewise.
654 (objc/objc-next-runtime-abi-01.o): Likewise.
655 (objc/objc-next-runtime-abi-02.o): Likewise.
656 (objc/objc-act.o): Likewise.
cc0a8c77 657
f572c7ba 6582011-07-04 Nicola Pero <nicola.pero@meta-innovation.com>
659
660 Refactored encoding code into objc-encoding.h and objc-encoding.c.
661 * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers,
662 encode_type, generating_instance_variables, objc_method_parm_type,
663 objc_encoded_type_size, encode_method_prototype,
664 objc_build_encode_expr, pointee_is_readonly, encode_pointer,
665 encode_array, encode_vector, encode_aggregate_fields,
666 encode_aggregate_within, encode_next_bitfield,
667 encode_gnu_bitfield, encode_field_decl,
668 objc_v2_encode_property_attr): Moved to objc-encoding.h and
669 objc-encoding.c. No change in the actual code.
670 Include objc-encoding.h.
671 (objc_init): Added TODO.
672 (objc_build_property_setter_name): Made non-static so it can be
673 called from objc-encoding.c.
674 * objc-act.h (OBJC_ENCODE_INLINE_DEFS,
675 OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h.
676 * objc-runtime-shared-support.h (objc_v2_encode_property_attr,
677 encode_method_prototype, encode_field_decl,
cc0a8c77 678 generating_instance_variables): Moved to objc-encoding.h.
f572c7ba 679 (objc_build_property_setter_name): Declare.
680 * objc-encoding.c: New.
681 * objc-encoding.h: New.
682 * objc-gnu-runtime-abi-01.c: Include objc-encoding.h.
683 * objc-next-runtime-abi-01.c: Likewise.
cc0a8c77 684 * objc-next-runtime-abi-02.c: Likewise.
f572c7ba 685 * objc-runtime-shared-support.c: Likewise.
686 * Make-lang.in (OBJC_OBJS): Added objc-encoding.o.
687 (objc/objc-lang.o): Reordered dependencies.
688 (objc/objc-runtime-shared-support.o): Reordered dependencies.
689 Added dependencies on objc-encoding.h and on $(GGC_H),
690 $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h.
691 (objc/objc-gnu-runtime-abi-01.o): Likewise.
692 (objc/objc-next-runtime-abi-01.o): Likewise.
693 (objc/objc-next-runtime-abi-02.o): Likewise.
694 (objc/objc-act.o): Reordered dependencies. Added dependency on
695 objc-encoding.h.
696 (objc/objc-encoding.o): New rule.
697
698 * objc-encoding.c (encode_type): Use "%<%T%>" format when printing
699 warning "unknown type %<%T%> found during Objective-C encoding"
700 instead of using gen_type_name.
cc0a8c77 701
7e23366d 7022011-06-05 Nicola Pero <nicola.pero@meta-innovation.com>
703
704 * objc-act.c (receiver_is_class_object): Expanded comment.
705 (objc_finish_message_expr): Likewise.
706
a53aa046 7072011-06-02 Nicola Pero <nicola.pero@meta-innovation.com>
708
709 PR objc/48539
710 * objc-act.c (objc_finish_message_expr): Warn if messaging a class
711 that was only declared using @class without an @interface. Warn
712 if messaging an instance of a class that was only declared using
713 @class without an @interface, unless the receiver was also typed
714 with a protocol list.
715
5aaf62c7 7162011-06-01 Nicola Pero <nicola.pero@meta-innovation.com>
717
718 * objc-act.c (objc_decl_method_attributes): Implement nonnull
719 attribute for Objective-C methods.
720
d53e999e 7212011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
722
723 * config-lang.in (gtfiles): Updated order of files to fix building
724 when the gcc/cp directory is missing, as in the case of some
725 release tarballs.
726
dffb24a6 7272011-05-20 Nathan Froyd <froydnj@codesourcery.com>
728
729 * objc-act.c (objc_compare_types): Use function_args_iterator
730 instead of TYPE_ARG_TYPES to compare function argument types.
731
cfeb95f9 7322011-05-13 Toon Moene <toon@moene.org>
733
734 * objc-next-runtime-abi-02.c (newabi_append_ro):
735 Add const qualifier to constant variable pointer declaration.
736
8f2eb9e1 7372011-05-11 Nathan Froyd <froydnj@codesourcery.com>
738
739 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
740 (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
741 (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.
742
5318d5a9 7432011-05-05 Nathan Froyd <froydnj@codesourcery.com>
744
745 * objc-runtime-shared-support.h (get_arg_type_list): Delete.
746 (build_function_type_for_method): Declare.
747 * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change
748 type of get_arg_type_base_list field.
749 * objc-act.h (OBJC_VOID_AT_END): Delete.
750 * objc-act.c (get_arg_type_list): Delete.
751 (build_function_type_for_method): New function.
752 (objc_decl_method_attributes): Call build_function_type_for_method.
753 (really_start_method): Likewise.
754 * objc-gnu-runtime-abi-01.c
755 (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and
756 adjust function accordingly. Update header comment.
757 (build_objc_method_call): Call build_function_type_for_method.
758 * objc-next-runtime-abi-01.c
759 (next_runtime_abi_01_get_type_arg_list_base): Change prototype and
760 adjust function accordingly. Update header comment.
761 (build_objc_method_call): Call build_function_type_for_method.
762 * objc-next-runtime-abi-02.c
763 (next_runtime_abi_02_get_type_arg_list_base): Change prototype and
764 adjust function accordingly. Update header comment.
765 (objc_copy_to_temp_side_effect_params): Take fntype instead of a
766 typelist. Use function_args_iterator for traversing fntype.
767 (build_v2_build_objc_method_call): Adjust call to it.
768 Call build_function_type_for_method
769
4232a958 7702011-05-05 Joseph Myers <joseph@codesourcery.com>
771
772 * objc-act.c (objc_start_method_definition): Add parameter expr.
773 Update call to start_method_def.
774 (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter,
775 objc_synthesize_setter) Update calls to
776 objc_start_method_definition.
777 (objc_get_parm_info): Add parameter expr. Update call to
778 get_parm_info.
779 (start_method_def): Add parameter expr. Update call to
780 objc_get_parm_info.
781 * objc-gnu-runtime-abi-01.c (build_module_initializer_routine):
782 Update call to objc_get_parm_info.
783 * objc-runtime-shared-support.h (objc_get_parm_info): Add extra
784 parameter.
785
922f4a59 7862011-04-26 Jason Merrill <jason@redhat.com>
787
788 * objc-act.c (objc_fold_objc_type_ref): Remove.
789 * objc-act.h: Remove prototype.
790
820ecd67 7912011-04-21 Nathan Froyd <froydnj@codesourcery.com>
792
793 * objc-act.c (synth_module_prologue): Call build_function_type_list
794 instead of build_function_type.
795 * objc-next-runtime-abi-02.c (next_runtime_02_initialize):
796 Likewise.
797
cfc77d33 7982011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
799
800 * objc-act.c (ivar_of_class): New.
801 (objc_is_public): Use ivar_of_class.
802
394dd737 8032011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
804
805 * objc-act.c (objc_get_interface_ivars): Removed.
806 (objc_detect_field_duplicates): New.
807 (hash_instance_variable): New.
808 (eq_instance_variable): New.
6bbb4715 809
a758bf7d 8102011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
811
812 * objc-act.c (objc_declare_protocols): Renamed to
813 objc_declare_protocol. Changed first argument to be an identifier
814 instead of a tree chain of identifiers, so that callers don't have
815 to create a temporary tree chain.
816
29d7200d 8172011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
818
819 * objc-act.c (objc_declare_class): Changed to take a single
820 identifier as argument instead of a tree list. This means callers
821 don't have to build temporary tree lists to call this function.
822 (synth_module_prologue): Updated calls to objc_declare_class.
6bbb4715 823
d546b341 8242011-04-13 Nicola Pero <nicola.pero@meta-innovation.com>
825
826 * objc-act.c (build_keyword_selector): Use get_identifier_with_length
827 instead of get_identifier.
828
9b88d08d 8292011-04-12 Nathan Froyd <froydnj@codesourcery.com>
830
831 * objc-lang.c (objc_init_ts): Move code for this function...
832 * objc-act.c (objc_common_init_ts): ...here. Define.
833 * objc-act.h (objc_common_init_ts): Declare.
834
4185cf58 8352011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
836
837 * objc-act.c (objc_build_message_expr): Accept two arguments
838 instead of one so that callers can simply pass the arguments
839 without having to create a temporary chain to hold them.
840
bfb15295 8412011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
842
843 * objc-act.c (comp_proto_with_proto): Do not create and use
844 inefficient temporary argument lists. Compare the arguments
845 directly. (match_proto_with_proto): Removed; incorporated into
846 comp_proto_with_proto ().
6bbb4715 847
cc79dae3 8482011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
849
850 * objc-act.c (printable_ivar_name): New.
851 (add_instance_variable): Call printable_ivar_name() when an error
852 message needs to be printed. Do not prepare the instance variable
853 for printing unless there is an actual error.
854
05ca272f 8552011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
856
857 * objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
858 avoid calling identifier_global_value() multiple times.
859
5a90471f 8602011-04-12 Martin Jambor <mjambor@suse.cz>
861
862 * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
863 instead of cgraph_node.
864
c94b1d0e 8652011-04-06 Joseph Myers <joseph@codesourcery.com>
866
867 * objc-act.c: Include c-target.h instead of target.h.
868 * Make-lang.in (objc/objc-act.o): Update dependencies.
869
e5c4da6f 8702011-03-06 Joseph Myers <joseph@codesourcery.com>
871
872 * lang-specs.h: Match -save-temps* instead of -save-temps.
873
a67d1cef 8742011-02-26 Nicola Pero <nicola.pero@meta-innovation.com>
875
876 * objc-act.c (objc_v2_encode_prop_attr): Rewritten.
6bbb4715 877
41aea009 8782011-02-23 Nicola Pero <nicola.pero@meta-innovation.com>
879
880 * objc-act.c (build_private_template): Do not copy the
881 CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
882 * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
883 TYPE_LANG_SLOT_0.
884
7840e94f 8852011-02-22 Nicola Pero <nicola.pero@meta-innovation.com>
886
887 PR objc/47832
888 * objc-act.c (flexible_array_type_p): New.
889 (add_instance_variable): Produce an error if an instance variable
890 uses flexible array members.
891 (encode_array): Do not emit an error if encoding a flexible array
892 type while generating instance variables.
893
64b39c0c 8942011-02-21 Mike Stump <mikestump@comcast.net>
895
a67d1cef 896 * Make-lang.in (check_objc_parallelize): Refine for 4 processor
897 machines.
64b39c0c 898
86ea8248 8992011-02-20 Nicola Pero <nicola.pero@meta-innovation.com>
f6593d66 900
7840e94f 901 * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed
902 usage of padding fields. Do not include tm.h.
903 * objc-act.c (objc_write_global_declaration): Set input_location
904 to BUILTINS_LOCATION while generating runtime metadata.
f6593d66 905
86ea8248 9062011-01-20 Nicola Pero <nicola.pero@meta-innovation.com>
d098f394 907
908 PR objc/47784
909 * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
910 effects, do not use a temporary variable.
911
dca79b12 9122011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
913
914 * objc-next-runtime-abi-01.c: Updated comments.
915 * objc-next-runtime-abi-02.c: Same.
916
3c2c63b4 9172011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
918
919 * objc-act.c (objc_init, generate_struct_by_value_array): Updated
920 comments.
921
a0aa15e7 9222011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
923
924 * objc-act.c: Updated comments.
925 * objc-next-runtime-abi-02.c: Same.
926 * objc-runtime-shared-support.c: Same.
927 * objc-runtime-hooks.h: Same.
928 * objc-act.h: Same.
929 * objc-gnu-runtime-abi-01.c: Same.
930
05b2272e 9312011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
932
933 * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
934 not generate metadata if there is nothing to put into it.
935
267785bc 9362011-02-17 Iain Sandoe <iains@gcc.gnu.org>
937
938 * config-lang.in (gtfiles): Updated.
939 * Make-lang.in (START_HDRS): New.
940 (OBJC_OBJS): Added new object files.
941 (objc/objc-act.o): Updated prerequisites.
942 (objc/objc-lang.o): Updated prerequisites.
943 (objc/objc-runtime-shared-support.o): New.
944 (objc/objc-gnu-runtime-abi-01.o): New.
945 (objc/objc-next-runtime-abi-01.o): New.
946 (objc/objc-next-runtime-abi-02.o): New.
947 * objc-runtime-hooks.h: New.
948 * objc-runtime-shared-support.h: New.
949 * objc-runtime-shared-support.c: New.
950 * objc-gnu-runtime-abi-01.c: New.
951 * objc-next-metadata-tags.h: New.
952 * objc-next-runtime-abi-01.c: New.
953 * objc-next-runtime-abi-02.c: New.
954 * objc-lang.c: Include c-lang.h.
955 (LANG_HOOKS_EH_PERSONALITY): Removed.
956 * objc-act.h: Moved many declarations and code from objc-act.c
957 into objc-act.h to make them available outside objc-act.c.
958 (objc_eh_runtime_type): Removed.
959 (objc_eh_personality): Removed.
960 (CLASS_HAS_EXCEPTION_ATTR): New.
961 (OCTI_SUPER_SUPERFIELD_ID): New.
962 (OCTI_V1_PROP_LIST_TEMPL): New.
963 (OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
964 (super_superclassfield_id): New.
965 (objc_prop_list_ptr): New.
966 (prop_names_attr_chain): New.
967 * objc-act.c: Include new runtime headers. Moved many #defines
968 and declarations into objc-act.h and
969 objc-runtime-shared-support.h. Made some corresponding functions
970 non-static, and moved some others into
971 objc-runtime-shared-support.c. Moved metadata generation code
972 into the new runtime hook files.
973 (ivar_offset_hash_list): New.
974 (objc_init): Call generate_struct_value_by_array() before doing
975 any runtime initialization. Create the appropriate runtime hook
976 structures.
977 (init_objc): Removed. Code moved directly into objc_init.
978 (finish_objc): Removed. Code moved directly into
979 objc_write_global_declarations.
980 (objc_write_global_declarations): Do the warn_selector checks
981 before emitting metadata. Use a runtime hook to emit the
982 metadata. Do not emit the metadata or do -gen-decls processing if
983 -fsyntax-only or we are producing a PCH.
984 (build_objc_exception_stuff): Renamed to
985 build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from
986 objc_exception_throw_decl.
987 (synth_module_prologue): Call runtime initialize hook instead of
988 building runtime declarations here. Use the
989 default_constant_string_class_name runtime hook to set the
990 constant string class name.
991 (objc_build_string_object): Call the setup_const_string_class_decl
992 runtime hook instead of setup_string_decl. Call the
993 build_const_string_constructor runtime hook instead of building
994 the string object here.
995 (get_objc_string_decl): Added prop_names_attr case. Removed
996 gcc_unreachable() at the end.
997 (objc_begin_catch_clause): Distinguish between @catch (...) and
998 @catch (id x). Call the begin_catch runtime hook instead of
999 building the CATCH_EXPR here.
1000 (objc_finish_catch_clause): Call the finish_catch runtime hook
1001 instead of adding the catch here.
1002 (objc_finish_try_stmt): Call the finish_try_stmt runtime hook
1003 instead of doing it here.
1004 (objc_build_throw_stmt): Bail out early for error_mark_node. Call
1005 the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
1006 Call the build_throw_stmt runtime hook instead of building the
1007 throw call here.
1008 (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
1009 as well.
1010 (get_arg_type_list): Call the get_arg_type_list_base runtime hook
1011 instead of building the list of arguments here.
1012 (receiver_is_class_object): Call the receiver_is_class_object
1013 runtime hook instead of doing the check here. Call the
1014 tag_getclass runtime hook instead of using TAG_GETCLASS.
1015 (objc_finish_message_expr): Call the build_objc_method_call
1016 runtime hook.
1017 (objc_build_protocol_expr): Call the get_protocol_reference
1018 runtime hook.
1019 (objc_build_selector_expr): Call the build_selector_reference
1020 runtime hook.
1021 (build_ivar_reference): Call the build_ivar_reference runtime
1022 hook.
1023 (hash_init): Set up ivar_offset_hash_list.
1024 (start_class): Recognize the objc_exception attribute and store
1025 it.
1026 (continue_class): Use the class_decl and metaclass_decl runtime
1027 hooks.
1028 (build_objc_property_accessor_helpers): Renamed to
1029 build_common_objc_property_accessor_helpers. Do not build
1030 objc_copyStruct_decl, objc_getPropertyStruct_decl and
1031 objc_setPropertyStruct_decl.
1032 (objc_synthesize_getter): Check what struct setter/getter helper
1033 is available instead of checking the type of runtime.
1034 (get_super_receiver): Use the super_superclassfield_ident runtime
1035 hook. Added assert. Use the get_class_super_ref and
1036 get_category_super_ref runtime hooks.
1037 (objc_v2_encode_prop_attr): New.
6bbb4715 1038
8e8bbfb1 10392011-01-17 Nicola Pero <nicola.pero@meta-innovation.com>
1040
1041 PR objc/47314
1042 * objc-act.c (finish_objc): When calling check_duplicates to check
1043 duplicated instance methods, set 'is_class' to 0, not 1.
1044
86d3c909 10452011-01-14 Ben Elliston <bje@au.ibm.com>
1046
07a6dfdb 1047 PR 19162
86d3c909 1048 * objc-act.c (generate_struct_by_value_array): Do not output a
1049 definition for struct_forward_array.
1050
2999f661 10512011-01-08 Iain Sandoe <iains@gcc.gnu.org>
1052
1053 * objc-act.c (objc_finish_foreach_loop): Mark collection expression
1054 as read.
1055
0d3a8ed4 10562011-01-02 H.J. Lu <hongjiu.lu@intel.com>
1057
1058 * objc-act.c (check_that_protocol_is_defined): Fix a typo.
1059
56c83d77 10602011-01-02 Nicola Pero <nicola.pero@meta-innovation.com>
1061
1062 * objc-act.c (check_that_protocol_is_defined): New.
1063 (lookup_protocol): Call check_that_protocol_is_defined.
1064
c4823a85 10652010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
1066
1067 * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
1068 lists. Check them two-ways to fix comparisons when one protocol
1069 implements the other one, or when one list contains duplicated
1070 protocols.
1071
9436777e 10722010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
1073
1074 * objc-act.c (objc_add_method): When emitting an error because a
1075 method with the same name but conflicting types is found in the
1076 same class or category interface, print a note with the location
1077 of the original method. Also, improved the error message to
1078 clearly state that the conflict is due to conflicting types, and
1079 produce it for protocols as well. Emit an error if two identical
1080 methods are declared in a protocol, but one is @required and the
e4079fba 1081 other one is @optional.
9436777e 1082
10832010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
e488ff21 1084
1085 * objc-act.c (start_class): Warn when a class attribute is
1086 ignored.
1087 (objc_declare_protocols): Warn when a protocol attribute in a
1088 protocol forward-declaration is ignored.
1089 (start_protocol): Warn when a protocol attribute is ignored.
1090
d2389fe7 10912010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
1092
1093 * objc-act.c (objc_set_method_opt): Tidy up error messages. In
1094 particular, explicitly mention whether the error is due to the
1095 @optional or @required keyword instead of mentioning
1096 "@optional/@required".
1097
5cada957 10982010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
1099
1100 PR objc/47118
1101 * objc-act.c (objc_build_synchronized): Check the argument of
1102 @synchronized and emit an appropriate error if it is not a valid
1103 Objective-C object. Deal gracefully with that case. Updated
1104 comments and variable names.
1105
d67e8485 11062010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
1107
1108 PR objc/47075
1109 * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
1110 * objc-tree.def (PROPERTY_REF): Increased the number of operands
1111 from 3 to 4.
1112 * objc-act.c (objc_finish_message_expr): Added optional argument
1113 allowing to return the deprecated method prototype for deprecated
1114 methods, instead of immediately emitting the deprecation warning.
1115 (objc_maybe_build_component_ref): Do not warn for a deprecated
1116 property. When building the getter call, get the deprecated
1117 method prototype from objc_finish_message_expr() and put it into
1118 the PROPERTY_REF.
1119 (objc_build_class_component_ref): Same change.
1120 (finish_class): Mark the getter and setter as deprecated if they
1121 are generated from a deprecated property.
1122 (objc_gimplify_property_ref): If the getter is deprecated, emit a
1123 deprecation warning.
1124 (objc_build_setter_call, objc_build_message_expr,
1125 objc_finish_foreach_loop): Updated call to
1126 objc_finish_message_expr.
6bbb4715 1127
89e83a91 11282010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
1129
1130 PR objc/47076
1131 * objc-act.c (lookup_protocol): Added 'definition_required'
1132 argument. If 'definition_required', and the protocol is not
1133 defined, emit a warning.
1134 (objc_declare_protocols): Updated call to lookup_protocol.
1135 (start_protocol): Same change.
1136 (check_protocol_recursively): Same change.
1137 (objc_build_protocol_expr): Same change.
1138 (lookup_and_install_protocols): Added definition_required argument.
1139 Pass it to lookup_protocol.
1140 (objc_get_protocol_qualified_type): Updated call to
1141 lookup_and_install_protocols.
1142 (start_class): Updated calls to lookup_and_install_protocols; pass
1143 true to 'definition_required' to get the warnings.
1144 (start_protocol): Updated calls to lookup_and_install_protocols.
1145
598d5210 11462010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
1147
1148 * objc-act.c (objc_start_category_interface): Produce an error if
1149 a class extension is found after the class @implementation.
1150
39c05f29 11512010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
1152
1153 PR objc/47073
1154 * objc-act.c (encode_method_prototype): Fixed both location and
1155 format string of error "type %qT does not have a known size".
1156
5d8940e8 11572010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
1158
1159 * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
1160
a36cf284 11612010-12-22 Nathan Froyd <froydnj@codesourcery.com>
1162
1163 * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
1164
33b3681f 11652010-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
1166
1167 * objc-act.c (objc_init): Call using_eh_for_cleanups.
1168 (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do
1169 not call using_eh_for_cleanups.
1170 (objc_begin_try_stmt): Do not call objc_init_exceptions.
1171 (objc_build_throw_stmt): Updated call to
1172 objc_maybe_warn_exceptions.
1173
a654f093 11742010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1175
1176 * objc/objc-act.c (objc_eh_personality): Select personality name on
1177 runtime.
1178 (objc_init_exceptions): New.
1179 (objc_begin_try_stmt): Use objc_init_exceptions.
1180 (objc_build_throw_stmt): Likewise.
1181
e16610d0 11822010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
1183
1184 * objc-act.c (objc_in_class_extension): New.
1185 (objc_start_category_interface): If -fobjc-std=objc1
1186 was specified, produce an error if a class extension is used.
1187 (objc_finish_interface): Reset objc_in_class_extension to false.
1188 (objc_add_property_declaration): Allow a class extension to extend
1189 readonly properties in the main @interface to be readwrite.
1190 (start_class): Added code to deal with class extensions. In that
1191 case, return the existing interface after adding any additional
1192 protocols to it and setting objc_in_class_extension to true.
1193 (continue_class): If in a class extension, do not generate the
1194 instance variable template.
1195
40ec327c 11962010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
1197
1198 * objc-act.c (objc_build_throw_stmt): Check that the argument of
1199 @throw is an object and emit an error if not.
1200
693f2197 12012010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
1202
1203 * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
1204 error() when printing an error about the iterating variable or
1205 collection not being an object.
1206
81976f54 12072010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
1208
1209 * objc-act.c (objc_finish_foreach_loop): Mark the
1210 object_expression as used.
1211
6c536c4f 12122010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
1213
1214 * objc-act.c: Include c-family/c-objc.h.
1215 * objc-lang.c: Same change.
1216 * Make-lang.in (objc/objc-act.o): Depend on
1217 c-family/c-objc.h.
1218 (objc/objc-lang.o): Same change.
1219 * config-lang.in (gtfiles): Added c-family/c-objc.h.
6bbb4715 1220
f1a0bc73 12212010-12-02 Joseph Myers <joseph@codesourcery.com>
1222
1223 * lang-specs.h: Don't handle -ftraditional.
1224
dee9f0c7 12252010-12-02 Nicola Pero <nicola.pero@meta-innovation.com>
1226
1227 * objc-act.c (objc_build_throw_stmt): Return error_mark_node and
1228 not NULL_TREE when a @throw is used outside of a @catch block.
1229
d7489d8d 12302010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
1231
1232 * objc-act.c (objc_build_volatilized_type): Removed.
1233 (objc_non_volatilized_type): Removed.
1234 (objc_type_quals_match): Removed.
1235 (local_variables_to_volatilize): New.
1236 (objc_volatilize_decl): Add the decl to volatilize to
1237 local_variables_to_volatilize, but don't volatilize it yet.
1238 (objc_finish_function): New.
1239 * objc-act.h (local_variables_to_volatilize): New.
1240
1569aee5 12412010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1242 Mike Stump <mikestump@comcast.net>
1243
1244 Allow 'make check-objc -j2'
1245 * Make-lang.in (lang_checks_parallelized): New.
1246 (check_objc_parallelize): New.
6bbb4715 1247
1cd5e6ab 12482010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1249
1250 * objc-act.c (start_class): When a class is reimplemented,
1251 generate an error and avoid adding the class to the list of
1252 implemented classes again, but do not return error_mark_node.
1253
1a19222c 12542010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1255
1256 * objc-act.c (objc_maybe_build_component_ref): Removed TODO.
1257
b3d2d312 12582010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1259
1260 * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
1261 is passed as argument.
1262 (objc_begin_catch_clause): Added code to deal with an
1263 error_mark_node or NULL_TREE argument. Improved checks for
1264 invalid arguments. Added code to traverse typedefs.
1265
9aa91c6c 12662010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1267
1268 * objc-act.c (objc_demangle): Return immediately if the string is
1269 too short. Detect names that do not need demangling, and return
1270 them unchanged.
1271
db496216 12722010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
1273
1274 Implemented optional properties.
1275 * objc-act.h (PROPERTY_OPTIONAL): New.
1276 * objc-act.c (objc_add_property_declaration): Set
1277 PROPERTY_OPTIONAL if appropriate.
1278 (finish_class): When generating definitions of setter and getter
1279 methods associated with a property for a protocol, mark them as
1280 optional if the property is optional.
1281 (maybe_make_artificial_property_decl): Added 'getter_name'
1282 argument. Set PROPERTY_OPTIONAL.
1283 (objc_maybe_build_component_ref): Updated calls to
1284 maybe_make_artificial_property_decl. Added code for optional,
1285 readonly properties.
1286 (objc_build_class_component_ref): Updated call to
1287 maybe_make_artificial_property_decl.
6bbb4715 1288
2f78a7ce 12892010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
1290
1291 * objc-act.c (objc_build_struct): Fixed loops that save and
1292 restore TYPE_OBJC_INFO to iterate over all variants of the type; a
1293 special case for the current type is then no longer required.
1294 Duplicate TYPE_LANG_SPECIFIC for each type before restoring
1295 TYPE_OBJC_INFO.
1296 (objc_get_protocol_qualified_type): Updated comments.
6bbb4715 1297
39bf7c51 12982010-11-25 Nicola Pero <nicola.pero@meta-innovation.com>
1299
1300 * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
1301 after finish_struct, not before, otherwise it may be wiped out by
1302 it. This fixes spurious warnings when a class has more than 15
1303 instance variables.
1304
e71ec76d 13052010-11-23 Nicola Pero <nicola.pero@meta-innovation.com>
1306
1307 PR objc/24358
1308 * lang-specs.h: Added objective-c-cpp-output. Mapped .mi to
1309 objective-c-cpp-output instead of objc-cpp-output. Print a
1310 deprecation note every time objc-cpp-output is requested.
1311
cc4fa57a 13122010-11-22 Joseph Myers <joseph@codesourcery.com>
1313
1314 * objc-act.c (write_symbols): Don't declare here.
1315
6cbcc94e 13162010-11-22 Nicola Pero <nicola.pero@meta-innovation.com>
1317
1318 PR objc/41108
1319 * objc-act.c (objc_generate_write_barrier): Added assert to make sure
1320 this function is only called with the next runtime.
1321
02191613 13222010-11-20 Jakub Jelinek <jakub@redhat.com>
1323
1324 PR c/46547
1325 * objc-act.c (in_late_binary_op): Remove.
1326
aed3bc0e 13272010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
c213e196 1328
c1cfb0f5 1329 * objc-act.c (objc_start_class_interface): Do not warn that class
1330 attributes are unimplemented. Pass the attributes to start_class.
1331 (objc_start_category_interface): Updated call to start_class.
1332 (objc_start_class_implementation): Same change.
1333 (objc_start_category_implementation): Same change.
1334 (objc_build_class_component_ref): Warn if the class is deprecated.
1335 (build_private_template): Mark the template as deprecated if the
1336 class is deprecated.
1337 (start_class): Added 'attributes' argument. Emit a warning if
1338 using a deprecated class as superclass of a class, or original
1339 class of a category. Recognize the 'deprecated' attribute when
1340 starting and interface, and mark the interface with
1341 TREE_DEPRECATED if present. Store attributes in the interface.
6bbb4715 1342
13432010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
c1cfb0f5 1344
c213e196 1345 * objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
1346 argument. If it is 'true' and the protocol is deprecated, emit a
1347 deprecation warning.
1348 (objc_start_protocol): Do not warn that protocol attributes are
1349 unimplemented. Pass the attributes to start_protocol.
1350 (start_protocol): Added attributes argument. Recognize the
1351 'deprecated' attribute and mark the protocols with TREE_DEPRECATED
1352 if present. Store attributes in the protocol.
1353 (objc_declare_protocols): Added 'attributes' argument. Recognize
1354 the 'deprecated' attribute and mark the protocols with
1355 TREE_DEPRECATED if present. Store attributes in the protocol.
1356 Updated call to lookup_protocol.
1357 (objc_build_protocol_expr): Updated call to lookup_protocol.
1358 (check_protocol_recursively): Same change.
1359 (lookup_and_install_protocols): Same change.
1360 * objc-act.h: Updated comments.
6bbb4715 1361
53cd8676 13622010-11-17 Nicola Pero <nicola.pero@meta-innovation.com>
1363
1364 * objc-act.c (lookup_method_in_protocol_list): Search methods in
1365 PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
1366 they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
1367
6d922cb7 13682010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
1369
1370 * objc-act.c (objc_build_setter_call): New.
1371 (objc_maybe_build_modify_expr): Rewritten to build a compound
1372 statement.
1373 (objc_build_incr_expr_for_property_ref): Updated calls to
1374 objc_maybe_build_modify_expr to call objc_build_setter_call
1375 instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR,
1376 ...). Use convert () instead of build1 (NOP_EXPR, ...). Use
1377 TREE_NO_WARNING on the final compound statement to silence C++
1378 warnings.
1379
e4a7640a 13802010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
1381
1382 * objc-act.c (objc_build_incr_expr_for_property_ref): New.
1383 (objc_create_temporary_var): Moved it towards the beginning of the
1384 file so that objc_build_incr_expr_for_property_ref can use it.
1385
25bf0383 13862010-11-14 Nicola Pero <nicola.pero@meta-innovation.com>
1387
1388 * objc-act.c (objc_add_property_declaration): Check that the decl
1389 we received from the parser is a FIELD_DECL; reject array and
1390 bitfield properties. Convert the warning when a property is
1391 readonly and a setter is specified into an error. Convert errors
1392 when a property declaration does not match a property declaration
1393 in a superclass into warnings.
1394 (objc_add_synthesize_declaration_for_property): Use
1395 DECL_BIT_FIELD_TYPE to determine the type of an instance variable
1396 if it is a bitfield. Throw an error if we are asked to synthesize
1397 setters/getters for a bitfield instance variable but the property
1398 is not appropriate - it must be assign and nonatomic. If the
1399 property is readonly, allow the instance variable type to be a
1400 specialization of the property type.
1401 (objc_type_valid_for_messaging): Fixed returning 'false' for a
1402 Class qualified with a protocol when the 'accept_classes' argument
1403 is 'false'.
1404
e5479368 14052010-11-13 Nicola Pero <nicola.pero@meta-innovation.com>
1406
1407 * objc-act.c (objc_get_protocol_qualified_type): detect cases
1408 where we are asked to attach a protocol to something which is not
1409 an Objective-C object type, and produce an error.
1410
ad312852 14112010-11-11 Nicola Pero <nicola.pero@meta-innovation.com>
1412
1413 * objc-act.c (objc_add_property_declaration): Check that the type
1414 of a property and of an inherited property match.
1415 (objc_maybe_build_component_ref): Tidied up indentation and
1416 comments.
1417 (objc_common_type): Added new type of check (-5).
1418 (objc_add_synthesize_declaration_for_property): Check that the
1419 property to synthesize and the instance variable to use have the
1420 same type.
6bbb4715 1421
bf776685 14222010-11-10 Joseph Myers <joseph@codesourcery.com>
1423
1424 * objc-act.c (objc_init): Use %' in diagnostic.
1425 (objc_set_method_opt): Remove trailing '.' from diagnostic.
1426
6bd9d862 14272010-11-10 Joseph Myers <joseph@codesourcery.com>
1428
1429 * objc-act.c (dump_base_name): Don't declare here.
1430
99da7d7e 14312010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
1432
1433 * objc-act.c (objc_add_dynamic_declaration_for_property): Do not
1434 search for the @property declation only in the current context,
1435 but also in inherited properties. Do not mark the original
1436 PROPERTY_DECL in the @interface or @protocol with
1437 PROPERTY_DYNAMIC.
1438 (check_methods): To check if a method is associated with a
1439 @dynamic property, search for the property in IMPL_PROPERTY_DECL.
1440 (check_accessible_methods): Same change.
1441 * objc-act.h: Updated comment.
1442
c84ce30a 14432010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
1444
1445 * objc-act.c (objc_add_synthesize_declaration_for_property):
1446 Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
1447 checking for an existing @synthesize or @dynamic declaration.
1448 Search for an inherited @property declaration if none is found in
1449 the local interface. If the required instance variable does not
1450 exist, return instead of trying to continue to prevent a compiler
1451 crash later. Check that the instance variable is not already
1452 being used by another @synthesize.
1453 (objc_add_dynamic_declaration_for_property): Iterate over
1454 IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
1455 existing @synthesize or @dynamic declaration.
1456 (objc_synthesize_getter): Search for the getter declaration in
1457 protocols and superclasses as well.
1458 (objc_synthesize_setter): Search for the setter declaration in
1459 protocols and superclasses as well.
6bbb4715 1460
7f5203a8 14612010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
1462
1463 * objc-act.c (lookup_property): When checking categories, also
1464 check the protocols attached to each.
1465 (objc_add_property_declaration): Determine the
1466 PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up
1467 error message. Search for an existing property declaration with
1468 the same name which would be inherited from the class hiearchy,
1469 and produce an error if it has incompatible attributes.
1470 (check_methods): Changed second parameter. If the method is a
1471 getter or setter for a property, do not warn if it is inherited as
1472 opposed to implemented directly in the class.
1473 (check_protocol): Updated calls to check_methods.
1474 (finish_class): Do not determine the PROPERTY_SETTER_NAME and
1475 PROPERTY_GETTER_NAME here; this is now done earlier, in
1476 objc_add_property_declaration.
1477 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
6bbb4715 1478
736dea43 14792010-11-06 Nicola Pero <nicola.pero@meta-innovation.com>
1480
f3fefa12 1481 Fixed using the Objective-C 2.0 dot-syntax with self and super.
736dea43 1482 * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
1483 (maybe_make_artificial_property_decl): Added 'implementation'
1484 argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
1485 looking up getters or setters for a class. If an implementation
1486 is specified, search it as well for a getter or setter.
1487 (objc_maybe_build_component_ref): Updated calls to
1488 maybe_make_artificial_property_decl; added code to deal with
1489 'self' and 'super' and with methods declared locally in the
1490 implementation. Store the getter call expression in the
1491 PROPERTY_REF instead of throwing it away.
1492 (objc_build_class_component_ref): Updated calls to
1493 maybe_make_artificial_property_decl, and store the getter call
1494 expression in PROPERTY_REF instead of throwing it away.
1495 (lookup_method_static): Implemented
1496 OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
1497 (objc_gimplify_property_ref): Do not build the getter method call
1498 here; instead use the one stored in the PROPERTY_REF. If it's not
1499 there, produce helpful error messages.
1500 * objc-tree.def (PROPERTY_REF): Increased the number of operands
1501 from 2 to 3. Updated comments.
1502 * objc-act.h (PROPERTY_REF_GETTER_CALL): New.
6bbb4715 1503
1f6616ee 15042010-11-06 Iain Sandoe <iains@gcc.gnu.org>
1505
1506 PR target/44981
1507 * objc-act.c (objc_build_string_object): Amend for renamed hook.
1508 (objc_string_ref_type_p): New.
1509 (objc_check_format_arg): New.
1510
b0d0931f 15112010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
1512
6bbb4715 1513 Fixed using the Objective-C 2.0 dot-syntax with class names.
b0d0931f 1514 * objc-act.c (objc_build_class_component_ref): New.
1515
f26877d5 15162010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
1517
1518 * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
1519 category.
1520 (objc_type_valid_for_messaging): Added 'accept_classes' argument;
1521 if set to 'true', return 'true' for Class objects. Do not remove
1522 more than on pointer indirection.
1523 (objc_add_property_declaration): Only warn about 'assign'
1524 semantics for Objective-C objects if warn_property_assign_default;
1525 and do not warn if the property is readonly or if the type is a Class.
1526 (objc_finish_foreach_loop): Updated calls to
1527 objc_type_valid_for_messaging.
6bbb4715 1528
1ef143b6 15292010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
1530
1531 Implemented -fobjc-std=objc1 flag.
1532 * objc-act.c (objc_start_class_interface): If attributes are
1533 specified when flag_objc1_only is set, print an error.
1534 (objc_start_category_interface): Same change.
1535 (objc_start_protocol): Same change.
1536 (objc_add_method_declaration): Same change.
1537 (objc_start_method_definition): Same change.
1538 (objc_build_keyword_decl): Same change.
1539 (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
1540 flag_objc1_set is set, print an error.
1541 (objc_set_method_opt): If flag_objc1_only is set, print an error.
1542 (objc_add_property_declaration): Same change.
1543 (objc_add_synthesize_declaration): Same change.
1544 (objc_add_dynamic_declaration): Same change.
1545 (objc_finish_foreach_loop): Same change.
1546 (objc_maybe_build_component_ref): If flag_objc1_only is set,
1547 return immediately.
1548
890881e7 15492010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
1550
1551 * objc-act.c (maybe_make_artificial_property_decl): New.
1552 (objc_maybe_build_component_ref): Call
1553 maybe_make_artificial_property_decl if a property can not be
1554 found. Do not call objc_finish_message_expr if
1555 PROPERTY_HAS_NO_GETTER.
1556 * objc-act.h Updated comments.
1557 (PROPERTY_HAS_NO_GETTER): New.
1558 (PROPERTY_HAS_NO_SETTER): New.
1559 * objc-tree.def: Updated comment.
6bbb4715 1560
8c582e4f 15612010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
1562
1563 Implemented format and noreturn attributes for Objective-C methods.
1564 * objc-act.c (objc_start_method_definition): If method attributes
1565 are specified emit a warning and ignore them.
1566 (build_objc_method_call): Moved deprecation warnings from here ...
1567 (objc_finish_message_expr): to here. Do not emit deprecation
1568 warnings if the receiver is of type 'id'.
1569 (really_start_method): Install 'deprecation' and 'noreturn'
1570 attributes.
1571 (objc_decl_method_attributes): Carefully filter out the list of
1572 attributes, allowing only "noreturn", "format", "sentinel" and
1573 "deprecated". In the case of "format", adjust the arguments.
1574 Always process the attributes in the same way no matter if
1575 "sentinel" is in the list or not.
6bbb4715 1576
cb92539e 15772010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
1578
1579 * objc-act.c (objc_maybe_build_component_ref): Warn about using
1580 deprecated properties.
1581 (objc_maybe_printable_name): Support PROPERTY_DECL.
6bbb4715 1582
7fd68cee 15832010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
1584
6bbb4715 1585 Implemented Objective-C 2.0 property accessors.
7fd68cee 1586 * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
1587 OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
1588 OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
1589 (objc_getProperty_decl): New.
1590 (objc_setProperty_decl): New.
1591 (objc_copyStruct_decl): New.
1592 (objc_getPropertyStruct_decl): New.
1593 (objc_setPropertyStruct_decl): New.
1594 * objc-act.c (build_objc_property_accessor_helpers): New.
1595 (synth_module_prologue): Call
1596 build_objc_property_accessor_helpers.
1597 (lookup_ivar): New.
1598 (objc_synthesize_getter): Implemented synthesizing getters that
1599 work with properties that are not nonatomic, assign properties.
1600 (objc_synthesize_setter): Implemented synthesizing setters that
1601 work with properties that are not nonatomic, assign properties.
6bbb4715 1602
9d9f5bb3 16032010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
1604
1605 Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
1606 * objc-tree.def (PROPERTY_REF): New.
1607 * objc-act.h: Added comments for all the PROPERTY_ macros.
1608 (PROPERTY_NAME): Use DECL_NAME.
1609 (PROPERTY_COPIES): Removed.
1610 (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
1611 (PROPERTY_NONATOMIC): New.
1612 (objc_property_assign_semantics): Make it a typedef.
1613 (PROPERTY_ASSIGN_SEMANTICS): New.
1614 (PROPERTY_DYNAMIC): New.
1615 (PROPERTY_REF_OBJECT): New.
1616 (PROPERTY_REF_PROPERTY_DECL): New.
1617 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
1618 (in_objc_property_setter_name_context): Removed.
1619 (objc_add_property_declaration): Removed copies and ivar arguments
1620 and code supporting them. Fixed recovering when readonly and
1621 setter attributes are specified. Removed support for @property in
1622 @implementation context. Updated error message. Double-check
1623 that a property does not have a DECL_INITIAL. Validate the
1624 property assign semantics and emit appropriate errors and
1625 warnings. Check for duplicate property declarations. Set
1626 DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
1627 PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
1628 PROPERTY_DECL. Do not set PROPERTY_COPIES. Set
1629 PROPERTY_IVAR_NAME to NULL_TREE.
1630 (objc_build_getter_call): Renamed to
1631 objc_maybe_build_component_ref. If the property is not found in
1632 the interface, search in the protocol list. Do not generate the
1633 getter call; instead, build and return a PROPERTY_REF.
1634 (objc_is_property_ref): New.
1635 (objc_setter_func_call): Removed.
1636 (get_selector_from_reference): Removed.
1637 (is_property): Removed.
1638 (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
1639 Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
1640 the PROPERTY_REF. Generate an error if the property is read-only.
1641 (build_property_reference): Removed.
1642 (objc_finish_message_expr): Removed check to produce "readonly
1643 property can not be set" error when
1644 in_objc_property_setter_name_context. We now generate the error
1645 earlier, in objc_maybe_build_modify_expr, which will only generate
1646 the setter call if the property is readwrite.
1647 (check_methods): Recognize dynamic properties.
1648 (check_methods_accessible): Same change.
1649 (objc_build_property_ivar_name): Removed.
1650 (objc_build_property_setter_name): Dropped bool argument. Always
1651 add the ':' at the end.
1652 (objc_gen_one_property_datum): Removed.
1653 (objc_process_getter_setter): Removed.
1654 (objc_synthesize_getter): Mark 'klass' argument as unused. Use
1655 PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the
1656 DECL_SOURCE_LOCATION of the new method to be the same as the one
1657 for the @synthesize. Always use PROPERTY_IVAR_NAME as it is
1658 instead of trying to guess what it should be. Removed use of
1659 CLASS_IVARS. Use the location of @synthesize for c_finish_return
1660 and c_end_compound_statement.
1661 (objc_synthesize_setter): Mark 'klass' argument as unused. Use
1662 PROPERTY_SETTER_NAME instead of trying to guess what it should be.
1663 Set the DECL_SOURCE_LOCATION of the new method to be the same as
1664 the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it
1665 is instead of trying to guess what it should be. Removed use of
1666 CLASS_IVARS. Use the location of @synthesize for c_finish_return
1667 and c_end_compound_statement. Emit an error and keep going,
1668 instead of aborting, if the setter prototype does not have the
1669 expected argument.
1670 (objc_add_synthesize_declaration_for_property): New.
1671 (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
1672 all arguments. Improved error message. Filled in the rest of the
1673 function, which used to be a placeholder, with an actual
1674 implementation.
1675 (objc_add_dynamic_declaration_for_property): New.
1676 (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
1677 arguments. Improved error message. Filled in the rest of the
1678 function, which used to be a placeholder, with an actual
1679 implementation.
1680 (objc_gen_property_data): Rewritten.
1681 (finish_class): Added explicit switch cases for
1682 CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
1683 PROTOCOL_INTERFACE_TYPE. Added a default switch case which is
1684 gcc_unreachable. Rewritten the processing of properties, in
1685 particular to not synthesize prototypes for getters and setters if
1686 they already exist and to install the getter and setter names into
1687 PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate
1688 warnings about setter, getter and ivar property attributes.
1689 (objc_lookup_ivar): Removed support for properties.
1690 (objc_gimplify_property_ref): New.
1691 (objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call
1692 objc_gimplify_property_ref.
6bbb4715 1693
7590f0e5 16942010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
1695
1696 * objc-act.c (objc_add_property_declaration): Added arguments to
1697 pass the various property attributes that were parsed with the
1698 property declaration. Process arguments to determine the final
1699 property attributes and produce error messages as appropriate.
1700 Added temporary code to keep the compiler silent about variables
1701 set but not used - for new attributes that are only checked but
1702 have no effect yet.
1703 (property_readonly): Removed.
1704 (property_setter): Removed.
1705 (property_getter): Removed.
1706 (property_ivar): Removed.
6bbb4715 1707 (property_copies): Removed.
7590f0e5 1708 (objc_set_property_attr): Removed.
1709 * objc-act.h (enum property_assign_semantics): New.
6bbb4715 1710
1d894bcf 17112010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
1712
1713 * objc-act.c (objc_add_property_variable): Renamed to
1714 objc_add_property_declaration. Added location argument. Updated
1715 warnings and errors to use it. Use error, not fatal_error, if a
1716 property declaration is found outside an interface or
1717 implementation context.
6bbb4715 1718
601154bb 17192010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
1720
1721 * objc-act.c (objc_build_keyword_decl): Updated comments. Do not
1722 emit a warning that method parameter attributes are unimplemented.
1723 Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
1724 (start_method_def): Copy attributes from each KEYWORD_DECL into
1725 the corresponding PARM_DECL.
1726 (objc_warn_deprecated_use): Removed.
1727 (build_objc_method_call): Call warn_deprecated_use, not
1728 objc_warn_deprecated_use.
1729 (objc_maybe_printable_name): Do not try to get the identifier name
1730 of DECLs that we don't recognize. Immediately return NULL for them.
1731 (objc_printable_name): Removed C++-specific case, which is no
1732 longer used. Updated comments.
6bbb4715 1733
e23bf1fb 17342010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
1735
1736 * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
1737 (objc_demangle): Return NULL if demangling can not be done because
1738 the string to demangle is not an Objective-C mangled method name.
1739 Be smarter in demangling method names so that at least for methods
1740 with no arguments we are able to almost always demangle '_' correctly.
1741 Updated comments.
1742 (objc_maybe_printable_name): New.
1743 (objc_printable_name): Call objc_maybe_printable_name. If it
1744 returns NULL, call cxx_printable_name in Objective-C++.
1745
d4238e8b 17462010-10-21 Iain Sandoe <iains@gcc.gnu.org>
1747
1748 Based on the CFString implementation in FSF apple/trunk branch.
6bbb4715 1749
d4238e8b 1750 * objc/objc-act.c (objc_build_string_object): Handle CFStrings.
1751
29d8eac9 17522010-10-21 Nicola Pero <nicola.pero@meta-innovation.com>
1753
1754 * objc-act.c (get_objc_string_decl): Use a switch instead of a
1755 chain of ifs. Use gcc_unreachable instead of abort.
1756 (add_objc_string): Same change.
1757 (generate_protocol_list): Same change - twice.
1758 (synth_id_with_class_suffix): Same change.
1759 (build_keyword_selector): Same change - twice.
1760 (objc_build_message_expr): Same change.
1761 (objc_build_selector_expr): Same change.
1762 (check_methods): Same change - and added missing gcc_unreachable
1763 for default case.
1764 (check_methods_accessible): Same change - twice, and added missing
1765 gcc_unreachable for default case in one of them.
1766 (start_class): Same change - and added missing gcc_unreachable for
1767 default case.
1768 (continue_class): Same change.
1769 (objc_gen_property_data): Same change.
1770 (finish_class): Same change.
1771 (encode_type_qualifiers): Added missing gcc_unreachable.
1772 (encode_type): Small code tidy up to reduce duplicated code. Use
1773 gcc_unreachable instead of abort - twice.
1774 (encode_gnu_bitfield): Use a switch instead of a chain of ifs -
1775 twice. Added missing gcc_unreachable for default case - twice.
1776 (dump_interface): Use a switch instead of a chain of ifs.
1777 (handle_impent): Same change.
6bbb4715 1778
45b2b110 17792010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1780
1781 * objc-act.h (objc_inherit_code): Removed.
1782 * objc-act.c (objc_inherit_code): Removed.
1783 (objc_set_method_type): Removed.
1784 (objc_build_method_signature): Added is_class_method argument.
1785 Use it instead of the global objc_inherit_code variable.
1786 (objc_add_method_declaration): Same change.
1787 (objc_start_method_definition): Same change.
1788 (objc_generate_cxx_ctor_or_dtor): Updated call to
1789 objc_start_method_definition. Do not call objc_set_method_type.
1790 (adjust_type_for_id_default): Mark as inline.
1791 (objc_synthesize_getter): Updated call to
1792 objc_start_method_definition. Do not set objc_inherit_code.
1793 (objc_synthesize_setter): Updated call to
6bbb4715 1794 objc_start_method_definition. Do not set objc_inherit_code.
1795
e9e7c336 17962010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1797
1798 Merge from 'apple/trunk' branch on FSF servers. Obvious updates
1799 to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
1800 get it to compile in the current trunk.
1801
92a44a68 1802 2006-01-27 Fariborz Jahanian <fjahanian@apple.com>
e9e7c336 1803
1804 Radar 4345837
1805 * objc/objc-act.c (hash_class_name_enter): New.
1806 (hash_class_name_lookup): New.
1807 (objc_declare_alias): Enter alias name into hash table.
1808 (objc_declare_class): Enter class name into hash table.
1809 (objc_is_class_name): Do a hash look up of class name.
1810 (hash_init): Initialize the two new hash tables.
6bbb4715 1811 * objc-act.h: Added cls_name_hash_list and als_name_hash_list
1812 declarations, removed class_chain and alias_chain.
e9e7c336 1813
64cd9619 18142010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1815
1816 * objc-lang.c (finish_file): Removed.
1817 * objc-act.c (objc_finish_file): Renamed to
1818 objc_write_global_declarations. Do not try to instantiate C++
1819 templates when compiling Objective-C++ as this is now
1820 automatically done before this function is called. Do not check
1821 for syntax-only run or PCH generation as this is done by the
1822 callers.
1823 * objc-act.h (objc_finish_file): Removed.
6bbb4715 1824
e1f293c0 18252010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1826
1827 Implemented parsing @synthesize and @dynamic for
1828 Objective-C/Objective-C++.
1829 * objc-act.c (objc_add_synthesize_declaration): New.
1830 (objc_add_dynamic_declaration): New.
1831
6bbb4715 18322010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
e1f293c0 1833
1834 * objc-act.c (lookup_and_install_protocols): Return NULL if passed
1835 error_mark_node.
6bbb4715 1836
69b07042 18372010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1838
1839 Merge from 'apple/trunk' branch on FSF servers.
a1176db9 1840
92a44a68 1841 2006-03-10 Fariborz Jahanian <fjahanian@apple.com>
a1176db9 1842
cc0a8c77 1843 Radar 4407151
a1176db9 1844 * objc/objc-act.c (objc_is_class_name): template parameter is not
cc0a8c77 1845 an objective class name.
1846 (objc_generate_cxx_cdtors): Check for the null
1847 objc_implementation_context.
a1176db9 1848
18492010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1850
6bbb4715 1851 Merge from 'apple/trunk' branch on FSF servers.
1852
92a44a68 1853 2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
69b07042 1854
1855 Radar 4330422
1856 * objc/objc-act.c (objc_non_volatilized_type): New
1857
92a44a68 1858 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
6bbb4715 1859
cc0a8c77 1860 Radar 4204796
69b07042 1861 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
1862 types with proper attribute set and correctly.
1863 (objc_volatilize_decl): Remove unneeded code.
1864 (objc_type_quals_match): Use the new attribute to check on
1865 'volatilzed' type.
1866 (hash_init): removed unneeded code.
6bbb4715 1867
f15f2e56 18682010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1869
1870 Merge from 'apple/trunk' branch on FSF servers.
6bbb4715 1871
92a44a68 1872 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
f15f2e56 1873
1874 Radar 4133425
1875 * objc-act.c (objc_diagnose_private_ivar): New.
1876
4a8875ed 18772010-10-17 Iain Sandoe <iains@gcc.gnu.org>
1878
1879 * objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and
6bbb4715 1880 make its type 'objc_ivar_visibility_kind'.
4a8875ed 1881 (objc_start_class_interface): Update to use visibility enum.
1882 (objc_start_class_implementation): Likewise.
6bbb4715 1883 (objc_set_visibility): Update to use visibility enum, warn that
4a8875ed 1884 @package is handle as per @public.
1885 (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
1886 * objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and
1887 make its type 'objc_ivar_visibility_kind'.
1888
86c110ac 18892010-10-14 Iain Sandoe <iains@gcc.gnu.org>
1890
6bbb4715 1891 merge from FSF apple 'trunk' branch.
92a44a68 1892 2006 Fariborz Jahanian <fjahanian@apple.com>
6bbb4715 1893
86c110ac 1894 Radars 4436866, 4505126, 4506903, 4517826
1895 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New.
1896 property_readonly, property_getter, property_setter, property_ivar,
1897 property_copies, in_objc_property_setter_name_context: New vars.
1898 (objc_set_property_attr): New.
1899 (objc_add_property_variable): New.
1900 (lookup_property_in_list): New.
1901 (lookup_property): New.
1902 (objc_build_getter_call): New.
1903 (objc_setter_func_call): New.
1904 (get_selector_from_reference): New.
1905 (objc_build_setter_call): New.
1906 (is_property): New.
1907 (build_property_reference): New.
1908 (objc_finish_message_expr): Detect readonly property and warn.
1909 (objc_build_property_ivar_name): New.
1910 (objc_build_property_setter_name): New.
1911 (objc_gen_one_property_datum): New.
1912 (objc_process_getter_setter): New.
1913 (objc_synthesize_getter): New.
1914 (objc_synthesize_setter): New.
1915 (objc_gen_property_data): New.
1916 (finish_class): Generate property data.
1917 (comp_proto_with_proto): Separated from ...
1918 (match_proto_with_proto): ... New.
1919 (objc_lookup_ivar): Handle properties.
1920 * objc-tree.def (PROPERTY_DECL): New tree code.
1921 * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size.
1922 (METHOD_PROPERTY_CONTEXT): New.
1923 (PROPERTY_NAME): New.
1924 (PROPERTY_GETTER_NAME): New.
1925 (PROPERTY_SETTER_NAME): New.
1926 (PROPERTY_IVAR_NAME): New.
1927 (PROPERTY_READONLY): New.
1928 (PROPERTY_COPIES): New.
1929 (TOTAL_CLASS_RAW_IVARS): New.
1930 (CLASS_PROPERTY_DECL): New.
1931 (IMPL_PROPERTY_DECL): New.
1932 * objc-lang.c (objc_init_ts): Update fields for property_decl.
1933
382597e4 19342010-10-13 Richard Henderson <rth@redhat.com>
1935
1936 * objc-act.c (objc_eh_personality): Update call to
1937 build_personality_function.
1938
40c8d1dd 19392010-10-13 Iain Sandoe <iains@gcc.gnu.org>
1940
6bbb4715 1941 merge from FSF apple 'trunk' branch.
40c8d1dd 1942
92a44a68 1943 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
40c8d1dd 1944 Radar 3803157 (method attributes)
1945 * objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
1946 * objc/objc-act.c (objc_decl_method_attributes): New.
1947 (objc_add_method_declaration): Process method's attribute.
1948 (objc_start_method_definition): Ditto.
1949 (build_objc_method_call): Inject method attribute into
1950 built function type.
1951 (objc_method_decl): New.
1952 (objc_warn_deprecated)use): New.
1953
18cfeada 19542010-10-07 Andi Kleen <ak@linux.intel.com>
1955
1956 * Make-lang.in (cc1obj-dummy): Remove.
1957 (cc1obj-checksum): Change to run checksum over object files
cc0a8c77 1958 and options only.
18cfeada 1959
31a38208 19602010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
1961
1962 PR objc/45925
1963 * objc-act.c (objc_finish_foreach_loop): Convert return value of
1964 countByEnumeratingWithState:objects:count: to long unsigned int.
1965
b79b475d 19662010-10-07 Iain Sandoe <iains@gcc.gnu.org>
1967
6bbb4715 1968 * objc-act.c (build_objc_method_call): Replace calls to
40d49b18 1969 build_function_call () with the VEC equivalent. Construct parameter
1970 lists as VECs.
1971
19722010-10-07 Iain Sandoe <iains@gcc.gnu.org>
1973
6bbb4715 1974 * objc-act.c (objc_build_message_expr): Call mark_exp_read () to
40d49b18 1975 signal that the receiver has been used.
b79b475d 1976
e1aa4dab 19772010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
1978
1979 * README: Obsolete file removed.
1980
0a65c3bb 19812010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
1982
1983 Implemented fast enumeration for Objective-C.
1984 * objc-act.c (build_fast_enumeration_state_template): New.
1985 (TAG_ENUMERATION_MUTATION): New.
1986 (TAG_FAST_ENUMERATION_STATE): New.
1987 (synth_module_prologue): Call build_fast_enumeration_state_template() and set up
1988 objc_enumeration_mutation_decl.
1989 (objc_create_temporary_var): Allow providing a name to temporary
1990 variables.
1991 (objc_build_exc_ptr): Updated calls to
1992 objc_create_temporary_var().
1993 (next_sjlj_build_try_catch_finally): Same change.
1994 (objc_finish_foreach_loop): New.
1995 * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
1996 OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
1997 objc_enumeration_mutation_decl.
1998
1999 Merge from 'apple/trunk' branch on FSF servers.
2000
92a44a68 2001 2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
0a65c3bb 2002
cc0a8c77 2003 Radar 4507230
0a65c3bb 2004 * objc-act.c (objc_type_valid_for_messaging): New routine to check
2005 for valid objc object types.
2006 (objc_finish_foreach_loop): Check for invalid objc objects in
2007 foreach header.
6bbb4715 2008
06517bd4 20092010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
2010
2011 Merge from 'apple/trunk' branch on FSF servers.
2012
92a44a68 2013 2005-10-17 Fariborz Jahanian <fjahanian@apple.com>
06517bd4 2014
cc0a8c77 2015 Radar 4290840
0a65c3bb 2016 * objc-act.c (objc_start_method_definition): Check for
2017 error_mark_node for the selector name and make a quick exit.
6bbb4715 2018
92a44a68 20192010-10-04 Andi Kleen <ak@linux.intel.com>
70293f47 2020
2021 * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
2022
069761fb 20232010-09-30 Iain Sandoe <iains@gcc.gnu.org>
2024
2025 merge from FSF 'apple/trunk' branch.
92a44a68 2026 2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
069761fb 2027
cc0a8c77 2028 Radar 4386773
2029 * objc/objc-act.c (objc_set_method_opt): New function.
2030 (objc_start_protocol, objc_finish_interface): Reset
2031 objc_method_optional_flag flag.
2032 (objc_add_method_declaration): Pass on the new
2033 flag to objc_add_method.
2034 (objc_add_method): Add optional methods to new chain in
2035 the protocol class.
2036 * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS)
2037 (CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
2038 class's optional method chains.
6bbb4715 2039
180bb2c0 20402010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
2041
2042 Merge from 'apple/trunk' branch on FSF servers.
2043
92a44a68 2044 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
180bb2c0 2045
2046 Radar 4278236
2047 * objc-act.c (objc_declare_class): Pick the right
2048 type tree.
2049
3511333e 20502010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
e147d6aa 2051
2052 Merge from 'apple/trunk' branch on FSF servers.
2053
92a44a68 2054 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
e147d6aa 2055
2056 Radar 4281748
2057 * objc-act.c (objc_check_global_decl): New
2058
b27e241e 20592010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
2060
2061 * objc-act.c (objc_is_reserved_word): Removed.
2062
03fc2271 20632010-09-28 Iain Sandoe <iains@gcc.gnu.org>
6bbb4715 2064
2065 * objc-act.c (objc_add_method_declaration): Handle and ignore
03fc2271 2066 attributes.
2067 (objc_start_method_definition): Likewise.
2068 (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
2069 (objc_build_keyword_decl): Handle and ignore attributes.
2070
cc7d6aed 20712010-09-28 Richard Henderson <rth@redhat.com>
2072
2073 * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
2074
a336eb4b 20752010-09-28 Iain Sandoe <iains@gcc.gnu.org>
2076
2077 * objc-act.c (objc_start_class_interface): Handle and ignore attributes.
2078 (objc_start_category_interface): Likewise.
2079 (objc_start_protocol): Likewise.
2080
ea446b0b 20812010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
2082
2083 Merge from 'apple/trunk' branch on FSF servers.
2084
92a44a68 2085 2005-08-23 Stuart Hastings <stuart@apple.com>
c9e63184 2086 Ziemowit Laski <zlaski@apple.com>
ea446b0b 2087
2088 Radar 4209854
2089 * objc-act.c (objc_decay_parm_type): New function.
2090 (get_arg_type_list): Decay types for all named arguments.
2091 (objc_push_parm): Rebuild the PARM_DECL if its type has
6bbb4715 2092 been decayed.
ea446b0b 2093
9bc9b0a9 20942010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
c4bdb14e 2095
2096 * objc-act.c (encode_type): Fixed encoding enums with the next
2097 runtime.
2098
a198e083 20992010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
2100
2101 Merge from 'apple/trunk' branch on FSF servers.
2102
2103 2005-07-18 Ziemowit Laski <zlaski@apple.com>
2104
2105 Radar 4175534
2106 * objc-act.c (objc_compare_types): A new silent comparison
2107 mode (-4), differing from regular comparison (-3) in that
2108 'false' is returned instead of issuing warnings.
6bbb4715 2109
eb855c7a 21102010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
2111
2112 * objc-act.c (encode_type): Do not add 'r' with the next runtime.
2113 (encode_aggregate_within): Reorganized code to be more readable.
2114 (encode_aggregate_fields): Updated second argument to be 'bool'
2115 instead of 'int'.
2116
f8ee0563 21172010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
2118
2119 PR objc/45763
2120 PR objc/25450
2121 PR objc/25464
2122 * objc-act.c: Improved comments for encoding functions.
2123 (encode_aggregate_within): For the GNU runtime, rewritten some
2124 obsfuscated code to clarify the various cases.
2125 (encode_aggregate): Function removed.
2126 (encode_array): Generate an error if asked to encode an incomplete
2127 array as part of generating instance variables. Else, when
2128 encoding an incomplete array inside a structure, encode it as an
2129 array of zero size.
2130 (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
2131 '^c' instead of '*'.
2132 (encode_gnu_bitfield): Encode enumerated types exactly in the same
2133 type as integer types instead of using a hardcoded 'i'. If asked
2134 to encode a non-integer type as a bitfield, do not abort
2135 compilation immediately; instead generate an error, then skip the
2136 type.
2137 (encode_type): Use a 'switch' instead of a sequence of 'if's.
2138 Added a 'default' clause that gets executed if the type can not be
2139 matched, and that encodes it as '?' (unknown) and produces a
2140 warning. For the GNU runtime, encode enumerated types exactly in
2141 the same way as integer types instead of using a hardcoded 'i'.
2142 Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'.
2143 Encode C++ reference types as pointers. Call encode_vector to
2144 encode vectors.
2145 (encode_vector): New function.
6bbb4715 2146
f8ee0563 21472010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
2148
2149 Merge from 'apple/trunk' branch on FSF servers. I modified the
2150 changes to be used only when compiling for the NeXT runtime.
2151
92a44a68 2152 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
f8ee0563 2153
cc0a8c77 2154 Radar 4301047
f8ee0563 2155
2156 * objc-act.c (encode_type): Remove the hack.
6bbb4715 2157
f8ee0563 2158 2005-07-20 Ziemowit Laski <zlaski@apple.com>
2159
2160 Radar 4136935
2161 * objc-act.c (pointee_is_readonly): New function.
2162 (encode_pointer, encode_aggregate_within, encode_type):
2163 Attempt to emulate GCC 3.3 when generating type encodings.
2164
4abfc532 21652010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
2166
2167 Merge from 'apple/trunk' branch on FSF servers.
2168
92a44a68 2169 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
4abfc532 2170
2171 Radar 4229905
2172 * objc-act.c (objc_have_common_types): New function.
6bbb4715 2173
4abfc532 2174 2005-06-22 Ziemowit Laski <zlaski@apple.com>
2175
2176 Radar 4154928
2177 * objc-act.c (objc_common_type): New function.
6bbb4715 2178
059410d7 21792010-09-27 Richard Guenther <rguenther@suse.de>
2180
2181 * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
2182 (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
2183
5ed38d93 21842010-09-26 Nicola Pero <nicola.pero@meta-innovation.com>
2185
2186 * objc-act.c: Removed historical, obsolete comment at the top of
2187 the file.
2188
d4a8fb25 21892010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
2190
2191 PR objc/23710
2192 * objc-act.c (objc_start_method_definition): Do not abort upon a
2193 'method definition not in @implementation context' error. Return
2194 'false' instead.
2195
e93ea189 21962010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
2197
2198 PR objc/25965
2199 * objc-act.c (objc_get_interface_ivars): New function.
2200 (objc_collecting_ivars): New variable.
2201 (continue_class): Set and reset objc_collecting_ivars for context.
6bbb4715 2202
b24ba8fa 22032010-09-15 Nicola Pero <nicola.pero@meta-innovation.com>
2204
2205 Merge from 'apple/trunk' branch on FSF servers.
2206
92a44a68 2207 2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
b24ba8fa 2208
cc0a8c77 2209 Radar 4457381
b24ba8fa 2210 * objc/objc-act.c (objc_finish_message_expr): Look for message in
2211 @class's protocol list.
2212
92a44a68 2213 2006-02-07 Fariborz Jahanian <fjahanian@apple.com>
b24ba8fa 2214
2215 Radar 4219590
2216 * objc/objc-act.c (objc_start_method_definition): Initialize
2217 break/continue labels.
2218
2219 2005-08-22 Ziemowit Laski <zlaski@apple.com>
2220
2221 Radar 4174166
2222 * objc-act.c (objc_compare_types): Compare function
2223 pointers; indicate success if the right-hand side has
2224 a return type that is covariant, and the argument types
2225 contravariant, with those of the left side.
2226
2227 2005-08-22 Ziemowit Laski <zlaski@apple.com>
2228
2229 Radar 4216500
2230 * objc-act.c (objc_get_protocol_qualified_type): When looking
2231 at a typedef, retrieve the precise type it describes (rather
2232 than merely looking up a class by name).
6bbb4715 2233
48ca71c2 22342010-09-10 Nicola Pero <nicola.pero@meta-innovation.com>
2235
2236 * objc/objc-act.c (objc_begin_try_stmt): Generate an error if
2237 -fobjc-exceptions was not used. (objc_build_throw_stmt): Same
2238 change.
2239
1767a056 22402010-07-15 Nathan Froyd <froydnj@codesourcery.com>
2241
2242 * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2243
c4796e8b 22442010-07-10 Iain Sandoe <iains@gcc.gnu.org>
2245
2246 PR objc/44140
2247 * objc-act.c: build_objc_string_decl() remove declaration.
2248 (finish_var_decl): Remove forcing of var output and marking
6bbb4715 2249 as "Used".
2250 (init_def_list): Use integer_zero_node.
c4796e8b 2251 (init_objc_symtab): Use integer_zero_node, make the short
2252 integer type specific on relevant nodes.
6bbb4715 2253 (generate_objc_symtab_decl): Remove call to
c4796e8b 2254 forward_declare_categories(). Use null_pointer_node where
6bbb4715 2255 appropriate.
2256 (build_module_descriptor): Comment and mark this item as
2257 DECL_PRESERVE_P.
c4796e8b 2258 (generate_static_references): Use gcc_unreachable instead of
6bbb4715 2259 abort ().
c4796e8b 2260 (diagnose_missing_method): New.
2261 (build_next_selector_translation_table): New.
2262 (build_gnu_selector_translation_table): New.
2263 (add_objc_string): Merge code from build_objc_string_decl...
2264 ... and delete build_objc_string_decl().
2265 (generate_dispatch_table): Make integer types explicit.
2266 (generate_category): Pass implent and arrange for the data
6bbb4715 2267 to be extracted within the routine. Do not start new vars,
c4796e8b 2268 but finish the ones collcted during parsing.
2269 (generate_shared_structures): Likewise.
2270 (finish_objc): Reorder code so that we finish variables before
2271 referencing them. Save the global data before calling meta-data
6bbb4715 2272 creation routines, and pass the current reference to the two
2273 main routines. Only call generate_objc_image_info () for the
c4796e8b 2274 NeXT runtime.
2275 (generate_classref_translation_entry): Comment on and make this
2276 item DECL_PRESERVE_P.
2277 (handle_class_ref): Use varpool interfaces, comment on and make
2278 this item DECL_PRESERVE_P.
2279 (handle_impent): Likewise.
6bbb4715 2280 (generate_objc_image_info): Only generate when the content is
c4796e8b 2281 non-zero. Make integer types explict.
2282
6ab3a6e6 22832010-07-03 Nathan Froyd <froydnj@codesourcery.com>
2284
2285 PR objc/24867
2286 * objc-act.c (build_sized_array_type): New function.
2287 (add_objc_string): Use it.
2288 (generate_protocol_list): Likewise.
2289 (generate_objc_image_info): Likewise.
2290 (add_field_decl): New function.
2291 (objc_build_struct): Use a VEC rather than building a TREE_LIST.
2292 (generate_struct_by_value_array): Use add_field_decl.
2293 (build_objc_symtab_template): Likewise.
2294 (build_module_descriptor): Likewise.
2295 (build_objc_exception_stuff): Likewise.
2296 (build_protocol_template): Likewise.
2297 (build_method_prototype_list_template): Likewise.
2298 (build_method_prototype_template): Likewise.
2299 (build_category_template): Likewise.
2300 (build_selector_template): Likewise.
2301 (build_class_template): Likewise.
2302 (build_super_template): Likewise.
2303 (build_ivar_template): Likewise.
2304 (build_ivar_list_template): Likewise.
2305 (build_method_list_template): Likewise.
2306 (build_method_template): Likewise.
2307
596981c8 23082010-06-28 Steven Bosscher <steven@gcc.gnu.org>
2309
2310 * objc-act.c: Do not include except.h.
2311
ba72912a 23122010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2313
2314 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
2315 allocation.
2316
2317 * objc-act.c (objc_volatilize_decl): Likewise.
2318 (objc_build_string_object): Likewise.
2319 (hash_init): Likewise.
2320 (hash_enter): Likewise.
2321 (hash_add_attr): Likewise.
2322 (add_class): Likewise.
2323 (start_class): Likewise.
2324
7bedc3a0 23252010-06-05 Steven Bosscher <steven@gcc.gnu.org>
2326
2327 * objc-act.c: Update include path for moved files.
2328 * objc-lang.c: Likewise.
2329 * config-lang.in: Update paths in gtfiles for files in c-family/.
2330
70b3bc87 23312010-06-01 Nathan Froyd <froydnj@codesourcery.com>
2332
2333 * objc-act.c (build_next_objc_exception_stuff): Give setjmp a
2334 varargs type instead of a zero-argument type.
2335
a2c73aa9 23362010-05-30 Nathan Froyd <froydnj@codesourcery.com>
2337
2338 * objc-act.c (synth_module_prologue): Use build_function_type_list
2339 instead of build_function_type.
2340 (build_module_initializer_routine): Likewise.
2341 (build_next_objc_exception_stuff): Likewise.
2342 (build_objc_exception_stuff): Likewise.
2343
852f689e 23442010-05-27 Joseph Myers <joseph@codesourcery.com>
2345
2346 * objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
2347 * Make-lang.in (objc/objc-act.o): Update dependencies.
2348
c4b9c21a 23492010-05-25 Steven Bosscher <steven@gcc.gnu.org>
2350
2351 * objc-act.h: Do not include gimple.h.
2352 * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
2353 Include gimple.h. Explain why except.h has to be included.
2354 * objc-lang.c: Do not include diagnostics.h.
2355 * Make-lang.in: Update dependencies.
2356
d3f0a7c5 23572010-05-25 Nathan Froyd <froydnj@codesourcery.com>
2358
2359 * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
2360 mismatch code for VECs.
2361
4c6b0360 23622010-05-25 Nathan Froyd <froydnj@codesourcery.com>
2363
2364 * objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
2365 Use build_constructor instead of build_constructor_from_list.
2366 (objc_build_string_object): Build a VEC argument for
2367 objc_build_constructor.
2368 (init_def_list): Likewise.
2369 (init_objc_symtab): Likewise.
2370 (init_module_descriptor): Likewise.
2371 (generate_static_references): Likewise.
2372 (build_selector_translation_table): Likewise.
2373 (build_descriptor_table_initializer): Likewise.
2374 (generate_descriptor_table): Likewise.
2375 (build_protocol_initializer): Likewise.
2376 (build_ivar_list_initializer): Likewise.
2377 (generate_ivars_list): Likewise.
2378 (build_dispatch_table_initializer): Likewise.
2379 (generate_dispatch_table): Likewise.
2380 (generate_protocol_list): Likewise.
2381 (build_category_initializer): Likewise.
2382 (build_shared_structure_initializer): Likewise.
2383 (generate_objc_image_info): Likewise.
2384
da1ad6a6 23852010-04-30 Iain Sandoe <iains@gcc.gnu.org>
2386
2387 PR objc++/32052
2388 * objc-act.c (encode_aggregate_within): Encode structure tags
2389 with template args for ObjC++.
2390
3f9da559 23912010-04-30 Steven Bosscher <steven@gcc.gnu.org>
2392
2393 * objc-act.c: Do not include varray.h.
2394
abc6c64f 23952010-04-07 Jakub Jelinek <jakub@redhat.com>
2396
2397 PR c/18624
2398 * objc-act.c (finish_var_decl, objc_begin_catch_clause,
2399 really_start_method, get_super_receiver, handle_class_ref): Set
2400 DECL_READ_P in addition to TREE_USED.
2401
92a44a68 24022010-04-07 Iain Sandoe <iains@gcc.gnu.org>
421351fb 2403
2404 PR objc/35996
2405 * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
2406 -fgnu-runtime and set flag_objc_gc to zero.
2407
92a44a68 24082010-04-07 Iain Sandoe <iains@gcc.gnu.org>
1ecc1105 2409
2410 PR objc++/23716
2411 * objc-act.c (build_module_initializer_routine): Make the argument
2412 to objc_start_function NULL_TREE when compiling ObjC++.
2413
92a44a68 24142010-02-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
44434890 2415 Mike Stump <mikestump@comcast.net>
2416
8f071285 2417 PR objc/43061
44434890 2418 * objc-act.c (finish_var_decl): Set the generated symbols as "used".
2419
535059dc 24202009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
2421
2422 * objc-act.c (objc_substitute_decl, build_ivar_reference,
2423 get_super_receiver): Update build_indirect_ref calls.
2424
2b03c8ee 24252009-11-28 Jakub Jelinek <jakub@redhat.com>
2426
f018d957 2427 * objc-act.c (generate_shared_structures): Remove unused sc_spec and
2428 decl_specs variables.
2429 (objc_build_message_expr): Remove unused loc variable.
2430 (objc_finish_message_expr): Remove unused saved_rtype variable.
2431 (encode_field_decl): Remove unused type variable.
2432
2b03c8ee 2433 PR obj-c++/42156
2434 * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
2435 type variants that don't have it initialized yet.
2436
078c3ef3 24372009-09-14 Jan Hubicka <jh@suse.cz>
2438
2439 * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
2440
e38def9c 24412009-09-14 Richard Henderson <rth@redhat.com>
2442
2443 * objc-act.c (objc_init_exceptions): Don't call
2444 default_init_unwind_resume_libfunc.
2445 (objc_build_exc_ptr): Use __builtin_eh_pointer.
2446
58d82cd0 24472009-09-13 Richard Guenther <rguenther@suse.de>
2448 Rafael Avila de Espindola <espindola@google.com>
2449
2450 * objc-act.c (objc_eh_runtime_type): Export.
2451 (objc_init_exceptions): Remove. Move warning code ...
2452 (objc_begin_try_stmt): ... here
2453 (objc_build_throw_stmt): ... and here.
2454 (objc_eh_personality_decl): New.
2455 (objc_eh_personality): New function.
2456 * objc-act.h (objc_eh_runtime_type): Declare.
2457 (objc_eh_personality): Likewise.
2458 * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
2459 (LANG_HOOKS_EH_PERSONALITY): Likewise.
2460
34e5cced 24612009-09-03 Diego Novillo <dnovillo@google.com>
2462
2463 * objc-lang.c (lang_hooks): Remove const qualifier.
2464
874993a5 24652009-08-20 Richard Guenther <rguenther@suse.de>
2466
2467 * objc-act.c: Include c-lang.h
2468 * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
2469
389dd41b 24702009-07-17 Aldy Hernandez <aldyh@redhat.com>
2471 Manuel López-Ibáñez <manu@gcc.gnu.org>
2472
6bbb4715 2473 PR 40435
389dd41b 2474 * objc-act.c: Add location argument to all calls to
2475 build_fold_addr_expr.
6bbb4715 2476
c02b6f4e 24772009-07-14 Taras Glek <tglek@mozilla.com>
2478 Rafael Espindola <espindola@google.com>
2479
2480 * Make-lang.in (objc.install-plugin): New target for
2481 installing plugin headers.
2482
1cf1742e 24832009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2484
2485 * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
2486 EXPR_LOCATION.
6bbb4715 2487
712d2297 24882009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2489
2490 * objc-act.c: Replace %J by an explicit location. Update all
2491 calls.
6bbb4715 2492
5fb6a912 24932009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2494
2495 * objc-act.c: Replace %H by an explicit location. Update all
2496 calls.
6bbb4715 2497
61a9d3ca 24982009-06-22 Steven Bosscher <steven@gcc.gnu.org>
2499
2500 PR objc/28050
2501 * objc-act.c (objc_build_message_args): Return if ARGS is the
2502 error_mark_node.
6bbb4715 2503
843bd2fa 25042009-06-19 Ian Lance Taylor <iant@google.com>
2505
2506 * objc-act.c (objc_in_struct, objc_struct_types): Remove.
2507 (objc_struct_info): New static variable.
2508 (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
2509 and &objc_struct_types, to start_struct.
2510 (objc_finish_struct): Likewise for finish_struct.
2511
f805d53d 25122009-06-15 Ian Lance Taylor <iant@google.com>
2513
2514 * objc-act.c (objc_start_function): Don't set
2515 label_context_stack_se or label_context_stack_vm.
2516
e60a6f7b 25172009-06-12 Aldy Hernandez <aldyh@redhat.com>
6bbb4715 2518
e60a6f7b 2519 * objc-act.c (finish_var_decl): Pass location to finish_decl.
2520 (objc_get_parm_info): Same.
2521 (get_super_receiver): Same.
2522 * objc-act.c (objc_build_component_ref): Pass location to
2523 build_compound_ref.
2524 (build_module_initializer_routine): Pass location to
2525 c_end_compound_stmt.
2526 (objc_generate_static_init_call): Pass location to build_stmt.
2527 (build_typed_selector_reference): New location argument.
2528 (build_selector_reference): Same.
2529 (objc_substitute_decl): Pass location to build_array_ref.
2530 (next_sjlj_build_try_catch_finally): Pass location to build_stmt.
2531 (objc_begin_catch_clause): Same.
2532 (objc_finish_try_stmt): Same.
2533 (objc_finish_catch_clause): Pass location to c_end_compound_stmt.
2534 (objc_build_throw_stmt): New argument.
2535 (generate_shared_structures): Pass location to build_c_cast.
2536 (objc_build_message_expr): Use local location.
2537 (objc_finish_message_expr): Use input_location.
2538 (build_objc_method_call): New argument.
2539 (objc_build_selector_expr): Same.
2540 (get_super_receiver): Pass location to build_c_cast,
2541 build_modify_expr, build_compound_expr.
2542 * objc-act.c: Add location to all calls to start_struct, build_decl,
2543 finish_struct.
6bbb4715 2544
d5b637fa 25452009-06-09 Ian Lance Taylor <iant@google.com>
2546
2547 * objc-act.c (objc_gimplify_expr): Change return type to int.
2548 * objc-act.h: Update declaration.
2549
71278019 25502009-06-08 Alexandre Oliva <aoliva@redhat.com>
2551
2552 * objc-act.c (objc_init): Skip print_struct_values during
2553 -fcompare-debug-second.
2554
cd819d2f 25552009-06-03 Ian Lance Taylor <iant@google.com>
2556
2557 * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
2558 $(SYSTEM_H).
2559
40b6e20e 25602009-05-27 Ian Lance Taylor <iant@google.com>
2561
2562 * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
2563 $(LINKER).
2564 (cc1obj$(exeext)): Likewise.
2565
585d4848 25662009-05-26 Ian Lance Taylor <iant@google.com>
2567
2568 * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
2569 (cc1obj$(exeext)): Likewise.
2570
f352a3fb 25712009-05-20 Ian Lance Taylor <iant@google.com>
2572
2573 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
2574 than NULL_TREE to build_special_member_call.
2575
0b09525f 25762009-05-10 Ian Lance Taylor <iant@google.com>
2577
2578 * objc-act.c (objc_building_struct): New static variable.
2579 (objc_in_struct, objc_struct_types): New static variables.
2580 (objc_start_struct, objc_finish_struct): New static functions.
2581 (generate_struct_by_value_array): Call objc_start_struct instead
2582 of start_struct, and call objc_finish_struct instead of
2583 finish_struct.
2584 (objc_build_struct, build_objc_symtab_template): Likewise.
2585 (build_module_descriptor): Likewise.
2586 (build_next_objc_exception_stuff): Likewise.
2587 (build_protocol_template): Likewise.
2588 (build_method_prototype_list_template): Likewise.
2589 (build_method_prototype_template): Likewise.
2590 (build_category_template, build_selector_template): Likewise.
2591 (build_class_template, build_super_template): Likewise.
2592 (build_ivar_template, build_ivar_list_template): Likewise.
2593 (build_method_list_template): Likewise.
2594 (build_method_template): Likewise.
2595
a608187f 25962009-05-10 Joseph Myers <joseph@codesourcery.com>
2597
2598 * objc-act.c: Include intl.h.
2599 (objc_lookup_protocol): Use complete sentences for diagnostics
2600 with %qE for identifiers and translating results of
2601 gen_type_name_0 to locale character set.
2602 (objc_check_decl, check_protocol_recursively,
2603 lookup_and_install_protocols, objc_build_string_object,
2604 objc_get_class_reference, objc_declare_alias, objc_declare_class,
2605 objc_get_class_ivars, error_with_ivar, check_duplicates,
2606 objc_finish_message_expr, objc_build_protocol_expr,
2607 objc_build_selector_expr, build_ivar_reference, objc_add_method,
2608 add_category, add_instance_variable, objc_is_public,
2609 check_methods, check_methods_accessible, check_protocol,
2610 start_class, finish_class, start_protocol, really_start_method,
2611 get_super_receiver, objc_lookup_ivar): Use %E and %qE for
2612 identifiers in diagnostics. Translate generated text to locale
2613 character set as needed.
2614 (check_protocol, check_protocols): Change name parameter to type
2615 tree.
2616 (lang_report_error_function): Remove.
2617
bc620c5c 26182009-04-27 Ian Lance Taylor <iant@google.com>
2619
2620 * objc-act.c (objc_gimplify_expr): Add casts to enum type.
2621
8458f4ca 26222009-04-24 Ian Lance Taylor <iant@google.com>
2623
2624 * objc-act.c (get_super_receiver): Update calls to
2625 build_modify_expr to pass new argument.
2626
92a44a68 26272009-04-21 Taras Glek <tglek@mozilla.com>
fb1e4f4a 2628
2629 * objc-act.c: Update GTY annotations to new syntax
2630 * objc-act.h: Likewise
2631
7dfbd804 26322009-04-21 Joseph Myers <joseph@codesourcery.com>
2633
2634 * ChangeLog: Add copyright and license notices.
2635
b9c74b4d 26362009-04-20 Ian Lance Taylor <iant@google.com>
2637
2638 * objc-act.c (objc_rewrite_function_call): Change parameter from
2639 params to first_param. Change all callers.
2640
a3cad4e4 26412009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr>
2642
2643 PR bootstrap/39583
2644 * objc-act.c (in_late_binary_op): Define for Objective-C++.
2645
a75b1c71 26462009-03-29 Joseph Myers <joseph@codesourcery.com>
2647
2648 PR c/456
2649 PR c/5675
2650 PR c/19976
2651 PR c/29116
2652 PR c/31871
2653 PR c/35198
2654 * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
2655
9322d72e 26562008-12-05 Sebastian Pop <sebastian.pop@amd.com>
29bb3e39 2657
2658 PR bootstrap/38262
2659 * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
2660 remove GMPLIBS.
2661
b6889cb0 26622008-10-06 Aldy Hernandez <aldyh@redhat.com>
2663
2664 * objc-act.c (objc_build_string_object): Pass location to
2665 build_unary_op.
2666 (init_def_list): Same.
2667 (init_objc_symtab): Same.
2668 (init_module_descriptor): Same.
2669 (build_module_initializer_routine): Same.
2670 (generate_static_references): Same.
2671 (build_typed_selector_reference): Same.
2672 (add_objc_string): Same.
2673 (objc_substitute_decl): Same.
2674 (objc_build_ivar_assignment): Same.
2675 (objc_build_global_assignment): Same.
2676 (objc_build_strong_cast_assignment): Same.
2677 (generate_protocols): Same.
2678 (build_protocol_initializer): Same.
2679 (build_dispatch_table_initializer): Same.
2680 (generate_protocol_list): Same.
2681 (build_category_initializer): Same.
2682 (build_shared_structure_initializer): Same.
2683 (generate_shared_structures): Same.
2684 (objc_build_protocol_expr): Same.
2685 (build_ivar_reference): Same.
2686 (get_super_receiver): Same.
2687
8e70fb09 26882008-09-23 Aldy Hernandez <aldyh@redhat.com>
2689
2690 * objc-act.c (next_sjlj_build_enter_and_setjmp): Call
2691 c_common_truthvalue_conversion with location.
2692 (next_sjlj_build_catch_list): Same.
2693 (next_sjlj_build_try_catch_finally): Same.
2694
4cd62850 26952008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2696
2697 PR objc/37460
2698 * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
2699 * objc-act.h (objc_get_callee_fndecl): Remove prototype.
2700 * objc-act.c (objc_get_callee_fndecl): Kill.
2701
73b5e722 27022008-09-17 Jan Hubicka <jh@suse.cz>
2703
2704 PR c++/18071
2705 * objc/objc-act.c (objc_finish_method_definition): Do not set
2706 DECL_INLINE.
2707
dda49785 27082008-09-01 Aldy Hernandez <aldyh@redhat.com>
2709
2710 * objc-act.c (build_typed_selector_reference): Pass input_location to
2711 build_unary_op calls.
2712 (build_selector_reference): Same, but to build_array_ref.
2713 (objc_substitute_decl): Same.
2714 (build_ivar_reference): Same, but to build_indirect_ref.
2715 (get_super_receiver): Same.
2716
75a70cf9 27172008-07-28 Richard Guenther <rguenther@suse.de>
2718
2719 Merge from gimple-tuples-branch.
2720
2721 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
2722
2723 * Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
2724 (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
2725 * objc-act.h: Include gimple.h instead of tree-gimple.h.
2726 * ipa-reference.c: Same.
2727
2728 2007-11-10 Aldy Hernandez <aldyh@redhat.com>
2729
2730 * objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
2731 * objc-act.h (objc_gimplify_expr): Change prototype accordingly.
2732
08cc44e7 27332008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2734
2735 * objc-act.c: Fix comment typos.
2736
ceb0f408 27372008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2738
2739 * objc-act.c (objc_start_class_interface,
2740 objc_start_category_interface, objc_start_class_implementation,
2741 objc_start_category_implementation, objc_build_struct,
2742 generate_static_references, build_private_template,
2743 lookup_category, objc_add_method, add_category,
2744 add_instance_variable, objc_is_public, conforms_to_protocol,
2745 start_class, continue_class, finish_class): Avoid C++ keywords.
2746
b4d6f57b 27472008-07-14 Jason Merrill <jason@redhat.com>
2748
2749 PR objc++/36723
2750 * objc-act.c (objc_build_constructor): Update C++ tweak.
2751
d3eff7bb 27522007-07-14 Rafael Ávila de Espíndola <espindola@google.com>
7cb6f926 2753
2754 * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
2755 of DECL_IN_SYSTEM_HEADER.
2756
5c6e5756 27572008-07-11 Ian Lance Taylor <iant@google.com>
2758
2759 * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
2760 etc., not just when OBJCPLUS is defined.
2761
25a1c410 27622008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2763
2764 * objc-act.c (setup_string_decl, objc_build_string_object,
2765 hash_interface, eq_interface, objc_begin_try_stmt,
2766 encode_method_prototype, build_ivar_list_initializer,
2767 objc_build_encode_expr): Fix for -Wc++-compat.
2768
92cce2b2 27692008-05-12 Tomas Bily <tbily@suse.cz>
2770
cc0a8c77 2771 * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
2772 Use CONVERT_EXPR_P.
92cce2b2 2773
c7d4e749 27742008-04-23 Paolo Bonzini <bonzini@gnu.org>
2775
2776 * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
2777
6fb2153a 27782008-04-03 Tom Tromey <tromey@redhat.com>
2779
2780 * Make-lang.in (objc_OBJS): New variable.
2781
21886706 27822008-03-27 Tom Tromey <tromey@redhat.com>
2783
2784 * Make-lang.in: Revert automatic dependency patch.
2785
717ecce9 27862008-03-27 Douglas Gregor <doug.gregor@gmail.com>
2787
2788 PR obj-c++/35704
2789 * objc-act.c (objc_build_component_ref): Fix call to
2790 finish_class_member_access_expr.
2791 (objc_generate_cxx_ctor_or_dtor): Fix call to
2792 build_special_member_call.
2793
e226f54f 27942008-03-25 Andrew Pinski <pinskia@gmail.com>
2795
2796 PR objc/29197
2797 * objc-act.c (encode_type): Handle when type is error_mark_node.
2798 (objc_push_parm): Handle when the type of parm is error_mark_node.
2799
277b05bb 28002008-03-25 Tom Tromey <tromey@redhat.com>
2801
2802 * Make-lang.in (objc_OBJS): New variable.
2803 (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
2804
3594ce91 28052008-03-21 Andreas Tobler <a.tobler@schweiz.org>
2806
2807 PR bootstrap/35660
2808 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
2809 MAYBE_CLASS_TYPE_P.
2810 (objc_generate_cxx_cdtors): Likewise.
2811 (add_instance_variable): Likewise.
2812
9c85a98a 28132008-02-26 Tom Tromey <tromey@redhat.com>
2814
2815 * objc-act.c (objc_init): Remove old location code.
2816
6ca01c3b 28172008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2818
2819 PR other/35107
2820 * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
2821
c3adda75 28222007-07-30 Nick Clifton <nickc@redhat.com>
2823
2824 * Make-lang.in: Change copyright header to refer to version 3 of
2825 the GNU General Public License and to point readers at the
2826 COPYING3 file and the FSF's license web page.
2827 * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
2828 config-lang.in, objc-lang.c: Likewise.
2829
b7bf20db 28302007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2831
2832 * objc-act.c (objc_get_callee_fndecl): Constify.
2833 * objc-act.h (objc_get_callee_fndecl): Likewise.
2834
aae87fc3 28352007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2836
2837 * objc-act.c (volatilized_hash, volatilized_eq, string_hash,
2838 string_eq): Constify.
2839
2a3c85c8 28402007-04-04 Stuart Hastings <stuart@apple.com>
2841
2842 PR 31281
2843 * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
2844
52df3169 28452007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2846
2847 * Make-lang.in: Add dummy lang.install-pdf target.
2848
97419919 28492007-02-18 Kazu Hirata <kazu@codesourcery.com>
2850
2851 * objc/objc-act.c: Fix comment typos.
2852
c2f47e15 28532007-02-15 Sandra Loosemore <sandra@codesourcery.com>
2854 Brooks Moses <brooks.moses@codesourcery.com>
2855 Lee Millward <lee.millward@codesourcery.com>
2856
2857 * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
2858 (objc_get_callee_fndecl): Likewise.
2859
da2f0f2c 28602007-01-23 Andrew Pinski <pinskia@gmail.com>
2861
2862 PR objc/27438
2863 * objc-act.c (objc_add_static_instance): Mark the decl as
2864 TREE_USED.
2865
7eb56ad3 28662007-01-20 Andrew Pinski <pinskia@gmail.com>
2867
2868 PR objc/30479
2869 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
2870 of htab_hash_pointer.
2871 (lookup_interface): Likewise.
2872 (add_class): Likewise.
2873
6753bca0 28742007-01-02 Douglas Gregor <doug.gregor@gmail.com>
6bbb4715 2875
6753bca0 2876 * objc-act.c (objc_build_volatilized_type): Keep track of
2877 canonical types.
2878 (objc_get_protocol_qualified_type): Ditto.
6bbb4715 2879
718149a3 28802006-11-02 Andreas Tobler <a.tobler@schweiz.org>
2881
2882 * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
2883 content where we called cp_finish_file.
2884
d3eff7bb 28852006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
54be5d7e 2886
2887 * objc-act.c (synth_module_prologue): Replace calls to
2888 builtin_function with add_builtin_function.
2889 (build_next_objc_exception_stuff): Replace calls to
2890 builtin_function with add_builtin_function.
2891 (build_objc_exception_stuff): Replace calls to
2892 builtin_function with add_builtin_function.
2893
51f93521 28942006-10-10 Brooks Moses <bmoses@stanford.edu>
2895
2896 * Make-lang.in: Added empty "objc.pdf" target.
2897
ea028b59 28982006-09-26 Andrew Pinski <pinskia@physics.uc.edu>
2899
2900 PR objc/29195
2901 * objc-act.c (objc_push_parm): If we change the type of the
2902 decl, relayout the decl.
2903
6db57367 29042006-09-19 Eric Christopher <echristo@apple.com>
2905
2906 * objc-act.c (JBLEN): Rename to OBJC_JBLEN,
2907 default to something innocuous.
2908 (build_next_objc_exception_stuff): Rename JBLEN.
2909
e85b0b9f 29102006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2911
2912 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2913
77874a3c 29142006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2915
2916 PR obj-c++/28434
2917 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
2918
15b5961f 29192006-06-06 Mike Stump <mrs@apple.com>
2920
2921 * objc-act.c: Remove prototype for objc_build_volatilized_type.
2922
8d6b10e2 29232006-05-24 Mike Stump <mrs@apple.com>
2924
2925 * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
2926
ed672485 29272006-05-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2928
2929 PR objc/27240
2930 * objc-act.c (objc_is_public): Return early on invalid type.
2931
92a44a68 29322006-03-02 Fariborz Jahanian <fjahanian@apple.com>
30f66f51 2933
2934 * objc-act.c (init_module_descriptor): Remove file name from
2935 module descriptor.
2936 (gen_type_name_0): Fix ICE when issuing warning.
2937
92a44a68 29382006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2939
9f30f9e7 2940 * Make-lang.in (OBJC): Remove
2941 (OBJECTIVE-C): Remove
2942 (objective-c): Remove
2943 (.PHONY): Remove objective-c and ObjC
2944
0ee579cd 29452005-12-14 Andrew Pinski <pinskia@physics.uc.edu>
2946
2947 PR objc/25360
8d6b10e2 2948 * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed
2949 by the inner type.
0ee579cd 2950
c4e3ffb1 29512005-12-12 Andrew Pinski <pinskia@physics.uc.edu>
2952
2953 PR objc/25348
2954 * objc-act.c (encode_array): Handle arrays to zero sized types.
2955
d3eff7bb 29562005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
ae6555f9 2957
2958 * Make-lang.in (objc.all.build, objc.install-normal): Remove.
2959
d3eff7bb 29602005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
758e52e0 2961
2962 * Make-lang.in: Remove all dependencies on s-gtype.
2963
a3a36c39 29642005-12-02 Richard Guenther <rguenther@suse.de>
2965
2966 * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
2967 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2968 next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
2969 build_objc_method_call, objc_rewrite_function_call): Use buildN
2970 instead of build.
2971
41cac6ed 29722005-10-20 Geoffrey Keating <geoffk@apple.com>
2973
2974 * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
2975 on objc_msgSend and like builtin functions.
2976
53d4f63c 29772005-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
2978
fdf0e229 2979 * objc-act.c (objc_build_component_ref): Adjust call to
53d4f63c 2980 finish_class_member_access_expr due to a changed prototype.
2981
1cff51e3 29822005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
2983
2984 PR objc/23306
2985 * objc-act.c (generate_strings): Remove and move code to
2986 finish decl to ...
2987 (add_objc_string): here when creating a new string decl.
2988 (finish_objc): Don't call generate_strings.
2989
c2400746 29902005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
2991
2992 PR objc/23381
2993 * objc-act.c (next_sjlj_build_try_catch_finally): Set
2994 TREE_SIDE_EFFECTS on catch_seq after building it.
2995
9d44cae2 29962005-08-09 Andrew Pinski <pinskia@physics.uc.edu>
2997
2998 part of PR objc/21992
2999 * objc-act.c (handle_class_ref): The ref decl is always referenced.
3000
c75b4594 30012005-07-20 Giovanni Bajo <giovannibajo@libero.it>
3002
3003 Make CONSTRUCTOR use VEC to store initializers.
3004 * objc-act.c (objc_build_constructor): Use build_constructor_from_list
3005 instead of build_constructor.
3006
5ded8c6f 30072005-07-08 Daniel Berlin <dberlin@dberlin.org>
fdf0e229 3008
5ded8c6f 3009 * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
3010 removed.
3011 * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
3012 (KEYWORD_KEY_NAME): Use decl_minimal.
3013 (METHOD_SEL_NAME): Ditto..
3014 (METHOD_SEL_ARGS): Use decl_non_common.
3015 (METHOD_ADD_ARGS): Ditto.
3016 (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
3017 (METHOD_DEFINITION): Ditto.
3018 (METHOD_ENCODING): Ditto.
3019 * objc-lang.c: (objc_init_ts): New function.
3020
8e1be677 30212005-07-07 Ziemowit Laski <zlaski@apple.com>
3022
3023 * objc-act.c (objc_build_struct): Pass in an actual @interface
3024 instead of its name, and annotate the struct created (and all
3025 existing variants thereof) with the @interface.
3026 (objc_compare_types): Treat forward-declared ObjC classes
3027 as stand-alone (root) classes for purposes of type comparisons.
3028 (build_private_template): Move some code to objc_build_struct().
3029
99469381 30302005-07-07 Ziemowit Laski <zlaski@apple.com>
3031
3032 PR objc/22274
3033 * objc-act.c (objc_build_string_object): For GNU-style constants,
3034 use the @interface type rather than the built-in type.
3035
bd06ecb6 30362005-07-03 Kazu Hirata <kazu@codesourcery.com>
3037
3038 * Make-lang.in (cc1plus-checksum.c): Use
3039 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
3040
3284a242 30412005-07-02 Joseph S. Myers <joseph@codesourcery.com>
3042
3043 * objc-act.c: Use %q to quote in diagnostics.
3044
3cf8b391 30452005-07-02 Joseph S. Myers <joseph@codesourcery.com>
3046
3047 * objc-act.c: Use '+' flag instead of %J. Use 'q' flag for
3048 quoting.
3049
4dfa7ebc 30502005-06-30 Ziemowit Laski <zlaski@apple.com>
3051
3052 * objc-act.c (objc_build_volatilized_type): New function.
3053 (objc_volatilize_decl): Call objc_build_volatilized_type()
3054 instead of build_qualified_type().
3055
0616a948 30562005-06-29 Ziemowit Laski <zlaski@apple.com>
3057
3058 * objc-act.c (objc_build_internal_const_str_type): New function.
3059 (check_string_class_template): Use objc_get_class_ivars() instead
3060 of TYPE_FIELDS() to retrieve ivar list.
3061 (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
3062 than the field itself.
3063 (objc_build_string_object): Synthesize a "__builtin_ObjCString"
3064 type and use it to lay out compile-time string objects.
3065 * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
3066 New.
3067
1774763d 30682005-06-28 Paul Brook <paul@codesourcery.com>
3069
3070 * objc-act.c (objc_init_exceptions): Call
3071 default_init_unwind_resume_libfunc.
3072
0bee387e 30732005-06-27 Ziemowit Laski <zlaski@apple.com>
3074
3075 * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
3076 portion of TYPE_LANG_SPECIFIC info for all variants of
3077 a class before calling finish_struct(), and restore
3078 same TYPE_OBJC_INFO afterwards.
3079
85b2164b 30802005-06-25 Kelley Cook <kcook@gcc.gnu.org>
3081
3082 * all files: Update FSF address in copyright headers.
3083
f14c8207 30842005-06-15 Joseph S. Myers <joseph@codesourcery.com>
3085
3086 * objc-act.c (my_build_string_pointer): New.
3087 (objc_get_class_reference, get_super_receiver): Call
3088 my_build_string_pointer instead of my_build_string when building
3089 function arguments.
3090
737a4756 30912005-05-25 Mike Stump <mrs@mrs.kithrup.com>
3092
3093 * objc-act.c (volatilized_hash): Avoid warnings on 64-bit
3094 machines.
3095
499ea517 30962005-05-24 Ziemowit Laski <zlaski@apple.com>
3097
3098 * objc-act.c (objc_build_struct): New function.
3099 (objc_derived_from_p): Likewise.
3100 (objc_build_component_ref): Likewise.
3101 (objc_copy_binfo): Likewise.
3102 (objc_xref_basetypes): Likewise.
3103 (objc_lookup_protocol): Likewise.
3104 (objc_compare_protocols): Likewise.
3105 (objc_volatilize_decl): Likewise.
3106 (encode_aggregate_fields): Likewise.
3107 (volatilized_hash): Likewise.
3108 (volatilized_eq): Likewise.
3109 (objc_compare_types): Likewise.
3110 (objc_type_quals_match): Likewise.
3111 (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
3112 of same name.
3113 (get_class_ivars): Add second parameter indicating if entire
3114 hierarchy is desired.
3115 (struct volatilized_type): New type.
3116 (volatilized_htab): New hash table.
3117 (objc_types_compatible_p, objc_comptypes): Remove functions.
3118 (synth_module_prologue): Do not initialize 'unused_list'.
3119 (objc_get_class_reference): Fix ObjC++ impedance mismatches.
3120 (objc_declare_alias): Implement as a typedef.
3121 (objc_substitute_decl, objc_gimplify_expr): Reformat.
3122 (objc_get_class_ivars): Adjust call to get_class_ivars().
3123 (next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
3124 build_ivar_reference, get_super_receiver): Call
3125 objc_build_component_ref() instead of build_component_ref().
3126 (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
3127 objc_comptypes().
3128 (build_private_template): Call objc_build_struct() instead of
3129 start_struct() and finish_struct().
3130 (hash_init): Initialize volatilized_htab.
3131 (objc_is_public): Adjust calls to objc_get_ivars(); adjust
3132 ObjC++ impedance mismatches.
3133 (encode_aggregate_within): Streamline by calling
3134 encode_aggregate_fields().
3135 * objc-act.h (objc_types_compatible_p): Remove prototype.
3136 (OCTI_UNUSED_LIST, unused_list): Remove slot.
3137 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
3138
f1035767 31392005-05-18 Geoffrey Keating <geoffk@apple.com>
3140
3141 * Make-lang.in (cc1obj-dummy): New.
3142 (cc1obj-checksum.c): New.
3143 (cc1obj-checksum.o): New.
3144 (cc1obj): Add cc1obj-checksum.o.
3145
3c905014 31462005-05-18 Mike Stump <mrs@apple.com>
3147
3148 PR objc/21641
3149 * objc-act.c (struct interface_tuple): Mark it up for GC.
3150 (interface_htab): It is really a struct interface_tuple.
3151
82c07781 31522005-05-17 Ziemowit Laski <zlaski@apple.com>
3153 Mike Stump <mrs@apple.com>
0ced0389 3154
3155 Yet more Objective-C++...
3156
3157 * objc-act.c (objc_finish_try_stmt): Add return value.
3158 (objc_build_synchronized): Likewise.
3159
3160 * objc-act.c (objc_is_gcable_type): Add.
3161 (objc_substitute_decl): Add.
3162 (objc_build_ivar_assignment): Add.
3163 (objc_build_global_assignment): Add.
3164 (objc_build_strong_cast_assignment): Add.
3165 (objc_is_ivar_reference_p): Add.
3166 (objc_is_global_reference_p): Add.
3167 (objc_generate_write_barrier): Add.
3168 (objc_rewrite_function_call): Add.
3169 (objc_gimplify_expr): Add Objective-C++ support.
3170 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
3171 (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
3172 (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
3173 (DUP_TYPE_OBJC_INFO): Likewise.
3174 (struct imp_entry): Add field has_cxx_cdtors.
3175 (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
3176 OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
3177 OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
3178 OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
3179 OCTI_ASSIGN_STRONGCAST_DECL.
3180 (umsg_fast_decl): Add.
3181 (objc_assign_ivar_decl): Add.
3182 (objc_assign_ivar_fast_decl): Add.
3183 (objc_assign_global_decl): Add.
3184 (objc_assign_strong_cast_decl): Add.
3185 (objc_method_list_ptr): Add.
3186 (objc_method_proto_list_ptr): Add.
3187 (objc_ivar_list_ptr): Add.
3188
3189 * objc-act.c (should_call_super_dealloc): Add.
3190 (OBJC_VERSION): Bump to 6.
3191 (objc_is_gcable_type): Add.
3192 (objc_substitute_decl): Add.
3193 (objc_build_ivar_assignment): Add.
3194 (objc_build_global_assignment): Add.
3195 (objc_build_strong_cast_assignment): Add.
3196 (objc_is_gcable_p): Add.
3197 (objc_is_ivar_reference_p): Add.
3198 (objc_is_global_reference_p): Add.
3199 (generate_shared_structures): Add flags parameter.
3200 (objc_generate_cxx_ctor_or_dtor): Add.
3201 (objc_generate_cxx_cdtors): Add.
3202 (add_class): Add name parameter.
3203 (objc_types_share_size_and_alignment): Add.
3204 (comp_proto_with_proto): Add strict parameter.
3205 (CLS_HAS_CXX_STRUCTORS): Add.
3206 (TAG_ASSIGNIVAR): Add.
3207 (TAG_ASSIGNGLOBAL): Add.
3208 (TAG_ASSIGNSTRONGCAST): Add.
3209 (TAG_MSGSEND_FAST): Add.
3210 (TAG_ASSIGNIVAR_FAST): Add.
3211 (TAG_CXX_CONSTRUCT): Add.
3212 (TAG_CXX_DESTRUCT): Add.
3213 (OBJC_LOOKUP_CLASS): Add.
3214 (OBJC_LOOKUP_NO_SUPER): Add.
3215 (objc_finish_file): Add pch support.
3216 (objc_finish_implementation): Add Objective-C++ support.
3217 (synth_module_prologue): Likewise.
3218 (synth_module_prologue): Add fast dispatching.
3219 (objc_get_class_reference): Add Objective-C++ support.
3220 (objc_generate_write_barrier): Likewise.
3221 (next_sjlj_build_enter_and_setjmp): Likewise.
3222 (objc_begin_try_stmt): Likewise.
3223 (build_next_objc_exception_stuff): Add fast ivar support.
3224 (build_private_template): Mark the record as used so debug
3225 information is generated.
3226 (build_protocol_template): Add Objective-C++ support.
3227 (objc_method_parm_type) Likewise.
3228 (objc_generate_cxx_ctor_or_dtor): Likewise.
3229 (objc_generate_cxx_cdtors): Likewise.
3230 (build_protocol_initializer): Likewise.
3231 (build_category_template): Likewise.
3232 (build_class_template): Likewise.
3233 (build_method_list_template): Likewise.
3234 (build_category_initializer): Likewise.
3235 (build_shared_structure_initializer): Likewise.
3236 (objc_finish_message_expr): Likewise.
3237 (build_objc_method_call): Add fast dispatch support.
3238 (lookup_method_static): Add support to end search at superclasses.
3239 (add_method_to_hash_list): Add strict parameter to
3240 comp_proto_with_proto.
3241 (objc_add_method): Likewise.
3242 (objc_add_method): Also set the interface_value.
3243 (add_instance_variable): Add Objective-C++ support.
3244 (objc_is_public): Likewise.
3245 (start_class): Likewise.
3246 (continue_class): Likewise.
3247 (encode_aggregate_within): Likewise.
3248 (start_method_def): Likewise.
3249 (objc_start_function): Clear current_function_returns_value
3250 and current_function_returns_null.
3251 (really_start_method): Add Objective-C++ support.
3252 (objc_finish_method_definition): Add warning for missing
3253 [super dealloc].
3254 (finish_objc): Add Objective-C++ support.
3255 (generate_objc_image_info): Likewise.
3256 (objc_lookup_ivar): Likewise.
3257 * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
3258 (INIT_TYPE_OBJC_INFO): Likewise.
3259 (DUP_TYPE_OBJC_INFO): Likewise.
3260
c3ceba8e 32612005-04-23 DJ Delorie <dj@redhat.com>
3262
3263 * objc-act.c: Adjust warning() callers.
3264
450302fe 32652005-04-21 Roger Sayle <roger@eyesopen.com>
3266
3267 * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
3268 this field of an objc method decl.
3269 * objc-act.c (build_method_decl): Take an additional "ellipsis"
3270 argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
3271 (objc_build_method_signature): Accept additional "ellipsis"
3272 argument and pass it to build_method_decl.
3273 (get_arg_type_list, start_method_def, gen_method_decl): Use
3274 the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
3275 TREE_OVERFLOW field of a TREE_LIST node.
3276
f5d156fd 32772005-04-20 Joseph S. Myers <joseph@codesourcery.com>
3278
3279 PR c/12913
3280 * objc-act.c (objc_start_function): Create stack level for context
3281 of identifiers with variably modified type.
3282
f08c7a57 32832005-03-30 Joseph S. Myers <joseph@codesourcery.com>
3284
3285 PR c/772
3286 PR c/17913
3287 * objc-act.c (objc_start_function): Push context on
3288 label_context_stack.
3289
45a78cc0 32902005-03-23 Joseph S. Myers <joseph@codesourcery.com>
3291
3292 * objc-act.c (next_sjlj_build_enter_and_setjmp,
3293 next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
3294 Call c_common_truthvalue_conversion.
3295
1576dec7 32962005-02-25 Joseph S. Myers <joseph@codesourcery.com>
3297
3298 * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
3299 objc/objc-parse.c, objc/objc-parse.y): Remove
3300 (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
3301 objc.distclean, objc.maintainer-clean): Update for new parser.
3302 * config-lang.in (gtfiles): Update for new parser.
3303
578ae71d 33042005-01-29 Kazu Hirata <kazu@cs.umass.edu>
3305
3306 * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
3307 copyright.
3308
aac6b86a 33092005-01-27 Matt Austern <austern@apple.com>
3310
3311 * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
3312 calling instantiate_pending_templates.
fdf0e229 3313
0bd2c21c 33142005-01-26 Alexander Malmberg <alexander@malmberg.org>
3315
3316 PR objc/18862
3317 * objc-act.c (build_selector_translation_table): Use
3318 input_location in the diagnostic for the GNU runtime or if
3319 TREE_PURPOSE (chain) is NULL.
3320
d7c168e8 33212005-01-25 Alexander Malmberg <alexander@malmberg.org>
3322
3323 PR objc/18408
3324 * objc-act.c (objc_types_compatible_p): New function.
3325 * objc-act.h (objc_types_compatible_p): Declare.
3326 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3327
7e176567 33282005-01-16 Ziemowit Laski <zlaski@apple.com>
3329
3330 * objc-act.c (objc_push_parm): Call c_type_promotes_to()
3331 via a lang-hook.
3332
53832dfa 33332005-01-15 Ziemowit Laski <zlaski@apple.com>
3334
3335 PR objc/19321
3336 * objc-act.c (get_arg_type_list): Decay function arguments into
3337 pointers.
3338 (objc_push_parm): Likewise; bring PARM_DECL construction closer
3339 in line with what the C front-end does.
3340 (objc_get_parm_info): Call pushdecl() and finish_decl() on
3341 each PARM_DECL, like the C front-end does.
3342 (start_method_def): Remove redundant ARRAY_TYPE decay.
3343 (objc_start_function): Bring closer in line with what the
3344 C front-end does for functions.
3345
67f3526e 33462005-01-14 Mike Stump <mrs@apple.com>
3347
3348 * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
3349 that -fobjc-exceptions is accepted.
3350
b5266a0c 33512004-12-30 Ziemowit Laski <zlaski@apple.com>
3352
3353 PR objc/18971
3354 * objc-act.c (get_arg_type_list, start_method_def): Decay
3355 array arguments into pointers.
3356 (gen_type_name_0): Learn to pretty-print array types.
3357
6972a3bc 33582004-12-15 Ziemowit Laski <zlaski@apple.com>
3359
3360 * objc-act.c (build_private_template): Change to return 'void'; do
3361 not set ivar_context, uprivate_record or objc_instance_type.
3362 (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
3363 retrieve protocol list from the pointee rather than the pointer itself;
3364 check TYPE_HAS_OBJC_INFO(...) precondition before accessing
3365 TYPE_OBJC_PROTOCOL_LIST.
3366 (objc_get_protocol_qualified_type): For types 'id' and 'Class',
3367 construct a variant of the pointee as well as the pointer, and
3368 store protocol information in the former. When creating variants
3369 of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
3370 TYPE_OBJC_INTERFACE information.
3371 (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
3372 underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
3373 for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
3374 holding an IDENTIFIER_NODE.
3375 (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
3376 accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
3377 of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
3378 an IDENTIFIER_NODE (meaning a @class forward-declaration only).
3379 (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
3380 lookup_interface().
3381 (continue_class): For @implementations, set ivar_context,
3382 uprivate_record and objc_instance_type, for @interfaces, call
3383 build_private_template().
3384 (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
3385 TYPE_OBJC_INTERFACE.
3386 (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
3387 accessing TYPE_OBJC_PROTOCOL_LIST.
3388 * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
fdf0e229 3389 DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
6972a3bc 3390 SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
3391 (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
3392 to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
3393 (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
3394 TYPE_LANG_SPECIFIC(...).
3395 (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
3396 (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
3397 TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
3398 adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
3399 instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
3400
b42190bc 34012004-11-29 Joseph Myers <joseph@codesourcery.com>
3402
3403 PR c/7544
3404 * Make-lang.in (objc/objc-act.o): Update dependencies.
3405 * objc-act.c (objc_finish_file): Call
3406 maybe_apply_pending_pragma_weaks if not OBJCPLUS.
3407
02fc645a 34082004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
3409
3410 PR objc/18406
3411 * obj-act.c (encode_type): 96bits doubles are encoded the
3412 same way as 64bit and 128bit doubles are.
3413
1e5fcbe2 34142004-11-09 Joseph S. Myers <joseph@codesourcery.com>
3415
3416 * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
3417
0aaa3c91 34182004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
3419
3420 PR objc/16546
3421 * objc-act.c (generate_method_descriptors): Remove setting
3422 the new decls' type to variable_length_type.
3423 (generate_ivar_lists): Likewise.
3424 (generate_dispatch_tables): Likewise.
3425
e913c82d 34262004-10-30 Ziemowit Laski <zlaski@apple.com>
3427
3428 * objc-act.c (objc_lookup_ivar): The new OTHER parameter
3429 contains the result of the ID lookup by the C or C++
3430 front-end; in class methods, use OTHER if it exists;
3431 in instance methods, use OTHER only if it is locally
3432 declared.
3433
49bd32dc 34342004-10-26 Ziemowit Laski <zlaski@apple.com>
3435
3436 * objc-act.c (finish_class): Do not synthesize bogus
3437 'extern objc_object *_Foo;' declarations for @interface Foo.
3438
9e8a7e85 34392004-10-25 Ziemowit Laski <zlaski@apple.com>
3440 David Ayers <d.ayers@inode.at>
3441
3442 * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
3443 instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
3444 'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
3445 'Class <Protocol> == id' and 'Class <Protocol> == Class'.
3446 (objc_is_id): Add test for 'super'.
3447 (objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
3448 receivers; if class methods are not found in protocol lists, search
3449 for instance methods therein and warn if one is found. Look in
3450 global hash tables for suitable method as a last resort when messaging
3451 'id <Proto>', 'Class <Proto>' and invalid receiver types.
3452 (objc_add_method): Insert instance methods listed in protocols into
3453 the global class method hash table.
3454 * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
3455 IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
3456 addition to 'id <Proto>'.
3457
6e030094 34582004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
3459
3460 PR objc/17923
3461 * objc-act.c (objc_build_string_object): Create a CONST_DECL
3462 for the NeXT runtime case.
3463
9f9a4117 34642004-10-02 Kazu Hirata <kazu@cs.umass.edu>
3465
3466 * objc-act.c: Fix comment typos.
3467
4b6a1df9 34682004-09-24 Ziemowit Laski <zlaski@apple.com>
3469
3470 * objc-act.c (init_objc_symtab, init_module_descriptor,
3471 build_shared_structure_initializer): When initializing 'long'
3472 fields, ensure that the initializer value is also 'long'.
3473
775e7a4e 34742004-09-24 Zack Weinberg <zack@codesourcery.com>
3475
3476 * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
3477 throughout.
3478 (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
3479 (build_selector_translation_table): Use %J in diagnostic
3480 instead of diddling input_line. Fix spelling.
3481
e151b250 34822004-09-21 Ziemowit Laski <zlaski@apple.com>
3483
3484 * objc-act.c (objc_fold_objc_type_ref): New function.
3485 * objc-act.h (objc_fold_objc_type_ref): New prototype.
3486
ac206aff 34872004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
3488
3489 * objc-act.c (objc_start_function, really_start_method,
3490 objc_get_parm_info, start_method_def): Update to new arg_info
3491 structures.
3492
13dcc150 34932004-09-07 Ziemowit Laski <zlaski@apple.com>
3494
3495 * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
3496 objc/objc-act.h.
3497 (objc/objc-act.o): Depend on $(HASHTAB_H).
3498 * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
3499 objcp-decl.h instead of c-tree.h.
3500 (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
3501 error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
3502 build_protocol_template): Adjust prototypes.
3503 (build_module_initializer_routine, start_class, continue_class,
3504 finish_class, start_method_def, objc_start_function, start_protocol,
3505 build_method_decl, objc_add_method, add_instance_variable,
3506 build_ivar_reference, is_ivar, is_private, get_super_receiver,
3507 build_selector_table_decl, objc_push_parm, objc_get_parm_info,
3508 gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
3509 create_field_decl): New prototypes.
3510 (objc_expand_function_end, comp_method_with_proto, objc_expr_last,
3511 gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
3512 define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
3513 (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
3514 (CLASS_TYPEDEF_NAME): New.
3515 (TAG_EXECCLASS): Change from a global variable to a #define.
3516 (TAG_RETURN_STRUCT): Delete.
3517 (TAG_GNUINIT): New, holds '__objc_gnu_init' name.
3518 (objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
3519 (string_descriptor): New struct.
3520 (string_htab): New hash table.
3521 (string_hash, string_eq): New prototypes.
3522 (generate_struct_by_value_array): Call create_field_decl() instead of
3523 create_builtin_decl().
3524 (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
3525 In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
3526 (objc_finish_file): In ObjC++, call instantiate_pending_templates()
3527 and cp_finish_file().
3528 (define_decl, get_static_reference, get_protocol_reference,
3529 create_builtin_decl): Remove functions.
3530 (objc_start_class_interface, objc_start_category_interface,
3531 objc_start_protocol, objc_continue_interface, objc_finish_interface,
3532 objc_start_class_implementation, objc_start_category_implementation,
3533 objc_continue_implementation, objc_finish_implementation,
3534 objc_set_visibility, objc_set_method_type,
3535 objc_build_method_signature, objc_add_method_declaration,
3536 objc_start_method_definition, objc_add_instance_variable,
3537 objc_get_protocol_qualified_type, create_field_decl,
3538 start_var_decl, finish_var_decl): New functions.
3539 (setup_string_decl): Simplify since it is only called once.
3540 (synth_module_prologue): Call build_class_template(); predefine 'id'
3541 and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
3542 hooks for duration of function; fix GNU runtime messenger signatures
3543 to correspond to reality; forward-declare '__objc_exec_class' for the
3544 GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
3545 'extern "C" { ... }' wrappers around synthesized declarations; call
3546 build_protocol_template() and build_category_template().
3547 (string_hash, string_eq): New functions.
3548 (objc_build_string_object): Check metaclass correctness only once;
3549 store string literals in hash table.
3550 (objc_build_constructor): Do not convert initializer elements;
3551 adjust for ObjC++ impedance mismatch.
3552 (build_objc_symtab_template): Call create_field_decl() instead of
3553 create_builtin_decl().
3554 (init_objc_symtab): Add missing conversion to initializer element.
3555 (build_metadata_decl): Call start_var_decl() instead of define_decl().
3556 (generate_objc_symtab_decl): Do not call build_category_template();
3557 call start_var_decl() and finish_var_decl() instead of start_decl()
3558 and finish_decl().
3559 (build_module_descriptor): Call create_field_decl() instead of
3560 grokfield(); call start_var_decl() and finish_var_decl() instead of
3561 start_decl() and finish_decl(); always mark module descriptor as
3562 used; move GNU runtime-specific functionality to
3563 build_module_initializer_routine().
3564 (build_module_initializer_routine): New function, broken off of
3565 build_module_descriptor().
3566 (objc_static_init_needed_p, objc_generate_static_init_call): New
3567 functions.
3568 (generate_static_references, generate_strings,
3569 build_selector_translation_table, generate_descriptor_table,
3570 generate_ivars_list, generate_dispatch_table, generate_category): Call
3571 start_var_decl() and finish_var_decl() instead of start_decl() and
3572 finish_decl(); build a type directly instead of via groktypename().
3573 (build_selector_reference_decl, build_selector_table_decl,
3574 build_class_reference_decl, build_protocol_reference,
3575 generate_objc_image_info): Call start_var_decl() instead of
3576 build_decl().
3577 (build_selector_reference): For GNU runtime, do not call
3578 build_selector_reference_decl().
3579 (build_selector, build_typed_selector_reference): Always convert
3580 result to the selector type.
3581 (add_objc_string): Cast return value to 'char *'.
3582 (build_method_prototype_template, build_selector_template,
3583 build_method_template): Use actual selector type for fields
3584 pointing to selectors.
3585 (finish_objc): For GNU runtime, call
3586 build_module_initializer_routine() after build_module_descriptor().
3587 (generate_protocol_list, generate_shared_structures): Call
3588 start_var_decl() and finish_var_decl() instead of start_decl() and
3589 finish_decl(); build a type directly instead of via
3590 groktypename().
3591 (synth_id_with_class_suffix): Return a string.
3592 (get_arg_type_list): For instance methods, use the instance type for
3593 'self'; do not call groktypename_in_parm_context().
3594 (build_objc_string_decl): Squash redeclaration errors in ObjC++.
3595 (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
3596 handle RECORD_TYPEs in ObjC as well as ObjC++.
3597 (objc_is_id): New function.
3598 (objc_is_object_ptr): Return the canonical type node.
3599 (objc_get_class_ivars): Simplify using get_class_ivars().
3600 (get_class_ivars): Remove second parameter; create a fresh copy
3601 of the ivar list for each call; do not check for existence of
3602 super class.
3603 (objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
3604 (objc_init_exceptions): When using SJLJ-style exceptions, require
3605 the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
3606 exceptions.
3607 (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
3608 objc_object_type instead of objc_id_type.
3609 (objc_begin_catch_clause): Convert the incoming PARM_DECL into
3610 a VAR_DECL before placing it in the appropriate scope; do not
3611 call define_decl(); adjust call to c_begin_compound_stmt();
3612 use objc_object_type instead of objc_id_type.
3613 (build_next_objc_exception_stuff): Call create_field_decl() instead
3614 of create_builtin_decl(); construct type directly instead of calling
3615 groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
3616 (build_private_template): Adjust call to get_class_ivars(); build
3617 a type directly instead of via groktypename().
3618 (build_protocol_template, build_method_prototype_list_template,
3619 build_method_prototype_template, build_category_template,
3620 build_selector_template, build_class_template, build_super_template,
3621 build_ivar_template, build_ivar_list_template,
3622 build_method_list_template, build_method_template):
3623 Call create_field_decl() instead of grokfield().
3624 (objc_method_parm_type): Do not call groktypename().
3625 (generate_descriptor_table): Call start_var_decl() and
3626 finish_var_decl() instead of start_decl() and finish_decl().
3627 (generate_method_descriptors, build_protocol_initializer,
3628 generate_dispatch_tables, build_category_initializer,
3629 build_shared_structure_initializer): Do not call groktypename().
3630 (generate_protocols): Call start_var_decl() and finish_var_decl()
3631 instead of start_decl() and finish_decl(); do not call groktypename().
3632 (error_with_ivar): Remove last parameter.
3633 (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
3634 to CLASS_IVARS lists; adjust calls to error_with_ivar().
3635 (generate_ivar_lists): Convert one of the initializer elements; do
3636 not call groktypename().
3637 (get_arg_type_list, start_method_def, gen_method_def): Account for
3638 new representation of variable arguments and '...' in Objective-C
3639 methods; add Objective-C++ impedance matching code.
3640 (is_objc_type_qualifier): Remove function.
3641 (adjust_type_for_id_default): Simplify; there is no longer a need to
3642 wade through declspecs.
3643 (lookup_interface, start_class, continue_class,
3644 finish_class, start_method_def, start_protocol, build_method_decl,
3645 objc_add_method, add_instance_variable, build_ivar_reference,
3646 is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
3647 Make into static functions.
3648 (receiver_is_class_object): Use new IS_CLASS() macro.
3649 (objc_build_message_expr): Tweak ObjC++ message argument handling;
3650 call objc_finish_message_expr() instead of finish_message_expr().
3651 (finish_message_expr): Rename to objc_finish_message_expr(); use
3652 OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
3653 call gen_type_name() instead of gen_declaration(); call objc_is_id()
3654 instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
3655 calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
3656 (build_objc_method_call, warn_with_method): Do not call groktypename().
3657 (build_ivar_reference): Call convert() instead of clobbering in a
3658 type.
3659 (hash_init): Initialize string_htab hash table.
3660 (add_instance_variable): Simplify parameter list; do not call grokfield();
3661 do not populate CLASS_IVARS list.
3662 (start_class): Check for the existence of super class, if one was specified.
3663 (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
3664 call build_class_template(); adjust call to get_class_ivars(); call
3665 build_decl(), pushdecl() and finish_decl() instead of define_decl().
3666 (finish_class): Call build_decl(), pushdecl() and finish_decl() instead
3667 of define_decl().
3668 (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
3669 (start_protocol): Do not call build_protocol_template(); use
3670 PROTOCOL_BINFO_ELTS for the tree vector size.
3671 (encode_type_qualifiers): Do not handle the 'const' qualifier here.
3672 (encode_pointer): Encode 'const char *' as 'r*', for backwards
3673 compatibility.
3674 (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
3675 (encode_type): Handle the 'const' qualifier here.
3676 (objc_parmlist): New global variable, sued by objc_push_parm and
3677 objc_get_parm_info().
3678 (objc_push_parm, objc_get_parm_info): New functions.
3679 (objc_expr_last): Remove function.
3680 (synth_self_and_ucmd_args): For instance methods, use the instance
3681 type for 'self'; call objc_push_parm() instead of push_parm_decl().
3682 (start_method_def): Do not call push_scope(), declare_parm_level(),
3683 pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
3684 just use objc_push_parm() and objc_get_parm_info().
3685 (comp_method_with_proto): Remove function.
3686 (objc_types_are_equivalent): Strip away indirections before comparing
3687 underlying types.
3688 (comp_proto_with_proto): Do not call groktypename(); types are no
3689 longer in raw declspec format.
3690 (objc_start_function): New function.
3691 (really_start_method): Call comp_proto_with_proto() instead of
3692 comp_method_with_proto(); call objc_start_function() instead of
3693 hand-crafting a function declarator.
3694 (continue_method_def, objc_expand_function_end): Remove functions.
3695 (get_super_receiver): Call objc_get_current_scope() instead of
3696 get_current_scope(); reference 'super_class' field (instead of
3697 'class').
3698 (finish_method_def): Rename to objc_finish_method_definition() and
3699 add a function decl parameter; move method encoding call from
3700 objc_expand_function_end().
3701 (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
3702 gen_declaration_1): Remove functions.
3703 (tmpbuf, RAW_DECLSPEC): Remove.
3704 (gen_declaration): Remove second parameter; simplify to deal
3705 with TYPE_P nodes instead of raw declspecs.
3706 (gen_type_name, gen_type_name_0): New functions.
3707 (gen_method_decl): Remove second parameter; call gen_type_name()
3708 instead of gen_declaration_1().
775e7a4e 3709 (dump_interface): Adjust calls to gen_declaration() and
13dcc150 3710 gen_method_decl(); do not allocate a separate string buffer.
3711 (init_objc): Allocate a larger string buffer to accommodate
3712 dump_interface(); adjust call to build_module_descriptor();
3713 add call to build_module_initializer_routine() for the GNU
3714 runtime.
3715 (generate_classref_translation_entry): Do not call start_decl(); call
3716 finish_var_decl() instead of finish_decl(); call convert() instead of
3717 build_c_cast().
3718 * objc-act.h (CLASS_OWN_IVARS): Remove accessor.
3719 (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
3720 gone.
3721 (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
3722 (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
3723 (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
3724 objc_object_type and objc_object_name, respectively.
3725 (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
3726 objc_class_name): New.
3727 (IS_CLASS): New macro.
3728 (IS_ID, IS_SUPER): Robustify.
3729 (OCTI_EXECCLASS_DECL, execclass_decl): New.
3730 (finish_file, start_class, continue_class, finish_class,
3731 start_method_def, continue_method_def, finish_method_def,
3732 start_protocol, finish_protocol, objc_build_throw_stmt,
3733 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
3734 objc_build_synchronized_epilogue, objc_build_try_prologue,
3735 objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
3736 objc_build_finally_prologue, objc_build_finally_epilogue,
3737 is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
3738 get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
3739 get_class_reference, get_static_reference, get_object_reference,
3740 build_message_expr, finish_message_expr, build_selector_expr,
3741 build_ivar_reference, build_keyword_decl, build_method_decl,
3742 build_protocol_expr, build_objc_string_object, objc_declare_alias,
3743 objc_declare_class, objc_declare_protocols, objc_comptypes,
3744 objc_check_decl, build_encode_expr): Remove prototypes.
3745 (imp_count, cat_count): Make GGC-aware.
3746 (OBJC_SET_TYPE_NAME): New macro.
775e7a4e 3747
89359403 37482004-09-03 Ziemowit Laski <zlaski@apple.com>
3749
3750 * config-lang.in: Update copyright notice.
3751 (lang_requires): Indicate that ObjC requires C to be built first.
3752
66eb9e7e 37532004-09-01 Ziemowit Laski <zlaski@apple.com>
3754
3755 * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
3756 TYPE_NAME.
3757 (build_objc_string_object): Rename to objc_build_string_object().
3758 (get_class_reference): Rename to objc_get_class_reference().
3759 (get_class_ivars_from_name): Rename to objc_get_class_ivars().
3760 (next_sjlj_build_catch_list, get_super_receiver): Call
3761 objc_get_class_reference() instead of get_class_reference().
3762 (build_keyword_decl): Rename to objc_build_keyword_decl().
3763 (build_message_expr): Rename to objc_build_message_expr().
3764 (build_protocol_expr): Rename to objc_build_protocol_expr().
3765 (build_selector_expr): Rename to objc_build_selector_expr().
3766 (build_encode_expr): Rename to objc_build_encode_expr().
3767 * objc-act.h (get_class_ivars_from_name): Rename prototype to
3768 objc_get_class_ivars().
3769 (get_class_reference): Rename prototype to objc_get_class_reference().
3770 (build_message_expr): Rename prototype to objc_build_message_expr().
3771 (build_selector_expr): Rename prototype to objc_build_selector_expr().
3772 (build_keyword_decl): Rename prototype to objc_build_keyword_decl().
3773 (build_protocol_expr): Rename prototype to objc_build_prototype_expr().
3774 (build_objc_string_object): Rename prototype to
3775 objc_build_string_object().
775e7a4e 3776
99d7d801 37772004-09-01 Ziemowit Laski <zlaski@apple.com>
3778
3779 * objc-act.c (lookup_interface): Make function 'static' and add a
3780 local prototype.
3781 (objc_check_decl, get_class_reference, objc_declare_alias,
3782 objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
3783 instead of is_class_name().
775e7a4e 3784 (get_super_receiver, objc_clear_super_receiver): Call
99d7d801 3785 objc_get_current_scope() instead of get_current_scope().
3786 (is_class_name): Rename to objc_is_class_name.
3787 (lookup_objc_ivar): Rename to objc_lookup_ivar.
3788
11a35d8f 37892004-08-28 Ziemowit Laski <zlaski@apple.com>
3790
3791 * objc-act.c (objc_is_reserved_word): New function.
3792
800b56f2 37932004-08-15 Ziemowit Laski <zlaski@apple.com>
3794
3795 * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
3796 $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
3797 (objc/objc-parse.o): Do not depend on gtype-objc.h.
3798 * objc-act.c: Do not include gtype-objc.h.
3799 (finish_file): Rename to objc_finish_file().
3800 * objc-act.h (finish_file): Update copyright notice; remove prototype.
3801 * objc-lang.c: Update copyright notice; include diagnostic.h,
3802 c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
3803 toplev.h.
3804 (finish_file): New hook routine.
3805 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
3806 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
3807 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
775e7a4e 3808 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
3809 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
800b56f2 3810 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
3811 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
775e7a4e 3812 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
800b56f2 3813 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
3814 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3815 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
3816 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3817 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3818 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
3819 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
3820 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3821 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
3822 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3823 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
3824 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
3825 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
3826 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
3827 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
3828 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
3829 Move to c-objc-common.h.
7dfbd804 3830
3831\f
fbd26352 3832Copyright (C) 2004-2019 Free Software Foundation, Inc.
7dfbd804 3833
3834Copying and distribution of this file, with or without modification,
3835are permitted in any medium without royalty provided the copyright
3836notice and this notice are preserved.