1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
|
2005-06-30 Devang Patel <dpatel@apple.com>
* lang-specs.h: While making PCH, invoke as if -fsave-repository
is used.
2005-06-28 Ziemowit Laski <zlaski@apple.com>
Radar 4140824
* objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
portion of TYPE_LANG_SPECIFIC info for all variants of
a class before calling finish_struct(), and restore
same TYPE_OBJC_INFO afterwards.
2005-06-22 Ziemowit Laski <zlaski@apple.com>
Radar 4154928
* objc-act.c (objc_common_type): New function.
2005-06-21 Ziemowit Laski <zlaski@apple.com>
Radar 4149909
* objc-act.c (objc_build_internal_const_str_type): New function.
(check_string_class_template): Use objc_get_class_ivars() instead
of TYPE_FIELDS() to retrieve ivar list.
(AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
than the field itself.
(objc_build_string_object): Synthesize a "__builtin_ObjCString"
type and use it to lay out compile-time string objects.
* objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
New.
2005-05-19 Ziemowit Laski <zlaski@apple.com>
Radar 4035492
* objc-act.c (objc_build_struct, objc_derived_from_p,
objc_build_component_ref, objc_copy_binfo, objc_xref_basetypes,
objc_lookup_protocol, objc_compare_protocols, objc_volatilize_decl,
encode_aggregate_fields, volatilized_hash, volatilized_eq,
objc_compare_types, objc_type_quals_match):
New functions.
(DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
of same name.
(get_class_ivars): Add second parameter indicating if entire
hierarchy is desired.
(struct volatilized_type): New type.
(volatilized_htab): New hash table.
(objc_types_compatible_p, objc_comptypes): Remove functions.
(synth_module_prologue): Do not initialize 'unused_list'.
(objc_get_class_reference): Fix ObjC++ impedance mismatches.
(objc_declare_alias): Implement as a typedef.
(objc_substitute_decl, objc_gimplify_expr): Reformat.
(objc_get_class_ivars): Adjust call to get_class_ivars().
(next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
build_ivar_reference, get_super_receiver): Call
objc_build_component_ref() instead of build_component_ref().
(objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
objc_comptypes().
(build_private_template): Call objc_build_struct() instead of
start_struct() and finish_struct().
(hash_init): Initialize volatilized_htab.
(objc_is_public): Adjust calls to objc_get_ivars(); adjust
ObjC++ impedance mismatches.
(encode_aggregate_within): Streamline by calling
encode_aggregate_fields().
* objc-act.h (objc_types_compatible_p): Remove prototype.
(OCTI_UNUSED_LIST, unused_list): Remove slot.
* objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
2005-04-19 Ziemowit Laski <zlaski@apple.com>
Radar 4056870
* objc-act.c (start_class): Traverse @compatibility_alias
declaration when looking up super class; produce error
message if super class only has a @class declaration.
2005-04-11 Ziemowit Laski <zlaski@apple.com>
Radar 4073569
* objc-act.c (objc_finish_message_expr): When sending
messages to classes that were _only_ forward-declared
(via '@class'), do not issue "may not respond" to
warnings.
2005-04-08 Ziemowit Laski <zlaski@apple.com>
Radar 4055183
* objc-act.c (objc_rewrite_function_call): New function.
2005-03-11 Ziemowit Laski <zlaski@apple.com>
Radar 3995882
* objc-act.c (objc_begin_try_stmt): When doing _setjmp()/
_longjmp() EH, call objc_mark_locals_volatile().
2005-02-17 Ziemowit Laski <zlaski@apple.com>
Radar 4006978
* objc-act.c (objc_is_public): Remove unneeded code.
2005-02-17 Ziemowit Laski <zlaski@apple.com>
Radar 3635843, 3922342
* objc-act.c (OBJC_VERSION): Bump to '6' for the NeXT.
(objc_is_gcable_type, objc_substitute_decl,
objc_build_ivar_assignment, objc_build_global_assignment,
objc_build_strong_cast_assignment, objc_is_gcable_p,
objc_is_ivar_reference_p, objc_is_global_reference_p,
objc_generate_write_barrier): New functions.
(TAG_ASSIGNIVAR, TAG_ASSIGNGLOBAL, TAG_ASSIGNSTRONGCAST,
TAG_MSGSEND_FAST, TAG_ASSIGNIVAR_FAST, OFFS_MSGSEND_FAST,
OFFS_ASSIGNIVAR_FAST): New macros.
(synth_module_prologue): Synthesize 'objc_msgSend_Fast'
function prototype.
(build_next_objc_exception_stuff): Synthesize
'objc_assign_ivar', 'objc_assign_ivar_Fast',
'objc_assign_global' and 'objc_assign_strongCast'
function prototypes.
(build_objc_method_call): Call 'objc_msgSend_Fast'
instead of 'objc_msgSend' if '-fobjc-direct-dispatch'
has been specified.
(finish_objc): Generate image info if '-fobjc-gc'
has been specified.
(generate_objc_image_info): Set a bit indicating if
'-fobjc-gc' has been specified.
* objc-act.h (OCTI_UMSG_FAST_DECL, OCTI_ASSIGN_IVAR_DECL,
OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
OCTI_ASSIGN_STRONGCAST_DECL): New enum slots.
(umsg_fast_decl, objc_assign_ivar_decl,
objc_assign_ivar_fast_decl, objc_assign_global_decl,
objc_assign_strong_cast_decl): New slot accessors.
2005-02-11 Ziemowit Laski <zlaski@apple.com>
Radar 3962013 (Part 2)
* objc-act.c (objc_types_share_size_and_alignment): New
function.
(check_duplicates): Update comment.
(comp_proto_with_proto): If types do not match, call
objc_types_share_size_and_alignment() as a fallback in
non-strict mode.
2005-02-11 Ziemowit Laski <zlaski@apple.com>
Radar 3978619
* objc-act.c (should_call_super_dealloc): New variable.
(objc_finish_message_expr): If calling [super dealloc],
clear the should_call_super_dealloc variable.
(start_method_def): If defining a 'dealloc' method in a
non-root class, set the should_call_super_dealloc variable.
(objc_finish_method_definition): Print a warning if
the should_call_super_dealloc is set.
2005-02-10 Ziemowit Laski <zlaski@apple.com>
Radar 3982256
* objc-act.c: Update copyright notice; include langhooks-def.h.
(objc_types_compatible_p): New lang hook function.
* objc-act.h: Update copyright notice.
(objc_types_compatible_p): New prototype.
* objc-lang.c: Update copyright notice.
(LANG_HOOKS_TYPES_COMPATIBLE_P): Point at objc_types_compatible_p().
2005-02-08 Ziemowit Laski <zlaski@apple.com>
Radar 3987972
* objc-act.c (objc_start_function): Reset
'current_function_returns_value' and 'current_function_returns_null'
global flags.
2005-01-30 Ziemowit Laski <zlaski@apple.com>
Radar 3962013
* objc-act.c (comp_proto_with_proto): Add a STRICT parameter
to allow for relaxed type comparisons.
(check_duplicates): If '-Wno-strict-selector-match' is specified,
do not warn about multiple method signatures if they differ only
in their ObjC types.
(add_method_to_hash_list, objc_add_method, really_start_method):
Adjust calls to comp_proto_with_proto().
2005-01-27 Matt Austern <austern@apple.com>
Radar 3971445
* objc-act.c (objc_finish_file): In Objective-C++ mode, set at_eof
before calling instantiate_pending_templates.
2005-01-17 Ziemowit Laski <zlaski@apple.com>
* objc-act.c (objc_get_class_reference): Move stray
APPLE LOCAL marker.
2005-01-17 Ziemowit Laski <zlaski@apple.com>
Radar 3955336
* objc-act.c (objc_get_class_reference): In Objective-C++,
make sure a type is declared in the global namespace before
looking it up as an ObjC class.
2005-01-17 Ziemowit Laski <zlaski@apple.com>
Radar 3953044 (PR objc/19321)
* objc-act.c (get_arg_type_list): Decay function arguments into
pointers.
(objc_push_parm): Likewise; bring PARM_DECL construction closer
in line with what the C front-end does.
(objc_get_parm_info): Call pushdecl() and finish_decl() on
each PARM_DECL, like the C front-end does.
(start_method_def): Remove redundant ARRAY_TYPE decay.
(objc_start_function): Bring closer in line with what the
C front-end does for functions.
2005-01-17 Ziemowit Laski <zlaski@apple.com>
Radar 3951689
* objc-act.c (next_sjlj_build_enter_and_setjmp): For
Objective-C++, convert _setjmp() argument to type the
function expects.
(objc_finish_try_stmt, objc_build_synchronized): Return
the resulting statement node.
2005-01-14 Mike Stump <mrs@apple.com>
Radar 3948135
* lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
that -fzero-link is accepted.
2005-01-12 Ziemowit Laski <zlaski@apple.com>
Radar 3882153
* objc-act.c (objc_finish_file): Do not synthesize metadata
when generating a PCH file.
2005-01-11 Ziemowit Laski <zlaski@apple.com>
Radar 3918079
* objc-act.c (OBJC_LOOKUP_CLASS, OBJC_LOOKUP_NO_SUPER): New
flags.
(lookup_method_static): Generalize third argument to indicate
whether to search superclasses for a method.
(really_start_method): When looking for matching method in
the @interface, do not look in superclasses.
2005-01-06 Ziemowit Laski <zlaski@apple.com>
Radar 3925982
* objc-act.c (objc_method_parm_type): Return the type found
rather than its main variant.
(encode_aggregate_within): Streamline util_obstack accesses;
allow for records and/or pointers thereto to be const-qualified.
2005-01-03 Ziemowit Laski <zlaski@apple.com>
Radar 3926282 (PR objc/18971)
* objc-act.c (get_arg_type_list, start_method_def): Decay
array arguments into pointers.
(gen_type_name_0): Learn to pretty-print array types.
2004-11-10 Ziemowit Laski <zlaski@apple.com>
Radar 3761423
* objc-act.c (build_private_template): Return 'void';
move fix for Radar 3261135 from continue_class().
(objc_is_public): Robustify for use with ObjC++; examine
"raw" ivars of the ObjC class instead of side-effected
fields of the underlying struct.
(continue_class): Return "raw" ivar list instead of
struct field list; move Radar 3261135 to
build_private_template(), and call it.
2004-11-01 Ziemowit Laski <zlaski@apple.com>
Radar 2810013 (fix from mainline)
* objc-act.c (objc_lookup_ivar): The new OTHER parameter
contains the result of the ID lookup by the C or C++
front-end; in class methods, use OTHER if it exists;
in instance methods, use OTHER only if it is locally
declared.
2004-10-27 Ziemowit Laski <zlaski@apple.com>
Radar 3854155
* objc-act.c (generate_shared_structures): Add a CLS_FLAGS
parameter whose value gets ORed into the INFO field of
the class descriptor.
(CLS_HAS_CXX_STRUCTORS): New metadata bit.
(objc_generate_cxx_cdtors): Set flag in current imp_entry
if either '-.cxx_construct' or '-.cxx_destruct' were
synthesized...
(continue_class): ...after initially clearing it herre.
(finish_objc): Adjust call to generate_shared_structures(),
passing in CLS_HAS_CXX_STRUCTORS for classes with non-POD
ivars.
* objc-act.h (struct imp_entry): New has_cxx_cdtors field.
2004-10-26 Ziemowit Laski <zlaski@apple.com>
Radar 3833116 (fix from mainline)
* objc-act.c (finish_class): Do not synthesize bogus
'extern objc_object *_Foo;' declarations for @interface Foo.
2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
Radar 3845826 (PR objc/17923)
* objc-act.c (objc_build_string_object): Create a CONST_DECL
for the NeXT runtime case.
2004-10-21 Ziemowit Laski <zlaski@apple.com>
Radar 3540965
* objc-act.c (objc_generate_cxx_ctor_or_dtor,
objc_generate_cxx_cdtors): New functions.
(TAG_CXX_CONSTRUCT, TAG_CXX_DESTRUCT): New macros.
(objc_finish_implementation): Call objc_generate_cxx_cdtors()
if -fobjc-call-cxx-cdtors has been specified.
(add_instance_variable): Emit different diagnostics for
-fobjc-call-cxx-cdtors than for -fno-objc-call-cxx-cdtors.
2004-10-13 Ziemowit Laski <zlaski@apple.com>
Radar 3677258
* objc-act.c (add_class): Add a 'name' parameter, and point it
back at 'class' via IDENTIFIER_INTERFACE_VALUE accessor.
(lookup_interface): Look in IDENTIFIER_INTERFACE_VALUE accessor
instead of searching for class in a list.
(start_class): Adjust calls to add_class().
* objc-act.h (IDENTIFIER_INTERFACE_VALUE): Reformat.
|