]>
Commit | Line | Data |
---|---|---|
4746ee26 KG |
1 | 2000-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 |
5 | 2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> |
6 | ||
7 | * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. | |
8 | ||
7e05b7ae GDR |
9 | 2000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> |
10 | ||
11 | * decl2.c (lang_decode_option): Enable automatic line wrapping. | |
12 | ||
445ab443 JM |
13 | 2000-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 |
23 | 2000-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 |
31 | 2000-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 |
36 | 2000-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 |
41 | 2000-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 |
82 | 2000-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 |
87 | 2000-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 |
97 | 2000-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 |
102 | Mon 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 |
108 | 2000-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 |
113 | 2000-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 |
150 | 2000-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 | ||
155 | 2000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> | |
156 | ||
157 | * exception.cc (__throw_bad_typeid): Add missing std::. | |
158 | ||
02e59efb KG |
159 | 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
160 | ||
161 | * cp-tree.h (make_thunk): PROTO -> PARAMS. | |
162 | ||
808c61c8 NS |
163 | 2000-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 |
231 | 2000-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 |
243 | 2000-01-28 Ulrich Drepper <drepper@redhat.com> |
244 | ||
245 | * cp/decl.c: Adjust variable names, comments, help strings. | |
246 | ||
97119bb7 NS |
247 | 2000-01-29 Nathan Sidwell <nathan@acm.org> |
248 | ||
249 | * new2.cc (operator delete[]): Use operator delete, don't assume | |
250 | implementation. | |
251 | ||
02fed91d NS |
252 | 2000-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 |
257 | 2000-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 |
281 | 2000-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 |
314 | Thu 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 |
319 | Thu 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 |
324 | 2000-01-26 Jason Merrill <jason@casey.cygnus.com> |
325 | ||
326 | * pt.c (unify): Use fold, not maybe_fold_nontype_arg. | |
327 | ||
e09d24ff R |
328 | Wed 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 |
333 | 2000-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 |
365 | 2000-01-25 Richard Henderson <rth@cygnus.com> |
366 | ||
367 | * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. | |
368 | ||
1a588ad7 MM |
369 | 2000-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 |
385 | 2000-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 |
390 | 2000-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 |
397 | 2000-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 |
403 | 2000-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 |
411 | 2000-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 |
417 | 2000-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 |
432 | 2000-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 |
440 | 2000-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 |
486 | 2000-01-23 Mark Mitchell <mark@codesourcery.com> |
487 | ||
488 | * cp-tree.h (__eprintf): Remove declaration. | |
489 | * tree.c (__eprintf): Remove definition. | |
490 | ||
491 | 2000-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 |
497 | 2000-01-23 Brad Lucier <lucier@math.purdue.edu> |
498 | ||
499 | * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. | |
500 | ||
bf419747 MM |
501 | 2000-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 |
516 | 2000-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 |
528 | 2000-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 |
535 | 2000-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 |
540 | 2000-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 |
557 | 2000-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 |
562 | 2000-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 |
592 | 2000-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 |
658 | 2000-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 |
729 | 2000-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 |
755 | 2000-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 |