]> 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
1ea978e3
JJ
12022-05-06 Release Manager
2
3 * GCC 12.1.0 released.
4
fc829782
GA
52022-01-17 Martin Liska <mliska@suse.cz>
6
7 * Make-lang.in: Rename .c names to .cc.
8 * config-lang.in: Likewise.
9 * lang-specs.h: Likewise.
10 * objc-act.cc (objc_build_component_ref): Likewise.
11 (objc_copy_binfo): Likewise.
12 (lookup_method_in_hash_lists): Likewise.
13 (objc_finish_foreach_loop): Likewise.
14 * objc-act.h (objc_common_init_ts): Likewise.
15 * objc-gnu-runtime-abi-01.cc: Likewise.
16 * objc-lang.cc (struct lang_hooks): Likewise.
17 * objc-map.cc: Likewise.
18 * objc-next-runtime-abi-01.cc (generate_objc_symtab_decl): Likewise.
19 * objc-runtime-shared-support.cc: Likewise.
20 * objc-runtime-shared-support.h (build_protocol_initializer): Likewise.
21
222022-01-17 Martin Liska <mliska@suse.cz>
23
24 * objc-act.c: Moved to...
25 * objc-act.cc: ...here.
26 * objc-encoding.c: Moved to...
27 * objc-encoding.cc: ...here.
28 * objc-gnu-runtime-abi-01.c: Moved to...
29 * objc-gnu-runtime-abi-01.cc: ...here.
30 * objc-lang.c: Moved to...
31 * objc-lang.cc: ...here.
32 * objc-map.c: Moved to...
33 * objc-map.cc: ...here.
34 * objc-next-runtime-abi-01.c: Moved to...
35 * objc-next-runtime-abi-01.cc: ...here.
36 * objc-next-runtime-abi-02.c: Moved to...
37 * objc-next-runtime-abi-02.cc: ...here.
38 * objc-runtime-shared-support.c: Moved to...
39 * objc-runtime-shared-support.cc: ...here.
40
01a254e3
GA
412022-01-11 Jakub Jelinek <jakub@redhat.com>
42
43 PR c++/101597
44 * objc-act.c (objc_rewrite_function_call): Build OBJ_TYPE_REF
45 with INTEGER_CST OBJ_TYPE_REF_TOKEN with type equal to
46 OBJ_TYPE_REF_OBJECT type.
47 * objc-next-runtime-abi-01.c (build_objc_method_call): Likewise.
48 * objc-gnu-runtime-abi-01.c (build_objc_method_call): Likewise.
49 * objc-next-runtime-abi-02.c (build_v2_objc_method_fixup_call,
50 build_v2_build_objc_method_call): Likewise.
51
b880d151
GA
522021-12-05 Iain Sandoe <iain@sandoe.co.uk>
53
54 * objc-next-metadata-tags.h (objc_rt_trees): Declare here.
55 * objc-next-runtime-abi-01.c: Remove from here.
56 * objc-next-runtime-abi-02.c: Likewise.
57 * objc-runtime-shared-support.c: Reorder headers, provide
58 a GTY declaration the definition of objc_rt_trees.
59
c177e806
GA
602021-11-30 Richard Biener <rguenther@suse.de>
61
62 * objc-act.c (objc_build_setter_call): Remove unreachable
63 return.
64
87cd82c8
GA
652021-11-29 Eric Gallager <egallager@gcc.gnu.org>
66
67 PR other/103021
68 * Make-lang.in: Use ETAGS variable in TAGS target.
69
c2bd5d8a
GA
702021-10-22 Eric Gallager <egallager@gcc.gnu.org>
71
72 PR other/102663
73 * Make-lang.in: Add dummy objc.install-dvi target.
74
ce6eec39
GA
752021-10-08 Martin Liska <mliska@suse.cz>
76
77 * objc-next-runtime-abi-01.c: Add missing include.
78 * objc-next-runtime-abi-02.c: Likewise.
79
802021-10-08 Martin Liska <mliska@suse.cz>
81
82 * objc-next-runtime-abi-01.c: Use new macro
83 OPTION_SET_P.
84 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Likewise.
85
e11c6046
GA
862021-09-01 Iain Sandoe <iain@sandoe.co.uk>
87
88 PR objc/101718
89 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call):
90 Revise for cases where scalar objects use an sret parameter.
91 (next_runtime_abi_02_build_objc_method_call): Likwise.
92
932021-09-01 Iain Sandoe <iain@sandoe.co.uk>
94
95 * objc-act.c (objc_add_property_declaration): Register unavailable
96 attribute.
97 (maybe_make_artificial_property_decl): Set available.
98 (objc_maybe_build_component_ref): Generalise to the method prototype
99 to count availability.
100 (objc_build_class_component_ref): Likewise.
101 (build_private_template): Likewise.
102 (objc_decl_method_attributes): Handle unavailable attribute.
103 (lookup_method_in_hash_lists): Amend comments.
104 (objc_finish_message_expr): Handle unavailability in addition to
105 deprecation.
106 (start_class): Likewise.
107 (finish_class): Likewise.
108 (lookup_protocol): Likewise.
109 (objc_declare_protocol): Likewise.
110 (start_protocol): Register unavailable attribute.
111 (really_start_method): Likewise.
112 (objc_gimplify_property_ref): Emit error on encountering an
113 unavailable entity (and a warning for a deprecated one).
114
b57fba5e
GA
1152021-08-19 Iain Sandoe <iain@sandoe.co.uk>
116
117 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init):
118 Default receiver nilchecks on.
119
6e529985
GA
1202021-08-18 Iain Sandoe <iain@sandoe.co.uk>
121 Matt Jacobson <mhjacobson@me.com>
122
123 PR objc/101666
124 * objc-act.c (objc_build_constructor): Handle empty constructor
125 lists.
126 * objc-next-runtime-abi-02.c (build_v2_objc_method_fixup_call):
127 Handle nil receivers.
128 (build_v2_build_objc_method_call): Likewise.
129
2d14d64b
GA
1302021-08-17 Matt Jacobson <mhjacobson@me.com>
131
132 * objc-next-runtime-abi-02.c
133 (objc_next_runtime_abi_02_init): Warn about and reset
134 flag_objc_sjlj_exceptions regardless of flag_objc_exceptions.
135 (next_runtime_02_initialize): Use a checking assert that
136 flag_objc_sjlj_exceptions is off.
137
c8abc205
GA
1382021-06-28 Martin Sebor <msebor@redhat.com>
139
140 * objc-act.c (objc_maybe_build_modify_expr): Replace direct uses
141 of TREE_NO_WARNING with warning_suppressed_p, and suppress_warning.
142 (objc_build_incr_expr_for_property_ref): Same.
143 (objc_build_struct): Same.
144 (synth_module_prologue): Same.
145 * objc-gnu-runtime-abi-01.c (gnu_runtime_01_initialize): Same.
146 * objc-next-runtime-abi-01.c (next_runtime_01_initialize): Same.
147 * objc-next-runtime-abi-02.c (next_runtime_02_initialize): Same.
148
c6038721
GA
1492021-06-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
150
151 * Make-lang.in (cc1-obj-checksum.c): Check previous
152 stage checksum exists.
153
6ed359cd 1542021-06-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
438aac59
GA
155
156 * Make-lang.in (cc1obj-checksum.c): For stage-final re-use
157 the checksum from the previous stage.
158
ea34e2ed
GA
1592021-05-20 Indu Bhagat <indu.bhagat@oracle.com>
160
161 * objc-act.c (synth_module_prologue): Use uint32_t instead of enum
162 debug_info_type.
163
aa891c56
GA
1642021-05-10 Martin Liska <mliska@suse.cz>
165
166 * objc-act.c (objc_string_ref_type_p): Use startswith
167 function instead of strncmp.
168 * objc-encoding.c (encode_type): Likewise.
169 * objc-next-runtime-abi-02.c (has_load_impl): Likewise.
170
82e5048e
GA
1712020-11-20 Jakub Jelinek <jakub@redhat.com>
172
173 PR other/97911
174 * Make-lang.in (objc.serial): Change from goal to a variable.
175 (.PHONY): Drop objc.serial and objc.prev.
176 (cc1obj$(exeext)): Depend on $(objc.serial) rather than objc.serial.
177
25bb75f8
GA
1782020-11-18 Jakub Jelinek <jakub@redhat.com>
179
180 * Make-lang.in (objc.serial): New goal.
181 (.PHONY): Add objc.serial objc.prev.
182 (cc1obj$(exeext)): Depend on objc.prev. Call LINK_PROGRESS.
183
77f67db2
GA
1842020-11-13 Iain Sandoe <iain@sandoe.co.uk>
185
186 PR objc/90707
187 * objc-act.c (objc_prop_attr_kind_for_rid): Handle nullability.
188 (objc_add_property_declaration): Handle nullability attributes.
189 Check that these are applicable to the property type.
190 * objc-act.h (enum objc_property_nullability): New.
191
1922020-11-13 Iain Sandoe <iain@sandoe.co.uk>
193
194 PR objc/77404
195 * objc-act.c (objc_start_class_interface): Accept the location
196 of the class name, use it in existing diagnostic.
197 (start_class): Accept obj_root_class type attributes. Warn when
198 the interface for an implementation does not contain a super
199 class (unless the diagnostic is suppressed by the the command
200 line flag or the objc_root_class type attribute).
201
fb95de7a
GA
2022020-11-08 Iain Sandoe <iain@sandoe.co.uk>
203
204 * objc-act.c (objc_prop_attr_kind_for_rid): Handle class
205 attribute.
206 (objc_add_property_declaration): Likewise.
207 * objc-act.h (PROPERTY_CLASS): Record class attribute state.
208
2da7ee05
GA
2092020-11-07 Iain Sandoe <iain@sandoe.co.uk>
210
211 * objc-act.c (objc_prop_attr_kind_for_rid): Handle
212 RID_PROPATOMIC.
213
2142020-11-07 Iain Sandoe <iain@sandoe.co.uk>
215
216 * objc-act.c (objc_compare_types): Handle NSObject type
217 attributes.
218 (objc_type_valid_for_messaging): Likewise.
219
44cab2d8
GA
2202020-11-06 Iain Sandoe <iain@sandoe.co.uk>
221
222 * objc-act.c (start_class): Accept visibility attributes
223 without warning.
224
2252020-11-06 Iain Sandoe <iain@sandoe.co.uk>
226
227 * objc-act.c (objc_prop_attr_kind_for_rid): New.
228 (objc_add_property_declaration): Adjust to consume the
229 parser output using a vector of parsed attributes.
230
35c125cb
GA
2312020-11-04 Iain Sandoe <iain@sandoe.co.uk>
232
233 * objc-act.c (objc_non_constant_expr_p): New.
234
88ce3d5f
GA
2352020-11-01 Iain Sandoe <iain@sandoe.co.uk>
236
237 * objc-act.c (synth_module_prologue): Get the SEL identifier.
238 * objc-act.h (enum objc_tree_index): Add OCTI_SEL_NAME.
239 (objc_selector_name): New.
240 (SEL_TYPEDEF_NAME): New.
241 * objc-gnu-runtime-abi-01.c
242 (gnu_runtime_01_initialize): Initialize SEL typedef.
243 * objc-next-runtime-abi-01.c
244 (next_runtime_01_initialize): Likewise.
245 * objc-next-runtime-abi-02.c
246
2baa36d4
GA
2472020-10-11 Iain Sandoe <iain@sandoe.co.uk>
248
249 * objc-next-runtime-abi-02.c
250 (create_global_decl): Update to allow the caller to
251 specify declaration or definition.
252 (create_hidden_decl): Likewise.
253 (next_runtime_abi_02_protocol_decl): Make the symbol
254 weak and hidden for later OS runtime versions.
255 (build_v2_protocol_list_address_table): Likewise.
256
2572020-10-11 Iain Sandoe <iain@sandoe.co.uk>
258
259 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): Test
260 DECL_C_BIT_FIELD to detect that an ivar is a bitfield.
261
2622020-10-11 Iain Sandoe <iain@sandoe.co.uk>
263
264 * objc-next-runtime-abi-02.c (FIXUP_NEEDED): Rename ...
265 (USE_FIXUP_BEFORE): ... to this.
266 (next_runtime_02_initialize): Likewise.
267 (next_runtime_abi_02_get_arg_type_list_base): Likewise.
268 (next_runtime_abi_02_build_objc_method_call): Likewise.
269
2702020-10-11 Iain Sandoe <iain@sandoe.co.uk>
271
272 * objc-next-runtime-abi-02.c (TAG_MSGSENDSUPER): Revised
273 spelling.
274 (TAG_MSGSENDID): Likewise.
275 (TAG_MSGSENDSUPER_STRET): Likewise.
276 (TAG_MSGSENDID_STRET): Likewise.
277 (FIXUP_NEEDED): Likewise.
278 (TAG_FIXUP): New.
279 (next_runtime_02_initialize): Adjust message calls to use
280 fixup variants only when required.
281 (next_runtime_abi_02_get_arg_type_list_base): Correct
282 indent.
283 (build_v2_build_objc_method_call): New.
284 (build_v2_objc_method_fixup_call): Split out from ...
285 (next_runtime_abi_02_build_objc_method_call): ... here.
286 Arrange to adjust the call on the basis of the target
287 runtime.
288
2892020-10-11 Iain Sandoe <iain@sandoe.co.uk>
290
291 * objc-runtime-shared-support.c (start_var_decl): Make the
292 decl_assembler_name follow the metadata name for C++ on NeXT
293 runtime platforms.
294
2952020-10-11 Iain Sandoe <iain@sandoe.co.uk>
296
297 * objc-next-runtime-abi-02.c
298 (next_runtime_abi_02_category_decl): Adjust category
299 superclass name ordering.
300
3012020-10-11 Iain Sandoe <iain@sandoe.co.uk>
302
303 * objc-next-runtime-abi-02.c (build_v2_super_template): Add new
304 fields to the template.
305 (build_v2_protocol_template): Build new field entries.
306 (generate_v2_meth_descriptor_table): Adjust to allow recording all
307 method types.
308 (generate_v2_meth_type_list): New.
309 (build_v2_protocol_initializer): Initialize the additional fields.
310 (generate_v2_protocols): Record method types for all entries and
311 generate the additional method type table.
312
aab566a4
GA
3132020-10-10 Iain Sandoe <iain@sandoe.co.uk>
314
315 * objc-next-runtime-abi-02.c
316 (objc_get_superclass_ref_decl): Split this code out.
317 (next_runtime_abi_02_get_class_super_ref): Compute
318 super refs using the objc_get_superclass_ref_decl().
319 (next_runtime_abi_02_get_category_super_ref): Likewise.
320
3212020-10-10 Iain Sandoe <iain@sandoe.co.uk>
322
323 * objc-next-runtime-abi-02.c
324 (next_runtime_abi_02_init_metadata_attributes): Make protocol
325 refs a distinct section.
326
3272020-10-10 Iain Sandoe <iain@sandoe.co.uk>
328
329 * objc-next-runtime-abi-02.c
330 (next_runtime_abi_02_init_metadata_attributes): Attach metadata
331 for the special string sections to class, method and method type
332 string sections.
333
3342020-10-10 Iain Sandoe <iain@sandoe.co.uk>
335
336 * objc-gnu-runtime-abi-01.c
337 (build_shared_structure_initializer): Remove references to
338 the NeXT runtime.
339 (generate_static_references): Likewise.
340
2fe5b7d1
GA
3412020-09-19 Sandra Loosemore <sandra@codesourcery.com>
342
343 * objc-act.c (objc_start_method_definition): Update to reflect
344 changes to break/continue state bookkeeping in C front end.
345
2aad20c0
GA
3462020-09-17 Patrick Palka <ppalka@redhat.com>
347
348 PR c/80076
349 * objc-gnu-runtime-abi-01.c
350 (gnu_runtime_abi_01_get_class_super_ref): Reduce indentation of
351 misleadingly indented return statements.
352 * objc-next-runtime-abi-01.c
353 (next_runtime_abi_01_get_class_super_ref): Likewise.
354
8d9254fc
JJ
3552020-01-01 Jakub Jelinek <jakub@redhat.com>
356
357 Update copyright years.
358
eb870e5e
IS
3592019-10-10 Iain Sandoe <iain@sandoe.co.uk>
360
361 * objc-next-metadata-tags.h (OCTI_RT_META_IVAR_REF): New.
362 (meta_ivar_ref): New.
363 * objc-next-runtime-abi-02.c
364 (next_runtime_abi_02_init_metadata_attributes): Create the
365 IVAR ref metadata identifier.
366 (ivar_offset_ref): Tag IVAR refs with specific metadata.
367
0ecf545c
MS
3682019-06-05 Martin Sebor <msebor@redhat.com>
369
370 * objc-act.c (objc_build_setter_call): Adjust quoting and hyphenation.
371 * objc-encoding.c (encode_gnu_bitfield): Same.
372
5219955c
IS
3732019-05-18 Iain Sandoe <iain@sandoe.co.uk>
374
ab20d992 375 * objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New.
5219955c
IS
376 (objc_global_trees): Add instance type and name.
377 (INSTANCE_TYPEDEF_NAME): New.
ab20d992 378 * objc-act.c (synth_module_prologue): Build decls for
5219955c
IS
379 objc_instancetype_type and objc_instancetype_name.
380
a9c697b8
MS
3812019-05-16 Martin Sebor <msebor@redhat.com>
382
ab20d992
JJ
383 * objc-act.c (objc_begin_catch_clause): Quote keywords and options
384 in diagnostics.
385 (objc_build_throw_stmt): Same.
386 (objc_finish_message_expr): Same.
387 (get_super_receiver): Same.
388 * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell
389 out "less than" in English./
390 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell
391 out "greater" in English.
a9c697b8 392
8a6c4d31
JJ
3932019-05-10 Jakub Jelinek <jakub@redhat.com>
394
395 PR pch/90326
396 * config-lang.in (gtfiles): Add c-family/c-format.c.
397
904f3daa
ML
3982019-04-05 Martin Liska <mliska@suse.cz>
399
2723350f 400 PR translation/89936
904f3daa
ML
401 * objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in
402 order to wrap keywords or arguments.
403 (objc_add_synthesize_declaration_for_property): Likewise.
404
67914693
SL
4052019-01-09 Sandra Loosemore <sandra@codesourcery.com>
406
407 PR other/16615
408
409 * objc-act.c: Mechanically replace "can not" with "cannot".
410
a5544970
JJ
4112019-01-01 Jakub Jelinek <jakub@redhat.com>
412
413 Update copyright years.
414
dfd7fdca
DM
4152018-12-19 David Malcolm <dmalcolm@redhat.com>
416
417 PR c++/43064
418 PR c++/43486
419 * objc-act.c (objc_maybe_build_component_ref): Strip any location
420 wrapper before checking for UOBJC_SUPER_decl and self_decl.
421 (objc_finish_message_expr): Strip any location wrapper.
422 (gen_declaration): Strip location wrappers from "w".
423
033eb567
DM
4242018-10-17 David Malcolm <dmalcolm@redhat.com>
425
426 * Make-lang.in (selftest-objc): New.
427
fffefbf8
ML
4282018-04-20 Martin Liska <mliska@suse.cz>
429
430 PR objc/85476
431 * objc-act.c (finish_class): Do not overflow string buffer.
432
85ec4feb
JJ
4332018-01-03 Jakub Jelinek <jakub@redhat.com>
434
435 Update copyright years.
436
5de73c05
JJ
4372017-11-30 Jakub Jelinek <jakub@redhat.com>
438
439 * objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead
440 of ;;.
441
025d57f0
MS
4422017-11-10 Martin Sebor <msebor@redhat.com>
443
444 PR c/81117
445 * objc-encoding.c (encode_type): Use memcpy instead of strncpy.
446
64a5912c
DM
4472017-10-31 David Malcolm <dmalcolm@redhat.com>
448
449 * objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use
450 UNKNOWN_LOCATION rather than 0.
451
f419fd1f
NS
4522017-10-17 Nathan Sidwell <nathan@acm.org>
453
454 * objc-act.c (objc_common_tree_size): Return size of TYPE nodes.
455
8e6cdc90
RS
4562017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
457
458 * objc-act.c (objc_decl_method_attributes): Use wi::to_wide when
459 operating on trees as wide_ints.
460
7d386d45
JJ
4612017-09-29 Jakub Jelinek <jakub@redhat.com>
462
463 * objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at
464 DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.
465
7a504f33
RS
4662017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
467 Alan Hayward <alan.hayward@arm.com>
468 David Sherwood <david.sherwood@arm.com>
469
470 * objc-encoding.c (encode_type): Use SCALAR_INT_TYPE_MODE.
471
b5f2d801
RS
4722017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
473 Alan Hayward <alan.hayward@arm.com>
474 David Sherwood <david.sherwood@arm.com>
475
476 * objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE
477 instead of TYPE_MODE.
478
4e10a5a7
RS
4792017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
480 Alan Hayward <alan.hayward@arm.com>
481 David Sherwood <david.sherwood@arm.com>
482
483 * objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in
484 case statements.
485
a32c8316
MP
4862017-08-09 Marek Polacek <polacek@redhat.com>
487
488 PR c/81417
489 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update
490 a call to build_conditional_expr.
491
314e6352
ML
4922017-08-08 Martin Liska <mliska@suse.cz>
493
494 * objc-gnu-runtime-abi-01.c: Include header files.
495 * objc-next-runtime-abi-01.c: Likewise.
496 * objc-next-runtime-abi-02.c: Likewise.
497
5aaa8fb4
NS
4982017-07-20 Nathan Sidwell <nathan@acm.org>
499
500 Remove TYPE_METHODS.
501 * objc-runtime-shared-support.c (build_ivar_list_initializer):
502 Don't presume first item is a FIELD_DECL.
503
20deef65
NS
5042017-07-19 Nathan Sidwell <nathan@acm.org>
505
506 * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use
507 TYPE_{MIN,MAX}_VALUE_RAW.
508
be742f1e
SL
5092017-05-16 Sylvestre Ledru <sylvestre@debian.org>
510
511 * objc-runtime-shared-support.c (build_module_descriptor):
512 Remove unnecessary conditional when building instance of
513 objc_module. CID 1406758
514
641da50a
NS
5152017-05-09 Nathan Sidwell <nathan@acm.org>
516
517 * objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use
518 pushdecl lang_hook.
519
0f2c4a8f
MS
5202017-05-04 Martin Sebor <msebor@redhat.com>
521
522 PR translation/80280
523 * objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing
524 quoting to directives.
525 * objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto.
526 * objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto.
527
cbe34bb5
JJ
5282017-01-01 Jakub Jelinek <jakub@redhat.com>
529
530 Update copyright years.
531
1ee62b92 5322016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
cbe34bb5
JJ
533 Richard Biener <rguenther@suse.de>
534
535 * config-lang.in (gtfiles): Add c/c-parser.h.
1ee62b92 536
bbfac6da
JJ
5372016-09-27 Jakub Jelinek <jakub@redhat.com>
538
539 * objc-act.c (continue_class): Remove break after return.
540 (objc_maybe_printable_name): Likewise.
541
191816a3
MP
5422016-08-12 Marek Polacek <polacek@redhat.com>
543
544 PR c/7652
545 * objc-encoding.c (encode_type): Add FALLTHRU.
546
6ffd47b7
DM
5472016-06-07 David Malcolm <dmalcolm@redhat.com>
548
549 * objc-act.c (objc_build_component_ref): Update call
550 to build_component_ref for added param, passing UNKNOWN_LOCATION.
551
fe37c7af
MM
5522016-04-18 Michael Matz <matz@suse.de>
553
554 * objc-act.c (objc_build_struct): Use SET_DECL_ALIGN.
555
9c582551
JJ
5562016-02-12 Jakub Jelinek <jakub@redhat.com>
557
558 * objc-act.c: Spelling fixes - behaviour -> behavior and
559 neighbour -> neighbor.
560 * objc-map.h: Likewise.
561
818ab71a
JJ
5622016-01-04 Jakub Jelinek <jakub@redhat.com>
563
564 Update copyright years.
565
69f293c9
AM
5662015-11-11 Andrew MacLeod <amacleod@redhat.com>
567
568 * objc-act.c: Remove unused header files.
569 * objc-encoding.c: Likewise.
570 * objc-gnu-runtime-abi-01.c: Likewise.
571 * objc-lang.c: Likewise.
572 * objc-map.c: Likewise.
573 * objc-next-runtime-abi-01.c: Likewise.
574 * objc-next-runtime-abi-02.c: Likewise.
575 * objc-runtime-shared-support.c: Likewise.
576
c240b3e0
AM
5772015-11-09 Alan Modra <amodra@gmail.com>
578
579 * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free
580 return value.
581
2adfab87
AM
5822015-10-29 Andrew MacLeod <amacleod@redhat.com>
583
584 * objc-lang.c: Reorder #include's and remove duplicates.
585 * objc-map.c: Likewise.
586
a79683d5
TS
5872015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
588
589 * objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h:
590 Remove useless typedefs.
591
026c3cfd
AH
5922015-07-12 Aldy Hernandez <aldyh@redhat.com>
593
594 * objc-map.h: Fix double word typos.
595
c7131fb2
AM
5962015-07-07 Andrew MacLeod <amacleod@redhat.com>
597
598 * objc-act.c: Adjust includes.
599 * objc-encoding.c: Likewise.
600 * objc-gnu-runtime-abi-01.c: Likewise.
601 * objc-lang.c: Likewise.
602 * objc-map.c: Likewise.
603 * objc-next-runtime-abi-01.c: Likewise.
604 * objc-next-runtime-abi-02.c: Likewise.
605 * objc-runtime-shared-support.c: Likewise.
606
f0889939
AM
6072015-06-25 Andrew MacLeod <amacleod@redhat.com>
608
609 * objc-act.c: Remove ipa-ref.h and plugin-api.h from include list.
610
ca752f39
RS
6112015-06-25 Richard Sandiford <richard.sandiford@arm.com>
612
613 * objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash
614 rather than ggc_hasher.
615
8d67ee55
RS
6162015-06-25 Richard Sandiford <richard.sandiford@arm.com>
617
618 * objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather
619 than typed_noop_remove. Remove redudant typedefs.
620
abb226c9
AM
6212015-06-17 Andrew MacLeod <amacleod@redhat.com>
622
623 * objc-act.c: Do not include input.h, line-map.h or is-a.h.
624 * objc-encoding.c: Likewise.
625 * objc-gnu-runtime-abi-01.c: Likewise.
626 * objc-lang.c: Likewise.
627 * objc-map.c: Likewise.
628 * objc-next-runtime-abi-01.c: Likewise.
629 * objc-next-runtime-abi-02.c: Likewise.
630 * objc-runtime-shared-support.c: Likewise.
631
13fdf2e2
AM
6322015-06-08 Andrew MacLeod <amacleod@redhat.com>
633
634 * objc-act.c : Adjust include files.
635 * objc-encoding.c : Likewise.
636 * objc-gnu-runtime-abi-01.c : Likewise.
637 * objc-lang.c : Likewise.
638 * objc-map.c : Likewise.
639 * objc-next-runtime-abi-01.c : Likewise.
640 * objc-next-runtime-abi-02.c : Likewise.
641 * objc-runtime-shared-support.c : Likewise.
642
02de9c16
AH
6432015-06-08 Aldy Hernandez <aldyh@redhat.com>
644
645 * objc-runtime-shared-support.c (build_module_descriptor): Set
646 TREE_USED on UOBJC_MODULES_decl.
647
d7438551
AH
6482015-06-05 Aldy Hernandez <aldyh@redhat.com>
649
650 * objc-act.c (objc_write_global_declarations): Adjust comment.
651 * objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set
652 TREE_USED bit.
653
ecb9f223
AM
6542015-06-04 Andrew MacLeod <amacleod@redhat.com>
655
656 * objc-act.c: Adjust includes for restructured coretypes.h.
657 * objc-encoding.c: Likewise.
658 * objc-gnu-runtime-abi-01.c: Likewise.
659 * objc-lang.c: Likewise.
660 * objc-map.c: Likewise.
661 * objc-next-runtime-abi-01.c: Likewise.
662 * objc-next-runtime-abi-02.c: Likewise.
663 * objc-runtime-shared-support.c: Likewise.
664
46bf0b0a
JW
6652015-04-27 Jim Wilson <jim.wilson@linaro.org>
666
667 * Make-lang.in (objc.mostlyclean): Remove cc1obj.
668
67f58944
TS
6692015-04-18 Trevor Saunders <tsaunders@mozilla.com>
670
671 * objc-act.c: Adjust for hash_table changes.
672
adfac8df
JJ
6732015-01-09 Michael Collison <michael.collison@linaro.org>
674
675 * objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
676 input.h, alias.h, symtab.h, options, fold-const.h,
677 wide-int.h, and inchash.h due to flattening of tree.h.
678 * objc-encoding.c: Ditto.
679 * objc-gnu-runtime-abi-01.c: Ditto.
680 * objc-lang.c: Ditto.
681 * objc-map.c: Ditto.
682 * objc-next-runtime-abi-01.c: Ditto.
683 * objc-next-runtime-abi-02.c: Ditto.
684 * objc-runtime-shared-support.c: Ditto.
685
5624e564
JJ
6862015-01-05 Jakub Jelinek <jakub@redhat.com>
687
688 Update copyright years.
689
c582198b
AM
6902014-10-28 Andrew MacLeod <amacleod@redhat.com>
691
692 * objc-act.c: Adjust include files.
693
19a9ba64
AM
6942014-10-22 Alan Modra <amodra@gmail.com>
695
696 * objc-encoding.c (encode_array): Cast result of obstack_base.
697 (encode_type): Likewise.
698
83685514
AM
6992014-10-16 Andrew MacLeod <amacleod@redhat.com>
700
701 * objc-act.c: Adjust include files.
702
2a22f99c
TS
7032014-10-12 Trevor Saunders <tsaunders@mozilla.com>
704
705 * objc-act.c: use hash_table instead of hashtab.
706
717c4789
JJ
7072014-09-15 Jakub Jelinek <jakub@redhat.com>
708
709 * Make-lang.in (check_objc_parallelize): Change to just an upper
710 bound number.
711
ad115a3c
JH
7122014-07-14 Jan Hubicka <hubicka@ucw.cz>
713
714 * objc-act.c (objc_common_tree_size): New function.
715 * objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type
716 checking.
717 (INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro.
718 (METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS,
19a9ba64 719 METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING,
ad115a3c
JH
720 METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking.
721 (METHOD_SEL_ARGS): Use decl_common.size instead of
722 decl_non_common.result.
723 (PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME,
724 PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS,
725 PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER,
726 PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking.
727 (objc_common_tree_size): Declare.
728 * objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro.
729
ba429440
JH
7302014-06-24 Jan Hubicka <hubicka@ucw.cz>
731
732 * objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants,
733 too.
734
c203e8a7
TS
7352014-06-24 Trevor Saunders <tsaunders@mozilla.com>
736
737 * objc-act.c: Adjust.
738
766090c2
TS
7392014-05-17 Trevor Saunders <tsaunders@mozilla.com>
740
741 * objc-act.c (objc_build_string_object): Adjust.
742 (continue_class): Likewise.
743 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
744 * objc-map.c (objc_map_alloc_ggc): Likewise.
745 (objc_map_private_resize): Likewise.
746 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init):
747 Likewise.
748 (hash_name_enter): Likewise.
749
1d60af08
KZ
7502014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
751 Mike Stump <mikestump@comcast.net>
752 Richard Sandiford <rdsandiford@googlemail.com>
753
754 * objc-act.c: Include wide-int.h.
755 (objc_decl_method_attributes): Use wide-int interfaces.
756
dcaaa5a0
DP
7572014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
758
0e93c3dc 759 PR objc/56044
dcaaa5a0
DP
760 * objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add.
761 (objc_init): Initialize objc_default_ivar_visibility.
762 (objc_start_class_interface): Use objc_default_ivar_visibility.
763 (objc_start_class_implementation): Likewise.
764 (objc_lookup_ivar): Implement -fno-local-ivars.
765
81e5eca8
MP
7662014-01-31 Marek Polacek <polacek@redhat.com>
767
768 PR c/59963
769 * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to
770 build_function_call_vec.
771 (finish_catch): Likewise.
772 (next_runtime_abi_02_get_class_reference): Likewise.
773 * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to
774 build_function_call_vec.
775 (build_throw_stmt): Likewise.
776 * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to
777 build_function_call_vec.
778 (build_throw_stmt): Likewise.
779
23a5b65a
RS
7802014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
781
782 Update copyright years
783
296674db
JM
7842013-12-04 Joseph Myers <joseph@codesourcery.com>
785
786 PR c/52023
787 * objc-act.c (objc_synthesize_getter): Update calls to
788 c_sizeof_or_alignof_type.
789
2fb9a547
AM
7902013-11-22 Andrew MacLeod <amacleod@redhat.com>
791
ab20d992 792 * objc-act.c: Add required include files from gimple.h.
2fb9a547 793
ae7e9ddd
RS
7942013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
795
796 * objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi
797 throughout.
798
9439e9a1
RS
7992013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
800
801 * objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with
802 tree_to_shwi throughout.
803
18f429e2
AM
8042013-11-14 Andrew MacLeod <amacleod@redhat.com>
805
806 * objc-act.c: Include only gimplify.h and gimple.h as needed.
807
d8a2d370
DN
8082013-11-14 Diego Novillo <dnovillo@google.com>
809
810 * objc-act.c: Include stringpool.h.
811 Include stor-layout.h.
812 Include attribs.h.
813 * objc-encoding.c: Include stringpool.h.
814 Include stor-layout.h.
815 * objc-gnu-runtime-abi-01.c: Include stringpool.h.
816 * objc-next-runtime-abi-01.c:
817 Include stringpool.h.
818 * objc-next-runtime-abi-02.c: Include stringpool.h.
819 * objc-runtime-shared-support.c: Include stringpool.h.
820
45b0be94
AM
8212013-11-12 Andrew MacLeod <amacleod@redhat.com>
822
18f429e2 823 * objc-act.c: Include gimplify.h.
45b0be94 824
267bac10
JM
8252013-11-07 Andrew MacLeod <amacleod@redhat.com>
826
827 * objc-act.c (objc_push_parm): Handle atomic qualifier.
828
26d78376
TT
8292013-09-25 Tom Tromey <tromey@redhat.com>
830
831 * Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o)
832 (objc/objc-runtime-shared-support.o)
833 (objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o)
834 (objc/objc-next-runtime-abi-02.o, objc/objc-act.o)
835 (objc/objc-encoding.o, objc/objc-map.o): Remove.
836
fb5610fb
IS
8372013-09-14 Iain Sandoe <iain@codesourcery.com>
838
839 PR target/48094
840 * objc-next-runtime-abi-01.c (generate_objc_image_info): Remove.
841 (objc_generate_v1_next_metadata): Remove generation of ImageInfo.
842 * objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove.
843 (objc_generate_v2_next_metadata): Remove generation of ImageInfo.
844
587ae1e3
OB
8452013-07-21 OndÅ\99ej Bílka <neleai@seznam.cz>
846
847 * objc-act.c: Fix typos.
848 * objc-encoding.c: Likewise.
849 * objc-gnu-runtime-abi-01.c: Likewise.
850 * objc-next-runtime-abi-01.c: Likewise.
851 * objc-next-runtime-abi-02.c: Likewise.
852
5951f9df
PC
8532013-05-22 Paolo Carlini <paolo.carlini@oracle.com>
854
855 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call):
856 Fix build_conditional_expr call.
857
427b248d
JM
8582013-05-16 Jason Merrill <jason@redhat.com>
859
860 * Make-lang.in (cc1obj$(exeext)): Use link mutex.
861
6e1aa848
DN
8622012-11-20 Diego Novillo <dnovillo@google.com>
863
864 * objc-act.c: Replace all vec<T, A>() initializers with vNULL.
865
9771b263
DN
8662012-11-16 Diego Novillo <dnovillo@google.com>
867
868 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
869
870 * objc-act.c: Use new vec API in vec.h.
871 * objc-act.h: Likewise.
872 * objc-gnu-runtime-abi-01.c: Likewise.
873 * objc-next-runtime-abi-01.c: Likewise.
874 * objc-next-runtime-abi-02.c: Likewise.
875 * objc-runtime-hooks.h: Likewise.
876 * objc-runtime-shared-support.c: Likewise.
877 * objc-runtime-shared-support.h: Likewise.
878
703c8606
LC
8792012-10-01 Lawrence Crowl <crowl@google.com>
880
881 * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o.
882 (objc-act.o): Add dependence on hash-table.h.
883 * objc-act.c (objc_detect_field_duplicates): Change to new type-safe
884 hash table.
885
d4a10d0a
SB
8862012-06-29 Steven Bosscher <steven@gcc.gnu.org>
887
888 * Make-ang.in: Adjust for move of C front-end files.
889 * config-lang.in: Likewise.
890 * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h
891 and c-lang.h in c/.
892 * objc-runtime-shared-support.c: Likewise.
893 * objc-next-runtime-abi-01.c: Likewise.
894 * objc-next-runtime-abi-02.c: Likewise.
895 * objc-gnu-runtime-abi-01.c: Likewise.
896 * objc-act.c: Likewise.
897 * objc-lang.c: Likewise.
898
70f42967
SB
8992012-06-19 Steven Bosscher <steven@gcc.gnu.org>
900
901 * objc-next-runtime-abi-01.c: Do not include tm.h and output.h.
902 Include c-family/c-target.h.
903 (handle_next_class_ref): Rewrite to emit top-level asm statements.
904 (handle_next_impent): Likewise.
ab20d992 905 * Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o.
70f42967 906
be7a421e
SB
9072012-05-31 Steven Bosscher <steven@gcc.gnu.org>
908
909 * objc-act.c: Do not include output.h.
910
d7faa110
PC
9112012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
912
913 PR objc++/53388
914 * objc-act.c (objc_get_class_reference, objc_build_message_expr):
915 Use build_min_nt_loc.
916
ead84f73
JH
9172012-04-20 Jan Hubicka <jh@suse.cz>
918
d7faa110 919 * objc-act.c (mark_referenced_methods); Use
ead84f73
JH
920 cgraph_mark_force_output_node.
921
05e0ab9a
SB
9222012-03-21 Steven Bosscher <steven@gcc.gnu.org>
923
924 * objc-act (objc_build_ivar_assignment): Do not call assemble_external.
925 (objc_build_global_assignment): Likewise.
926 (objc_build_strong_cast_assignment): Likewise.
927 * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external.
928 * objc-next-runtime-abi-02.c: Likewise.
929 * objc-gnu-runtime-abi-01.c: Likewise.
930
09a70a2c
JM
9312012-03-05 Jason Merrill <jason@redhat.com>
932
933 * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't
934 call _stat functions without MEM_STAT_INFO.
935
76d29410
IS
9362011-11-12 Iain Sandoe <iains@gcc.gnu.org>
937
938 * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality
939 for Objective-C m32.
940
f439d6ba
IS
9412011-10-29 Iain Sandoe <iains@gcc.gnu.org>
942
943 PR target/47997
944 * objc-act.c (objc_build_string_object): Remove redundant second
945 call to fix_string_type (). Add a checking assert that we are,
946 indeed, passed a STRING_CST.
947
5b6b2942
MP
9482011-10-18 Mikael Pettersson <mikpe@it.uu.se>
949
950 PR objc/50743
951 * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
952 size_t to avoid signed/unsigned
953 comparison.
954 (insert_method_into_method_map): Likewise.
955
3cc2dd4b
NP
9562011-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
957
958 * objc-map.h: New file.
19a9ba64 959 * objc-map.c: New file.
3cc2dd4b
NP
960 * config-lang.in (gtfiles): Added objc-map.h.
961 * Make-lang.in (OBJC_OBJS): Added objc-map.o.
962 (objc/objc-map.o): New rule.
963 (objc/objc-act.o): Depend on objc/objc-map.h.
964 * objc-next-runtime-abi-02.c: Added a TODO comment.
965 * objc-act.c: Include objc-map.h.
966 (nst_method_hash_list, cls_method_hash_list): Removed.
967 (instance_method_map, class_method_map): New.
968 (cls_name_hash_list, als_name_hash_list): Removed.
969 (class_name_map, alias_name_map): Removed.
970 (ivar_offset_hash_list): Removed.
971 (hash_class_name_enter, hash_class_name_lookup, hash_enter,
972 hash_lookup, hash_add_attr, add_method_to_hash_list): Removed.
973 (interface_hash_init): New.
974 (objc_init): Call interface_hash_init.
975 (objc_write_global_declarations): Iterate over class_method_map
976 and instance_method_map instead of cls_method_hash_list and
977 nst_method_hash_list.
978 (objc_declare_alias): Use alias_name_map instead of
979 cls_name_hash_list.
980 (objc_is_class_name): Use class_name_map and alias_name_map
981 instead of cls_name_hash_list and als_name_hash_list.
982 (interface_tuple, interface_htab, hash_interface, eq_interface):
983 Removed.
984 (interface_map): New.
985 (add_class): Renamed to add_interface. Use interface_map instead
986 of interface_htab.
987 (lookup_interface): Use interface_map instead of interface_htab.
988 (check_duplicates): Changed first argument to be a tree,
989 potentially a TREE_VEC, instead of a hash. Changed implementation
990 to match.
991 (lookup_method_in_hash_lists): Use class_method_map and
992 instance_method_map instead of cls_method_hash_list and
993 nst_method_hash_list.
994 (objc_build_selector_expr): Likewise.
995 (hash_func): Removed.
996 (hash_init): Create instance_method_map, class_method_map,
997 class_name_map, and alias_name_map. Do not create
998 nst_method_hash_list, cls_method_hash_list, cls_name_hash_list,
999 als_name_hash_list, and ivar_offset_hash_list.
1000 (insert_method_into_method_map): New.
1001 (objc_add_method): Use insert_method_into_method_map instead of
1002 add_method_to_hash_list.
1003 (start_class): Call add_interface instead of add_class.
1004 * objc-act.h (cls_name_hash_list, als_name_hash_list,
1005 nst_method_hash_list, cls_method_hash_list): Removed.
1006
e79983f4
MM
10072011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1008
1009 * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old
1010 interface with two parallel arrays to hold standard builtin
1011 declarations, and replace it with a function based interface that
1012 can support creating builtins on the fly in the future. Change
1013 all uses, and poison the old names. Make sure 0 is not a
1014 legitimate builtin index.
1015 * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto.
1016 * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto.
1017
5d49b6a7
RG
10182011-07-19 Richard Guenther <rguenther@suse.de>
1019
1020 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
1021 Use fold_build_pointer_plus.
1022 (objc2_build_ehtype_initializer): Likewise.
1023
a8f18c40
NP
10242011-07-11 Nicola Pero <nicola.pero@meta-innovation.com>
1025
1026 * objc-encoding.h (obstack.h): Do not include.
1027 (util_obstack, util_firstobj): Do not declare.
1028 (encode_field_decl): Updated prototype to return a tree and take a
1029 single tree argument. Updated comments.
1030 * objc-encoding.c (util_obstack, util_firstobj): Made static.
1031 (objc_encoding_init): New.
1032 (encode_field_decl): Existing function renamed to encode_field and
1033 made static. New encode_field_decl wrapper function added.
1034 (encode_aggregate_fields): Update call to encode_field_decl to
1035 call encode_field.
1036 * objc-next-runtime-abi-02.c (obstack.h): Do not include.
1037 (util_obstack, util_firstobj): Do not declare.
1038 (build_v2_ivar_list_initializer): Updated call to
1039 encode_field_decl.
1040 * objc-runtime-shared-support.c (obstack.h): Do not include.
1041 (util_obstack, util_firstobj): Do not declare.
1042 (build_ivar_list_initializer): Updated call to encode_field_decl.
1043 * objc-act.c (objc_init): Use objc_encoding_init.
1044 * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
1045 on OBSTACK_H.
1046 (objc/objc-gnu-runtime-abi-01.o): Likewise.
1047 (objc/objc-next-runtime-abi-01.o): Likewise.
1048 (objc/objc-next-runtime-abi-02.o): Likewise.
1049 (objc/objc-act.o): Likewise.
19a9ba64 1050
f027ee7c
NP
10512011-07-04 Nicola Pero <nicola.pero@meta-innovation.com>
1052
1053 Refactored encoding code into objc-encoding.h and objc-encoding.c.
1054 * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers,
1055 encode_type, generating_instance_variables, objc_method_parm_type,
1056 objc_encoded_type_size, encode_method_prototype,
1057 objc_build_encode_expr, pointee_is_readonly, encode_pointer,
1058 encode_array, encode_vector, encode_aggregate_fields,
1059 encode_aggregate_within, encode_next_bitfield,
1060 encode_gnu_bitfield, encode_field_decl,
1061 objc_v2_encode_property_attr): Moved to objc-encoding.h and
1062 objc-encoding.c. No change in the actual code.
1063 Include objc-encoding.h.
1064 (objc_init): Added TODO.
1065 (objc_build_property_setter_name): Made non-static so it can be
1066 called from objc-encoding.c.
1067 * objc-act.h (OBJC_ENCODE_INLINE_DEFS,
1068 OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h.
1069 * objc-runtime-shared-support.h (objc_v2_encode_property_attr,
1070 encode_method_prototype, encode_field_decl,
19a9ba64 1071 generating_instance_variables): Moved to objc-encoding.h.
f027ee7c
NP
1072 (objc_build_property_setter_name): Declare.
1073 * objc-encoding.c: New.
1074 * objc-encoding.h: New.
1075 * objc-gnu-runtime-abi-01.c: Include objc-encoding.h.
1076 * objc-next-runtime-abi-01.c: Likewise.
19a9ba64 1077 * objc-next-runtime-abi-02.c: Likewise.
f027ee7c
NP
1078 * objc-runtime-shared-support.c: Likewise.
1079 * Make-lang.in (OBJC_OBJS): Added objc-encoding.o.
1080 (objc/objc-lang.o): Reordered dependencies.
1081 (objc/objc-runtime-shared-support.o): Reordered dependencies.
1082 Added dependencies on objc-encoding.h and on $(GGC_H),
1083 $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h.
1084 (objc/objc-gnu-runtime-abi-01.o): Likewise.
1085 (objc/objc-next-runtime-abi-01.o): Likewise.
1086 (objc/objc-next-runtime-abi-02.o): Likewise.
1087 (objc/objc-act.o): Reordered dependencies. Added dependency on
1088 objc-encoding.h.
1089 (objc/objc-encoding.o): New rule.
1090
1091 * objc-encoding.c (encode_type): Use "%<%T%>" format when printing
1092 warning "unknown type %<%T%> found during Objective-C encoding"
1093 instead of using gen_type_name.
19a9ba64 1094
419b55d0
NP
10952011-06-05 Nicola Pero <nicola.pero@meta-innovation.com>
1096
1097 * objc-act.c (receiver_is_class_object): Expanded comment.
1098 (objc_finish_message_expr): Likewise.
1099
bf79cedb
NP
11002011-06-02 Nicola Pero <nicola.pero@meta-innovation.com>
1101
1102 PR objc/48539
1103 * objc-act.c (objc_finish_message_expr): Warn if messaging a class
1104 that was only declared using @class without an @interface. Warn
1105 if messaging an instance of a class that was only declared using
1106 @class without an @interface, unless the receiver was also typed
1107 with a protocol list.
1108
98ab0248
NP
11092011-06-01 Nicola Pero <nicola.pero@meta-innovation.com>
1110
1111 * objc-act.c (objc_decl_method_attributes): Implement nonnull
1112 attribute for Objective-C methods.
1113
43e4226b
NP
11142011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
1115
1116 * config-lang.in (gtfiles): Updated order of files to fix building
1117 when the gcc/cp directory is missing, as in the case of some
1118 release tarballs.
1119
769b55b2
NF
11202011-05-20 Nathan Froyd <froydnj@codesourcery.com>
1121
1122 * objc-act.c (objc_compare_types): Use function_args_iterator
1123 instead of TYPE_ARG_TYPES to compare function argument types.
1124
e6e9475b
TM
11252011-05-13 Toon Moene <toon@moene.org>
1126
1127 * objc-next-runtime-abi-02.c (newabi_append_ro):
1128 Add const qualifier to constant variable pointer declaration.
1129
51545682
NF
11302011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1131
1132 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
1133 (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
1134 (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.
1135
6174da1b
NF
11362011-05-05 Nathan Froyd <froydnj@codesourcery.com>
1137
1138 * objc-runtime-shared-support.h (get_arg_type_list): Delete.
1139 (build_function_type_for_method): Declare.
1140 * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change
1141 type of get_arg_type_base_list field.
1142 * objc-act.h (OBJC_VOID_AT_END): Delete.
1143 * objc-act.c (get_arg_type_list): Delete.
1144 (build_function_type_for_method): New function.
1145 (objc_decl_method_attributes): Call build_function_type_for_method.
1146 (really_start_method): Likewise.
1147 * objc-gnu-runtime-abi-01.c
1148 (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and
1149 adjust function accordingly. Update header comment.
1150 (build_objc_method_call): Call build_function_type_for_method.
1151 * objc-next-runtime-abi-01.c
1152 (next_runtime_abi_01_get_type_arg_list_base): Change prototype and
1153 adjust function accordingly. Update header comment.
1154 (build_objc_method_call): Call build_function_type_for_method.
1155 * objc-next-runtime-abi-02.c
1156 (next_runtime_abi_02_get_type_arg_list_base): Change prototype and
1157 adjust function accordingly. Update header comment.
1158 (objc_copy_to_temp_side_effect_params): Take fntype instead of a
1159 typelist. Use function_args_iterator for traversing fntype.
1160 (build_v2_build_objc_method_call): Adjust call to it.
1161 Call build_function_type_for_method
1162
a04a722b
JM
11632011-05-05 Joseph Myers <joseph@codesourcery.com>
1164
1165 * objc-act.c (objc_start_method_definition): Add parameter expr.
1166 Update call to start_method_def.
1167 (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter,
1168 objc_synthesize_setter) Update calls to
1169 objc_start_method_definition.
1170 (objc_get_parm_info): Add parameter expr. Update call to
1171 get_parm_info.
1172 (start_method_def): Add parameter expr. Update call to
1173 objc_get_parm_info.
1174 * objc-gnu-runtime-abi-01.c (build_module_initializer_routine):
1175 Update call to objc_get_parm_info.
1176 * objc-runtime-shared-support.h (objc_get_parm_info): Add extra
1177 parameter.
1178
3982d356
JM
11792011-04-26 Jason Merrill <jason@redhat.com>
1180
1181 * objc-act.c (objc_fold_objc_type_ref): Remove.
1182 * objc-act.h: Remove prototype.
1183
491add72
NF
11842011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1185
1186 * objc-act.c (synth_module_prologue): Call build_function_type_list
1187 instead of build_function_type.
1188 * objc-next-runtime-abi-02.c (next_runtime_02_initialize):
1189 Likewise.
1190
5678a5a3
NP
11912011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
1192
1193 * objc-act.c (ivar_of_class): New.
1194 (objc_is_public): Use ivar_of_class.
1195
0dc33c3c
NP
11962011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
1197
1198 * objc-act.c (objc_get_interface_ivars): Removed.
1199 (objc_detect_field_duplicates): New.
1200 (hash_instance_variable): New.
1201 (eq_instance_variable): New.
944fb799 1202
c59633d9
NP
12032011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
1204
1205 * objc-act.c (objc_declare_protocols): Renamed to
1206 objc_declare_protocol. Changed first argument to be an identifier
1207 instead of a tree chain of identifiers, so that callers don't have
1208 to create a temporary tree chain.
1209
32dabdaf
NP
12102011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
1211
1212 * objc-act.c (objc_declare_class): Changed to take a single
1213 identifier as argument instead of a tree list. This means callers
1214 don't have to build temporary tree lists to call this function.
1215 (synth_module_prologue): Updated calls to objc_declare_class.
944fb799 1216
1328049a
NP
12172011-04-13 Nicola Pero <nicola.pero@meta-innovation.com>
1218
1219 * objc-act.c (build_keyword_selector): Use get_identifier_with_length
1220 instead of get_identifier.
1221
81f653d6
NF
12222011-04-12 Nathan Froyd <froydnj@codesourcery.com>
1223
1224 * objc-lang.c (objc_init_ts): Move code for this function...
1225 * objc-act.c (objc_common_init_ts): ...here. Define.
1226 * objc-act.h (objc_common_init_ts): Declare.
1227
eb345401
NP
12282011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
1229
1230 * objc-act.c (objc_build_message_expr): Accept two arguments
1231 instead of one so that callers can simply pass the arguments
1232 without having to create a temporary chain to hold them.
1233
dc2dc512
NP
12342011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
1235
1236 * objc-act.c (comp_proto_with_proto): Do not create and use
1237 inefficient temporary argument lists. Compare the arguments
1238 directly. (match_proto_with_proto): Removed; incorporated into
1239 comp_proto_with_proto ().
944fb799 1240
cf3caeaf
NP
12412011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
1242
1243 * objc-act.c (printable_ivar_name): New.
1244 (add_instance_variable): Call printable_ivar_name() when an error
1245 message needs to be printed. Do not prepare the instance variable
1246 for printing unless there is an actual error.
1247
0d8a2528
NP
12482011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
1249
1250 * objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
1251 avoid calling identifier_global_value() multiple times.
1252
a358e188
MJ
12532011-04-12 Martin Jambor <mjambor@suse.cz>
1254
1255 * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
1256 instead of cgraph_node.
1257
acce4e77
JM
12582011-04-06 Joseph Myers <joseph@codesourcery.com>
1259
1260 * objc-act.c: Include c-target.h instead of target.h.
1261 * Make-lang.in (objc/objc-act.o): Update dependencies.
1262
787a8c0f
JM
12632011-03-06 Joseph Myers <joseph@codesourcery.com>
1264
1265 * lang-specs.h: Match -save-temps* instead of -save-temps.
1266
39113df1
NP
12672011-02-26 Nicola Pero <nicola.pero@meta-innovation.com>
1268
1269 * objc-act.c (objc_v2_encode_prop_attr): Rewritten.
944fb799 1270
79d82252
NP
12712011-02-23 Nicola Pero <nicola.pero@meta-innovation.com>
1272
1273 * objc-act.c (build_private_template): Do not copy the
1274 CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
1275 * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
1276 TYPE_LANG_SLOT_0.
1277
4597541a
NP
12782011-02-22 Nicola Pero <nicola.pero@meta-innovation.com>
1279
1280 PR objc/47832
1281 * objc-act.c (flexible_array_type_p): New.
1282 (add_instance_variable): Produce an error if an instance variable
1283 uses flexible array members.
1284 (encode_array): Do not emit an error if encoding a flexible array
1285 type while generating instance variables.
1286
d277ec6e
MS
12872011-02-21 Mike Stump <mikestump@comcast.net>
1288
39113df1
NP
1289 * Make-lang.in (check_objc_parallelize): Refine for 4 processor
1290 machines.
d277ec6e 1291
a3e5390d 12922011-02-20 Nicola Pero <nicola.pero@meta-innovation.com>
6d549148 1293
4597541a
NP
1294 * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed
1295 usage of padding fields. Do not include tm.h.
1296 * objc-act.c (objc_write_global_declaration): Set input_location
1297 to BUILTINS_LOCATION while generating runtime metadata.
6d549148 1298
a3e5390d 12992011-01-20 Nicola Pero <nicola.pero@meta-innovation.com>
3890ce93
NP
1300
1301 PR objc/47784
1302 * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
1303 effects, do not use a temporary variable.
1304
c2beaa02
NP
13052011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
1306
1307 * objc-next-runtime-abi-01.c: Updated comments.
1308 * objc-next-runtime-abi-02.c: Same.
1309
6da97b7b
NP
13102011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
1311
1312 * objc-act.c (objc_init, generate_struct_by_value_array): Updated
1313 comments.
1314
d4c433f9
NP
13152011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
1316
1317 * objc-act.c: Updated comments.
1318 * objc-next-runtime-abi-02.c: Same.
1319 * objc-runtime-shared-support.c: Same.
1320 * objc-runtime-hooks.h: Same.
1321 * objc-act.h: Same.
1322 * objc-gnu-runtime-abi-01.c: Same.
1323
475b5d2a
NP
13242011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
1325
1326 * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
1327 not generate metadata if there is nothing to put into it.
1328
d764a8e6
IS
13292011-02-17 Iain Sandoe <iains@gcc.gnu.org>
1330
1331 * config-lang.in (gtfiles): Updated.
1332 * Make-lang.in (START_HDRS): New.
1333 (OBJC_OBJS): Added new object files.
1334 (objc/objc-act.o): Updated prerequisites.
1335 (objc/objc-lang.o): Updated prerequisites.
1336 (objc/objc-runtime-shared-support.o): New.
1337 (objc/objc-gnu-runtime-abi-01.o): New.
1338 (objc/objc-next-runtime-abi-01.o): New.
1339 (objc/objc-next-runtime-abi-02.o): New.
1340 * objc-runtime-hooks.h: New.
1341 * objc-runtime-shared-support.h: New.
1342 * objc-runtime-shared-support.c: New.
1343 * objc-gnu-runtime-abi-01.c: New.
1344 * objc-next-metadata-tags.h: New.
1345 * objc-next-runtime-abi-01.c: New.
1346 * objc-next-runtime-abi-02.c: New.
1347 * objc-lang.c: Include c-lang.h.
1348 (LANG_HOOKS_EH_PERSONALITY): Removed.
1349 * objc-act.h: Moved many declarations and code from objc-act.c
1350 into objc-act.h to make them available outside objc-act.c.
1351 (objc_eh_runtime_type): Removed.
1352 (objc_eh_personality): Removed.
1353 (CLASS_HAS_EXCEPTION_ATTR): New.
1354 (OCTI_SUPER_SUPERFIELD_ID): New.
1355 (OCTI_V1_PROP_LIST_TEMPL): New.
1356 (OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
1357 (super_superclassfield_id): New.
1358 (objc_prop_list_ptr): New.
1359 (prop_names_attr_chain): New.
1360 * objc-act.c: Include new runtime headers. Moved many #defines
1361 and declarations into objc-act.h and
1362 objc-runtime-shared-support.h. Made some corresponding functions
1363 non-static, and moved some others into
1364 objc-runtime-shared-support.c. Moved metadata generation code
1365 into the new runtime hook files.
1366 (ivar_offset_hash_list): New.
1367 (objc_init): Call generate_struct_value_by_array() before doing
1368 any runtime initialization. Create the appropriate runtime hook
1369 structures.
1370 (init_objc): Removed. Code moved directly into objc_init.
1371 (finish_objc): Removed. Code moved directly into
1372 objc_write_global_declarations.
1373 (objc_write_global_declarations): Do the warn_selector checks
1374 before emitting metadata. Use a runtime hook to emit the
1375 metadata. Do not emit the metadata or do -gen-decls processing if
1376 -fsyntax-only or we are producing a PCH.
1377 (build_objc_exception_stuff): Renamed to
1378 build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from
1379 objc_exception_throw_decl.
1380 (synth_module_prologue): Call runtime initialize hook instead of
1381 building runtime declarations here. Use the
1382 default_constant_string_class_name runtime hook to set the
1383 constant string class name.
1384 (objc_build_string_object): Call the setup_const_string_class_decl
1385 runtime hook instead of setup_string_decl. Call the
1386 build_const_string_constructor runtime hook instead of building
1387 the string object here.
1388 (get_objc_string_decl): Added prop_names_attr case. Removed
1389 gcc_unreachable() at the end.
1390 (objc_begin_catch_clause): Distinguish between @catch (...) and
1391 @catch (id x). Call the begin_catch runtime hook instead of
1392 building the CATCH_EXPR here.
1393 (objc_finish_catch_clause): Call the finish_catch runtime hook
1394 instead of adding the catch here.
1395 (objc_finish_try_stmt): Call the finish_try_stmt runtime hook
1396 instead of doing it here.
1397 (objc_build_throw_stmt): Bail out early for error_mark_node. Call
1398 the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
1399 Call the build_throw_stmt runtime hook instead of building the
1400 throw call here.
1401 (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
1402 as well.
1403 (get_arg_type_list): Call the get_arg_type_list_base runtime hook
1404 instead of building the list of arguments here.
1405 (receiver_is_class_object): Call the receiver_is_class_object
1406 runtime hook instead of doing the check here. Call the
1407 tag_getclass runtime hook instead of using TAG_GETCLASS.
1408 (objc_finish_message_expr): Call the build_objc_method_call
1409 runtime hook.
1410 (objc_build_protocol_expr): Call the get_protocol_reference
1411 runtime hook.
1412 (objc_build_selector_expr): Call the build_selector_reference
1413 runtime hook.
1414 (build_ivar_reference): Call the build_ivar_reference runtime
1415 hook.
1416 (hash_init): Set up ivar_offset_hash_list.
1417 (start_class): Recognize the objc_exception attribute and store
1418 it.
1419 (continue_class): Use the class_decl and metaclass_decl runtime
1420 hooks.
1421 (build_objc_property_accessor_helpers): Renamed to
1422 build_common_objc_property_accessor_helpers. Do not build
1423 objc_copyStruct_decl, objc_getPropertyStruct_decl and
1424 objc_setPropertyStruct_decl.
1425 (objc_synthesize_getter): Check what struct setter/getter helper
1426 is available instead of checking the type of runtime.
1427 (get_super_receiver): Use the super_superclassfield_ident runtime
1428 hook. Added assert. Use the get_class_super_ref and
1429 get_category_super_ref runtime hooks.
1430 (objc_v2_encode_prop_attr): New.
944fb799 1431
f0fc7be5
NP
14322011-01-17 Nicola Pero <nicola.pero@meta-innovation.com>
1433
1434 PR objc/47314
1435 * objc-act.c (finish_objc): When calling check_duplicates to check
1436 duplicated instance methods, set 'is_class' to 0, not 1.
1437
2d66a8d3
BE
14382011-01-14 Ben Elliston <bje@au.ibm.com>
1439
dc0d2dae 1440 PR 19162
2d66a8d3
BE
1441 * objc-act.c (generate_struct_by_value_array): Do not output a
1442 definition for struct_forward_array.
1443
5d19c150
IS
14442011-01-08 Iain Sandoe <iains@gcc.gnu.org>
1445
1446 * objc-act.c (objc_finish_foreach_loop): Mark collection expression
1447 as read.
1448
7dfef584
L
14492011-01-02 H.J. Lu <hongjiu.lu@intel.com>
1450
1451 * objc-act.c (check_that_protocol_is_defined): Fix a typo.
1452
ca2ed3ba
NP
14532011-01-02 Nicola Pero <nicola.pero@meta-innovation.com>
1454
1455 * objc-act.c (check_that_protocol_is_defined): New.
1456 (lookup_protocol): Call check_that_protocol_is_defined.
1457
27e09ff9
NP
14582010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
1459
1460 * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
1461 lists. Check them two-ways to fix comparisons when one protocol
1462 implements the other one, or when one list contains duplicated
1463 protocols.
1464
223706ad
NP
14652010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
1466
1467 * objc-act.c (objc_add_method): When emitting an error because a
1468 method with the same name but conflicting types is found in the
1469 same class or category interface, print a note with the location
1470 of the original method. Also, improved the error message to
1471 clearly state that the conflict is due to conflicting types, and
1472 produce it for protocols as well. Emit an error if two identical
1473 methods are declared in a protocol, but one is @required and the
22199294 1474 other one is @optional.
223706ad
NP
1475
14762010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
fd3ce292
NP
1477
1478 * objc-act.c (start_class): Warn when a class attribute is
1479 ignored.
1480 (objc_declare_protocols): Warn when a protocol attribute in a
1481 protocol forward-declaration is ignored.
1482 (start_protocol): Warn when a protocol attribute is ignored.
1483
445eb4c6
NP
14842010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
1485
1486 * objc-act.c (objc_set_method_opt): Tidy up error messages. In
1487 particular, explicitly mention whether the error is due to the
1488 @optional or @required keyword instead of mentioning
1489 "@optional/@required".
1490
37153b1e
NP
14912010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
1492
1493 PR objc/47118
1494 * objc-act.c (objc_build_synchronized): Check the argument of
1495 @synchronized and emit an appropriate error if it is not a valid
1496 Objective-C object. Deal gracefully with that case. Updated
1497 comments and variable names.
1498
b4f588c4
NP
14992010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
1500
1501 PR objc/47075
1502 * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
1503 * objc-tree.def (PROPERTY_REF): Increased the number of operands
1504 from 3 to 4.
1505 * objc-act.c (objc_finish_message_expr): Added optional argument
1506 allowing to return the deprecated method prototype for deprecated
1507 methods, instead of immediately emitting the deprecation warning.
1508 (objc_maybe_build_component_ref): Do not warn for a deprecated
1509 property. When building the getter call, get the deprecated
1510 method prototype from objc_finish_message_expr() and put it into
1511 the PROPERTY_REF.
1512 (objc_build_class_component_ref): Same change.
1513 (finish_class): Mark the getter and setter as deprecated if they
1514 are generated from a deprecated property.
1515 (objc_gimplify_property_ref): If the getter is deprecated, emit a
1516 deprecation warning.
1517 (objc_build_setter_call, objc_build_message_expr,
1518 objc_finish_foreach_loop): Updated call to
1519 objc_finish_message_expr.
944fb799 1520
db0581ae
NP
15212010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
1522
1523 PR objc/47076
1524 * objc-act.c (lookup_protocol): Added 'definition_required'
1525 argument. If 'definition_required', and the protocol is not
1526 defined, emit a warning.
1527 (objc_declare_protocols): Updated call to lookup_protocol.
1528 (start_protocol): Same change.
1529 (check_protocol_recursively): Same change.
1530 (objc_build_protocol_expr): Same change.
1531 (lookup_and_install_protocols): Added definition_required argument.
1532 Pass it to lookup_protocol.
1533 (objc_get_protocol_qualified_type): Updated call to
1534 lookup_and_install_protocols.
1535 (start_class): Updated calls to lookup_and_install_protocols; pass
1536 true to 'definition_required' to get the warnings.
1537 (start_protocol): Updated calls to lookup_and_install_protocols.
1538
35bce82a
NP
15392010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
1540
1541 * objc-act.c (objc_start_category_interface): Produce an error if
1542 a class extension is found after the class @implementation.
1543
333031f2
NP
15442010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
1545
1546 PR objc/47073
1547 * objc-act.c (encode_method_prototype): Fixed both location and
1548 format string of error "type %qT does not have a known size".
1549
b992d9b0
NP
15502010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
1551
1552 * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
1553
f4da8dce
NF
15542010-12-22 Nathan Froyd <froydnj@codesourcery.com>
1555
1556 * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
1557
46270f14
NP
15582010-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
1559
1560 * objc-act.c (objc_init): Call using_eh_for_cleanups.
1561 (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do
1562 not call using_eh_for_cleanups.
1563 (objc_begin_try_stmt): Do not call objc_init_exceptions.
1564 (objc_build_throw_stmt): Updated call to
1565 objc_maybe_warn_exceptions.
1566
5287cfd5
IS
15672010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1568
ab20d992 1569 * objc-act.c (objc_eh_personality): Select personality name on
5287cfd5
IS
1570 runtime.
1571 (objc_init_exceptions): New.
1572 (objc_begin_try_stmt): Use objc_init_exceptions.
1573 (objc_build_throw_stmt): Likewise.
1574
ec3e9f82
NP
15752010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
1576
1577 * objc-act.c (objc_in_class_extension): New.
1578 (objc_start_category_interface): If -fobjc-std=objc1
1579 was specified, produce an error if a class extension is used.
1580 (objc_finish_interface): Reset objc_in_class_extension to false.
1581 (objc_add_property_declaration): Allow a class extension to extend
1582 readonly properties in the main @interface to be readwrite.
1583 (start_class): Added code to deal with class extensions. In that
1584 case, return the existing interface after adding any additional
1585 protocols to it and setting objc_in_class_extension to true.
1586 (continue_class): If in a class extension, do not generate the
1587 instance variable template.
1588
6347cf31
NP
15892010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
1590
1591 * objc-act.c (objc_build_throw_stmt): Check that the argument of
1592 @throw is an object and emit an error if not.
1593
7c35d89d
NP
15942010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
1595
1596 * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
1597 error() when printing an error about the iterating variable or
1598 collection not being an object.
1599
69a97201
NP
16002010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
1601
1602 * objc-act.c (objc_finish_foreach_loop): Mark the
1603 object_expression as used.
1604
61d3ce20
NP
16052010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
1606
1607 * objc-act.c: Include c-family/c-objc.h.
1608 * objc-lang.c: Same change.
1609 * Make-lang.in (objc/objc-act.o): Depend on
1610 c-family/c-objc.h.
1611 (objc/objc-lang.o): Same change.
1612 * config-lang.in (gtfiles): Added c-family/c-objc.h.
944fb799 1613
3028a95c
JM
16142010-12-02 Joseph Myers <joseph@codesourcery.com>
1615
1616 * lang-specs.h: Don't handle -ftraditional.
1617
d0f7899a
NP
16182010-12-02 Nicola Pero <nicola.pero@meta-innovation.com>
1619
1620 * objc-act.c (objc_build_throw_stmt): Return error_mark_node and
1621 not NULL_TREE when a @throw is used outside of a @catch block.
1622
6c39e757
NP
16232010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
1624
1625 * objc-act.c (objc_build_volatilized_type): Removed.
1626 (objc_non_volatilized_type): Removed.
1627 (objc_type_quals_match): Removed.
1628 (local_variables_to_volatilize): New.
1629 (objc_volatilize_decl): Add the decl to volatilize to
1630 local_variables_to_volatilize, but don't volatilize it yet.
1631 (objc_finish_function): New.
1632 * objc-act.h (local_variables_to_volatilize): New.
1633
094fd2dd
NP
16342010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1635 Mike Stump <mikestump@comcast.net>
1636
1637 Allow 'make check-objc -j2'
1638 * Make-lang.in (lang_checks_parallelized): New.
1639 (check_objc_parallelize): New.
944fb799 1640
98cf223c
NP
16412010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1642
1643 * objc-act.c (start_class): When a class is reimplemented,
1644 generate an error and avoid adding the class to the list of
1645 implemented classes again, but do not return error_mark_node.
1646
d402edc1
NP
16472010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1648
1649 * objc-act.c (objc_maybe_build_component_ref): Removed TODO.
1650
437c2322
NP
16512010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1652
1653 * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
1654 is passed as argument.
1655 (objc_begin_catch_clause): Added code to deal with an
1656 error_mark_node or NULL_TREE argument. Improved checks for
1657 invalid arguments. Added code to traverse typedefs.
1658
5944a6dc
NP
16592010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
1660
1661 * objc-act.c (objc_demangle): Return immediately if the string is
1662 too short. Detect names that do not need demangling, and return
1663 them unchanged.
1664
2dd24dbd
NP
16652010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
1666
1667 Implemented optional properties.
1668 * objc-act.h (PROPERTY_OPTIONAL): New.
1669 * objc-act.c (objc_add_property_declaration): Set
1670 PROPERTY_OPTIONAL if appropriate.
1671 (finish_class): When generating definitions of setter and getter
1672 methods associated with a property for a protocol, mark them as
1673 optional if the property is optional.
1674 (maybe_make_artificial_property_decl): Added 'getter_name'
1675 argument. Set PROPERTY_OPTIONAL.
1676 (objc_maybe_build_component_ref): Updated calls to
1677 maybe_make_artificial_property_decl. Added code for optional,
1678 readonly properties.
1679 (objc_build_class_component_ref): Updated call to
1680 maybe_make_artificial_property_decl.
944fb799 1681
a693d3a8
NP
16822010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
1683
1684 * objc-act.c (objc_build_struct): Fixed loops that save and
1685 restore TYPE_OBJC_INFO to iterate over all variants of the type; a
1686 special case for the current type is then no longer required.
1687 Duplicate TYPE_LANG_SPECIFIC for each type before restoring
1688 TYPE_OBJC_INFO.
1689 (objc_get_protocol_qualified_type): Updated comments.
944fb799 1690
24e1ee32
NP
16912010-11-25 Nicola Pero <nicola.pero@meta-innovation.com>
1692
1693 * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
1694 after finish_struct, not before, otherwise it may be wiped out by
1695 it. This fixes spurious warnings when a class has more than 15
1696 instance variables.
1697
59a09598
NP
16982010-11-23 Nicola Pero <nicola.pero@meta-innovation.com>
1699
1700 PR objc/24358
1701 * lang-specs.h: Added objective-c-cpp-output. Mapped .mi to
1702 objective-c-cpp-output instead of objc-cpp-output. Print a
1703 deprecation note every time objc-cpp-output is requested.
1704
0576d21f
JM
17052010-11-22 Joseph Myers <joseph@codesourcery.com>
1706
1707 * objc-act.c (write_symbols): Don't declare here.
1708
d925c9eb
NP
17092010-11-22 Nicola Pero <nicola.pero@meta-innovation.com>
1710
1711 PR objc/41108
1712 * objc-act.c (objc_generate_write_barrier): Added assert to make sure
1713 this function is only called with the next runtime.
1714
fb330359
JJ
17152010-11-20 Jakub Jelinek <jakub@redhat.com>
1716
1717 PR c/46547
1718 * objc-act.c (in_late_binary_op): Remove.
1719
3be0ac86 17202010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
6b192a09 1721
d4e72c58
NP
1722 * objc-act.c (objc_start_class_interface): Do not warn that class
1723 attributes are unimplemented. Pass the attributes to start_class.
1724 (objc_start_category_interface): Updated call to start_class.
1725 (objc_start_class_implementation): Same change.
1726 (objc_start_category_implementation): Same change.
1727 (objc_build_class_component_ref): Warn if the class is deprecated.
1728 (build_private_template): Mark the template as deprecated if the
1729 class is deprecated.
1730 (start_class): Added 'attributes' argument. Emit a warning if
1731 using a deprecated class as superclass of a class, or original
1732 class of a category. Recognize the 'deprecated' attribute when
1733 starting and interface, and mark the interface with
1734 TREE_DEPRECATED if present. Store attributes in the interface.
944fb799
MS
1735
17362010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
d4e72c58 1737
6b192a09
NP
1738 * objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
1739 argument. If it is 'true' and the protocol is deprecated, emit a
1740 deprecation warning.
1741 (objc_start_protocol): Do not warn that protocol attributes are
1742 unimplemented. Pass the attributes to start_protocol.
1743 (start_protocol): Added attributes argument. Recognize the
1744 'deprecated' attribute and mark the protocols with TREE_DEPRECATED
1745 if present. Store attributes in the protocol.
1746 (objc_declare_protocols): Added 'attributes' argument. Recognize
1747 the 'deprecated' attribute and mark the protocols with
1748 TREE_DEPRECATED if present. Store attributes in the protocol.
1749 Updated call to lookup_protocol.
1750 (objc_build_protocol_expr): Updated call to lookup_protocol.
1751 (check_protocol_recursively): Same change.
1752 (lookup_and_install_protocols): Same change.
1753 * objc-act.h: Updated comments.
944fb799 1754
354d8ce1
NP
17552010-11-17 Nicola Pero <nicola.pero@meta-innovation.com>
1756
1757 * objc-act.c (lookup_method_in_protocol_list): Search methods in
1758 PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
1759 they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
1760
b6cfe8ac
NP
17612010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
1762
1763 * objc-act.c (objc_build_setter_call): New.
1764 (objc_maybe_build_modify_expr): Rewritten to build a compound
1765 statement.
1766 (objc_build_incr_expr_for_property_ref): Updated calls to
1767 objc_maybe_build_modify_expr to call objc_build_setter_call
1768 instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR,
1769 ...). Use convert () instead of build1 (NOP_EXPR, ...). Use
1770 TREE_NO_WARNING on the final compound statement to silence C++
1771 warnings.
1772
925e8657
NP
17732010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
1774
1775 * objc-act.c (objc_build_incr_expr_for_property_ref): New.
1776 (objc_create_temporary_var): Moved it towards the beginning of the
1777 file so that objc_build_incr_expr_for_property_ref can use it.
1778
8926bd5d
NP
17792010-11-14 Nicola Pero <nicola.pero@meta-innovation.com>
1780
1781 * objc-act.c (objc_add_property_declaration): Check that the decl
1782 we received from the parser is a FIELD_DECL; reject array and
1783 bitfield properties. Convert the warning when a property is
1784 readonly and a setter is specified into an error. Convert errors
1785 when a property declaration does not match a property declaration
1786 in a superclass into warnings.
1787 (objc_add_synthesize_declaration_for_property): Use
1788 DECL_BIT_FIELD_TYPE to determine the type of an instance variable
1789 if it is a bitfield. Throw an error if we are asked to synthesize
1790 setters/getters for a bitfield instance variable but the property
1791 is not appropriate - it must be assign and nonatomic. If the
1792 property is readonly, allow the instance variable type to be a
1793 specialization of the property type.
1794 (objc_type_valid_for_messaging): Fixed returning 'false' for a
1795 Class qualified with a protocol when the 'accept_classes' argument
1796 is 'false'.
1797
5a2a6eb0
NP
17982010-11-13 Nicola Pero <nicola.pero@meta-innovation.com>
1799
1800 * objc-act.c (objc_get_protocol_qualified_type): detect cases
1801 where we are asked to attach a protocol to something which is not
1802 an Objective-C object type, and produce an error.
1803
10e34e6e
NP
18042010-11-11 Nicola Pero <nicola.pero@meta-innovation.com>
1805
1806 * objc-act.c (objc_add_property_declaration): Check that the type
1807 of a property and of an inherited property match.
1808 (objc_maybe_build_component_ref): Tidied up indentation and
1809 comments.
1810 (objc_common_type): Added new type of check (-5).
1811 (objc_add_synthesize_declaration_for_property): Check that the
1812 property to synthesize and the instance variable to use have the
1813 same type.
944fb799 1814
d8a07487
JM
18152010-11-10 Joseph Myers <joseph@codesourcery.com>
1816
1817 * objc-act.c (objc_init): Use %' in diagnostic.
1818 (objc_set_method_opt): Remove trailing '.' from diagnostic.
1819
d5478783
JM
18202010-11-10 Joseph Myers <joseph@codesourcery.com>
1821
1822 * objc-act.c (dump_base_name): Don't declare here.
1823
d36dba07
NP
18242010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
1825
1826 * objc-act.c (objc_add_dynamic_declaration_for_property): Do not
1827 search for the @property declation only in the current context,
1828 but also in inherited properties. Do not mark the original
1829 PROPERTY_DECL in the @interface or @protocol with
1830 PROPERTY_DYNAMIC.
1831 (check_methods): To check if a method is associated with a
1832 @dynamic property, search for the property in IMPL_PROPERTY_DECL.
1833 (check_accessible_methods): Same change.
1834 * objc-act.h: Updated comment.
1835
4741888d
NP
18362010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
1837
1838 * objc-act.c (objc_add_synthesize_declaration_for_property):
1839 Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
1840 checking for an existing @synthesize or @dynamic declaration.
1841 Search for an inherited @property declaration if none is found in
1842 the local interface. If the required instance variable does not
1843 exist, return instead of trying to continue to prevent a compiler
1844 crash later. Check that the instance variable is not already
1845 being used by another @synthesize.
1846 (objc_add_dynamic_declaration_for_property): Iterate over
1847 IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
1848 existing @synthesize or @dynamic declaration.
1849 (objc_synthesize_getter): Search for the getter declaration in
1850 protocols and superclasses as well.
1851 (objc_synthesize_setter): Search for the setter declaration in
1852 protocols and superclasses as well.
944fb799 1853
4ca5d2a7
NP
18542010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
1855
1856 * objc-act.c (lookup_property): When checking categories, also
1857 check the protocols attached to each.
1858 (objc_add_property_declaration): Determine the
1859 PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up
1860 error message. Search for an existing property declaration with
1861 the same name which would be inherited from the class hiearchy,
1862 and produce an error if it has incompatible attributes.
1863 (check_methods): Changed second parameter. If the method is a
1864 getter or setter for a property, do not warn if it is inherited as
1865 opposed to implemented directly in the class.
1866 (check_protocol): Updated calls to check_methods.
1867 (finish_class): Do not determine the PROPERTY_SETTER_NAME and
1868 PROPERTY_GETTER_NAME here; this is now done earlier, in
1869 objc_add_property_declaration.
1870 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
944fb799 1871
a9625a91
NP
18722010-11-06 Nicola Pero <nicola.pero@meta-innovation.com>
1873
c3b39f2e 1874 Fixed using the Objective-C 2.0 dot-syntax with self and super.
a9625a91
NP
1875 * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
1876 (maybe_make_artificial_property_decl): Added 'implementation'
1877 argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
1878 looking up getters or setters for a class. If an implementation
1879 is specified, search it as well for a getter or setter.
1880 (objc_maybe_build_component_ref): Updated calls to
1881 maybe_make_artificial_property_decl; added code to deal with
1882 'self' and 'super' and with methods declared locally in the
1883 implementation. Store the getter call expression in the
1884 PROPERTY_REF instead of throwing it away.
1885 (objc_build_class_component_ref): Updated calls to
1886 maybe_make_artificial_property_decl, and store the getter call
1887 expression in PROPERTY_REF instead of throwing it away.
1888 (lookup_method_static): Implemented
1889 OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
1890 (objc_gimplify_property_ref): Do not build the getter method call
1891 here; instead use the one stored in the PROPERTY_REF. If it's not
1892 there, produce helpful error messages.
1893 * objc-tree.def (PROPERTY_REF): Increased the number of operands
1894 from 2 to 3. Updated comments.
1895 * objc-act.h (PROPERTY_REF_GETTER_CALL): New.
944fb799 1896
91ebb981
IS
18972010-11-06 Iain Sandoe <iains@gcc.gnu.org>
1898
1899 PR target/44981
1900 * objc-act.c (objc_build_string_object): Amend for renamed hook.
1901 (objc_string_ref_type_p): New.
1902 (objc_check_format_arg): New.
1903
bede2adc
NP
19042010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
1905
944fb799 1906 Fixed using the Objective-C 2.0 dot-syntax with class names.
bede2adc
NP
1907 * objc-act.c (objc_build_class_component_ref): New.
1908
9a179d01
NP
19092010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
1910
1911 * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
1912 category.
1913 (objc_type_valid_for_messaging): Added 'accept_classes' argument;
1914 if set to 'true', return 'true' for Class objects. Do not remove
1915 more than on pointer indirection.
1916 (objc_add_property_declaration): Only warn about 'assign'
1917 semantics for Objective-C objects if warn_property_assign_default;
1918 and do not warn if the property is readonly or if the type is a Class.
1919 (objc_finish_foreach_loop): Updated calls to
1920 objc_type_valid_for_messaging.
944fb799 1921
22d8d616
NP
19222010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
1923
1924 Implemented -fobjc-std=objc1 flag.
1925 * objc-act.c (objc_start_class_interface): If attributes are
1926 specified when flag_objc1_only is set, print an error.
1927 (objc_start_category_interface): Same change.
1928 (objc_start_protocol): Same change.
1929 (objc_add_method_declaration): Same change.
1930 (objc_start_method_definition): Same change.
1931 (objc_build_keyword_decl): Same change.
1932 (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
1933 flag_objc1_set is set, print an error.
1934 (objc_set_method_opt): If flag_objc1_only is set, print an error.
1935 (objc_add_property_declaration): Same change.
1936 (objc_add_synthesize_declaration): Same change.
1937 (objc_add_dynamic_declaration): Same change.
1938 (objc_finish_foreach_loop): Same change.
1939 (objc_maybe_build_component_ref): If flag_objc1_only is set,
1940 return immediately.
1941
43236c26
NP
19422010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
1943
1944 * objc-act.c (maybe_make_artificial_property_decl): New.
1945 (objc_maybe_build_component_ref): Call
1946 maybe_make_artificial_property_decl if a property can not be
1947 found. Do not call objc_finish_message_expr if
1948 PROPERTY_HAS_NO_GETTER.
1949 * objc-act.h Updated comments.
1950 (PROPERTY_HAS_NO_GETTER): New.
1951 (PROPERTY_HAS_NO_SETTER): New.
1952 * objc-tree.def: Updated comment.
944fb799 1953
2debdb4f
NP
19542010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
1955
1956 Implemented format and noreturn attributes for Objective-C methods.
1957 * objc-act.c (objc_start_method_definition): If method attributes
1958 are specified emit a warning and ignore them.
1959 (build_objc_method_call): Moved deprecation warnings from here ...
1960 (objc_finish_message_expr): to here. Do not emit deprecation
1961 warnings if the receiver is of type 'id'.
1962 (really_start_method): Install 'deprecation' and 'noreturn'
1963 attributes.
1964 (objc_decl_method_attributes): Carefully filter out the list of
1965 attributes, allowing only "noreturn", "format", "sentinel" and
1966 "deprecated". In the case of "format", adjust the arguments.
1967 Always process the attributes in the same way no matter if
1968 "sentinel" is in the list or not.
944fb799 1969
8f78939b
NP
19702010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
1971
1972 * objc-act.c (objc_maybe_build_component_ref): Warn about using
1973 deprecated properties.
1974 (objc_maybe_printable_name): Support PROPERTY_DECL.
944fb799 1975
8f07a2aa
NP
19762010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
1977
944fb799 1978 Implemented Objective-C 2.0 property accessors.
8f07a2aa
NP
1979 * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
1980 OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
1981 OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
1982 (objc_getProperty_decl): New.
1983 (objc_setProperty_decl): New.
1984 (objc_copyStruct_decl): New.
1985 (objc_getPropertyStruct_decl): New.
1986 (objc_setPropertyStruct_decl): New.
1987 * objc-act.c (build_objc_property_accessor_helpers): New.
1988 (synth_module_prologue): Call
1989 build_objc_property_accessor_helpers.
1990 (lookup_ivar): New.
1991 (objc_synthesize_getter): Implemented synthesizing getters that
1992 work with properties that are not nonatomic, assign properties.
1993 (objc_synthesize_setter): Implemented synthesizing setters that
1994 work with properties that are not nonatomic, assign properties.
944fb799 1995
46a88c12
NP
19962010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
1997
1998 Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
1999 * objc-tree.def (PROPERTY_REF): New.
2000 * objc-act.h: Added comments for all the PROPERTY_ macros.
2001 (PROPERTY_NAME): Use DECL_NAME.
2002 (PROPERTY_COPIES): Removed.
2003 (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
2004 (PROPERTY_NONATOMIC): New.
2005 (objc_property_assign_semantics): Make it a typedef.
2006 (PROPERTY_ASSIGN_SEMANTICS): New.
2007 (PROPERTY_DYNAMIC): New.
2008 (PROPERTY_REF_OBJECT): New.
2009 (PROPERTY_REF_PROPERTY_DECL): New.
2010 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
2011 (in_objc_property_setter_name_context): Removed.
2012 (objc_add_property_declaration): Removed copies and ivar arguments
2013 and code supporting them. Fixed recovering when readonly and
2014 setter attributes are specified. Removed support for @property in
2015 @implementation context. Updated error message. Double-check
2016 that a property does not have a DECL_INITIAL. Validate the
2017 property assign semantics and emit appropriate errors and
2018 warnings. Check for duplicate property declarations. Set
2019 DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
2020 PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
2021 PROPERTY_DECL. Do not set PROPERTY_COPIES. Set
2022 PROPERTY_IVAR_NAME to NULL_TREE.
2023 (objc_build_getter_call): Renamed to
2024 objc_maybe_build_component_ref. If the property is not found in
2025 the interface, search in the protocol list. Do not generate the
2026 getter call; instead, build and return a PROPERTY_REF.
2027 (objc_is_property_ref): New.
2028 (objc_setter_func_call): Removed.
2029 (get_selector_from_reference): Removed.
2030 (is_property): Removed.
2031 (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
2032 Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
2033 the PROPERTY_REF. Generate an error if the property is read-only.
2034 (build_property_reference): Removed.
2035 (objc_finish_message_expr): Removed check to produce "readonly
2036 property can not be set" error when
2037 in_objc_property_setter_name_context. We now generate the error
2038 earlier, in objc_maybe_build_modify_expr, which will only generate
2039 the setter call if the property is readwrite.
2040 (check_methods): Recognize dynamic properties.
2041 (check_methods_accessible): Same change.
2042 (objc_build_property_ivar_name): Removed.
2043 (objc_build_property_setter_name): Dropped bool argument. Always
2044 add the ':' at the end.
2045 (objc_gen_one_property_datum): Removed.
2046 (objc_process_getter_setter): Removed.
2047 (objc_synthesize_getter): Mark 'klass' argument as unused. Use
2048 PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the
2049 DECL_SOURCE_LOCATION of the new method to be the same as the one
2050 for the @synthesize. Always use PROPERTY_IVAR_NAME as it is
2051 instead of trying to guess what it should be. Removed use of
2052 CLASS_IVARS. Use the location of @synthesize for c_finish_return
2053 and c_end_compound_statement.
2054 (objc_synthesize_setter): Mark 'klass' argument as unused. Use
2055 PROPERTY_SETTER_NAME instead of trying to guess what it should be.
2056 Set the DECL_SOURCE_LOCATION of the new method to be the same as
2057 the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it
2058 is instead of trying to guess what it should be. Removed use of
2059 CLASS_IVARS. Use the location of @synthesize for c_finish_return
2060 and c_end_compound_statement. Emit an error and keep going,
2061 instead of aborting, if the setter prototype does not have the
2062 expected argument.
2063 (objc_add_synthesize_declaration_for_property): New.
2064 (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
2065 all arguments. Improved error message. Filled in the rest of the
2066 function, which used to be a placeholder, with an actual
2067 implementation.
2068 (objc_add_dynamic_declaration_for_property): New.
2069 (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
2070 arguments. Improved error message. Filled in the rest of the
2071 function, which used to be a placeholder, with an actual
2072 implementation.
2073 (objc_gen_property_data): Rewritten.
2074 (finish_class): Added explicit switch cases for
2075 CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
2076 PROTOCOL_INTERFACE_TYPE. Added a default switch case which is
2077 gcc_unreachable. Rewritten the processing of properties, in
2078 particular to not synthesize prototypes for getters and setters if
2079 they already exist and to install the getter and setter names into
2080 PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate
2081 warnings about setter, getter and ivar property attributes.
2082 (objc_lookup_ivar): Removed support for properties.
2083 (objc_gimplify_property_ref): New.
2084 (objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call
2085 objc_gimplify_property_ref.
944fb799 2086
200290f2
NP
20872010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
2088
2089 * objc-act.c (objc_add_property_declaration): Added arguments to
2090 pass the various property attributes that were parsed with the
2091 property declaration. Process arguments to determine the final
2092 property attributes and produce error messages as appropriate.
2093 Added temporary code to keep the compiler silent about variables
2094 set but not used - for new attributes that are only checked but
2095 have no effect yet.
2096 (property_readonly): Removed.
2097 (property_setter): Removed.
2098 (property_getter): Removed.
2099 (property_ivar): Removed.
944fb799 2100 (property_copies): Removed.
200290f2
NP
2101 (objc_set_property_attr): Removed.
2102 * objc-act.h (enum property_assign_semantics): New.
944fb799 2103
f614132b
NP
21042010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
2105
2106 * objc-act.c (objc_add_property_variable): Renamed to
2107 objc_add_property_declaration. Added location argument. Updated
2108 warnings and errors to use it. Use error, not fatal_error, if a
2109 property declaration is found outside an interface or
2110 implementation context.
944fb799 2111
be8cf3b5
NP
21122010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
2113
2114 * objc-act.c (objc_build_keyword_decl): Updated comments. Do not
2115 emit a warning that method parameter attributes are unimplemented.
2116 Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
2117 (start_method_def): Copy attributes from each KEYWORD_DECL into
2118 the corresponding PARM_DECL.
2119 (objc_warn_deprecated_use): Removed.
2120 (build_objc_method_call): Call warn_deprecated_use, not
2121 objc_warn_deprecated_use.
2122 (objc_maybe_printable_name): Do not try to get the identifier name
2123 of DECLs that we don't recognize. Immediately return NULL for them.
2124 (objc_printable_name): Removed C++-specific case, which is no
2125 longer used. Updated comments.
944fb799 2126
b8a18805
NP
21272010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
2128
2129 * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
2130 (objc_demangle): Return NULL if demangling can not be done because
2131 the string to demangle is not an Objective-C mangled method name.
2132 Be smarter in demangling method names so that at least for methods
2133 with no arguments we are able to almost always demangle '_' correctly.
2134 Updated comments.
2135 (objc_maybe_printable_name): New.
2136 (objc_printable_name): Call objc_maybe_printable_name. If it
2137 returns NULL, call cxx_printable_name in Objective-C++.
2138
26705988
IS
21392010-10-21 Iain Sandoe <iains@gcc.gnu.org>
2140
2141 Based on the CFString implementation in FSF apple/trunk branch.
944fb799 2142
ab20d992 2143 * objc-act.c (objc_build_string_object): Handle CFStrings.
26705988 2144
50ea5861
NP
21452010-10-21 Nicola Pero <nicola.pero@meta-innovation.com>
2146
2147 * objc-act.c (get_objc_string_decl): Use a switch instead of a
2148 chain of ifs. Use gcc_unreachable instead of abort.
2149 (add_objc_string): Same change.
2150 (generate_protocol_list): Same change - twice.
2151 (synth_id_with_class_suffix): Same change.
2152 (build_keyword_selector): Same change - twice.
2153 (objc_build_message_expr): Same change.
2154 (objc_build_selector_expr): Same change.
2155 (check_methods): Same change - and added missing gcc_unreachable
2156 for default case.
2157 (check_methods_accessible): Same change - twice, and added missing
2158 gcc_unreachable for default case in one of them.
2159 (start_class): Same change - and added missing gcc_unreachable for
2160 default case.
2161 (continue_class): Same change.
2162 (objc_gen_property_data): Same change.
2163 (finish_class): Same change.
2164 (encode_type_qualifiers): Added missing gcc_unreachable.
2165 (encode_type): Small code tidy up to reduce duplicated code. Use
2166 gcc_unreachable instead of abort - twice.
2167 (encode_gnu_bitfield): Use a switch instead of a chain of ifs -
2168 twice. Added missing gcc_unreachable for default case - twice.
2169 (dump_interface): Use a switch instead of a chain of ifs.
2170 (handle_impent): Same change.
944fb799 2171
249a82c4
NP
21722010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
2173
2174 * objc-act.h (objc_inherit_code): Removed.
2175 * objc-act.c (objc_inherit_code): Removed.
2176 (objc_set_method_type): Removed.
2177 (objc_build_method_signature): Added is_class_method argument.
2178 Use it instead of the global objc_inherit_code variable.
2179 (objc_add_method_declaration): Same change.
2180 (objc_start_method_definition): Same change.
2181 (objc_generate_cxx_ctor_or_dtor): Updated call to
2182 objc_start_method_definition. Do not call objc_set_method_type.
2183 (adjust_type_for_id_default): Mark as inline.
2184 (objc_synthesize_getter): Updated call to
2185 objc_start_method_definition. Do not set objc_inherit_code.
2186 (objc_synthesize_setter): Updated call to
944fb799
MS
2187 objc_start_method_definition. Do not set objc_inherit_code.
2188
660820d1
NP
21892010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
2190
2191 Merge from 'apple/trunk' branch on FSF servers. Obvious updates
2192 to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
2193 get it to compile in the current trunk.
2194
ab20d992 2195 2006-01-27 Fariborz Jahanian <fjahanian@apple.com>
660820d1
NP
2196
2197 Radar 4345837
ab20d992 2198 * objc-act.c (hash_class_name_enter): New.
660820d1
NP
2199 (hash_class_name_lookup): New.
2200 (objc_declare_alias): Enter alias name into hash table.
2201 (objc_declare_class): Enter class name into hash table.
2202 (objc_is_class_name): Do a hash look up of class name.
2203 (hash_init): Initialize the two new hash tables.
944fb799
MS
2204 * objc-act.h: Added cls_name_hash_list and als_name_hash_list
2205 declarations, removed class_chain and alias_chain.
660820d1 2206
977e30bc
NP
22072010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
2208
2209 * objc-lang.c (finish_file): Removed.
2210 * objc-act.c (objc_finish_file): Renamed to
2211 objc_write_global_declarations. Do not try to instantiate C++
2212 templates when compiling Objective-C++ as this is now
2213 automatically done before this function is called. Do not check
2214 for syntax-only run or PCH generation as this is done by the
2215 callers.
2216 * objc-act.h (objc_finish_file): Removed.
944fb799 2217
da57d1b9
NP
22182010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
2219
2220 Implemented parsing @synthesize and @dynamic for
2221 Objective-C/Objective-C++.
2222 * objc-act.c (objc_add_synthesize_declaration): New.
2223 (objc_add_dynamic_declaration): New.
2224
944fb799 22252010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
da57d1b9
NP
2226
2227 * objc-act.c (lookup_and_install_protocols): Return NULL if passed
2228 error_mark_node.
944fb799 2229
e426b47b
NP
22302010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
2231
2232 Merge from 'apple/trunk' branch on FSF servers.
fd4e428a 2233
3f8257db 2234 2006-03-10 Fariborz Jahanian <fjahanian@apple.com>
fd4e428a 2235
19a9ba64 2236 Radar 4407151
ab20d992 2237 * objc-act.c (objc_is_class_name): template parameter is not
19a9ba64
AM
2238 an objective class name.
2239 (objc_generate_cxx_cdtors): Check for the null
2240 objc_implementation_context.
fd4e428a
NP
2241
22422010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
2243
944fb799
MS
2244 Merge from 'apple/trunk' branch on FSF servers.
2245
3f8257db 2246 2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
e426b47b
NP
2247
2248 Radar 4330422
ab20d992 2249 * objc-act.c (objc_non_volatilized_type): New
e426b47b 2250
3f8257db 2251 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
944fb799 2252
19a9ba64 2253 Radar 4204796
e426b47b
NP
2254 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
2255 types with proper attribute set and correctly.
2256 (objc_volatilize_decl): Remove unneeded code.
2257 (objc_type_quals_match): Use the new attribute to check on
2258 'volatilzed' type.
2259 (hash_init): removed unneeded code.
944fb799 2260
90fbfdc3
NP
22612010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
2262
2263 Merge from 'apple/trunk' branch on FSF servers.
944fb799 2264
ab20d992 2265 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
90fbfdc3
NP
2266
2267 Radar 4133425
2268 * objc-act.c (objc_diagnose_private_ivar): New.
2269
c37d8c30
IS
22702010-10-17 Iain Sandoe <iains@gcc.gnu.org>
2271
2272 * objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and
944fb799 2273 make its type 'objc_ivar_visibility_kind'.
c37d8c30
IS
2274 (objc_start_class_interface): Update to use visibility enum.
2275 (objc_start_class_implementation): Likewise.
944fb799 2276 (objc_set_visibility): Update to use visibility enum, warn that
c37d8c30
IS
2277 @package is handle as per @public.
2278 (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
2279 * objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and
2280 make its type 'objc_ivar_visibility_kind'.
2281
668ea4b1
IS
22822010-10-14 Iain Sandoe <iains@gcc.gnu.org>
2283
944fb799 2284 merge from FSF apple 'trunk' branch.
3f8257db 2285 2006 Fariborz Jahanian <fjahanian@apple.com>
944fb799 2286
668ea4b1
IS
2287 Radars 4436866, 4505126, 4506903, 4517826
2288 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New.
2289 property_readonly, property_getter, property_setter, property_ivar,
2290 property_copies, in_objc_property_setter_name_context: New vars.
2291 (objc_set_property_attr): New.
2292 (objc_add_property_variable): New.
2293 (lookup_property_in_list): New.
2294 (lookup_property): New.
2295 (objc_build_getter_call): New.
2296 (objc_setter_func_call): New.
2297 (get_selector_from_reference): New.
2298 (objc_build_setter_call): New.
2299 (is_property): New.
2300 (build_property_reference): New.
2301 (objc_finish_message_expr): Detect readonly property and warn.
2302 (objc_build_property_ivar_name): New.
2303 (objc_build_property_setter_name): New.
2304 (objc_gen_one_property_datum): New.
2305 (objc_process_getter_setter): New.
2306 (objc_synthesize_getter): New.
2307 (objc_synthesize_setter): New.
2308 (objc_gen_property_data): New.
2309 (finish_class): Generate property data.
2310 (comp_proto_with_proto): Separated from ...
2311 (match_proto_with_proto): ... New.
2312 (objc_lookup_ivar): Handle properties.
2313 * objc-tree.def (PROPERTY_DECL): New tree code.
2314 * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size.
2315 (METHOD_PROPERTY_CONTEXT): New.
2316 (PROPERTY_NAME): New.
2317 (PROPERTY_GETTER_NAME): New.
2318 (PROPERTY_SETTER_NAME): New.
2319 (PROPERTY_IVAR_NAME): New.
2320 (PROPERTY_READONLY): New.
2321 (PROPERTY_COPIES): New.
2322 (TOTAL_CLASS_RAW_IVARS): New.
2323 (CLASS_PROPERTY_DECL): New.
2324 (IMPL_PROPERTY_DECL): New.
2325 * objc-lang.c (objc_init_ts): Update fields for property_decl.
2326
bde8a146
RH
23272010-10-13 Richard Henderson <rth@redhat.com>
2328
2329 * objc-act.c (objc_eh_personality): Update call to
2330 build_personality_function.
2331
a1178b30
IS
23322010-10-13 Iain Sandoe <iains@gcc.gnu.org>
2333
944fb799 2334 merge from FSF apple 'trunk' branch.
a1178b30 2335
ab20d992 2336 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
a1178b30 2337 Radar 3803157 (method attributes)
ab20d992
JJ
2338 * objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
2339 * objc-act.c (objc_decl_method_attributes): New.
a1178b30
IS
2340 (objc_add_method_declaration): Process method's attribute.
2341 (objc_start_method_definition): Ditto.
2342 (build_objc_method_call): Inject method attribute into
2343 built function type.
2344 (objc_method_decl): New.
2345 (objc_warn_deprecated)use): New.
2346
d6d5951a
AK
23472010-10-07 Andi Kleen <ak@linux.intel.com>
2348
2349 * Make-lang.in (cc1obj-dummy): Remove.
2350 (cc1obj-checksum): Change to run checksum over object files
19a9ba64 2351 and options only.
d6d5951a 2352
038d22b6
NP
23532010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
2354
2355 PR objc/45925
2356 * objc-act.c (objc_finish_foreach_loop): Convert return value of
2357 countByEnumeratingWithState:objects:count: to long unsigned int.
2358
fd651069
IS
23592010-10-07 Iain Sandoe <iains@gcc.gnu.org>
2360
944fb799 2361 * objc-act.c (build_objc_method_call): Replace calls to
7427ba36
IS
2362 build_function_call () with the VEC equivalent. Construct parameter
2363 lists as VECs.
2364
23652010-10-07 Iain Sandoe <iains@gcc.gnu.org>
2366
ab20d992 2367 * objc-act.c (objc_build_message_expr): Call mark_exp_read () to
7427ba36 2368 signal that the receiver has been used.
fd651069 2369
d2ab66aa
NP
23702010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
2371
2372 * README: Obsolete file removed.
2373
f05b9d93
NP
23742010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
2375
2376 Implemented fast enumeration for Objective-C.
2377 * objc-act.c (build_fast_enumeration_state_template): New.
2378 (TAG_ENUMERATION_MUTATION): New.
2379 (TAG_FAST_ENUMERATION_STATE): New.
2380 (synth_module_prologue): Call build_fast_enumeration_state_template() and set up
2381 objc_enumeration_mutation_decl.
2382 (objc_create_temporary_var): Allow providing a name to temporary
2383 variables.
2384 (objc_build_exc_ptr): Updated calls to
2385 objc_create_temporary_var().
2386 (next_sjlj_build_try_catch_finally): Same change.
2387 (objc_finish_foreach_loop): New.
2388 * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
2389 OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
2390 objc_enumeration_mutation_decl.
2391
2392 Merge from 'apple/trunk' branch on FSF servers.
2393
ab20d992 2394 2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
f05b9d93 2395
19a9ba64 2396 Radar 4507230
f05b9d93
NP
2397 * objc-act.c (objc_type_valid_for_messaging): New routine to check
2398 for valid objc object types.
2399 (objc_finish_foreach_loop): Check for invalid objc objects in
2400 foreach header.
944fb799 2401
a26d8862
NP
24022010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
2403
2404 Merge from 'apple/trunk' branch on FSF servers.
2405
3f8257db 2406 2005-10-17 Fariborz Jahanian <fjahanian@apple.com>
a26d8862 2407
19a9ba64 2408 Radar 4290840
f05b9d93
NP
2409 * objc-act.c (objc_start_method_definition): Check for
2410 error_mark_node for the selector name and make a quick exit.
944fb799 2411
3f8257db 24122010-10-04 Andi Kleen <ak@linux.intel.com>
a90163e9
AK
2413
2414 * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
2415
92902b1b
IS
24162010-09-30 Iain Sandoe <iains@gcc.gnu.org>
2417
2418 merge from FSF 'apple/trunk' branch.
3f8257db 2419 2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
92902b1b 2420
19a9ba64 2421 Radar 4386773
ab20d992 2422 * objc-act.c (objc_set_method_opt): New function.
19a9ba64
AM
2423 (objc_start_protocol, objc_finish_interface): Reset
2424 objc_method_optional_flag flag.
2425 (objc_add_method_declaration): Pass on the new
2426 flag to objc_add_method.
2427 (objc_add_method): Add optional methods to new chain in
2428 the protocol class.
ab20d992 2429 * objc-act.h (CLASS_OPTIONAL_CLS_METHODS)
19a9ba64
AM
2430 (CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
2431 class's optional method chains.
944fb799 2432
2631eead
NP
24332010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
2434
2435 Merge from 'apple/trunk' branch on FSF servers.
2436
3f8257db 2437 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
2631eead
NP
2438
2439 Radar 4278236
2440 * objc-act.c (objc_declare_class): Pick the right
2441 type tree.
2442
13ed556f 24432010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
a6341d57
NP
2444
2445 Merge from 'apple/trunk' branch on FSF servers.
2446
3f8257db 2447 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
a6341d57
NP
2448
2449 Radar 4281748
2450 * objc-act.c (objc_check_global_decl): New
2451
1973201f
NP
24522010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
2453
2454 * objc-act.c (objc_is_reserved_word): Removed.
2455
f7e71da5 24562010-09-28 Iain Sandoe <iains@gcc.gnu.org>
944fb799
MS
2457
2458 * objc-act.c (objc_add_method_declaration): Handle and ignore
f7e71da5
IS
2459 attributes.
2460 (objc_start_method_definition): Likewise.
2461 (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
2462 (objc_build_keyword_decl): Handle and ignore attributes.
2463
f0a0390e
RH
24642010-09-28 Richard Henderson <rth@redhat.com>
2465
2466 * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
2467
c165dca7
IS
24682010-09-28 Iain Sandoe <iains@gcc.gnu.org>
2469
2470 * objc-act.c (objc_start_class_interface): Handle and ignore attributes.
2471 (objc_start_category_interface): Likewise.
2472 (objc_start_protocol): Likewise.
2473
26877873
NP
24742010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
2475
2476 Merge from 'apple/trunk' branch on FSF servers.
2477
3f8257db 2478 2005-08-23 Stuart Hastings <stuart@apple.com>
92a285c1 2479 Ziemowit Laski <zlaski@apple.com>
26877873
NP
2480
2481 Radar 4209854
2482 * objc-act.c (objc_decay_parm_type): New function.
2483 (get_arg_type_list): Decay types for all named arguments.
2484 (objc_push_parm): Rebuild the PARM_DECL if its type has
944fb799 2485 been decayed.
26877873 2486
d6f62ada 24872010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
a00ac533
NP
2488
2489 * objc-act.c (encode_type): Fixed encoding enums with the next
2490 runtime.
2491
4c116505
NP
24922010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
2493
2494 Merge from 'apple/trunk' branch on FSF servers.
2495
2496 2005-07-18 Ziemowit Laski <zlaski@apple.com>
2497
2498 Radar 4175534
2499 * objc-act.c (objc_compare_types): A new silent comparison
2500 mode (-4), differing from regular comparison (-3) in that
2501 'false' is returned instead of issuing warnings.
944fb799 2502
06e67e16
NP
25032010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
2504
2505 * objc-act.c (encode_type): Do not add 'r' with the next runtime.
2506 (encode_aggregate_within): Reorganized code to be more readable.
2507 (encode_aggregate_fields): Updated second argument to be 'bool'
2508 instead of 'int'.
2509
177b48f9
NP
25102010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
2511
2512 PR objc/45763
2513 PR objc/25450
2514 PR objc/25464
2515 * objc-act.c: Improved comments for encoding functions.
2516 (encode_aggregate_within): For the GNU runtime, rewritten some
2517 obsfuscated code to clarify the various cases.
2518 (encode_aggregate): Function removed.
2519 (encode_array): Generate an error if asked to encode an incomplete
2520 array as part of generating instance variables. Else, when
2521 encoding an incomplete array inside a structure, encode it as an
2522 array of zero size.
2523 (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
2524 '^c' instead of '*'.
2525 (encode_gnu_bitfield): Encode enumerated types exactly in the same
2526 type as integer types instead of using a hardcoded 'i'. If asked
2527 to encode a non-integer type as a bitfield, do not abort
2528 compilation immediately; instead generate an error, then skip the
2529 type.
2530 (encode_type): Use a 'switch' instead of a sequence of 'if's.
2531 Added a 'default' clause that gets executed if the type can not be
2532 matched, and that encodes it as '?' (unknown) and produces a
2533 warning. For the GNU runtime, encode enumerated types exactly in
2534 the same way as integer types instead of using a hardcoded 'i'.
2535 Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'.
2536 Encode C++ reference types as pointers. Call encode_vector to
2537 encode vectors.
2538 (encode_vector): New function.
944fb799 2539
177b48f9
NP
25402010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
2541
2542 Merge from 'apple/trunk' branch on FSF servers. I modified the
2543 changes to be used only when compiling for the NeXT runtime.
2544
3f8257db 2545 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
177b48f9 2546
19a9ba64 2547 Radar 4301047
177b48f9
NP
2548
2549 * objc-act.c (encode_type): Remove the hack.
944fb799 2550
177b48f9
NP
2551 2005-07-20 Ziemowit Laski <zlaski@apple.com>
2552
2553 Radar 4136935
2554 * objc-act.c (pointee_is_readonly): New function.
2555 (encode_pointer, encode_aggregate_within, encode_type):
2556 Attempt to emulate GCC 3.3 when generating type encodings.
2557
b581b85b
NP
25582010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
2559
2560 Merge from 'apple/trunk' branch on FSF servers.
2561
3f8257db 2562 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
b581b85b
NP
2563
2564 Radar 4229905
2565 * objc-act.c (objc_have_common_types): New function.
944fb799 2566
b581b85b
NP
2567 2005-06-22 Ziemowit Laski <zlaski@apple.com>
2568
2569 Radar 4154928
2570 * objc-act.c (objc_common_type): New function.
944fb799 2571
fa2ea33d
RG
25722010-09-27 Richard Guenther <rguenther@suse.de>
2573
2574 * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
2575 (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
2576
1caeb1af
NP
25772010-09-26 Nicola Pero <nicola.pero@meta-innovation.com>
2578
2579 * objc-act.c: Removed historical, obsolete comment at the top of
2580 the file.
2581
45547c7f
NP
25822010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
2583
2584 PR objc/23710
2585 * objc-act.c (objc_start_method_definition): Do not abort upon a
2586 'method definition not in @implementation context' error. Return
2587 'false' instead.
2588
c0c24aa4
NP
25892010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
2590
2591 PR objc/25965
2592 * objc-act.c (objc_get_interface_ivars): New function.
2593 (objc_collecting_ivars): New variable.
2594 (continue_class): Set and reset objc_collecting_ivars for context.
944fb799 2595
0f185d6e
NP
25962010-09-15 Nicola Pero <nicola.pero@meta-innovation.com>
2597
2598 Merge from 'apple/trunk' branch on FSF servers.
2599
ab20d992 2600 2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
0f185d6e 2601
19a9ba64 2602 Radar 4457381
ab20d992 2603 * objc-act.c (objc_finish_message_expr): Look for message in
0f185d6e
NP
2604 @class's protocol list.
2605
3f8257db 2606 2006-02-07 Fariborz Jahanian <fjahanian@apple.com>
0f185d6e
NP
2607
2608 Radar 4219590
ab20d992 2609 * objc-act.c (objc_start_method_definition): Initialize
0f185d6e
NP
2610 break/continue labels.
2611
2612 2005-08-22 Ziemowit Laski <zlaski@apple.com>
2613
2614 Radar 4174166
2615 * objc-act.c (objc_compare_types): Compare function
2616 pointers; indicate success if the right-hand side has
2617 a return type that is covariant, and the argument types
2618 contravariant, with those of the left side.
2619
2620 2005-08-22 Ziemowit Laski <zlaski@apple.com>
2621
2622 Radar 4216500
2623 * objc-act.c (objc_get_protocol_qualified_type): When looking
2624 at a typedef, retrieve the precise type it describes (rather
2625 than merely looking up a class by name).
944fb799 2626
96cb32ac
NP
26272010-09-10 Nicola Pero <nicola.pero@meta-innovation.com>
2628
ab20d992 2629 * objc-act.c (objc_begin_try_stmt): Generate an error if
96cb32ac
NP
2630 -fobjc-exceptions was not used. (objc_build_throw_stmt): Same
2631 change.
2632
910ad8de
NF
26332010-07-15 Nathan Froyd <froydnj@codesourcery.com>
2634
2635 * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2636
058bfe53
IS
26372010-07-10 Iain Sandoe <iains@gcc.gnu.org>
2638
2639 PR objc/44140
2640 * objc-act.c: build_objc_string_decl() remove declaration.
2641 (finish_var_decl): Remove forcing of var output and marking
944fb799
MS
2642 as "Used".
2643 (init_def_list): Use integer_zero_node.
058bfe53
IS
2644 (init_objc_symtab): Use integer_zero_node, make the short
2645 integer type specific on relevant nodes.
944fb799 2646 (generate_objc_symtab_decl): Remove call to
058bfe53 2647 forward_declare_categories(). Use null_pointer_node where
944fb799
MS
2648 appropriate.
2649 (build_module_descriptor): Comment and mark this item as
2650 DECL_PRESERVE_P.
058bfe53 2651 (generate_static_references): Use gcc_unreachable instead of
944fb799 2652 abort ().
058bfe53
IS
2653 (diagnose_missing_method): New.
2654 (build_next_selector_translation_table): New.
2655 (build_gnu_selector_translation_table): New.
2656 (add_objc_string): Merge code from build_objc_string_decl...
2657 ... and delete build_objc_string_decl().
2658 (generate_dispatch_table): Make integer types explicit.
2659 (generate_category): Pass implent and arrange for the data
944fb799 2660 to be extracted within the routine. Do not start new vars,
058bfe53
IS
2661 but finish the ones collcted during parsing.
2662 (generate_shared_structures): Likewise.
ab20d992 2663 (finish_objc): Reorder code so that we finish variables before
058bfe53 2664 referencing them. Save the global data before calling meta-data
944fb799
MS
2665 creation routines, and pass the current reference to the two
2666 main routines. Only call generate_objc_image_info () for the
058bfe53
IS
2667 NeXT runtime.
2668 (generate_classref_translation_entry): Comment on and make this
2669 item DECL_PRESERVE_P.
2670 (handle_class_ref): Use varpool interfaces, comment on and make
2671 this item DECL_PRESERVE_P.
2672 (handle_impent): Likewise.
944fb799 2673 (generate_objc_image_info): Only generate when the content is
058bfe53
IS
2674 non-zero. Make integer types explict.
2675
3e78185c
NF
26762010-07-03 Nathan Froyd <froydnj@codesourcery.com>
2677
2678 PR objc/24867
2679 * objc-act.c (build_sized_array_type): New function.
2680 (add_objc_string): Use it.
2681 (generate_protocol_list): Likewise.
2682 (generate_objc_image_info): Likewise.
2683 (add_field_decl): New function.
2684 (objc_build_struct): Use a VEC rather than building a TREE_LIST.
2685 (generate_struct_by_value_array): Use add_field_decl.
2686 (build_objc_symtab_template): Likewise.
2687 (build_module_descriptor): Likewise.
2688 (build_objc_exception_stuff): Likewise.
2689 (build_protocol_template): Likewise.
2690 (build_method_prototype_list_template): Likewise.
2691 (build_method_prototype_template): Likewise.
2692 (build_category_template): Likewise.
2693 (build_selector_template): Likewise.
2694 (build_class_template): Likewise.
2695 (build_super_template): Likewise.
2696 (build_ivar_template): Likewise.
2697 (build_ivar_list_template): Likewise.
2698 (build_method_list_template): Likewise.
2699 (build_method_template): Likewise.
2700
3b06d379
SB
27012010-06-28 Steven Bosscher <steven@gcc.gnu.org>
2702
2703 * objc-act.c: Do not include except.h.
2704
a9429e29
LB
27052010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2706
2707 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
2708 allocation.
2709
2710 * objc-act.c (objc_volatilize_decl): Likewise.
2711 (objc_build_string_object): Likewise.
2712 (hash_init): Likewise.
2713 (hash_enter): Likewise.
2714 (hash_add_attr): Likewise.
2715 (add_class): Likewise.
2716 (start_class): Likewise.
2717
39dabefd
SB
27182010-06-05 Steven Bosscher <steven@gcc.gnu.org>
2719
2720 * objc-act.c: Update include path for moved files.
2721 * objc-lang.c: Likewise.
2722 * config-lang.in: Update paths in gtfiles for files in c-family/.
2723
bb9a7f51
NF
27242010-06-01 Nathan Froyd <froydnj@codesourcery.com>
2725
2726 * objc-act.c (build_next_objc_exception_stuff): Give setjmp a
2727 varargs type instead of a zero-argument type.
2728
178b70cc
NF
27292010-05-30 Nathan Froyd <froydnj@codesourcery.com>
2730
2731 * objc-act.c (synth_module_prologue): Use build_function_type_list
2732 instead of build_function_type.
2733 (build_module_initializer_routine): Likewise.
2734 (build_next_objc_exception_stuff): Likewise.
2735 (build_objc_exception_stuff): Likewise.
2736
1da2ed5f
JM
27372010-05-27 Joseph Myers <joseph@codesourcery.com>
2738
2739 * objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
2740 * Make-lang.in (objc/objc-act.o): Update dependencies.
2741
245763e3
SB
27422010-05-25 Steven Bosscher <steven@gcc.gnu.org>
2743
2744 * objc-act.h: Do not include gimple.h.
2745 * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
2746 Include gimple.h. Explain why except.h has to be included.
2747 * objc-lang.c: Do not include diagnostics.h.
2748 * Make-lang.in: Update dependencies.
2749
263d02e2
NF
27502010-05-25 Nathan Froyd <froydnj@codesourcery.com>
2751
2752 * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
2753 mismatch code for VECs.
2754
076a7055
NF
27552010-05-25 Nathan Froyd <froydnj@codesourcery.com>
2756
2757 * objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
2758 Use build_constructor instead of build_constructor_from_list.
2759 (objc_build_string_object): Build a VEC argument for
2760 objc_build_constructor.
2761 (init_def_list): Likewise.
2762 (init_objc_symtab): Likewise.
2763 (init_module_descriptor): Likewise.
2764 (generate_static_references): Likewise.
2765 (build_selector_translation_table): Likewise.
2766 (build_descriptor_table_initializer): Likewise.
2767 (generate_descriptor_table): Likewise.
2768 (build_protocol_initializer): Likewise.
2769 (build_ivar_list_initializer): Likewise.
2770 (generate_ivars_list): Likewise.
2771 (build_dispatch_table_initializer): Likewise.
2772 (generate_dispatch_table): Likewise.
2773 (generate_protocol_list): Likewise.
2774 (build_category_initializer): Likewise.
2775 (build_shared_structure_initializer): Likewise.
2776 (generate_objc_image_info): Likewise.
2777
619dea2d
IS
27782010-04-30 Iain Sandoe <iains@gcc.gnu.org>
2779
2780 PR objc++/32052
2781 * objc-act.c (encode_aggregate_within): Encode structure tags
2782 with template args for ObjC++.
2783
9aae8d16
SB
27842010-04-30 Steven Bosscher <steven@gcc.gnu.org>
2785
2786 * objc-act.c: Do not include varray.h.
2787
ebfbbdc5
JJ
27882010-04-07 Jakub Jelinek <jakub@redhat.com>
2789
2790 PR c/18624
2791 * objc-act.c (finish_var_decl, objc_begin_catch_clause,
2792 really_start_method, get_super_receiver, handle_class_ref): Set
2793 DECL_READ_P in addition to TREE_USED.
2794
3f8257db 27952010-04-07 Iain Sandoe <iains@gcc.gnu.org>
b51e84c9
IS
2796
2797 PR objc/35996
2798 * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
2799 -fgnu-runtime and set flag_objc_gc to zero.
2800
3f8257db 28012010-04-07 Iain Sandoe <iains@gcc.gnu.org>
58e0f0d3
IS
2802
2803 PR objc++/23716
2804 * objc-act.c (build_module_initializer_routine): Make the argument
2805 to objc_start_function NULL_TREE when compiling ObjC++.
2806
3f8257db 28072010-02-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
fca4c1d5
IS
2808 Mike Stump <mikestump@comcast.net>
2809
f8ba5508 2810 PR objc/43061
fca4c1d5
IS
2811 * objc-act.c (finish_var_decl): Set the generated symbols as "used".
2812
bcff5c1e
SZ
28132009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
2814
2815 * objc-act.c (objc_substitute_decl, build_ivar_reference,
2816 get_super_receiver): Update build_indirect_ref calls.
2817
76dcaf33
JJ
28182009-11-28 Jakub Jelinek <jakub@redhat.com>
2819
0f900dfa
JJ
2820 * objc-act.c (generate_shared_structures): Remove unused sc_spec and
2821 decl_specs variables.
2822 (objc_build_message_expr): Remove unused loc variable.
2823 (objc_finish_message_expr): Remove unused saved_rtype variable.
2824 (encode_field_decl): Remove unused type variable.
2825
76dcaf33
JJ
2826 PR obj-c++/42156
2827 * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
2828 type variants that don't have it initialized yet.
2829
870875e6
JH
28302009-09-14 Jan Hubicka <jh@suse.cz>
2831
2832 * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
2833
1d65f45c
RH
28342009-09-14 Richard Henderson <rth@redhat.com>
2835
2836 * objc-act.c (objc_init_exceptions): Don't call
2837 default_init_unwind_resume_libfunc.
2838 (objc_build_exc_ptr): Use __builtin_eh_pointer.
2839
f9417da1 28402009-09-13 Richard Guenther <rguenther@suse.de>
ab20d992 2841 Rafael Avila de Espindola <espindola@google.com>
f9417da1
RG
2842
2843 * objc-act.c (objc_eh_runtime_type): Export.
2844 (objc_init_exceptions): Remove. Move warning code ...
2845 (objc_begin_try_stmt): ... here
2846 (objc_build_throw_stmt): ... and here.
2847 (objc_eh_personality_decl): New.
2848 (objc_eh_personality): New function.
2849 * objc-act.h (objc_eh_runtime_type): Declare.
2850 (objc_eh_personality): Likewise.
2851 * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
2852 (LANG_HOOKS_EH_PERSONALITY): Likewise.
2853
4537ec0c
DN
28542009-09-03 Diego Novillo <dnovillo@google.com>
2855
2856 * objc-lang.c (lang_hooks): Remove const qualifier.
2857
29cc57cf
RG
28582009-08-20 Richard Guenther <rguenther@suse.de>
2859
2860 * objc-act.c: Include c-lang.h
2861 * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
2862
db3927fb
AH
28632009-07-17 Aldy Hernandez <aldyh@redhat.com>
2864 Manuel López-Ibáñez <manu@gcc.gnu.org>
2865
944fb799 2866 PR 40435
db3927fb
AH
2867 * objc-act.c: Add location argument to all calls to
2868 build_fold_addr_expr.
944fb799 2869
2a4c0366
TG
28702009-07-14 Taras Glek <tglek@mozilla.com>
2871 Rafael Espindola <espindola@google.com>
2872
2873 * Make-lang.in (objc.install-plugin): New target for
2874 installing plugin headers.
2875
5e278028
MLI
28762009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2877
2878 * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
2879 EXPR_LOCATION.
944fb799 2880
c5d75364
MLI
28812009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2882
2883 * objc-act.c: Replace %J by an explicit location. Update all
2884 calls.
944fb799 2885
fab922b1
MLI
28862009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2887
2888 * objc-act.c: Replace %H by an explicit location. Update all
2889 calls.
944fb799 2890
0a7d7dea
MK
28912009-06-22 Steven Bosscher <steven@gcc.gnu.org>
2892
2893 PR objc/28050
2894 * objc-act.c (objc_build_message_args): Return if ARGS is the
2895 error_mark_node.
944fb799 2896
dc491a25
ILT
28972009-06-19 Ian Lance Taylor <iant@google.com>
2898
2899 * objc-act.c (objc_in_struct, objc_struct_types): Remove.
2900 (objc_struct_info): New static variable.
2901 (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
2902 and &objc_struct_types, to start_struct.
2903 (objc_finish_struct): Likewise for finish_struct.
2904
e1b7793c
ILT
29052009-06-15 Ian Lance Taylor <iant@google.com>
2906
2907 * objc-act.c (objc_start_function): Don't set
2908 label_context_stack_se or label_context_stack_vm.
2909
c2255bc4 29102009-06-12 Aldy Hernandez <aldyh@redhat.com>
944fb799 2911
c2255bc4
AH
2912 * objc-act.c (finish_var_decl): Pass location to finish_decl.
2913 (objc_get_parm_info): Same.
2914 (get_super_receiver): Same.
2915 * objc-act.c (objc_build_component_ref): Pass location to
2916 build_compound_ref.
2917 (build_module_initializer_routine): Pass location to
2918 c_end_compound_stmt.
2919 (objc_generate_static_init_call): Pass location to build_stmt.
2920 (build_typed_selector_reference): New location argument.
2921 (build_selector_reference): Same.
2922 (objc_substitute_decl): Pass location to build_array_ref.
2923 (next_sjlj_build_try_catch_finally): Pass location to build_stmt.
2924 (objc_begin_catch_clause): Same.
2925 (objc_finish_try_stmt): Same.
2926 (objc_finish_catch_clause): Pass location to c_end_compound_stmt.
2927 (objc_build_throw_stmt): New argument.
2928 (generate_shared_structures): Pass location to build_c_cast.
2929 (objc_build_message_expr): Use local location.
2930 (objc_finish_message_expr): Use input_location.
2931 (build_objc_method_call): New argument.
2932 (objc_build_selector_expr): Same.
2933 (get_super_receiver): Pass location to build_c_cast,
2934 build_modify_expr, build_compound_expr.
2935 * objc-act.c: Add location to all calls to start_struct, build_decl,
2936 finish_struct.
944fb799 2937
744aa42f
ILT
29382009-06-09 Ian Lance Taylor <iant@google.com>
2939
2940 * objc-act.c (objc_gimplify_expr): Change return type to int.
2941 * objc-act.h: Update declaration.
2942
2153915d
AO
29432009-06-08 Alexandre Oliva <aoliva@redhat.com>
2944
2945 * objc-act.c (objc_init): Skip print_struct_values during
2946 -fcompare-debug-second.
2947
6bc7bc14
ILT
29482009-06-03 Ian Lance Taylor <iant@google.com>
2949
2950 * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
2951 $(SYSTEM_H).
2952
c607156f
ILT
29532009-05-27 Ian Lance Taylor <iant@google.com>
2954
2955 * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
2956 $(LINKER).
2957 (cc1obj$(exeext)): Likewise.
2958
7980bfb8
ILT
29592009-05-26 Ian Lance Taylor <iant@google.com>
2960
2961 * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
2962 (cc1obj$(exeext)): Likewise.
2963
c166b898
ILT
29642009-05-20 Ian Lance Taylor <iant@google.com>
2965
2966 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
2967 than NULL_TREE to build_special_member_call.
2968
24b97832
ILT
29692009-05-10 Ian Lance Taylor <iant@google.com>
2970
2971 * objc-act.c (objc_building_struct): New static variable.
2972 (objc_in_struct, objc_struct_types): New static variables.
2973 (objc_start_struct, objc_finish_struct): New static functions.
2974 (generate_struct_by_value_array): Call objc_start_struct instead
2975 of start_struct, and call objc_finish_struct instead of
2976 finish_struct.
2977 (objc_build_struct, build_objc_symtab_template): Likewise.
2978 (build_module_descriptor): Likewise.
2979 (build_next_objc_exception_stuff): Likewise.
2980 (build_protocol_template): Likewise.
2981 (build_method_prototype_list_template): Likewise.
2982 (build_method_prototype_template): Likewise.
2983 (build_category_template, build_selector_template): Likewise.
2984 (build_class_template, build_super_template): Likewise.
2985 (build_ivar_template, build_ivar_list_template): Likewise.
2986 (build_method_list_template): Likewise.
2987 (build_method_template): Likewise.
2988
f41c4af3
JM
29892009-05-10 Joseph Myers <joseph@codesourcery.com>
2990
2991 * objc-act.c: Include intl.h.
2992 (objc_lookup_protocol): Use complete sentences for diagnostics
2993 with %qE for identifiers and translating results of
2994 gen_type_name_0 to locale character set.
2995 (objc_check_decl, check_protocol_recursively,
2996 lookup_and_install_protocols, objc_build_string_object,
2997 objc_get_class_reference, objc_declare_alias, objc_declare_class,
2998 objc_get_class_ivars, error_with_ivar, check_duplicates,
2999 objc_finish_message_expr, objc_build_protocol_expr,
3000 objc_build_selector_expr, build_ivar_reference, objc_add_method,
3001 add_category, add_instance_variable, objc_is_public,
3002 check_methods, check_methods_accessible, check_protocol,
3003 start_class, finish_class, start_protocol, really_start_method,
3004 get_super_receiver, objc_lookup_ivar): Use %E and %qE for
3005 identifiers in diagnostics. Translate generated text to locale
3006 character set as needed.
3007 (check_protocol, check_protocols): Change name parameter to type
3008 tree.
3009 (lang_report_error_function): Remove.
3010
81f40b79
ILT
30112009-04-27 Ian Lance Taylor <iant@google.com>
3012
3013 * objc-act.c (objc_gimplify_expr): Add casts to enum type.
3014
32e8bb8e
ILT
30152009-04-24 Ian Lance Taylor <iant@google.com>
3016
3017 * objc-act.c (get_super_receiver): Update calls to
3018 build_modify_expr to pass new argument.
3019
3f8257db 30202009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208 3021
ab20d992
JJ
3022 * objc-act.c: Update GTY annotations to new syntax.
3023 * objc-act.h: Likewise.
d1b38208 3024
ad41bd84
JM
30252009-04-21 Joseph Myers <joseph@codesourcery.com>
3026
3027 * ChangeLog: Add copyright and license notices.
3028
bbbbb16a
ILT
30292009-04-20 Ian Lance Taylor <iant@google.com>
3030
3031 * objc-act.c (objc_rewrite_function_call): Change parameter from
3032 params to first_param. Change all callers.
3033
77a08224
DH
30342009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr>
3035
3036 PR bootstrap/39583
3037 * objc-act.c (in_late_binary_op): Define for Objective-C++.
3038
928c19bb
JM
30392009-03-29 Joseph Myers <joseph@codesourcery.com>
3040
3041 PR c/456
3042 PR c/5675
3043 PR c/19976
3044 PR c/29116
3045 PR c/31871
3046 PR c/35198
3047 * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
3048
9ff4a9da 30492008-12-05 Sebastian Pop <sebastian.pop@amd.com>
250d2fb5
JJ
3050
3051 PR bootstrap/38262
3052 * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
3053 remove GMPLIBS.
3054
c9f9eb5d
AH
30552008-10-06 Aldy Hernandez <aldyh@redhat.com>
3056
3057 * objc-act.c (objc_build_string_object): Pass location to
3058 build_unary_op.
3059 (init_def_list): Same.
3060 (init_objc_symtab): Same.
3061 (init_module_descriptor): Same.
3062 (build_module_initializer_routine): Same.
3063 (generate_static_references): Same.
3064 (build_typed_selector_reference): Same.
3065 (add_objc_string): Same.
3066 (objc_substitute_decl): Same.
3067 (objc_build_ivar_assignment): Same.
3068 (objc_build_global_assignment): Same.
3069 (objc_build_strong_cast_assignment): Same.
3070 (generate_protocols): Same.
3071 (build_protocol_initializer): Same.
3072 (build_dispatch_table_initializer): Same.
3073 (generate_protocol_list): Same.
3074 (build_category_initializer): Same.
3075 (build_shared_structure_initializer): Same.
3076 (generate_shared_structures): Same.
3077 (objc_build_protocol_expr): Same.
3078 (build_ivar_reference): Same.
3079 (get_super_receiver): Same.
3080
ba47d38d
AH
30812008-09-23 Aldy Hernandez <aldyh@redhat.com>
3082
3083 * objc-act.c (next_sjlj_build_enter_and_setjmp): Call
3084 c_common_truthvalue_conversion with location.
3085 (next_sjlj_build_catch_list): Same.
3086 (next_sjlj_build_try_catch_finally): Same.
3087
2700cb86
AP
30882008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
3089
3090 PR objc/37460
3091 * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
3092 * objc-act.h (objc_get_callee_fndecl): Remove prototype.
3093 * objc-act.c (objc_get_callee_fndecl): Kill.
3094
0494626a
JH
30952008-09-17 Jan Hubicka <jh@suse.cz>
3096
3097 PR c++/18071
ab20d992 3098 * objc-act.c (objc_finish_method_definition): Do not set
0494626a
JH
3099 DECL_INLINE.
3100
6a3799eb
AH
31012008-09-01 Aldy Hernandez <aldyh@redhat.com>
3102
3103 * objc-act.c (build_typed_selector_reference): Pass input_location to
3104 build_unary_op calls.
3105 (build_selector_reference): Same, but to build_array_ref.
3106 (objc_substitute_decl): Same.
3107 (build_ivar_reference): Same, but to build_indirect_ref.
3108 (get_super_receiver): Same.
3109
726a989a
RB
31102008-07-28 Richard Guenther <rguenther@suse.de>
3111
3112 Merge from gimple-tuples-branch.
3113
3114 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
3115
3116 * Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
3117 (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
3118 * objc-act.h: Include gimple.h instead of tree-gimple.h.
3119 * ipa-reference.c: Same.
3120
3121 2007-11-10 Aldy Hernandez <aldyh@redhat.com>
3122
3123 * objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
3124 * objc-act.h (objc_gimplify_expr): Change prototype accordingly.
3125
39a13be5
RW
31262008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3127
3128 * objc-act.c: Fix comment typos.
3129
5025f379
KG
31302008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3131
3132 * objc-act.c (objc_start_class_interface,
3133 objc_start_category_interface, objc_start_class_implementation,
3134 objc_start_category_implementation, objc_build_struct,
3135 generate_static_references, build_private_template,
3136 lookup_category, objc_add_method, add_category,
3137 add_instance_variable, objc_is_public, conforms_to_protocol,
3138 start_class, continue_class, finish_class): Avoid C++ keywords.
3139
7ce841d2
JM
31402008-07-14 Jason Merrill <jason@redhat.com>
3141
3142 PR objc++/36723
3143 * objc-act.c (objc_build_constructor): Update C++ tweak.
3144
719bb4e3 31452007-07-14 Rafael Ávila de Espíndola <espindola@google.com>
df0ed6c5
RAE
3146
3147 * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
3148 of DECL_IN_SYSTEM_HEADER.
3149
eea1139b
ILT
31502008-07-11 Ian Lance Taylor <iant@google.com>
3151
3152 * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
3153 etc., not just when OBJCPLUS is defined.
3154
e1e4cdc4
KG
31552008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3156
3157 * objc-act.c (setup_string_decl, objc_build_string_object,
3158 hash_interface, eq_interface, objc_begin_try_stmt,
3159 encode_method_prototype, build_ivar_list_initializer,
3160 objc_build_encode_expr): Fix for -Wc++-compat.
3161
dbd368da
TB
31622008-05-12 Tomas Bily <tbily@suse.cz>
3163
19a9ba64
AM
3164 * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
3165 Use CONVERT_EXPR_P.
dbd368da 3166
51eed280
PB
31672008-04-23 Paolo Bonzini <bonzini@gnu.org>
3168
3169 * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
3170
6cba282a
TT
31712008-04-03 Tom Tromey <tromey@redhat.com>
3172
3173 * Make-lang.in (objc_OBJS): New variable.
3174
e980df8e
TT
31752008-03-27 Tom Tromey <tromey@redhat.com>
3176
3177 * Make-lang.in: Revert automatic dependency patch.
3178
525521b6
DG
31792008-03-27 Douglas Gregor <doug.gregor@gmail.com>
3180
3181 PR obj-c++/35704
3182 * objc-act.c (objc_build_component_ref): Fix call to
3183 finish_class_member_access_expr.
3184 (objc_generate_cxx_ctor_or_dtor): Fix call to
3185 build_special_member_call.
3186
9c349a39
AP
31872008-03-25 Andrew Pinski <pinskia@gmail.com>
3188
3189 PR objc/29197
3190 * objc-act.c (encode_type): Handle when type is error_mark_node.
3191 (objc_push_parm): Handle when the type of parm is error_mark_node.
3192
2fe3178b
TT
31932008-03-25 Tom Tromey <tromey@redhat.com>
3194
3195 * Make-lang.in (objc_OBJS): New variable.
3196 (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
3197
f03f16b2
AT
31982008-03-21 Andreas Tobler <a.tobler@schweiz.org>
3199
3200 PR bootstrap/35660
3201 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
3202 MAYBE_CLASS_TYPE_P.
3203 (objc_generate_cxx_cdtors): Likewise.
3204 (add_instance_variable): Likewise.
3205
2d593c86
TT
32062008-02-26 Tom Tromey <tromey@redhat.com>
3207
3208 * objc-act.c (objc_init): Remove old location code.
3209
72fb133f
KG
32102008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3211
3212 PR other/35107
3213 * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
3214
2b7d992a
NC
32152007-07-30 Nick Clifton <nickc@redhat.com>
3216
3217 * Make-lang.in: Change copyright header to refer to version 3 of
3218 the GNU General Public License and to point readers at the
3219 COPYING3 file and the FSF's license web page.
3220 * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
3221 config-lang.in, objc-lang.c: Likewise.
3222
fa233e34
KG
32232007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3224
3225 * objc-act.c (objc_get_callee_fndecl): Constify.
3226 * objc-act.h (objc_get_callee_fndecl): Likewise.
3227
741ac903
KG
32282007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3229
3230 * objc-act.c (volatilized_hash, volatilized_eq, string_hash,
3231 string_eq): Constify.
3232
dd1af55f
SH
32332007-04-04 Stuart Hastings <stuart@apple.com>
3234
3235 PR 31281
ab20d992 3236 * objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
dd1af55f 3237
95506ebf
BM
32382007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
3239
3240 * Make-lang.in: Add dummy lang.install-pdf target.
3241
c9819cb2
KH
32422007-02-18 Kazu Hirata <kazu@codesourcery.com>
3243
ab20d992 3244 * objc-act.c: Fix comment typos.
c9819cb2 3245
5039610b
SL
32462007-02-15 Sandra Loosemore <sandra@codesourcery.com>
3247 Brooks Moses <brooks.moses@codesourcery.com>
3248 Lee Millward <lee.millward@codesourcery.com>
3249
3250 * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
3251 (objc_get_callee_fndecl): Likewise.
3252
7122aa3b
AP
32532007-01-23 Andrew Pinski <pinskia@gmail.com>
3254
3255 PR objc/27438
3256 * objc-act.c (objc_add_static_instance): Mark the decl as
3257 TREE_USED.
3258
d2f9f9a6
AP
32592007-01-20 Andrew Pinski <pinskia@gmail.com>
3260
3261 PR objc/30479
3262 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
3263 of htab_hash_pointer.
3264 (lookup_interface): Likewise.
3265 (add_class): Likewise.
3266
06d40de8 32672007-01-02 Douglas Gregor <doug.gregor@gmail.com>
944fb799 3268
06d40de8
DG
3269 * objc-act.c (objc_build_volatilized_type): Keep track of
3270 canonical types.
3271 (objc_get_protocol_qualified_type): Ditto.
944fb799 3272
88852cb5
AT
32732006-11-02 Andreas Tobler <a.tobler@schweiz.org>
3274
3275 * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
3276 content where we called cp_finish_file.
3277
ab20d992 32782006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
c79efc4d
RÁE
3279
3280 * objc-act.c (synth_module_prologue): Replace calls to
3281 builtin_function with add_builtin_function.
3282 (build_next_objc_exception_stuff): Replace calls to
3283 builtin_function with add_builtin_function.
3284 (build_objc_exception_stuff): Replace calls to
3285 builtin_function with add_builtin_function.
3286
b5422ad7
BM
32872006-10-10 Brooks Moses <bmoses@stanford.edu>
3288
3289 * Make-lang.in: Added empty "objc.pdf" target.
3290
e91de072
AP
32912006-09-26 Andrew Pinski <pinskia@physics.uc.edu>
3292
3293 PR objc/29195
3294 * objc-act.c (objc_push_parm): If we change the type of the
3295 decl, relayout the decl.
3296
64ee9490
EC
32972006-09-19 Eric Christopher <echristo@apple.com>
3298
3299 * objc-act.c (JBLEN): Rename to OBJC_JBLEN,
3300 default to something innocuous.
3301 (build_next_objc_exception_stuff): Rename JBLEN.
3302
48779194
VR
33032006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3304
3305 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
3306
7eb314dc
VR
33072006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3308
3309 PR obj-c++/28434
3310 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
3311
c713f9e4
MS
33122006-06-06 Mike Stump <mrs@apple.com>
3313
3314 * objc-act.c: Remove prototype for objc_build_volatilized_type.
3315
1fb34f17
MS
33162006-05-24 Mike Stump <mrs@apple.com>
3317
3318 * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
3319
b2072208
VR
33202006-05-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3321
3322 PR objc/27240
3323 * objc-act.c (objc_is_public): Return early on invalid type.
3324
ab20d992 33252006-03-02 Fariborz Jahanian <fjahanian@apple.com>
d349339d
FJ
3326
3327 * objc-act.c (init_module_descriptor): Remove file name from
3328 module descriptor.
3329 (gen_type_name_0): Fix ICE when issuing warning.
3330
3f8257db
JJ
33312006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3332
ab20d992
JJ
3333 * Make-lang.in (OBJC): Remove.
3334 (OBJECTIVE-C): Remove.
3335 (objective-c): Remove.
3336 (.PHONY): Remove objective-c and ObjC.
9d29a5b7 3337
06b11455
AP
33382005-12-14 Andrew Pinski <pinskia@physics.uc.edu>
3339
3340 PR objc/25360
ab20d992 3341 * objc-act.c (encode_type): Encode Complex types as 'j' followed
1fb34f17 3342 by the inner type.
06b11455 3343
6b990f0d
AP
33442005-12-12 Andrew Pinski <pinskia@physics.uc.edu>
3345
3346 PR objc/25348
3347 * objc-act.c (encode_array): Handle arrays to zero sized types.
3348
719bb4e3 33492005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
bd97af06
RÁE
3350
3351 * Make-lang.in (objc.all.build, objc.install-normal): Remove.
3352
719bb4e3 33532005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2f4d2d18
AM
3354
3355 * Make-lang.in: Remove all dependencies on s-gtype.
3356
9b282d77
RG
33572005-12-02 Richard Guenther <rguenther@suse.de>
3358
3359 * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
3360 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
3361 next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
3362 build_objc_method_call, objc_rewrite_function_call): Use buildN
3363 instead of build.
3364
e9bf587a
GK
33652005-10-20 Geoffrey Keating <geoffk@apple.com>
3366
3367 * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
3368 on objc_msgSend and like builtin functions.
3369
15c85bc2
AK
33702005-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
3371
3a222eae 3372 * objc-act.c (objc_build_component_ref): Adjust call to
15c85bc2
AK
3373 finish_class_member_access_expr due to a changed prototype.
3374
04885a24
AP
33752005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
3376
3377 PR objc/23306
3378 * objc-act.c (generate_strings): Remove and move code to
3379 finish decl to ...
3380 (add_objc_string): here when creating a new string decl.
3381 (finish_objc): Don't call generate_strings.
3382
eb6b2571
AP
33832005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
3384
3385 PR objc/23381
3386 * objc-act.c (next_sjlj_build_try_catch_finally): Set
3387 TREE_SIDE_EFFECTS on catch_seq after building it.
3388
4e7feced
AP
33892005-08-09 Andrew Pinski <pinskia@physics.uc.edu>
3390
3391 part of PR objc/21992
3392 * objc-act.c (handle_class_ref): The ref decl is always referenced.
3393
4038c495
GB
33942005-07-20 Giovanni Bajo <giovannibajo@libero.it>
3395
3396 Make CONSTRUCTOR use VEC to store initializers.
3397 * objc-act.c (objc_build_constructor): Use build_constructor_from_list
3398 instead of build_constructor.
3399
820cc88f 34002005-07-08 Daniel Berlin <dberlin@dberlin.org>
3a222eae 3401
820cc88f
DB
3402 * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
3403 removed.
3404 * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
3405 (KEYWORD_KEY_NAME): Use decl_minimal.
3406 (METHOD_SEL_NAME): Ditto..
3407 (METHOD_SEL_ARGS): Use decl_non_common.
3408 (METHOD_ADD_ARGS): Ditto.
3409 (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
3410 (METHOD_DEFINITION): Ditto.
3411 (METHOD_ENCODING): Ditto.
3412 * objc-lang.c: (objc_init_ts): New function.
3413
a0e71127
ZL
34142005-07-07 Ziemowit Laski <zlaski@apple.com>
3415
3416 * objc-act.c (objc_build_struct): Pass in an actual @interface
3417 instead of its name, and annotate the struct created (and all
3418 existing variants thereof) with the @interface.
3419 (objc_compare_types): Treat forward-declared ObjC classes
3420 as stand-alone (root) classes for purposes of type comparisons.
3421 (build_private_template): Move some code to objc_build_struct().
3422
f5d21c4c
ZL
34232005-07-07 Ziemowit Laski <zlaski@apple.com>
3424
3425 PR objc/22274
3426 * objc-act.c (objc_build_string_object): For GNU-style constants,
3427 use the @interface type rather than the built-in type.
3428
f726bf47
KH
34292005-07-03 Kazu Hirata <kazu@codesourcery.com>
3430
3431 * Make-lang.in (cc1plus-checksum.c): Use
3432 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
3433
c85ce869
JM
34342005-07-02 Joseph S. Myers <joseph@codesourcery.com>
3435
3436 * objc-act.c: Use %q to quote in diagnostics.
3437
dee15844
JM
34382005-07-02 Joseph S. Myers <joseph@codesourcery.com>
3439
3440 * objc-act.c: Use '+' flag instead of %J. Use 'q' flag for
3441 quoting.
3442
e6b05534
ZL
34432005-06-30 Ziemowit Laski <zlaski@apple.com>
3444
3445 * objc-act.c (objc_build_volatilized_type): New function.
3446 (objc_volatilize_decl): Call objc_build_volatilized_type()
3447 instead of build_qualified_type().
3448
c64de75f
ZL
34492005-06-29 Ziemowit Laski <zlaski@apple.com>
3450
3451 * objc-act.c (objc_build_internal_const_str_type): New function.
3452 (check_string_class_template): Use objc_get_class_ivars() instead
3453 of TYPE_FIELDS() to retrieve ivar list.
3454 (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
3455 than the field itself.
3456 (objc_build_string_object): Synthesize a "__builtin_ObjCString"
3457 type and use it to lay out compile-time string objects.
3458 * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
3459 New.
3460
617a1b71
PB
34612005-06-28 Paul Brook <paul@codesourcery.com>
3462
3463 * objc-act.c (objc_init_exceptions): Call
3464 default_init_unwind_resume_libfunc.
3465
2aba33dd
ZL
34662005-06-27 Ziemowit Laski <zlaski@apple.com>
3467
3468 * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
3469 portion of TYPE_LANG_SPECIFIC info for all variants of
3470 a class before calling finish_struct(), and restore
3471 same TYPE_OBJC_INFO afterwards.
3472
f12c30a8
KC
34732005-06-25 Kelley Cook <kcook@gcc.gnu.org>
3474
3475 * all files: Update FSF address in copyright headers.
3476
46bdb9cf
JM
34772005-06-15 Joseph S. Myers <joseph@codesourcery.com>
3478
3479 * objc-act.c (my_build_string_pointer): New.
3480 (objc_get_class_reference, get_super_receiver): Call
3481 my_build_string_pointer instead of my_build_string when building
3482 function arguments.
3483
14d63fb6
MS
34842005-05-25 Mike Stump <mrs@mrs.kithrup.com>
3485
3486 * objc-act.c (volatilized_hash): Avoid warnings on 64-bit
3487 machines.
3488
d11dd684
ZL
34892005-05-24 Ziemowit Laski <zlaski@apple.com>
3490
3491 * objc-act.c (objc_build_struct): New function.
3492 (objc_derived_from_p): Likewise.
3493 (objc_build_component_ref): Likewise.
3494 (objc_copy_binfo): Likewise.
3495 (objc_xref_basetypes): Likewise.
3496 (objc_lookup_protocol): Likewise.
3497 (objc_compare_protocols): Likewise.
3498 (objc_volatilize_decl): Likewise.
3499 (encode_aggregate_fields): Likewise.
3500 (volatilized_hash): Likewise.
3501 (volatilized_eq): Likewise.
3502 (objc_compare_types): Likewise.
3503 (objc_type_quals_match): Likewise.
3504 (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
3505 of same name.
3506 (get_class_ivars): Add second parameter indicating if entire
3507 hierarchy is desired.
3508 (struct volatilized_type): New type.
3509 (volatilized_htab): New hash table.
3510 (objc_types_compatible_p, objc_comptypes): Remove functions.
3511 (synth_module_prologue): Do not initialize 'unused_list'.
3512 (objc_get_class_reference): Fix ObjC++ impedance mismatches.
3513 (objc_declare_alias): Implement as a typedef.
3514 (objc_substitute_decl, objc_gimplify_expr): Reformat.
3515 (objc_get_class_ivars): Adjust call to get_class_ivars().
3516 (next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
3517 build_ivar_reference, get_super_receiver): Call
3518 objc_build_component_ref() instead of build_component_ref().
3519 (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
3520 objc_comptypes().
3521 (build_private_template): Call objc_build_struct() instead of
3522 start_struct() and finish_struct().
3523 (hash_init): Initialize volatilized_htab.
3524 (objc_is_public): Adjust calls to objc_get_ivars(); adjust
3525 ObjC++ impedance mismatches.
3526 (encode_aggregate_within): Streamline by calling
3527 encode_aggregate_fields().
3528 * objc-act.h (objc_types_compatible_p): Remove prototype.
3529 (OCTI_UNUSED_LIST, unused_list): Remove slot.
3530 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
3531
3fd30b88
GK
35322005-05-18 Geoffrey Keating <geoffk@apple.com>
3533
3534 * Make-lang.in (cc1obj-dummy): New.
3535 (cc1obj-checksum.c): New.
3536 (cc1obj-checksum.o): New.
3537 (cc1obj): Add cc1obj-checksum.o.
3538
55cb0169
MS
35392005-05-18 Mike Stump <mrs@apple.com>
3540
3541 PR objc/21641
3542 * objc-act.c (struct interface_tuple): Mark it up for GC.
3543 (interface_htab): It is really a struct interface_tuple.
3544
210f12a7
ZL
35452005-05-17 Ziemowit Laski <zlaski@apple.com>
3546 Mike Stump <mrs@apple.com>
38b9c8c3
ZL
3547
3548 Yet more Objective-C++...
3549
3550 * objc-act.c (objc_finish_try_stmt): Add return value.
3551 (objc_build_synchronized): Likewise.
3552
3553 * objc-act.c (objc_is_gcable_type): Add.
3554 (objc_substitute_decl): Add.
3555 (objc_build_ivar_assignment): Add.
3556 (objc_build_global_assignment): Add.
3557 (objc_build_strong_cast_assignment): Add.
3558 (objc_is_ivar_reference_p): Add.
3559 (objc_is_global_reference_p): Add.
3560 (objc_generate_write_barrier): Add.
3561 (objc_rewrite_function_call): Add.
3562 (objc_gimplify_expr): Add Objective-C++ support.
3563 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
3564 (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
3565 (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
3566 (DUP_TYPE_OBJC_INFO): Likewise.
3567 (struct imp_entry): Add field has_cxx_cdtors.
3568 (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
3569 OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
3570 OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
3571 OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
3572 OCTI_ASSIGN_STRONGCAST_DECL.
3573 (umsg_fast_decl): Add.
3574 (objc_assign_ivar_decl): Add.
3575 (objc_assign_ivar_fast_decl): Add.
3576 (objc_assign_global_decl): Add.
3577 (objc_assign_strong_cast_decl): Add.
3578 (objc_method_list_ptr): Add.
3579 (objc_method_proto_list_ptr): Add.
3580 (objc_ivar_list_ptr): Add.
3581
3582 * objc-act.c (should_call_super_dealloc): Add.
3583 (OBJC_VERSION): Bump to 6.
3584 (objc_is_gcable_type): Add.
3585 (objc_substitute_decl): Add.
3586 (objc_build_ivar_assignment): Add.
3587 (objc_build_global_assignment): Add.
3588 (objc_build_strong_cast_assignment): Add.
3589 (objc_is_gcable_p): Add.
3590 (objc_is_ivar_reference_p): Add.
3591 (objc_is_global_reference_p): Add.
3592 (generate_shared_structures): Add flags parameter.
3593 (objc_generate_cxx_ctor_or_dtor): Add.
3594 (objc_generate_cxx_cdtors): Add.
3595 (add_class): Add name parameter.
3596 (objc_types_share_size_and_alignment): Add.
3597 (comp_proto_with_proto): Add strict parameter.
3598 (CLS_HAS_CXX_STRUCTORS): Add.
3599 (TAG_ASSIGNIVAR): Add.
3600 (TAG_ASSIGNGLOBAL): Add.
3601 (TAG_ASSIGNSTRONGCAST): Add.
3602 (TAG_MSGSEND_FAST): Add.
3603 (TAG_ASSIGNIVAR_FAST): Add.
3604 (TAG_CXX_CONSTRUCT): Add.
3605 (TAG_CXX_DESTRUCT): Add.
3606 (OBJC_LOOKUP_CLASS): Add.
3607 (OBJC_LOOKUP_NO_SUPER): Add.
3608 (objc_finish_file): Add pch support.
3609 (objc_finish_implementation): Add Objective-C++ support.
3610 (synth_module_prologue): Likewise.
3611 (synth_module_prologue): Add fast dispatching.
3612 (objc_get_class_reference): Add Objective-C++ support.
3613 (objc_generate_write_barrier): Likewise.
3614 (next_sjlj_build_enter_and_setjmp): Likewise.
3615 (objc_begin_try_stmt): Likewise.
3616 (build_next_objc_exception_stuff): Add fast ivar support.
3617 (build_private_template): Mark the record as used so debug
3618 information is generated.
3619 (build_protocol_template): Add Objective-C++ support.
3620 (objc_method_parm_type) Likewise.
3621 (objc_generate_cxx_ctor_or_dtor): Likewise.
3622 (objc_generate_cxx_cdtors): Likewise.
3623 (build_protocol_initializer): Likewise.
3624 (build_category_template): Likewise.
3625 (build_class_template): Likewise.
3626 (build_method_list_template): Likewise.
3627 (build_category_initializer): Likewise.
3628 (build_shared_structure_initializer): Likewise.
3629 (objc_finish_message_expr): Likewise.
3630 (build_objc_method_call): Add fast dispatch support.
3631 (lookup_method_static): Add support to end search at superclasses.
3632 (add_method_to_hash_list): Add strict parameter to
3633 comp_proto_with_proto.
3634 (objc_add_method): Likewise.
3635 (objc_add_method): Also set the interface_value.
3636 (add_instance_variable): Add Objective-C++ support.
3637 (objc_is_public): Likewise.
3638 (start_class): Likewise.
3639 (continue_class): Likewise.
3640 (encode_aggregate_within): Likewise.
3641 (start_method_def): Likewise.
3642 (objc_start_function): Clear current_function_returns_value
3643 and current_function_returns_null.
3644 (really_start_method): Add Objective-C++ support.
3645 (objc_finish_method_definition): Add warning for missing
3646 [super dealloc].
3647 (finish_objc): Add Objective-C++ support.
3648 (generate_objc_image_info): Likewise.
3649 (objc_lookup_ivar): Likewise.
3650 * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
3651 (INIT_TYPE_OBJC_INFO): Likewise.
3652 (DUP_TYPE_OBJC_INFO): Likewise.
3653
d4ee4d25
DD
36542005-04-23 DJ Delorie <dj@redhat.com>
3655
3656 * objc-act.c: Adjust warning() callers.
3657
dbb74365
RS
36582005-04-21 Roger Sayle <roger@eyesopen.com>
3659
3660 * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
3661 this field of an objc method decl.
3662 * objc-act.c (build_method_decl): Take an additional "ellipsis"
3663 argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
3664 (objc_build_method_signature): Accept additional "ellipsis"
3665 argument and pass it to build_method_decl.
3666 (get_arg_type_list, start_method_def, gen_method_decl): Use
3667 the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
3668 TREE_OVERFLOW field of a TREE_LIST node.
3669
187230a7
JM
36702005-04-20 Joseph S. Myers <joseph@codesourcery.com>
3671
3672 PR c/12913
3673 * objc-act.c (objc_start_function): Create stack level for context
3674 of identifiers with variably modified type.
3675
16ef3acc
JM
36762005-03-30 Joseph S. Myers <joseph@codesourcery.com>
3677
3678 PR c/772
3679 PR c/17913
3680 * objc-act.c (objc_start_function): Push context on
3681 label_context_stack.
3682
85498824
JM
36832005-03-23 Joseph S. Myers <joseph@codesourcery.com>
3684
3685 * objc-act.c (next_sjlj_build_enter_and_setjmp,
3686 next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
3687 Call c_common_truthvalue_conversion.
3688
27bf414c
JM
36892005-02-25 Joseph S. Myers <joseph@codesourcery.com>
3690
3691 * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
ab20d992 3692 objc/objc-parse.c, objc/objc-parse.y): Remove.
27bf414c
JM
3693 (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
3694 objc.distclean, objc.maintainer-clean): Update for new parser.
3695 * config-lang.in (gtfiles): Update for new parser.
3696
567426d9
KH
36972005-01-29 Kazu Hirata <kazu@cs.umass.edu>
3698
3699 * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
3700 copyright.
3701
86a43457
MA
37022005-01-27 Matt Austern <austern@apple.com>
3703
3704 * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
3705 calling instantiate_pending_templates.
3a222eae 3706
b0676216
AM
37072005-01-26 Alexander Malmberg <alexander@malmberg.org>
3708
3709 PR objc/18862
3710 * objc-act.c (build_selector_translation_table): Use
3711 input_location in the diagnostic for the GNU runtime or if
3712 TREE_PURPOSE (chain) is NULL.
3713
3f16185f
AM
37142005-01-25 Alexander Malmberg <alexander@malmberg.org>
3715
3716 PR objc/18408
3717 * objc-act.c (objc_types_compatible_p): New function.
3718 * objc-act.h (objc_types_compatible_p): Declare.
3719 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3720
6435c34b
ZL
37212005-01-16 Ziemowit Laski <zlaski@apple.com>
3722
3723 * objc-act.c (objc_push_parm): Call c_type_promotes_to()
3724 via a lang-hook.
3725
aecaa19a
ZL
37262005-01-15 Ziemowit Laski <zlaski@apple.com>
3727
3728 PR objc/19321
3729 * objc-act.c (get_arg_type_list): Decay function arguments into
3730 pointers.
3731 (objc_push_parm): Likewise; bring PARM_DECL construction closer
3732 in line with what the C front-end does.
3733 (objc_get_parm_info): Call pushdecl() and finish_decl() on
3734 each PARM_DECL, like the C front-end does.
3735 (start_method_def): Remove redundant ARRAY_TYPE decay.
3736 (objc_start_function): Bring closer in line with what the
3737 C front-end does for functions.
3738
28bbb550
MS
37392005-01-14 Mike Stump <mrs@apple.com>
3740
3741 * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
3742 that -fobjc-exceptions is accepted.
3743
9eb892ec
ZL
37442004-12-30 Ziemowit Laski <zlaski@apple.com>
3745
3746 PR objc/18971
3747 * objc-act.c (get_arg_type_list, start_method_def): Decay
3748 array arguments into pointers.
3749 (gen_type_name_0): Learn to pretty-print array types.
3750
035e8f01
ZL
37512004-12-15 Ziemowit Laski <zlaski@apple.com>
3752
3753 * objc-act.c (build_private_template): Change to return 'void'; do
3754 not set ivar_context, uprivate_record or objc_instance_type.
3755 (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
3756 retrieve protocol list from the pointee rather than the pointer itself;
3757 check TYPE_HAS_OBJC_INFO(...) precondition before accessing
3758 TYPE_OBJC_PROTOCOL_LIST.
3759 (objc_get_protocol_qualified_type): For types 'id' and 'Class',
3760 construct a variant of the pointee as well as the pointer, and
3761 store protocol information in the former. When creating variants
3762 of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
3763 TYPE_OBJC_INTERFACE information.
3764 (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
3765 underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
3766 for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
3767 holding an IDENTIFIER_NODE.
3768 (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
3769 accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
3770 of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
3771 an IDENTIFIER_NODE (meaning a @class forward-declaration only).
3772 (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
3773 lookup_interface().
3774 (continue_class): For @implementations, set ivar_context,
3775 uprivate_record and objc_instance_type, for @interfaces, call
3776 build_private_template().
3777 (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
3778 TYPE_OBJC_INTERFACE.
3779 (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
3780 accessing TYPE_OBJC_PROTOCOL_LIST.
3781 * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
3a222eae 3782 DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
035e8f01
ZL
3783 SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
3784 (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
3785 to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
3786 (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
3787 TYPE_LANG_SPECIFIC(...).
3788 (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
3789 (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
3790 TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
3791 adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
3792 instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
3793
86f029aa
JM
37942004-11-29 Joseph Myers <joseph@codesourcery.com>
3795
3796 PR c/7544
3797 * Make-lang.in (objc/objc-act.o): Update dependencies.
3798 * objc-act.c (objc_finish_file): Call
3799 maybe_apply_pending_pragma_weaks if not OBJCPLUS.
3800
3172e26c
AP
38012004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
3802
3803 PR objc/18406
3804 * obj-act.c (encode_type): 96bits doubles are encoded the
3805 same way as 64bit and 128bit doubles are.
3806
9e637a26
JM
38072004-11-09 Joseph S. Myers <joseph@codesourcery.com>
3808
3809 * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
3810
3a723ff6
AP
38112004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
3812
3813 PR objc/16546
3814 * objc-act.c (generate_method_descriptors): Remove setting
3815 the new decls' type to variable_length_type.
3816 (generate_ivar_lists): Likewise.
3817 (generate_dispatch_tables): Likewise.
3818
16b34ad6
ZL
38192004-10-30 Ziemowit Laski <zlaski@apple.com>
3820
3821 * objc-act.c (objc_lookup_ivar): The new OTHER parameter
3822 contains the result of the ID lookup by the C or C++
3823 front-end; in class methods, use OTHER if it exists;
3824 in instance methods, use OTHER only if it is locally
3825 declared.
3826
38285932
ZL
38272004-10-26 Ziemowit Laski <zlaski@apple.com>
3828
3829 * objc-act.c (finish_class): Do not synthesize bogus
3830 'extern objc_object *_Foo;' declarations for @interface Foo.
3831
3a3589b4
ZL
38322004-10-25 Ziemowit Laski <zlaski@apple.com>
3833 David Ayers <d.ayers@inode.at>
3834
3835 * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
3836 instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
3837 'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
3838 'Class <Protocol> == id' and 'Class <Protocol> == Class'.
3839 (objc_is_id): Add test for 'super'.
3840 (objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
3841 receivers; if class methods are not found in protocol lists, search
3842 for instance methods therein and warn if one is found. Look in
3843 global hash tables for suitable method as a last resort when messaging
3844 'id <Proto>', 'Class <Proto>' and invalid receiver types.
3845 (objc_add_method): Insert instance methods listed in protocols into
3846 the global class method hash table.
3847 * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
3848 IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
3849 addition to 'id <Proto>'.
3850
943db347
AP
38512004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
3852
3853 PR objc/17923
3854 * objc-act.c (objc_build_string_object): Create a CONST_DECL
3855 for the NeXT runtime case.
3856
c72f8eec
KH
38572004-10-02 Kazu Hirata <kazu@cs.umass.edu>
3858
3859 * objc-act.c: Fix comment typos.
3860
14214f09
ZL
38612004-09-24 Ziemowit Laski <zlaski@apple.com>
3862
3863 * objc-act.c (init_objc_symtab, init_module_descriptor,
3864 build_shared_structure_initializer): When initializing 'long'
3865 fields, ensure that the initializer value is also 'long'.
3866
dd3017e4
ZW
38672004-09-24 Zack Weinberg <zack@codesourcery.com>
3868
3869 * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
3870 throughout.
3871 (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
3872 (build_selector_translation_table): Use %J in diagnostic
3873 instead of diddling input_line. Fix spelling.
3874
86c44072
ZL
38752004-09-21 Ziemowit Laski <zlaski@apple.com>
3876
3877 * objc-act.c (objc_fold_objc_type_ref): New function.
3878 * objc-act.h (objc_fold_objc_type_ref): New prototype.
3879
f8893e47
JM
38802004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
3881
3882 * objc-act.c (objc_start_function, really_start_method,
3883 objc_get_parm_info, start_method_def): Update to new arg_info
3884 structures.
3885
6408ef33
ZL
38862004-09-07 Ziemowit Laski <zlaski@apple.com>
3887
3888 * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
3889 objc/objc-act.h.
3890 (objc/objc-act.o): Depend on $(HASHTAB_H).
3891 * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
3892 objcp-decl.h instead of c-tree.h.
3893 (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
3894 error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
3895 build_protocol_template): Adjust prototypes.
3896 (build_module_initializer_routine, start_class, continue_class,
3897 finish_class, start_method_def, objc_start_function, start_protocol,
3898 build_method_decl, objc_add_method, add_instance_variable,
3899 build_ivar_reference, is_ivar, is_private, get_super_receiver,
3900 build_selector_table_decl, objc_push_parm, objc_get_parm_info,
3901 gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
3902 create_field_decl): New prototypes.
3903 (objc_expand_function_end, comp_method_with_proto, objc_expr_last,
3904 gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
3905 define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
3906 (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
3907 (CLASS_TYPEDEF_NAME): New.
3908 (TAG_EXECCLASS): Change from a global variable to a #define.
3909 (TAG_RETURN_STRUCT): Delete.
3910 (TAG_GNUINIT): New, holds '__objc_gnu_init' name.
3911 (objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
3912 (string_descriptor): New struct.
3913 (string_htab): New hash table.
3914 (string_hash, string_eq): New prototypes.
3915 (generate_struct_by_value_array): Call create_field_decl() instead of
3916 create_builtin_decl().
3917 (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
3918 In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
3919 (objc_finish_file): In ObjC++, call instantiate_pending_templates()
3920 and cp_finish_file().
3921 (define_decl, get_static_reference, get_protocol_reference,
3922 create_builtin_decl): Remove functions.
3923 (objc_start_class_interface, objc_start_category_interface,
3924 objc_start_protocol, objc_continue_interface, objc_finish_interface,
3925 objc_start_class_implementation, objc_start_category_implementation,
3926 objc_continue_implementation, objc_finish_implementation,
3927 objc_set_visibility, objc_set_method_type,
3928 objc_build_method_signature, objc_add_method_declaration,
3929 objc_start_method_definition, objc_add_instance_variable,
3930 objc_get_protocol_qualified_type, create_field_decl,
3931 start_var_decl, finish_var_decl): New functions.
3932 (setup_string_decl): Simplify since it is only called once.
3933 (synth_module_prologue): Call build_class_template(); predefine 'id'
3934 and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
3935 hooks for duration of function; fix GNU runtime messenger signatures
3936 to correspond to reality; forward-declare '__objc_exec_class' for the
3937 GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
3938 'extern "C" { ... }' wrappers around synthesized declarations; call
3939 build_protocol_template() and build_category_template().
3940 (string_hash, string_eq): New functions.
3941 (objc_build_string_object): Check metaclass correctness only once;
3942 store string literals in hash table.
3943 (objc_build_constructor): Do not convert initializer elements;
3944 adjust for ObjC++ impedance mismatch.
3945 (build_objc_symtab_template): Call create_field_decl() instead of
3946 create_builtin_decl().
3947 (init_objc_symtab): Add missing conversion to initializer element.
3948 (build_metadata_decl): Call start_var_decl() instead of define_decl().
3949 (generate_objc_symtab_decl): Do not call build_category_template();
3950 call start_var_decl() and finish_var_decl() instead of start_decl()
3951 and finish_decl().
3952 (build_module_descriptor): Call create_field_decl() instead of
3953 grokfield(); call start_var_decl() and finish_var_decl() instead of
3954 start_decl() and finish_decl(); always mark module descriptor as
3955 used; move GNU runtime-specific functionality to
3956 build_module_initializer_routine().
3957 (build_module_initializer_routine): New function, broken off of
3958 build_module_descriptor().
3959 (objc_static_init_needed_p, objc_generate_static_init_call): New
3960 functions.
3961 (generate_static_references, generate_strings,
3962 build_selector_translation_table, generate_descriptor_table,
3963 generate_ivars_list, generate_dispatch_table, generate_category): Call
3964 start_var_decl() and finish_var_decl() instead of start_decl() and
3965 finish_decl(); build a type directly instead of via groktypename().
3966 (build_selector_reference_decl, build_selector_table_decl,
3967 build_class_reference_decl, build_protocol_reference,
3968 generate_objc_image_info): Call start_var_decl() instead of
3969 build_decl().
3970 (build_selector_reference): For GNU runtime, do not call
3971 build_selector_reference_decl().
3972 (build_selector, build_typed_selector_reference): Always convert
3973 result to the selector type.
3974 (add_objc_string): Cast return value to 'char *'.
3975 (build_method_prototype_template, build_selector_template,
3976 build_method_template): Use actual selector type for fields
3977 pointing to selectors.
3978 (finish_objc): For GNU runtime, call
3979 build_module_initializer_routine() after build_module_descriptor().
3980 (generate_protocol_list, generate_shared_structures): Call
3981 start_var_decl() and finish_var_decl() instead of start_decl() and
3982 finish_decl(); build a type directly instead of via
3983 groktypename().
3984 (synth_id_with_class_suffix): Return a string.
3985 (get_arg_type_list): For instance methods, use the instance type for
3986 'self'; do not call groktypename_in_parm_context().
3987 (build_objc_string_decl): Squash redeclaration errors in ObjC++.
3988 (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
3989 handle RECORD_TYPEs in ObjC as well as ObjC++.
3990 (objc_is_id): New function.
3991 (objc_is_object_ptr): Return the canonical type node.
3992 (objc_get_class_ivars): Simplify using get_class_ivars().
3993 (get_class_ivars): Remove second parameter; create a fresh copy
3994 of the ivar list for each call; do not check for existence of
3995 super class.
3996 (objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
3997 (objc_init_exceptions): When using SJLJ-style exceptions, require
3998 the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
3999 exceptions.
4000 (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
4001 objc_object_type instead of objc_id_type.
4002 (objc_begin_catch_clause): Convert the incoming PARM_DECL into
4003 a VAR_DECL before placing it in the appropriate scope; do not
4004 call define_decl(); adjust call to c_begin_compound_stmt();
4005 use objc_object_type instead of objc_id_type.
4006 (build_next_objc_exception_stuff): Call create_field_decl() instead
4007 of create_builtin_decl(); construct type directly instead of calling
4008 groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
4009 (build_private_template): Adjust call to get_class_ivars(); build
4010 a type directly instead of via groktypename().
4011 (build_protocol_template, build_method_prototype_list_template,
4012 build_method_prototype_template, build_category_template,
4013 build_selector_template, build_class_template, build_super_template,
4014 build_ivar_template, build_ivar_list_template,
4015 build_method_list_template, build_method_template):
4016 Call create_field_decl() instead of grokfield().
4017 (objc_method_parm_type): Do not call groktypename().
4018 (generate_descriptor_table): Call start_var_decl() and
4019 finish_var_decl() instead of start_decl() and finish_decl().
4020 (generate_method_descriptors, build_protocol_initializer,
4021 generate_dispatch_tables, build_category_initializer,
4022 build_shared_structure_initializer): Do not call groktypename().
4023 (generate_protocols): Call start_var_decl() and finish_var_decl()
4024 instead of start_decl() and finish_decl(); do not call groktypename().
4025 (error_with_ivar): Remove last parameter.
4026 (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
4027 to CLASS_IVARS lists; adjust calls to error_with_ivar().
4028 (generate_ivar_lists): Convert one of the initializer elements; do
4029 not call groktypename().
4030 (get_arg_type_list, start_method_def, gen_method_def): Account for
4031 new representation of variable arguments and '...' in Objective-C
4032 methods; add Objective-C++ impedance matching code.
4033 (is_objc_type_qualifier): Remove function.
4034 (adjust_type_for_id_default): Simplify; there is no longer a need to
4035 wade through declspecs.
4036 (lookup_interface, start_class, continue_class,
4037 finish_class, start_method_def, start_protocol, build_method_decl,
4038 objc_add_method, add_instance_variable, build_ivar_reference,
4039 is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
4040 Make into static functions.
4041 (receiver_is_class_object): Use new IS_CLASS() macro.
4042 (objc_build_message_expr): Tweak ObjC++ message argument handling;
4043 call objc_finish_message_expr() instead of finish_message_expr().
4044 (finish_message_expr): Rename to objc_finish_message_expr(); use
4045 OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
4046 call gen_type_name() instead of gen_declaration(); call objc_is_id()
4047 instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
4048 calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
4049 (build_objc_method_call, warn_with_method): Do not call groktypename().
4050 (build_ivar_reference): Call convert() instead of clobbering in a
4051 type.
4052 (hash_init): Initialize string_htab hash table.
4053 (add_instance_variable): Simplify parameter list; do not call grokfield();
4054 do not populate CLASS_IVARS list.
4055 (start_class): Check for the existence of super class, if one was specified.
4056 (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
4057 call build_class_template(); adjust call to get_class_ivars(); call
4058 build_decl(), pushdecl() and finish_decl() instead of define_decl().
4059 (finish_class): Call build_decl(), pushdecl() and finish_decl() instead
4060 of define_decl().
4061 (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
4062 (start_protocol): Do not call build_protocol_template(); use
4063 PROTOCOL_BINFO_ELTS for the tree vector size.
4064 (encode_type_qualifiers): Do not handle the 'const' qualifier here.
4065 (encode_pointer): Encode 'const char *' as 'r*', for backwards
4066 compatibility.
4067 (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
4068 (encode_type): Handle the 'const' qualifier here.
4069 (objc_parmlist): New global variable, sued by objc_push_parm and
4070 objc_get_parm_info().
4071 (objc_push_parm, objc_get_parm_info): New functions.
4072 (objc_expr_last): Remove function.
4073 (synth_self_and_ucmd_args): For instance methods, use the instance
4074 type for 'self'; call objc_push_parm() instead of push_parm_decl().
4075 (start_method_def): Do not call push_scope(), declare_parm_level(),
4076 pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
4077 just use objc_push_parm() and objc_get_parm_info().
4078 (comp_method_with_proto): Remove function.
4079 (objc_types_are_equivalent): Strip away indirections before comparing
4080 underlying types.
4081 (comp_proto_with_proto): Do not call groktypename(); types are no
4082 longer in raw declspec format.
4083 (objc_start_function): New function.
4084 (really_start_method): Call comp_proto_with_proto() instead of
4085 comp_method_with_proto(); call objc_start_function() instead of
4086 hand-crafting a function declarator.
4087 (continue_method_def, objc_expand_function_end): Remove functions.
4088 (get_super_receiver): Call objc_get_current_scope() instead of
4089 get_current_scope(); reference 'super_class' field (instead of
4090 'class').
4091 (finish_method_def): Rename to objc_finish_method_definition() and
4092 add a function decl parameter; move method encoding call from
4093 objc_expand_function_end().
4094 (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
4095 gen_declaration_1): Remove functions.
4096 (tmpbuf, RAW_DECLSPEC): Remove.
4097 (gen_declaration): Remove second parameter; simplify to deal
4098 with TYPE_P nodes instead of raw declspecs.
4099 (gen_type_name, gen_type_name_0): New functions.
4100 (gen_method_decl): Remove second parameter; call gen_type_name()
4101 instead of gen_declaration_1().
dd3017e4 4102 (dump_interface): Adjust calls to gen_declaration() and
6408ef33
ZL
4103 gen_method_decl(); do not allocate a separate string buffer.
4104 (init_objc): Allocate a larger string buffer to accommodate
4105 dump_interface(); adjust call to build_module_descriptor();
4106 add call to build_module_initializer_routine() for the GNU
4107 runtime.
4108 (generate_classref_translation_entry): Do not call start_decl(); call
4109 finish_var_decl() instead of finish_decl(); call convert() instead of
4110 build_c_cast().
4111 * objc-act.h (CLASS_OWN_IVARS): Remove accessor.
4112 (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
4113 gone.
4114 (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
4115 (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
4116 (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
4117 objc_object_type and objc_object_name, respectively.
4118 (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
4119 objc_class_name): New.
4120 (IS_CLASS): New macro.
4121 (IS_ID, IS_SUPER): Robustify.
4122 (OCTI_EXECCLASS_DECL, execclass_decl): New.
4123 (finish_file, start_class, continue_class, finish_class,
4124 start_method_def, continue_method_def, finish_method_def,
4125 start_protocol, finish_protocol, objc_build_throw_stmt,
4126 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
4127 objc_build_synchronized_epilogue, objc_build_try_prologue,
4128 objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
4129 objc_build_finally_prologue, objc_build_finally_epilogue,
4130 is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
4131 get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
4132 get_class_reference, get_static_reference, get_object_reference,
4133 build_message_expr, finish_message_expr, build_selector_expr,
4134 build_ivar_reference, build_keyword_decl, build_method_decl,
4135 build_protocol_expr, build_objc_string_object, objc_declare_alias,
4136 objc_declare_class, objc_declare_protocols, objc_comptypes,
4137 objc_check_decl, build_encode_expr): Remove prototypes.
4138 (imp_count, cat_count): Make GGC-aware.
4139 (OBJC_SET_TYPE_NAME): New macro.
dd3017e4 4140
1970d8c5
ZL
41412004-09-03 Ziemowit Laski <zlaski@apple.com>
4142
4143 * config-lang.in: Update copyright notice.
4144 (lang_requires): Indicate that ObjC requires C to be built first.
4145
57a6af27
ZL
41462004-09-01 Ziemowit Laski <zlaski@apple.com>
4147
4148 * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
4149 TYPE_NAME.
4150 (build_objc_string_object): Rename to objc_build_string_object().
4151 (get_class_reference): Rename to objc_get_class_reference().
4152 (get_class_ivars_from_name): Rename to objc_get_class_ivars().
4153 (next_sjlj_build_catch_list, get_super_receiver): Call
4154 objc_get_class_reference() instead of get_class_reference().
4155 (build_keyword_decl): Rename to objc_build_keyword_decl().
4156 (build_message_expr): Rename to objc_build_message_expr().
4157 (build_protocol_expr): Rename to objc_build_protocol_expr().
4158 (build_selector_expr): Rename to objc_build_selector_expr().
4159 (build_encode_expr): Rename to objc_build_encode_expr().
4160 * objc-act.h (get_class_ivars_from_name): Rename prototype to
4161 objc_get_class_ivars().
4162 (get_class_reference): Rename prototype to objc_get_class_reference().
4163 (build_message_expr): Rename prototype to objc_build_message_expr().
4164 (build_selector_expr): Rename prototype to objc_build_selector_expr().
4165 (build_keyword_decl): Rename prototype to objc_build_keyword_decl().
4166 (build_protocol_expr): Rename prototype to objc_build_prototype_expr().
4167 (build_objc_string_object): Rename prototype to
4168 objc_build_string_object().
dd3017e4 4169
bc095846
ZL
41702004-09-01 Ziemowit Laski <zlaski@apple.com>
4171
4172 * objc-act.c (lookup_interface): Make function 'static' and add a
4173 local prototype.
4174 (objc_check_decl, get_class_reference, objc_declare_alias,
4175 objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
4176 instead of is_class_name().
dd3017e4 4177 (get_super_receiver, objc_clear_super_receiver): Call
bc095846
ZL
4178 objc_get_current_scope() instead of get_current_scope().
4179 (is_class_name): Rename to objc_is_class_name.
4180 (lookup_objc_ivar): Rename to objc_lookup_ivar.
4181
e5a002e3
ZL
41822004-08-28 Ziemowit Laski <zlaski@apple.com>
4183
4184 * objc-act.c (objc_is_reserved_word): New function.
4185
9a4d6480
ZL
41862004-08-15 Ziemowit Laski <zlaski@apple.com>
4187
4188 * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
4189 $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
4190 (objc/objc-parse.o): Do not depend on gtype-objc.h.
4191 * objc-act.c: Do not include gtype-objc.h.
4192 (finish_file): Rename to objc_finish_file().
4193 * objc-act.h (finish_file): Update copyright notice; remove prototype.
4194 * objc-lang.c: Update copyright notice; include diagnostic.h,
4195 c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
4196 toplev.h.
4197 (finish_file): New hook routine.
4198 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
4199 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
4200 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
dd3017e4
ZW
4201 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
4202 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
9a4d6480
ZL
4203 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
4204 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
dd3017e4 4205 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
9a4d6480
ZL
4206 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
4207 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
4208 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
4209 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4210 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
4211 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
4212 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
4213 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
4214 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
4215 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
4216 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
4217 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
4218 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
4219 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
4220 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
4221 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
4222 Move to c-objc-common.h.
ad41bd84
JM
4223
4224\f
877e3c2a 4225Copyright (C) 2004-2022 Free Software Foundation, Inc.
ad41bd84
JM
4226
4227Copying and distribution of this file, with or without modification,
4228are permitted in any medium without royalty provided the copyright
4229notice and this notice are preserved.