OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [objc/] [ChangeLog] - Blame information for rev 723

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.