]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
configure (gcc_version): When setting, narrow search to lines containing `version_str...
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
4746ee26
KG
12000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2
3 * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h.
4
3ea8083f
JL
52000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk>
6
7 * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec.
8
7e05b7ae
GDR
92000-01-16 Gabriel Dos Reis <gdr@codesourcery.com>
10
11 * decl2.c (lang_decode_option): Enable automatic line wrapping.
12
445ab443
JM
132000-02-13 Jason Merrill <jason@casey.cygnus.com>
14
15 * parse.y (frob_specs): Split out...
16 (parse_decl): From here.
17 (fn.def2): Call initial_deferred_type_access_control.
18 (after_type_component_declarator0): Call frob_specs.
19 (notype_component_declarator0): Likewise.
20 * search.c (friend_accessible_p): Nested classes are friends of their
21 enclosing classes.
22
64cfdfb8
MM
232000-02-10 Mark Mitchell <mark@codesourcery.com>
24
9e4cc722
MM
25 * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be
26 used to create an implicit temporary.
27
64cfdfb8
MM
28 * class.c (dfs_modify_vtables): Tweak calculation of functions to
29 override.
30
2c55cdde
NS
312000-02-08 Nathan Sidwell <nathan@acm.org>
32
33 * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to
34 strip array element qualifiers too.
35
ff47d094
MM
362000-02-07 Mark Mitchell <mark@codesourcery.com>
37
38 * decl.c (store_parm_decls): Don't build cleanups for parameters
39 while processing_template_decl.
40
70adf8a9
JM
412000-02-07 Jason Merrill <jason@casey.cygnus.com>
42
43 * cp-tree.h (struct saved_scope): Add incomplete field.
44 (namespace_scope_incomplete): New macro.
45 * decl.c (pushdecl): Use it.
46 (hack_incomplete_structures): Use it. See through artificial
47 binding levels.
48 (mark_saved_scope): Mark it.
49
50 Implement access control for nested types.
51 * search.c (type_access_control): New fn.
52 (accessible_p): Now we do perform access control for types.
53 * semantics.c (deferred_type_access_control): New fn.
54 (initial_deferred_type_access_control): New fn.
55 (begin_function_definition): Call it. Add lookups parm.
56 * decl.c (struct binding_level): Add this_class field.
57 (pushlevel_class): Set it.
58 (mark_binding_level): Mark it.
59 (lookup_name_real): Use it. Call type_access_control.
60 (mark_saved_scope): Mark lookups field.
61 * cp-tree.h (flagged_type_tree): Add lookups field.
62 (struct saved_scope): Add lookups field.
63 (type_lookups): New macro.
64 * parse.y (declmods): Now <ftype>.
65 (parse_decl): Add lookups parm. Call
66 initial_deferred_type_access_control.
67 (lang_extdef): Clear type_lookups.
68 (typed_declspecs, declmods, typespec): Set lookups field.
69 (initdcl): Call deferred_type_access_control.
70 (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0,
71 component_decl_1, named_parm): Adjust.
72 * friend.c (is_friend): Nested classes are friends of their
73 enclosing classes.
74
75 * class.c (currently_open_derived_class): New fn.
76 * method.c (hack_identifier): Use it.
77
78 * lex.c (do_identifier): Remove obsolete code.
79
80 * parse.y (typed_typespecs): Propagate new_type_flag properly.
81
fd81d24f
ZW
822000-02-05 Zack Weinberg <zack@wolery.cumb.org>
83
84 * tinfo.h: Remove apostrophes from C++ comment (xgettext
85 thinks this file is plain C).
86
70a51bda
KG
872000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
88
89 * Makefile.in (call.o): Depend on $(EXPR_H).
90
91 * call.c: Include "expr.h".
92
93 * class.c (dump_class_hierarchy): Add prototype.
94
95 * search.c (dfs_get_pure_virtuals): Likewise.
96
eca1bd08
UD
972000-02-1 Ulrich Drepper <drepper@redhat.com>
98
99 * parse.y (simple_stmt): Allow :: token in asm parameter list.
100 * parse.c: Rebuilt.
101
07a3462a
JW
102Mon Jan 31 15:35:29 2000 Jim Wilson <wilson@cygnus.com>
103
104 * class.c (build_vtbl_or_vbase_field): New parameter fcontext.
105 Store it in DECL_FCONTEXT.
106 (build_vbase_pointer_fields, create_vtable_ptr): Fix callers.
107
ab044c74
JM
1082000-01-31 Jason Merrill <jason@casey.cygnus.com>
109
110 * tinfo.h (old abi): #include "tconfig.h".
111 * tinfo.cc (convert_to_base): Move into old abi section.
112
5e19c053
MM
1132000-01-31 Mark Mitchell <mark@codesourcery.com>
114
115 * cp-tree.h (BINFO_VIRTUALS): Tweak documentation.
116 (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO.
117 (BINFO_PRIMARY_BINFO): New macro.
118 (BF_DELTA): Rename to ...
119 (BV_DELTA): ... this.
120 (BF_VCALL_INDEX): Rename to ...
121 (BV_VCALL_INDEX): ... this.
122 (BF_FN): Rename to ...
123 (BV_FN): ... this.
124 * class.c (build_vbase_path): Adjust for changes to reverse_path.
125 (set_rtti_entry): Rename BF_ macros to BV_ variants.
126 (modify_vtable_entry): Simplify.
127 (add_virtual_function): Rename BF_ macros to BV_ variants.
128 (build_vtable_initializer): Likewise.
129 (get_class_offset_1): Remove.
130 (dfs_get_class_offset): Likewise.
131 (get_class_offset): Likewise.
132 (dfs_find_final_overrider): New function.
133 (find_final_overrider): Likewise.
134 (modify_one_vtable): Remove.
135 (dfs_find_base): New function.
136 (dfs_modify_vtables): Fold modify_one_vtable in here. Use
137 find_final_overrider.
138 (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new
139 virtuals.
140 (dfs_fixup_vtable_deltas): Remove.
141 (override_one_vtable): Remove.
142 (merge_overrides): Likewise.
143 (layout_virtual_bases): Make sure BINFO_OFFSET is set right for
144 unreal chilren of virtual bases.
145 (finish_struct_1): Don't use merge_overrides. Don't use
146 dfs_fixup_vtable_deltas.
147 * tree.c (reverse_path): Return a TREE_LIST, not a chain of
148 BINFOs.
149
d4bf4842
JM
1502000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
151 Jason Merrill <jason@yorick.cygnus.com>
152
153 * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT.
154
1552000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at>
156
157 * exception.cc (__throw_bad_typeid): Add missing std::.
158
02e59efb
KG
1592000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
160
161 * cp-tree.h (make_thunk): PROTO -> PARAMS.
162
808c61c8
NS
1632000-01-31 Nathan Sidwell <sidwell@codesourcery.com>
164
165 * cp-tree.h (new_abi_rtti_p): Use flag_new_abi.
166
167 Runtime support for new-abi rtti.
168 * inc/typeinfo (type_info::operator!=): Define in class.
169 (type_info::before, type_info::name, type_info::operator==,
170 type_info::operator!=): Define new ABI implementations.
171 (type_info::is_pointer_p, type_info::is_function_p): Declare
172 new virtual functions.
173 (type_info::do_catch, type_info::do_upcast): Likewise.
174
175 * tinfo.h (__base_class_info): Define new class.
176 (__class_type_info): Likewise.
177 (__si_class_type_info): Likewise.
178 (__vmi_class_type_info): Likewise.
179 (__dynamic_cast): Prototype.
180
181 * tinfo.cc: Conditionalize old and new rtti mechanisms.
182 (type_info::is_pointer_p): Define new function.
183 (type_info::is_function_p): Likewise.
184 (type_info::do_catch): Likewise.
185 (type_info::do_upcast): Likewise.
186 (vtable_prefix): New structure for vtable access.
187 (adjust_pointer): Define new template function.
188 (contained_p, public_p, virtual_p, contained_public_p,
189 contained_nonpublic_p, contained_nonvirtual_p): Define new
190 functions.
191 (nonvirtual_base_type): New local variable.
192 (__class_type_info::~__class_type_info): Define.
193 (__si_class_type_info::~__si_class_type_info): Likewise.
194 (__vmi_class_type_info::~__vmi_class_type_info): Likewise.
195 (__class_type_info::do_catch): Define new function.
196 (__class_type_info::do_upcast): Likewise.
197 (__class_type_info::find_public_src): Likewise.
198 (__class_type_info::do_find_public_src): Likewise.
199 (__si_class_type_info::do_find_public_src): Likewise.
200 (__vmi_class_type_info::do_find_public_src): Likewise.
201 (__class_type_info::do_dyncast): Likewise.
202 (__si_class_type_info::do_dyncast): Likewise.
203 (__vmi_class_type_info::do_dyncast): Likewise.
204 (__class_type_info::do_upcast): Likewise.
205 (__si_class_type_info::do_upcast): Likewise.
206 (__vmi_class_type_info::do_upcast): Likewise.
207 (__dynamic_cast): Likewise.
208
209 * tinfo2.cc (__fundamental_type_info): Define new class.
210 (__pointer_type_info): Likewise.
211 (__reference_type_info): Likewise.
212 (__array_type_info): Likewise.
213 (__function_type_info): Likewise.
214 (__enum_type_info): Likewise.
215 (__ptr_to_member_type_info): Likewise.
216 (__fundamental_type_info::~__fundamental_type_info): Define.
217 (__pointer_type_info::~__pointer_type_info): Likewise.
218 (__reference_type_info::~__reference_type_info): Likewise.
219 (__array_type_info::~__array_type_info): Likewise.
220 (__function_type_info::~__function_type_info): Likewise.
221 (__enum_type_info::~__enum_type_info): Likewise.
222 (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise.
223 (__pointer_type_info::do_catch): Define new function.
224 (__ptr_to_member_type_info::do_catch): Define new function.
225
226 (__throw_type_match_rtti_2): Use new ABI interface, if enabled.
227 (__is_pointer): Likewise.
228
229 * exception.cc (__cplus_type_matcher): Deal with new-abi rtti.
230
28531dd0
MM
2312000-01-30 Mark Mitchell <mark@codesourcery.com>
232
233 * cp/class.c (build_vtable): Rename to build_primary_vtable.
234 (prepare_fresh_vtable): Rename to build_secondary_vtable.
235 (make_new_vtable): New function.
236 (modify_vtable_entry): Handle generation of new vtables correctly.
237 (modify_one_vtable): Remove unused parameter.
238 (dfs_fixup_vtable_deltas): Likewise.
239 (override_one_vtable): Use build_secondary_vtable.
240 (finish_struct_1): Use build_primary_vtable and
241 build_secondary_vtable.
242
d828f724
UD
2432000-01-28 Ulrich Drepper <drepper@redhat.com>
244
245 * cp/decl.c: Adjust variable names, comments, help strings.
246
97119bb7
NS
2472000-01-29 Nathan Sidwell <nathan@acm.org>
248
249 * new2.cc (operator delete[]): Use operator delete, don't assume
250 implementation.
251
02fed91d
NS
2522000-01-29 Nathan Sidwell <sidwell@codesourcery.com>
253
254 * class.c (build_vtbl_initializer): Add argument to
255 build_vtable_entry call.
256
c0bbf652
MM
2572000-01-27 Mark Mitchell <mark@codesourcery.com>
258
259 * cp-tree.def (THUNK_DECL): Discuss vcall indices.
260 * cp-tree.h (BINFO_VIRTUALS): Update documentation.
261 (BF_DELTA): New macro.
262 (BF_VCALL_INDEX): Likewise.
263 (BF_FN): Likewise.
264 (THUNK_VCALL_OFFSET): Likewise.
265 (make_thunk): Change prototype.
266 * class.c (build_vtable_entry): Integrate
267 build_vtable_entry_for_fn. Handle vcall indices.
268 (build_vtable_entry_for_fn): Remove.
269 (set_rtti_entry): Handle vcall indices. Use BF_DELTA,
270 BF_VCALL_INDEX, BF_FN.
271 (modify_vtable_entry): Integrate common code from
272 modify_one_vtable and dfs_fixup_vtable_deltas.
273 (add_virtual_function): Set BF_VCALL_INDEX.
274 (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX,
275 and BF_FN.
276 (modify_one_vtable): Simplify.
277 (dfs_fixup_vtable_deltas): Likewise.
278 (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN.
279 * method.c (make_thunk): Handle vcall indices.
280
7267d692
NS
2812000-01-28 Nathan Sidwell <sidwell@codesourcery.com>
282
283 Compiler side new abi rtti (not enabled).
284 * cp-tree.h (new_abi_rtti_p): New macro.
285 (emit_support_tinfos): Prototype new function.
286 (tinfo_decl_p): Likewise.
287 (emit_tinfo_decl): Likwise.
288 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor
289 macros.
290 (doing_runtime): New local static.
291 (init_rtti_processing): Add new-abi initializer.
292 (get_tinfo_decl): Add new-abi logic.
293 (tinfo_from_decl): Likewise.
294 (build_dynamic_cast_1): Likewise.
295 (qualifier_flags): New static function.
296 (tinfo_base_init): Likewise.
297 (generic_initializer): Likewise.
298 (ptr_ref_initializer): Likewise.
299 (ptmd_initializer): Likewise.
300 (class_hint_flags): Likewise.
301 (class_initializer): Likewise.
302 (synthesize_tinfo_var): Likewise.
303 (create_real_tinfo_var): Likewise.
304 (create_pseudo_type_info): Likewise.
305 (get_vmi_pseudo_type_info): Likewise.
306 (create_tinfo_types): Likewise.
307 (emit_support_tinfos): New global function.
308 (tinfo_decl_p): New global predicate.
309 (emit_tinfo_decl): New global function.
310 * class.c (set_rtti_entry): Generalize for old and new rtti.
311 (build_vtbl_initializer): Likewise.
312 * decl2.c (finish_file): Likewise.
313
aa1eac0c
JW
314Thu Jan 27 20:53:36 2000 Jim Wilson <wilson@cygnus.com>
315
316 * cp/optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t)
317 and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))).
318
e905ac8a
MS
319Thu Jan 27 13:54:12 2000 Mike Stump <mrs@wrs.com>
320
321 * decl.c (pushdecl): Fix up shadow warnings with respect to implicit
322 for scopes.
323
24e2e58e
JM
3242000-01-26 Jason Merrill <jason@casey.cygnus.com>
325
326 * pt.c (unify): Use fold, not maybe_fold_nontype_arg.
327
e09d24ff
R
328Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
329
330 * cp/optimize.c (calls_setjmp_r): Supply new argument
331 to special_function_p.
332
158991b7
KG
3332000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
334
335 * call.c: PROTO -> PARAMS.
336 * class.c: Likewise.
337 * cp-tree.h: Likewise.
338 * cvt.c: Likewise.
339 * decl.c: Likewise.
340 * decl.h: Likewise.
341 * decl2.c: Likewise.
342 * dump.c: Likewise.
343 * errfn.c: Likewise.
344 * error.c: Likewise.
345 * except.c: Likewise.
346 * expr.c: Likewise.
347 * init.c: Likewise.
348 * input.c: Likewise.
349 * lex.c: Likewise.
350 * lex.h: Likewise.
351 * method.c: Likewise.
352 * optimize.c: Likewise.
353 * parse.y: Likewise.
354 * pt.c: Likewise.
355 * repo.c: Likewise.
356 * rtti.c: Likewise.
357 * search.c: Likewise.
358 * semantics.c: Likewise.
359 * spew.c: Likewise.
360 * tree.c: Likewise.
361 * typeck.c: Likewise.
362 * typeck2.c: Likewise.
363 * xref.c: Likewise.
364
7913f3d0
RH
3652000-01-25 Richard Henderson <rth@cygnus.com>
366
367 * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR.
368
1a588ad7
MM
3692000-01-25 Mark Mitchell <mark@codesourcery.com>
370
371 * cp-tree.h (vcall_offset_in_vtable_p): New macro.
372 * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment.
373 (struct vcall_offset_data_s): New type.
374 (dfs_vcall_offset_queue_p): New function.
375 (dfs_build_vcall_offset_vtbl_entries): Likewise.
376 (build_vcall_offset_vtbl_entries): Likewise.
377 (layout_vtable_decl): Likewise.
378 (num_vfun_entries): Likewise.
379 (num_extra_vtbl_entries): Add the entries for vcall offsets.
380 (build_vtbl_initializer): Likewise.
381 (dfs_finish_vtabls): Use layout_vtable_decl.
382 (modify_one_vtables): Always duplicate vtables under the new ABI.
383 (finish_struct_1): Use layout_vtable_decl.
384
4dacf5bd
KG
3852000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
386
387 * decl.c (member_function_or_else): Change third arg from a format
388 specifier to an `enum overload_flags'. Callers changed.
389
ddcc7cf6
GDR
3902000-01-25 Gabriel Dos Reis <gdr@codesourcery.com>
391
392 * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof,
393 build_binary_op_nodefault, build_unary_op, build_reinterpret_cast,
394 build_const_cast, get_delta_difference, check_return_expr): Avoid
395 ANSI string concatenation usage.
396
534170eb
MM
3972000-01-24 Mark Mitchell <mark@codesourcery.com>
398
399 * class.c (layout_class_type): Put the fields required to make a
400 class non-empty at the end, not the beginning, of the TYPE_FIELDs
401 list.
402
7610f2ce
JM
4032000-01-24 Jason Merrill <jason@casey.cygnus.com>
404
405 * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a
406 template.
407
408 * decl2.c (mark_used): Do instantiate inlines that have been
409 explicitly instantiated.
410
1eb8759b
RH
4112000-01-24 Richard Henderson <rth@cygnus.com>
412
413 * call.c (build_over_call): Use expand_tree_builtin.
414 * typeck.c (build_function_call_real): Likewise.
415 (build_binary_op_nodefault): Handle unordered compares.
416
059fa5e7
NS
4172000-01-24 Nathan Sidwell <sidwell@codesourcery.com>
418
419 * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New
420 cp_tree_index values.
421 (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node):
422 New global node #defines for them.
423 * rtti.c (call_void_fn): Replace with ...
424 (build_runtime_decl): ... new static function.
425 (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl.
426 (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl.
427 (build_dynamic_cast_1): Always produce correctly typed result.
428 Explicitly produce type_info addresses. Use dynamic_cast_node.
429 * exception.cc (__throw_bad_cast): Return `void *'.
430 (__throw_bad_typeid): Return `const type_info &'.
431
1aa4ccd4
NS
4322000-01-24 Nathan Sidwell <sidwell@codesourcery.com>
433
434 * cp-tree.h (get_vtable_decl): Prototype new function.
435 * class.c (get_vtable_decl): New function. Broken out from ...
436 (build_vtable): ... here. Use it.
437 * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created
438 by get_vtable_decl.
439
db1147b2
NS
4402000-01-24 Nathan Sidwell <sidwell@codesourcery.com>
441
442 * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE,
443 CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE,
444 CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations.
445 (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE,
446 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE,
447 CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations.
448 (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ...
449 (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here.
450 (CPTI_TINFO_VAR_ID): New enumeration.
451 (__tp_desc_type_node, __access_mode_type_node,
452 __bltn_desc_type_node, __user_desc_type_node,
453 __class_desc_type_node, __ptr_desc_type_node,
454 __attr_desc_type_node, __func_desc_type_node,
455 __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines.
456 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
457 ref_desc_type_node, ary_desc_type_node, func_desc_type_node,
458 enum_desc_type_node, class_desc_type_node,
459 si_class_desc_type_node, vmi_class_desc_type_node,
460 ptmd_desc_type_node, base_desc_type_node): New #defines.
461 (tinfo_fn_id, tinfo_fn_type): Rename to ...
462 (tinfo_decl_id, tinfo_decl_type): ... here. Adjust.
463 (tinfo_var_id): New enumeration.
464 (DECL_TINFO_FN_P): Augment comment.
465 * decl.c (cp_global_trees): Adjust documentation.
466 * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id,
467 tinfo_decl_type and tinfo_var_id.
468 (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type.
469 (build_typeid): Remove unused variable.
470 (get_tinfo_var): Use tinfo_var_id.
471 (tinfo_name): New static function.
472 (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type.
473 (tinfo_from_decl): Likewise.
474 (get_base_offset): New static function, broken out of
475 expand_class_desc.
476 (expand_si_desc): Use tinfo_name.
477 (expand_class_desc): Likewise. Lose local static variable.
478 Use base_desc_type_node. Use get_base_offset.
479 (expand_ptr_desc): Use tinfo_name.
480 (expand_attr_desc): Likewise.
481 (expand_generic_desc): Likewise.
482
483 * tinfo.cc (__GXX_ABI_VERSION): Test value and existance.
484 * tinfo.h (__GXX_ABI_VERSION): Test value and existance.
485
ba793d6e
MM
4862000-01-23 Mark Mitchell <mark@codesourcery.com>
487
488 * cp-tree.h (__eprintf): Remove declaration.
489 * tree.c (__eprintf): Remove definition.
490
4912000-01-23 Zack Weinberg <zack@rabi.columbia.edu>
492 Mark Mitchell <mark@codesourcery.com>
493
494 * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N,
495 CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings.
496
92ac3c0f
BL
4972000-01-23 Brad Lucier <lucier@math.purdue.edu>
498
499 * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly.
500
bf419747
MM
5012000-01-23 Mark Mitchell <mark@codesourcery.com>
502
503 * cp-tree.h (register_dtor_fn): New function.
504 * decl.c (destroy_local_static): Rename to ...
505 (register_dtor_fn): ... this. Give it external linkage.
506 (expand_static_init): Use it.
507 * decl2.c (do_static_initialization): Likewise, if using
508 __cxa_atexit.
509 (do_static_destruction): Check that __cxa_atexit is not in use.
510 (finish_file): Don't call do_static_destruction if using
511 __cxa_atexit.
512
513 * typeck.c (convert_arguments): Restore two-message error
514 reporting.
515
f08dda39
NS
5162000-01-20 Nathan Sidwell <sidwell@codesourcery.com>
517
518 Remap dynamic cast hint values to be consistent across ABIs.
519 * search.c (dynamic_cast_base_recurse): Remap generated value.
520 (get_dynamic_cast_base_type): Adjust documentation.
521 * tinfo.h (__user_type_info::dyncast): Likewise.
522 (__user_type_info::find_public_subobj): Remap BOFF meaning.
523 * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning.
524 (__class_type_info::do_dyncast): Likewise.
525 (__class_type_info::do_find_public_subobj): Likewise.
526 * tinfo2.cc (__dynamic_cast): Remap BOFF parameter.
527
f621dedc
GDR
5282000-01-19 Gabriel Dos Reis <gdr@codesourcery.coom>
529
1eb8759b 530 * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn.
f621dedc 531
1eb8759b
RH
532 * typeck2.c (incomplete_type_error): Restore previous
533 cp_error and cp_error_at call sequence.
f621dedc 534
2984dacf
BL
5352000-01-20 Brad Lucier <lucier@math.purdue.edu>
536
537 * class.c (dump_class_hierarchy): Make format agree with argument;
538 cast pointer to unsigned long and print with %lx.
539
7e4d7898
GDR
5402000-01-19 Gabriel Dos Reis <gdr@codesourcery>
541
542 * decl2.c (lang_decode_option): Set default line-wrap length to 72.
543
544 * typeck.c (composite_pointer_type, common_type,
545 comp_target_parms, c_sizeof, expr_sizeof, build_array_ref,
546 build_function_call_real, convert_arguments,
547 build_binary_op_nodefault, pointer_int_sum, pointer_diff,
548 build_unary_op, mark_addressable, build_compound_expr,
549 build_static_cast, build_reinterpret_cast, build_const_cast,
550 build_c_cast, build_modify_expr, get_delta_difference,
551 build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with
552 'ISO C++'. Fusion consecutive calls to diagnotic message routines
553 into a single one.
554 * typeck2.c (readonly_error, abstract_virtuals_error,
555 process_init_constructor, check_for_new_type): Likewise.
556
301e21af
MM
5572000-01-19 Mark Mitchell <mark@codesourcery.com>
558
559 * tree.c (bot_manip): Set DECL_CONTEXT for newly created
560 VAR_DECLs.
561
e5f614d7
NS
5622000-01-18 Nathan Sidwell <sidwell@codesourcery.com>
563
564 * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype.
565 (build_x_typeid): Likewise.
566 (get_tinfo_fn): Likewise.
567 (get_tinfo_fn_unused): Rename to ...
568 (get_tinfo_decl): ... here.
569 * rtti.c (build_headof): Replace logic error with assertion.
570 (get_tinfo_fn_dynamic): Rename to ...
571 (get_tinfo_decl_dynamic): ... here. Make static. Use
572 complete_type_or_else.
573 (build_x_typeid): Move into ...
574 (build_typeid): ... here. Adjust call to
575 get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify
576 throw_bad_typeid expression.
577 (get_tinfo_fn_unused): Rename to ...
578 (get_tinfo_decl): ... here. Adjust comment.
579 (get_tinfo_fn): Delete.
580 (tinfo_from_decl): New static function.
581 (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl.
582 (get_typeid): Use complete_type_or_else.
583 (build_dynamic_cast_1): Adjust calls to
584 get_tinfo_decl_dynamic. Simplify throw_bad_cast expression.
585 * parse.y (primary): Adjust call to build_typeid.
586 * except.c (build_eh_type_type_ref): Adjust call to
587 get_tinfo_decl. Mark as used.
588 * class.c (set_rtti_entry): Adjust call to get_tinfo_decl.
589 * decl2.c (build_expr_from_tree): Adjust call to build_typeid.
590 * parse.c: Regenerated.
591
051e6fd7
MM
5922000-01-17 Mark Mitchell <mark@codesourcery.com>
593
97d953bb
MM
594 * class.c (fixed_type_or_null): Don't clear NONNULL. Document
595 calling convention.
596 (resolves_to_fixed_type_p): Document calling convention.
597 * rtti.c (build_x_typeid): Initialize NONNULL.
598
a68ad5bd
MM
599 * cp-tree.h (build_shared_int_cst): New function.
600 * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity.
601 * class.c (modify_vtable_entry): Likewise.
602 (add_virtual_function): Split out code to generated shared
603 INTEGER_CSTs to build_share_int_cst.
604 (modify_all_vtables): Handle all the overridden functions here.
605 Add overridden functions from non-primary virtual bases to the
606 primary vtable.
607 (finish_struct_1): Adjust call to modify_all_vtables. Add
608 overridden functions from non-primary bases to the vtable.
609 * tree.c (build_shared_int_cst): New function.
610
051e6fd7
MM
611 * cp-tree.h (scratchalloc): Remove.
612 (build_scratch_list): Likewise.
613 * call.c (convert_class_to_reference): Replace build_scratch_list
614 and build_expr_list with build_tree_list.
615 (add_candidate): Replace scratchalloc with expralloc. Note memory
616 leak.
617 (build_user_type_conversion_1): Replace build_scratch_list
618 and build_expr_list with build_tree_list.
619 (build_new_op): Likewise.
620 (build_op_delete_call): Likewise.
621 (convert_like): Likewise.
622 * cvt.c (ocp_convert): Likewise.
623 * decl.c (start_decl): Likewise.
624 (start_function): Likewise.
625 (finish_destructor_body): Likewise.
626 (maybe_build_cleanup_1): Likewise.
627 * decl2.c (reparse_decl_as_expr): Likewise.
628 * init.c (perform_member_init): Likewise.
629 (expand_cleanup_for_base): Likewise.
630 (build_builtin_delete_call): Likewise.
631 (build_new_1): Likewise.
632 (build_delete): Likewise.
633 * method.c (do_build_assign_ref): Likewise.
634 * parse.y (already_scoped_stmt): Likewise.
635 (nontrivial_exprlist): Likewise.
636 (net_initializer): Likewise.
637 (initlist): Likewise.
638 * parse.c: Regenerated.
639 * rtti.c (build_x_typeid): Likewise.
640 (build_dynamic_cast_1): Likewise.
641 * typeck.c (build_x_compound_expr): Likewise.
642 (build_static_cast): Likewise.
643 (build_modify_expr): Likewise.
644
645 * cp-tree.h (DECL_VINDEX): Add documentation.
646 * class.c (build_vtable_entry): Likewise.
647 (start_vtable): Add comment.
648 (add_virtual_function): Replace pending_hard_virtuals with
649 overridden_virtuals and pending_virtuals with new_virtuals.
650 Replace redundant assignments with assertions.
651 (check_for_override): Add comment.
652 (check_bases_and_members): Replace pending_hard_virtuals with
653 overridden_virtuals and pending_virtuals with new_virtuals.
654 (create_vtbl_ptr): Likewise.
655 (layout_class_type): Likewise.
656 (finish_struct_1): Likewise. Add comments.
657
84602ee0
MM
6582000-01-16 Mark Mitchell <mark@codesourcery.com>
659
1eb4bea9
MM
660 * class.c (finish_struct_1): Replace redundant code with
661 assertions.
662
bbd15aac
MM
663 * cp-tree.h (flag_new_abi): Move.
664 (flag_use_cxa_atexit): Likewise.
665 (flag_honor_std): Likewise.
666 (flag_rtti): Likewise.
667 (vbase_offsets_in_vtable_p): Define.
668 (vptrs_present_everywhere_p): Likewise.
669 (TYPE_CONTAINS_VPTR_P): Likewise.
670 (dfs_walk_real): Declare.
671 * class.c (build_vbase_pointer_fields): Check
672 vbase_offsets_in_vtable_p.
673 (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in
674 BINFO_VPTR_FIELD.
675 (build_vbase_offset_vtbl_entries): Simplify.
676 (build_vbase_offset_vtbl_entries): Adjust.
677 (build_vbase_pointer): Add ability to look up vbase offsets in
678 vtable.
679 (start_vtable): New function.
680 (add_virtual_function): Use it.
681 (determine_primary_base): Use TYPE_CONTAINS_VPTR_P.
682 (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p.
683 (build_vtbl_initializer): Take the type of the complete object as
684 input. Use it to correctly calculate vbase offsets.
685 (dfs_finish_vtbls): Pass the complete type to
686 build_vtbl_initializer.
687 (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
688 (create_vtable_ptr): Create a vtable even if there are no
689 new virtual functions, under the new ABI.
690 (finish_struct_1): Likewise.
691 (get_vfield_name): Use TYPE_CONTAINS_VPTR_P.
692 * decl.c (exapnd_static_init): Remove call to
693 preserve_initializer.
694 * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in
695 vtables.
696 * init.c (initialize_vtbl_ptrs): Initialize them in pre-order.
697 (expand_virtual_init): Use vbase_offsets_in_vtable_p.
698 (construct_virtual_bases): Don't initialize virtual base pointers
699 under the new ABI.
700 (build_aggr_init): Clean up comment.
701 (expand_aggr_init_1): Likewise.
702 * rtti.c (expand_class_desc): Store the virtual function table
703 index where the vbase offset lives in the offset field.
704 * search.c (dfs_walk_real): Make it global.
705 (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P.
706 * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD.
707
708 * tinfo.h (USItype): Make it signed under the new ABI.
709 * tinfo.cc (convert_to_base): New function. Encapsulate base
710 conversion logic here.
711 (__class_type_info::do_upcast): Use it.
712 (__class_type_info::do_dyncast): Likewise.
713 (__class_type_info::do_find_public_subobj): Likewise.
714
a6786148
MM
715 * init.c (construct_virtual_bases): Don't look up the addresses of
716 virtual bases at run-time.
717
f8361147
MM
718 * class.c (build_vbase_pointer): Relocate.
719 (build_vbase_pointer_fields): Likewise.
720 (dfs_build_vbase_offset_vtbl_entries): Likewise.
721 (build_vbase_offset_vtbl_entries): Likewise.
722
5bb2a292
MM
723 * decl.c (init_decl_processing): Complain if -fnew-abi
724 -fno-vtable-thunks is used.
725
84602ee0
MM
726 * decl2.c (lang_decode_option): Don't couple flag_honor_std to
727 flag_new_abi.
728
70ae3201
MM
7292000-01-15 Mark Mitchell <mark@codesourcery.com>
730
731 * cp-tree.h (num_extra_vtbl_entries): New function.
732 (size_extra_vtbl_entries): Likewise.
733 (dfs_vtable_path_unmark): Likewise.
734 (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise.
735 (dfs_vtable_path_marked_real_bases_queue_p): Likewise.
736 * class.c (num_extra_vtbl_entries): New function.
737 (size_extra_vtbl_entries): Likewise.
738 (dfs_build_vbase_offset_vtbl_entries): New function.
739 (build_vbase_offset_vtbl_entries): Likewise.
740 (build_vtbl_initializer): Use it.
741 (finish_struct_1): Adjust vtable sizes (using
742 num_extra_vtbl_entries).
743 * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a
744 THUNK_DECL is non-NULL before expanding it.
745 * init.c (expand_virtual_init): Adjust the vtable pointer by
746 size_extra_vtbl_entries before storing it.
747 * search.c (get_shared_vase_if_not_primary): Adjust prototype.
748 Handle TREE_LIST parameters here, not in the dfs_* functions.
749 (dfs_unmarked_real_bases_queue_p): Adjust.
750 (dfs_marked_real_bases_queue_p): Likewise.
751 (dfs_vtable_path_unmarked_real_bases_queue_p): New function.
752 (dfs_vtable_path_marked_real_bases_queue_p): New function.
753 (dfs_vtable_path_unmark): Likewise.
754
ef97bf6b
MM
7552000-01-14 Mark Mitchell <mark@codesourcery.com>
756
757 * optimize.c (copy_body_r): Clear the operand three of a
758 TARGET_EXPR when copying it.
759
64f1326a
ML
760