]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
libgcj.spec.in: Insert %(libgcc) before %(liborig) to fix static linking.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
fe730161
JO
12001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
2
3 * call.c (joust): Ensure more_specialized()'s argument length
4 parameter has correct value for constructors.
5
e5dd4aad
NS
62001-02-26 Nathan Sidwell <nathan@codesourcery.com>
7
8 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
9
10 * decl.c (mark_inlined_fns): Prototype.
11
25200ab2
MM
122001-02-22 Mark Mitchell <mark@codesourcery.com>
13
14 * spew.c (yylex): Correct handling of friends.
15
f58c04ac
MM
162001-02-22 Mark Mitchell <mark@codesourcery.com>
17
18 * mangle.c (write_encoding): Pass write_function_type the
19 FUNCTION_DECL for the function being encoded.
20 (write_function_type): Pass it along to write_bare_function_type.
21 (write_bare_function_type): Pass it along to write_method_parms.
22 (write_method_parms): Don't mangle the compiler-generated
23 parameters to a constructor or destructor.
24
9c96f3f8
AJ
252001-02-22 Andreas Jaeger <aj@suse.de>
26
27 * optimize.c: Include toplev.h for
28 note_deferral_of_defined_inline_function prototype.
29
b3bae5e2
JJ
302001-02-22 Jakub Jelinek <jakub@redhat.com>
31
32 * cp-tree.h (struct lang_decl_inlined_fns): New.
33 (struct lang_decls): Add inlined_fns.
34 (DECL_INLINED_FNS): New macro.
35 * optimize.c (struct inline_data): Add inlined_fns.
36 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
37 (inlinable_function_p): Likewise, fix typo in comment,
38 function is not inlinable if it already inlined function currently
39 being optimized.
40 (expand_call_inline): Add fn to inlined_fns if neccessary.
41 (optimize_function): Initialize inlined_fns.
42 Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
43 * decl.c (mark_inlined_fns): New function.
44 (lang_mark_tree): Call it.
45
5daf7c0a
JM
462001-02-21 Jason Merrill <jason@redhat.com>
47
48 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
49 (DECL_UNINLINABLE): Move to middle-end.
50
51 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
52 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
53 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
54 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
55 parms and outer BLOCK. note_deferral_of_defined_inline_function.
56
57 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
58 second parm of op=.
59
2c0fc02d
MM
602001-02-19 Mark Mitchell <mark@codesourcery.com>
61
62 * decl2.c (set_decl_namespace): Allow explicit instantiations in
63 any namespace.
64
612164eb
KL
652001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
66
67 * optimize.c (expand_call_inline): Don't walk subtrees of type
68 nodes.
69
69a59a49
MM
702001-02-18 Mark Mitchell <mark@codesourcery.com>
71
72 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
73 for a destructor.
74
e0fff4b3
JM
752001-02-18 Jason Merrill <jason@redhat.com>
76
77 Do put the VTT parameter in DECL_ARGUMENTS.
78 * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
79 (current_vtt_parm): New macro.
80 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
81 (DECL_HAS_VTT_PARM_P): New macro.
82 (DECL_VTT_PARM): Remove.
83 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
84 * decl.c (duplicate_decls): Only copy the operator code if
85 appropriate.
86 (start_function): Set current_vtt_parm.
87 (lang_mark_tree): Don't mark vtt_parm.
9c96f3f8 88 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
e0fff4b3
JM
89 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
90 * class.c (build_clone): Maybe remove the VTT parm.
91 * optimize.c (maybe_clone_body): Set up the VTT parm.
92 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
93 * call.c (build_over_call): Just allow the VTT arg.
94 * method.c (make_thunk): Don't set DECL_VTT_PARM.
95 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
96 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
97 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
98 * error.c (dump_function_decl): Likewise.
99 * call.c (build_user_type_conversion_1, convert_like_real): Abort
100 if we try to call a constructor with in-charge or VTT parms.
101 * method.c (skip_artificial_parms_for): New fn.
102 * call.c (add_function_candidate, build_over_call): Call it.
103 * call.c (build_new_method_call): Use current_vtt_parm.
104 * init.c (expand_virtual_init): Likewise.
105 * class.c (same_signature_p): No longer static.
106 * cp-tree.h: Declare it.
107 * search.c (look_for_overrides_r): Use it.
108
c750255c
MM
1092001-02-17 Mark Mitchell <mark@codesourcery.com>
110
8fa33dfa
MM
111 * cp-tree.h (new_abi_rtti_p): Remove.
112 (name_mangling_version): Likewise.
113 (flag_do_squangling): Likewise.
114 * class.c (build_rtti_vtbl_entries): Remove old ABI support.
115 * decl.c (grokfndecl): Likewise.
116 * decl2.c (name_mangling_version): Remove.
117 (flag_do_squangling): Likewise.
118 (lang_f_options): Remove `squangle'.
119 (unsupported_options): Add `squangle'.
120 (cxx_decode_option): Issue a warning about uses of
121 -fname-mangling-version.
122 (finish_file): Remove old ABI support.
123 * pt.c (check_explicit_specialization): Likewise.
124 (tsubst_decl): Likewise.
125 * rtti.c (init_rtti_processing): Likewise.
126 (build_headof): Likewise.
127 (get_tinfo_decl_dynamic): Likewise.
128 (tinfo_from_decl): Likewise.
129 (build_dynamic_cast_1): Likewise.
130 (synthesize_tinfo_var): Likewise.
12fa82db
MM
131 * init.c (build_new): Allow enumeration types for the array-bounds
132 in a direct-new-declarator.
133
134 * semantics.c (finish_typeof): Resolve OFFSET_REFs.
135
c750255c
MM
136 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
137 TREE_PROTECTED from the template being specialized.
138
a714e5c5
JM
1392001-02-17 Jason Merrill <jason@redhat.com>
140
141 * decl2.c (build_artificial_parm): Set TREE_READONLY.
142
9c96f3f8 143 * decl.c (bad_specifiers): Allow throw specs on things with
a714e5c5
JM
144 pointer-to-function or -member-function type.
145 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
146 a pmf.
147
8084b91e
MM
1482001-02-17 Mark Mitchell <mark@codesourcery.com>
149
150 * call.c (check_dtor_name): Handle template names correctly.
151
48f22ed2
JM
1522001-02-16 Jason Merrill <jason@redhat.com>
153
154 * cp-tree.h (DECL_USE_VTT_PARM): Remove.
155 * decl2.c (maybe_retrofit_in_chrg): Don't create it.
156 * optimize.c (maybe_clone_body): Don't substitute it.
157 * call.c (build_new_method_call): Check in_chrg instead.
158 * init.c (expand_virtual_init): Likewise.
159
e8186ecf
GDR
1602001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
161
162 * decl.c (check_tag_decl): Make sure a typedef for an anonymous
163 class-type introduces at least a type-name.
164
2c1be322
JJ
1652001-02-16 Jakub Jelinek <jakub@redhat.com>
166
167 * call.c (convert_like_real): Create a temporary for non-lvalue.
168
aab8454a
JO
1692001-02-16 Jeffrey Oldham <oldham@codesourcery.com>
170
171 * cp-tree.h: Fix typos in comments.
172
a901fa64
JM
1732001-02-16 Jason Merrill <jason@redhat.com>
174
175 * optimize.c (remap_block): If we're compiling a clone, pass the
176 new block to insert_block.
177
8853373c
MM
1782001-02-16 Mark Mitchell <mark@codesourcery.com>
179
180 * semantics.c (finish_asm_stmt): Robustify.
181
b60ecc04
MM
1822001-02-15 Mark Mitchell <mark@codesourcery.com>
183
184 * pt.c (push_template_decl_real): Don't remangle the name of a
185 class template.
186
e658449e
JM
1872001-02-15 Jim Meyering <meyering@lucent.com>
188
fd48c9b5
DD
189 * Make-lang.in (c++.install-common): Depend on installdirs.
190 (c++.install-info): Likewise.
191 (c++.install-man): Likewise.
e658449e 192
f1a3f197
MM
1932001-02-15 Mark Mitchell <mark@codesourcery.com>
194
195 * typeck2.c (build_m_component_ref): Robustify.
196
8826b15b
AO
1972001-02-15 Alexandre Oliva <aoliva@redhat.com>
198
199 * friend.c (do_friend): Don't take the nested [template] class
200 into account when deciding whether to warn about the friend
201 function not referring to a template function.
202
7161c1a5
JJ
2032001-02-14 Jakub Jelinek <jakub@redhat.com>
204
205 * typeck.c (build_unary_op): Clarify error message.
206
4806765e
AH
2072001-02-08 Aldy Hernandez <aldyh@redhat.com>
208
a901fa64
JM
209 * parse.y (component_constructor_declarator): allow optional
210 parentheses around constructor class name.
4806765e 211
bfc8e1e2
NS
2122001-02-14 Nathan Sidwell <nathan@codesourcery.com>
213
214 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
215 section.
216 * init.c (emit_base_init): Remove incorrect comment about
217 virtual bases.
218 * method.c (make_thunk): Fix comment alignment.
219
394fd776
NS
2202001-02-14 Nathan Sidwell <nathan@codesourcery.com>
221
222 Kill remnants of this is variable.
223 * cp-tree.h (flag_this_is_variable): Remove.
224 * decl2.c (flag_this_is_variable): Remove.
225 * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
226 (build_vbase_path): The path is non-static, even in a cdtor.
227 (resolves_to_fixed_type_p): Add additional return value.
228 * search.c (init_vbase_pointers): Adjust.
229 * tree.c (lvalue_p_1): Adjust.
230 * typeck.c (mark_addressable): Adjust.
231
d0ab7624
NS
2322001-02-14 Nathan Sidwell <nathan@codesourcery.com>
233
234 * pt.c (unify): Don't check cv quals of array types.
235
7773899b
NS
2362001-02-14 Nathan Sidwell <nathan@codesourcery.com>
237
238 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
239 check whether we already have the type.
240
52682a1b
MM
2412001-02-13 Mark Mitchell <mark@codesourcery.com>
242
243 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
244 * call.c (build_op_delete_call): Simplify to remove duplicate
245 code.
246 * class.c (clone_function_decl): Don't build the deleting variant
247 of a non-virtual destructor.
248 * decl.c (finish_destructor_body): Don't call delete if this is a
249 non-virtual destructor.
250 * init.c (build_delete): Explicitly call `operator delete' when
251 deleting an object with a non-virtual destructor.
9c96f3f8 252
3b6bd115
JM
2532001-02-13 Jason Merrill <jason@redhat.com>
254
255 * lang-specs.h: Add more __EXCEPTIONS.
256
45abaea8
NS
2572001-02-12 Nathan Sidwell <nathan@codesourcery.com>
258
259 * typeck2.c (process_init_constructor): Check
260 TREE_HAS_CONSTRUCTOR before issuing missing init warning.
261
996065b4
NS
2622001-02-12 Nathan Sidwell <nathan@codesourcery.com>
263
264 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
265 Remove spurious information in comment. Allow further
266 adjustments of REFERENCE_TYPE args.
267
82c18d5c
NS
2682001-02-12 Nathan Sidwell <nathan@codesourcery.com>
269
270 * errfn.c (cp_deprecated): Tweak diagnostic text.
271 * parse.y (new_initializer): Deprecate initializer lists
272 extension.
273
1f84ec23
MM
2742001-02-12 Mark Mitchell <mark@codesourcery.com>
275
276 Remove old ABI support.
277
8c310e3f
MM
2782001-02-11 Mark Mitchell <mark@codesourcery.com>
279
b1012f1b
MM
280 * decl2.c (flag_vtable_thunks): Always set it to 1.
281 (flag_new_abi): Likewise.
282 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9c96f3f8 283
8c310e3f
MM
284 * Makefile.in (g++spec.o): Fix typo.
285
3b635dfc
JM
2862001-02-09 Jason Merrill <jason@redhat.com>
287
288 * lang-specs.h: Restore definition of __EXCEPTIONS.
289
bd0d5d4a
JM
2902001-02-08 Jason Merrill <jason@redhat.com>
291
292 * search.c (shared_member_p): New function.
293 (lookup_field_r): Use it.
294 * cp-tree.h (SHARED_MEMBER_P): Remove.
295
296 * method.c (process_overload_item): Handle template-dependent array
297 bounds.
298 * pt.c (type_unification_real): If we end up with undeduced nontype
299 parms, try again.
300
301 * decl.c (lookup_name_real): Tweak warning to refer to decls, not
302 types.
303
304 * typeck2.c (friendly_abort): Don't say anything if we have
305 earlier errors or sorries.
306
9c96f3f8 307 * decl.c (check_tag_decl): Notice attempts to redefine bool and
bd0d5d4a
JM
308 wchar_t. Ignore if in_system_header.
309
310 * decl.c (maybe_push_cleanup_level): New fn...
311 (start_decl_1): ...split out from here.
312 * cvt.c (build_up_reference): Use it.
313 * cp-tree.h: Declare it.
314
a9374841
MM
3152001-02-07 Mark Mitchell <mark@codesourcery.com>
316
9c96f3f8 317 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
a9374841
MM
318 spec.
319
a87b4257
NS
3202001-02-06 Nathan Sidwell <nathan@codesourcery.com>
321
322 * pt.c (lookup_template_class): Make sure it's a primary
323 template or template_template_parm when called from the parser.
324 (instantiate_template_class): Add assertion.
325
518fed76
AO
3262001-02-05 Alexandre Oliva <aoliva@redhat.com>
327
328 * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
329 from error_mark_node.
330
9965d119
NS
3312001-02-05 Nathan Sidwell <nathan@codesourcery.com>
332
333 Fix specification and implementation bugs in V3 ABI
334 construction vtables.
335 * cp-tree.h (flag_dump_class_layout): New flag.
336 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
337 (BINFO_LOST_PRIMARY_P): New flag.
338 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
339 (BINFO_PRIMARY_MARKED_P): Rename to ...
340 (BINFO_PRIMARY_P): ... here.
341 (binfo_via_virtual): New prototype.
342 * decl2.c (flag_dump_class_layout): New flag.
343 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
344 use `=' as a file name separator.
345 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
346 bases.
347 (build_vtbl_address): If this is a virtual primary base, then
348 get the vtbl of what it is ultimately primary for.
349 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
350 for BINFO_PRIMARY_P.
351 (dfs_skip_nonprimary_vbases_markedp): Likewise.
352 (get_shared_vbase_if_not_primary): Likewise.
353 (dfs_get_pure_virtuals): Likewise.
354 (expand_upcast_fixups): Likewise.
355 (fixup_virtual_upcast_offsets): Likewise.
356 (dfs_find_vbase_instance): Likewise.
357 (find_vbase_instance): Likewise.
358 (binfo_from_vbase): Adjust comment to reflect reality.
359 (binfo_via_virtual): New function.
360 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
361 for binfo walking during VTT construction.
362 (dfs_mark_primary_bases): Remove.
363 (force_canonical_binfo_r): New function.
364 (force_canonical_binfo): New function.
365 (mark_primary_virtual_base): New function.
366 (mark_primary_bases): Walk in inheritance graph order, use
367 mark_primary_virtual_base.
368 (determine_primary_base): Use some more intermediate variables.
369 (dfs_find_final_overrider): Don't check for overriding along a
370 virtual path.
371 (dfs_modify_vtables): Walk into primary virtual bases too.
372 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
373 (build_base_fields): Likewise.
374 (dfs_set_offset_for_unshared_vbases): Likewise.
375 (layout_virtual_bases): Likewise.
376 (end_of_class): Likewise.
377 (finish_struct_1): Call dump_class_hierarchy, if requested.
378 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
379 (dump_class_hierarchy_r): Add stream parameter. Emit more information.
380 (dump_class_hierarchy): Add file parameter. Append to file, if
381 required.
382 (finish_vtbls): Adjust accumulate_vtbl_inits call.
383 Use canonical base for virtual bases.
384 (build_vtt): Add more comments. Adjust build_vtt_inits call.
385 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
386 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
387 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
388 virtual VTTs.
389 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
390 from DATA. We want virtual primary bases and all bases via virtual.
391 Only set BINFO_VPTR_INDEX for top level. Look up from a primary
392 virtual base when not a construction vtable.
393 (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
394 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
395 Use canonical bases when processing virtual bases.
396 (accumulate_vtbl_inits): We're interested in any base via a
397 virtual path.
398 (dfs_accumulate_vtbl_inits): If this is a primary virtual base
399 within a construction vtable, determine what is being overridden.
400 (build_vtbl_initializer): Add more comments
401 (add_vcall_offset_vtbl_entries_1): Adjust comment.
402 (build_rtti_vtbl_entries): Check if the base has lost its
403 primary.
404
39d6f2e8
MM
4052001-02-05 Mark Mitchell <mark@codesourcery.com>
406
407 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
408
400500c4
RK
409Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
410
411 * decl.c (pushdecl): Call abort instead of fatal.
412 * except.c (decl_is_java_type): Call fatal_error instead of fatal.
413 * init.c (build_new_1): Likewise.
414 (build_java_class_ref): Call internal_error and fatal_error, not fatal.
415 * decl.c (build_typename_type): hash_table_init now returns void.
416 decl.c (init_decl_processing): Make an error non-fatal.
417
97458258
MM
4182001-02-04 Mark Mitchell <mark@codesourcery.com>
419
420 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
421 Document.
422 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
423 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
424 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
425 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
426 * decl.c (maybe_commonize_var): Use the new name-mangling where
427 appropriate.
428 * decl2.c (comdat_linkage): Enhance comments. Make all
429 compiler-generated things static, if COMDAT is not available.
430 (get_tinfo_decl): Do not make typeinfo objects that belong in the
431 library COMDAT.
432 (tinfo_base_init): Use the correct mangled name for typeinfo
433 strings, and push them into the global scope.
434 (typeinfo_in_lib_p): New function.
435 (synthesize_tinfo_var): Use it.
436 (create_real_tinfo_var): Likewise.
9c96f3f8 437
55de1b66
JJ
4382001-02-03 Jakub Jelinek <jakub@redhat.com>
439
440 * decl.c (push_class_binding): Use context_for_name_lookup instead
441 of CP_DECL_CONTEXT.
442 * search.c (context_for_name_lookup): Remove static. Check for NULL
443 context in the loop.
444 * cp-tree.h (context_for_name_lookup): Add prototype.
445
e92730aa
JJ
4462001-02-02 Jakub Jelinek <jakub@redhat.com>
447
448 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
449 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
450 Remove.
451 * call.c (convert_class_to_reference, build_user_type_conversion_1,
452 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
453
049f6ec9
MM
4542001-02-02 Mark Mitchell <mark@codesourcery.com>
455
456 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
457 of macros used when compiling g++spec.c.
458 * g++spec.c (lang_specific_driver): Link with the shared
459 libgcc by default.
460
718b8ea5
JM
4612001-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
462
463 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
464 make_reference_declarator, make_call_declarator), method.c
465 (implicitly_declare_fn), parse.y (namespace_using_decl,
466 notype_unqualified_id, expr_or_declarator, new_type_id,
467 after_type_declarator, direct_after_type_declarator,
468 notype_declarator, complex_notype_declarator,
469 complex_direct_notype_declarator, qualified_id,
470 notype_qualified_id, overqualified_id, direct_new_declarator,
471 absdcl, direct_abstract_declarator, conversion_declarator), pt.c
472 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
473 instead of build_parse_node.
474
f2d1f0ba
KG
4752001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
476
477 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
478 (minus_one_node): Moved to top level gcc directory. Renamed
479 to integer_minus_one_node.
480
481 * init.c (init_init_processing): Don't set minus_one_node.
482 (build_vec_init): Use integer_minus_one_node.
483
484 * rtti.c (get_tinfo_decl_dynamic): Likewise.
485
6001735e
JJ
4862001-01-28 Jakub Jelinek <jakub@redhat.com>
487
488 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
489 identical and they would be replaced with constant, remove
490 MODIFY_EXPR from the tree.
491
c913b6f1
KG
4922001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
493
494 * Make-lang.in: Remove all dependencies on defaults.h.
495 * call.c: Don't include defaults.h.
496 * decl.c: Likewise.
497 * decl2.c: Likewise.
498 * except.c: Likewise.
499 * pt.c: Likewise.
500 * rtti.c: Likewise.
501 * tree.c: Likewise.
502 * typeck.c: Likewise.
503
324ffb8c
JJ
5042001-01-25 Jakub Jelinek <jakub@redhat.com>
505
506 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
507 operators even in "C" linkage.
508 * method.c (set_mangled_name_for_decl): Likewise.
509 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
510 overloaded operators in "C" linkage.
511
4b2811e9
NS
5122001-01-24 Nathan Sidwell <nathan@codesourcery.com>
513
514 * pt.c (tsubst_decl): Remove IN_DECL parameter.
515 (tsubst_arg_types): Check parameter is not void.
516 (tsubst): Adjust tsubst_decl call.
517
d8caf48e
NS
5182001-01-24 Nathan Sidwell <nathan@codesourcery.com>
519
520 * call.c (add_builtin_candidate): Quote std properly, from
521 previous change.
522
08511114
KL
5232001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
524
525 * pt.c (check_explicit_specialization): Clone constructors and
526 destructors.
527
92ecdfb7
NS
5282001-01-23 Nathan Sidwell <nathan@codesourcery.com>
529
530 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
531 indicates anything special about template depth. Make sure we
532 only count the user visible template classes.
533
4cff6abe
NS
5342001-01-23 Nathan Sidwell <nathan@codesourcery.com>
535
536 * call.c (build_conv): Typo in comment.
537 (add_builtin_candidate): Add more explanation.
538 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
539 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
540 when we have enumeral types.
541 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
542 candidates for relops and eqops.
543 (joust): Simplify control flow. Allow a non-template user
544 function to hide a builtin.
545
62e4a758
NS
5462001-01-22 Nathan Sidwell <nathan@codesourcery.com>
547
548 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
549 (more_specialized): Add deduction parameter.
550 * call.c (joust): Adjust more_specialized call.
551 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
552 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
553 (get_bindings_order): Remove.
554 (get_bindings_real): Add DEDUCE parameter.
555 (maybe_adjust_types_for_deduction): Return extra unify flags. Do
556 REFERENCE_TYPE jig for DEDUCE_ORDER.
557 (type_unification_real): Deal with DEDUCE_ORDER. Use result of
558 maybe_adjust_types_for_deduction.
559 (more_specialized): Add DEDUCE parameter. Call get_bindings_real
560 directly.
561 (try_one_overload): Use result of maybe_adjust_types_for_deduction.
562 (check_cv_quals_for_unify): Use new unify qualifier flags.
563 (unify): Clear new unify qualifier flags.
564 (get_bindings_real): Add DEDUCE parameter.
565 (get_bindings): Adjust call to get_bindings_real.
566 (get_bindings_overload): Likewise.
567 (most_specialized_instantiation): Adjust call to
568 more_specialized.
569
2a2a9e5a
JM
5702001-01-19 Jason Merrill <jason@redhat.com>
571
572 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
573
574 * decl.c (init_decl_processing): Just force -fvtable-thunks on if
575 -fnew-abi.
576
60696c53
JM
5772001-01-19 Ute Pelkmann <scope.muc@t-online.de>
578
579 * decl2.c (arg_assoc_class): Fix double iteration logic.
580
5812001-01-19 Jason Merrill <jason@redhat.com>
582
583 * init.c (build_delete): Always call convert_force to strip cv-quals.
584
585 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
586 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
587 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
588
1e00f18c
NS
5892001-01-19 Nathan Sidwell <nathan@codesourcery.com>
590
591 * search.c (get_vbase_1): Count only virtual bases.
592
e13bced2
NS
5932001-01-19 Nathan Sidwell <nathan@codesourcery.com>
594
595 * class.c (duplicate_tag_error): Robustify flag clearing.
596
f9c244b8
NS
5972001-01-19 Nathan Sidwell <nathan@codesourcery.com>
598
599 * cp-tree.h (lookup_template_class): Add complain parm.
600 * decl.c (lookup_namespace_name): Adjust call to
601 lookup_template_class.
602 (make_typename_type): Likewise.
603 * semantics.c (finish_template_type): Likewise.
604 * pt.c (lookup_template_class): Add complain parm. Adjust.
605 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
606 (tsubst): Likewise.
607
08c2df0f
NS
6082001-01-19 Nathan Sidwell <nathan@codesourcery.com>
609
610 * pt.c (copy_default_args_to_explicit_spec): Preserve
611 object's CV quals. Reorganize.
612
f5ceeec8
NS
6132001-01-18 Nathan Sidwell <nathan@codesourcery.com>
614
615 * typeck.c (build_modify_expr): Say `initialization' for
616 INIT_EXPRs.
617 * init.c (build_default_init): Convert to enumeral type, if
618 needed.
619
a1cfa434
JJ
6202001-01-18 Jakub Jelinek <jakub@redhat.com>
621
622 * parse.y (nomods_initdcl0): Properly set things up for
623 initdcl0_innards.
624
028d1f20
NS
6252001-01-18 Nathan Sidwell <nathan@codesourcery.com>
626
627 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
628 (type_unification_real): Set it.
629 (unify): Use it.
630
9f724b6a
NS
6312001-01-18 Nathan Sidwell <nathan@codesourcery.com>
632
633 * decl.c (finish_destructor_body): Convert to vbase pointer here.
634
522d6614
NS
6352001-01-18 Nathan Sidwell <nathan@codesourcery.com>
636
637 * semantics.c (begin_class_definition): Check we're not inside a
638 template parm list.
639
7f805b8f
NS
6402001-01-18 Nathan Sidwell <nathan@codesourcery.com>
641
642 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
643 BASELINK_P.
644
dc3799c1
KL
6452001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
646
647 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
648 * call.c (build_over_call): Add comment.
649
bb37c4a5
DB
6502001-01-16 Daniel Berlin <dberlin@redhat.com>
651
652 * cvt.c (ocp_convert): Handle vector type conversion
653 * typeck2.c (digest_init): Handle vector type initializations
9c96f3f8 654
a26e7fb5
PE
6552001-01-16 Phil Edwards <pme@sources.redhat.com>
656
657 * g++spec.c: Don't add libraries needlessly if -fsyntax-only
658 was given.
659
11b810f1
NS
6602001-01-15 Nathan Sidwell <nathan@codesourcery.com>
661
662 * pt.c (check_nontype_parm): Rename to ...
663 (invalid_nontype_parm_type_p): ... here.
664 (process_template_parm): Adjust.
665 (convert_template_argument): Adjust.
666
db3f4e4e
NS
6672001-01-15 Nathan Sidwell <nathan@codesourcery.com>
668
669 * pt.c (check_nontype_parm): New function.
670 (process_template_parm): Use it.
671 (convert_template_argument): Use it.
672 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
673 member.
674
ea4f1fce
JO
6752001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
676
677 * tree.c: Add defaults.h
678 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
679 * Make-lang.in (cp/tree.o): Add defaults.h.
680
1312c143
JM
6812001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
682
683 * Make-lang.in (CXX_C_OBJS): Add c-format.o.
684
4bc1997b
JM
6852001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
686
687 * g++.1: Change to be ".so man1/gcc.1".
688
23de1fbf
JM
6892001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
690
691 * Make-lang.in (c++.info, c++.install-info): Build and install g++
692 internals info.
693 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
694 ($(srcdir)/cp/g++int.info): New target.
695 * gxxint.texi: Add info directory entry. Use @@ in email address.
696 * .cvsignore: Update.
697
0949f723
NS
6982001-01-12 Nathan Sidwell <nathan@codesourcery.com>
699
700 * typeck.c (build_c_cast): Do template processing earlier.
701 Always pedwarn on array casts.
702
a8641661
NS
7032001-01-12 Nathan Sidwell <nathan@codesourcery.com>
704
705 * friend.c (make_friend_class): Make sure a templated class is
706 actually a template.
707
844511c8
NS
7082001-01-11 Nathan Sidwell <nathan@codesourcery.com>
709
710 * decl2.c (get_guard): Set linkage from guarded decl.
711
96a1e32d
NS
7122001-01-11 Nathan Sidwell <nathan@codesourcery.com>
713
714 * call.c (convert_default_arg): Check for unprocessed
715 DEFAULT_ARG.
716 * cp-tree.h (replace_defarg): Move to spew.c.
717 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
718 spew.c, which is where they really are.
719 (done_pending_defargs): Declare.
720 (unprocessed_defarg_fn): Declare.
721 * decl.c (replace_defarg): Move to spew.c
722 * parse.y (structsp): Call done_pending_defargs.
723 * spew.c (defarg_fns): Rearrange list structure.
724 (defarg_fnsdone): New static variable.
725 (defarg_depfns): New static variable.
726 (init_spew): Adjust.
727 (add_defarg_fn): Store the type in TREE_TYPE.
728 (do_pending_defargs): Detect and deal with ordering constraints
729 and circularity.
730 (done_pending_defargs): New function.
731 (unprocessed_defarg_fn): New function.
732 (replace_defarg): Moved from decl.c. Robustify. Don't save
733 if circularity detected.
734
34e225a3
NS
7352001-01-11 Nathan Sidwell <nathan@codesourcery.com>
736
737 * pt.c (unify): Check array has a domain, before checking
738 whether it is variable sized.
739
98979fe0
NS
7402001-01-11 Nathan Sidwell <nathan@codesourcery.com>
741
742 * decl.c (grokparms): Unobfuscate and get correct diagnostic for
743 parameters with pointers to arrays of unknown bound.
744
b37bf5bd
NS
7452001-01-11 Nathan Sidwell <nathan@codesourcery.com>
746
747 * parse.y (template_parm_header, template_spec_header): New
748 reductions. Split out from ...
749 (template_header): ... here. Use them.
750 (template_template_parm): Use template_parm_header.
751 * semantics.c (finish_template_template_parm): Add assert.
752
6c418184
MM
7532001-01-10 Mark Mitchell <mark@codesourcery.com>
754
792508b5
MM
755 * mangle.c (write_builtin_type): Fix thinko.
756
8afa707f
MM
757 * pt.c (copy_default_args_to_explicit_spec_1): New function.
758 (copy_default_args_to_explicit_spec): Likewise.
759 (check_explicit_specialization): Use it.
760
6c418184
MM
761 * class.c (finish_struct_1): Remove last argument in call to
762 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
763 * decl.c (builtin_function): Likewise.
764 (build_cp_library_fn): Likewise.
765 (check_initializer): Likewise.
766 (make_rtl_for_nonlocal_decl): Likewise.
767 (cp_finish_decl): Likewise.
768 (start_function): Likewise.
769 * decl2.c (finish_anon_union): Likewise.
770 * friend.c (do_friend): Likewise.
771 * init.c (build_java_class_ref): Likewise.
772 * method.c (make_thunk): Likewise.
773 * pt.c (tsubst_friend_function): Likewise.
774 * semantics.c (expand_body): Likewise.
775
31d95fc6
MM
7762001-01-10 Mark Mitchell <mark@codesourcery.com>
777
778 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
779 looking at DECL_CLONED_FUNCTION for non-functions.
780
31bb3027
NS
7812001-01-10 Nathan Sidwell <nathan@codesourcery.com>
782
783 * error.c (dump_template_parameter): Use parm to determine how
784 to print default value.
785
fd3f43e7
NS
7862001-01-10 Nathan Sidwell <nathan@codesourcery.com>
787
788 * class.c (duplicate_tag_error): Clear more flags.
789
042b4c4e
NS
7902001-01-10 Nathan Sidwell <nathan@codesourcery.com>
791
792 * call.c (build_new_method_call): Use binfo_for_vbase.
793
a7537031
JM
7942001-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
795
796 * cp-tree.h (flag_cond_mismatch): Don't declare.
797 * decl2.c (flag_cond_mismatch): Don't define.
798 (lang_f_options): Remove cond-mismatch.
799 (unsupported_options): Add cond-mismatch.
800
186c0fbe
NS
8012001-01-09 Nathan Sidwell <nathan@codesourcery.com>
802
803 * class.c (handle_using_decl): Reject using of constructor name
804 of sourcing class. Allow injecting of a method with same name as
805 nested class. Fixup error messages.
806
28ec8d6b
JM
8072001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
808
809 * decl2.c (lang_decode_option): Handle -Wformat=2.
810
3febd123
NS
8112001-01-08 Nathan Sidwell <nathan@codesourcery.com>
812
813 * cp-tree.h (lang_decl_flags): Rename defined_in_class to
814 initialized_in_class.
815 (DECL_DEFINED_IN_CLASS_P): Rename to ...
816 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
817 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
818 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
819 * pt.c (check_default_tmpl_args): Adjust for
820 DECL_INITIALIZED_IN_CLASS_P.
821 (instantiate_class_template): Likewise.
822 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9c96f3f8 823
3febd123
NS
824 * class.c (finish_struct): Constify saved_filename.
825
1f0d71c5
NS
8262001-01-08 Nathan Sidwell <nathan@codesourcery.com>
827
828 * class.c (duplicate_tag_error): Adjust diagnostic.
829 (finish_struct): Locally set location to start of struct.
830 * decl.c (fixup_anonymous_aggr): Use cp_error_at.
831
5bf15e84 8322001-01-08 Nathan Sidwell <nathan@codesourcery.com>
76191fdd
NS
833
834 * decl.c (struct binding_level): Adjust class_shadowed comments
835 to reflect reality.
836 (push_class_level_binding): Ajust comments to reflect reality.
837 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
838 Don't set TREE_VALUE on the class_shadowed list.
839
23d4e4cc 8402001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9c96f3f8
AJ
841
842 * decl2.c (acceptable_java_type): Allow references too.
23d4e4cc
APB
843 * init.c (build_java_class_ref): When using the new ABI, search
844 `class$' and have it mangled with `mangle_decl.'
845 * mangle.c (write_java_integer_type_codes): New function.
846 (write_builtin_type): Detect and mangle Java integer and real
847 types.
9c96f3f8 848
0c58da3e
MM
8492001-01-07 Mark Mitchell <mark@codesourcery.com>
850
851 * decl2.c (grokfield): Don't accept `asm' specifiers for
852 non-static data members.
853
45b8ddb4
KG
8542001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
855
856 * expr.c (cplus_expand_expr): Don't reset `target'.
857
96302433
NB
8582001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
859
860 * cp/decl2.c (cxx_post_options): Call cpp_post_options.
861
220bce48
NS
8622001-01-05 Nathan Sidwell <nathan@codesourcery.com>
863
864 * parse.y (template_datadef): Check for error_mark_node.
865
bfa2cb33
NS
8662001-01-05 Nathan Sidwell <nathan@codesourcery.com>
867
868 * cp-tree.def (DEFAULT_ARG): Make `x' class.
869
eaa7c03f
JM
8702001-01-04 Joseph S. Myers <jsm28@cam.ac.uk>
871
872 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
873 (record_builtin_type): Make non-static.
874 (flag_short_double): Don't declare.
875 (init_decl_processing): Remove the creation of many tree nodes now
876 in c_common_nodes_and_builtins.
877 (build_void_list_node): New function.
878 * decl2.c (flag_short_double, flag_short_wchar): Don't define.
879 * cp-tree.h (flag_short_wchar): Don't declare.
880
3af4c257
MM
8812001-01-04 Mark Mitchell <mark@codesourcery.com>
882
883 * call.c (build_conv): Don't use build1 for USER_CONV.
884 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
885
03dc0325
JM
8862001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
887
888 * lex.c (lang_init): Call c_common_lang_init.
889
3c505507
NS
8902001-01-03 Nathan Sidwell <nathan@codesourcery.com>
891
892 * search.c (lookup_fnfields_here): Remove.
893 (look_for_overrides_r): Use lookup_fnfields_1.
894 Ignore functions from using declarations.
895
03378143
NS
8962001-01-03 Nathan Sidwell <nathan@codesourcery.com>
897
898 Implement exceptions specifiers for implicit member functions.
899 * cp-tree.h (merge_exceptions_specifiers): Declare new function.
900 * method.c (synthesize_exception_spec): New function.
901 (locate_dtor, locate_ctor, locate_copy): New functions.
902 (implicitly_declare_fn): Generate the exception spec too.
903 * search.c (check_final_overrider): Check artificial functions
904 too.
9c96f3f8 905 * typeck2.c (merge_exception_specifiers): New function.
03378143 906
f30efcb7
JM
9072001-01-03 Jason Merrill <jason@redhat.com>
908
909 * init.c (build_default_init): New fn.
910 (perform_member_init): Split out from here.
911 (build_new_1): Use it. Simplify initialization logic.
912 (build_vec_init): Take an array, rather than a pointer and maxindex.
913 Speed up simple initializations. Don't clean up if we're assigning.
914 * cp-tree.h: Adjust.
915 * decl2.c (do_static_initialization): Remove TREE_VEC case.
916 * parse.y (new_initializer): Return void_zero_node for ().
917 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
918 * typeck2.c (digest_init): Only complain about user-written
919 CONSTRUCTORs.
920
a412bf75
MS
9212000-12-22 Mike Stump <mrs@wrs.com>
922
923 * decl2.c: (max_tinst_depth): Increase to 50.
924
4890c2f4
MM
9252001-01-02 Mark Mitchell <mark@codesourcery.com>
926
927 * class.c (invalidate_class_lookup_cache): Zero the
928 previous_class_values.
929 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
930 TREE_INT_CST_HIGH.
931 (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
932 * decl.c (free_bindings): New variable.
933 (push_binding): Don't create a new binding if we have one on the
934 free list.
935 (pop_binding): Put old bindings on the free list.
936 (init_decl_processing): Use size_int, not build_int_2.
937 Register free_bindings as a GC root.
938 (cp_make_fname_decl): Use size_int, not build_int_2.
939 (push_inline_template_parms_recursive): Likewise.
940 (end_template_parm_list): Likewise.
941 (for_each_tempalte_parm): Do not use walk_tree_without_duplicates.
942 (tsubst_template_parms): Use size_int, not build_int_2.
943 (tsubst): Likewise.
944 * rtti.c (get_vmi_pseudo_type_info): Likewise.
9c96f3f8 945
4f78b9a8
RH
9462001-01-02 Richard Henderson <rth@redhat.com>
947
948 * parse.y (asm): Set ASM_INPUT_P.
949
3c8c2a0a
JM
9502001-01-02 Jason Merrill <jason@redhat.com>
951
96d6c610
JM
952 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
953 for v3 ABI.
954
955 * typeck.c (cp_truthvalue_conversion): New fn.
956 * cvt.c (ocp_convert): Use it.
957
958 * cp-tree.h: Lose c-common.c decls.
959
960 * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
961 * cvt.c (convert_to_void): Use type_unknown_p.
962
9c96f3f8 963 * typeck.c (strip_all_pointer_quals): Also strip quals from
3c8c2a0a
JM
964 pointer-to-member types.
965
966 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat
967 parse.y as C.
968
969 * call.c (build_new_method_call): Do evaluate the object parameter
970 when accessing a static member.
971 * typeck.c (build_component_ref): Likewise.
972
d363e7bf
AJ
9732001-01-02 Andreas Jaeger <aj@suse.de>
974
975 * decl.c (cp_missing_noreturn_ok_p): New.
976 (init_decl_processing): Set lang_missing_noreturn_ok_p.
977
77f5250d
JJ
9782000-12-29 Jakub Jelinek <jakub@redhat.com>
979
980 * decl.c (init_decl_processing): Fix sign of wchar_type_node.
981
31a714f6
MM
9822000-12-29 Mark Mitchell <mark@codesourcery.com>
983
984 * class.c (pushclass): Remove #if 0'd code.
985 * cp-tree.h (overload_template_name): Remove.
986 * decl.c (store_bindings): Simplify.
987 (pop_from_top_level): Likewise.
988 * pt.c (overload_template_name): Remove.
d363e7bf 989 (instantiate_decl): Don't call push_to_top_level if it's not
31a714f6
MM
990 needed.
991
414ea4aa
MM
9922000-12-28 Mark Mitchell <mark@codesourcery.com>
993
994 * pt.c (register_local_specialization): Don't return a value.
995 (lookup_template_class): Use move-to-front heuristic when looking
996 up template instantiations.
997 (instantiate_decl): Only push_to_top_level when we're actually
998 going to instantiate the template.
999
6f18f7e9
HPN
10002000-12-29 Hans-Peter Nilsson <hp@bitrange.com>
1001
1002 * search.c (binfo_for_vtable): Return least derived class, not
1003 most. Handle secondary vtables.
1004
e5214479
JM
10052000-12-22 Jason Merrill <jason@redhat.com>
1006
3c8c2a0a
JM
1007 * pt.c (more_specialized): Don't optimize len==0.
1008 (fn_type_unification): If we're adding the return type, increase len.
1009
ebb1abc3
JM
1010 * typeck.c (build_binary_op): Fix pmf comparison logic.
1011
c939ca5f
JM
1012 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
1013 DECL_STATIC_FUNCTION_P.
1014
e6fe680d
JM
1015 * semantics.c (genrtl_finish_function): Don't try to jump to
1016 return_label unless it exists.
1017
e5214479
JM
1018 In partial ordering for a call, ignore parms for which we don't have
1019 a real argument.
1020 * call.c (joust): Pass len to more_specialized.
1021 (add_template_candidate_real): Strip 'this', pass len.
1022 * pt.c (more_specialized): Pass len down. Lose explicit_args parm.
1023 (get_bindings_order): New fn. Pass len down.
1024 (get_bindings_real): Strip 'this', pass len.
1025 (fn_type_unification): Likewise.
1026 (type_unification_real): Succeed after checking 'len' args.
1027 (most_specialized_instantiation): Lose explicit_args parm.
d363e7bf 1028 * class.c (resolve_address_of_overloaded_function): Strip 'this',
e5214479
JM
1029 pass len.
1030
10312000-12-21 Jason Merrill <jason@redhat.com>
477f6664
JM
1032
1033 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
1034 DECL_TEMPLATE_RESULT.
1035
1036 * search.c (lookup_field_r): Call lookup_fnfields_1, not
1037 lookup_fnfields_here.
1038
1039 * parse.y (typename_sub2): Return the TYPE_DECL, not the type.
1040
1041 * call.c (build_object_call): Also allow conversions that return
1042 reference to pointer to function.
1043 (add_conv_candidate): Handle totype being ref to ptr to fn.
1044 (build_field_call): Also allow members of type reference to function.
1045 Lose support for calling pointer to METHOD_TYPE fields.
1046
1047 * error.c (dump_expr): Handle *_CAST_EXPR.
1048
1049 * typeck2.c (build_scoped_ref): Always convert to the naming class.
1050
1051 * tree.c (break_out_cleanups): Lose.
1052 * cp-tree.h: Remove prototype.
1053 * typeck.c (build_component_ref): Don't break_out_cleanups.
1054 (build_compound_expr): Likewise.
1055 * semantics.c (finish_expr_stmt): Likewise.
1056
3e4d04a1
RH
10572000-12-20 Richard Henderson <rth@redhat.com>
1058
1059 * cp-tree.h: Update declarations.
1060 * decl.c (finish_case_label): Return the new stmt node.
1061 * semantics.c (finish_goto_stmt): Likewise.
1062 (finish_expr_stmt, finish_return_stmt): Likewise.
1063 (finish_break_stmt, finish_continue_stmt): Likewise.
1064 (finish_asm_stmt): Likewise.
1065 * parse.y (already_scoped_stmt): Set STMT_LINENO.
1066 (compstmt, implicitly_scoped_stmt, stmt): Likewise.
1067 (simple_if, simple_stmt): Return the new stmt node.
1068 (save_lineno): New.
1069
20d380b1
JM
10702000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
1071
1072 * cp-tree.h: Don't declare warn_long_long.
1073
221c7a7f
KL
10742000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1075
1076 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
1077 IS_AGGR_TYPE.
1078
b429fdf0
KL
10792000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1080
1081 * pt.c (unify): Handle when both ARG and PARM are
1082 BOUND_TEMPLATE_TEMPLATE_PARM.
1083
c2beae77
KL
10842000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1085
1086 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
1087 DECL_TEMPLATE_PARM_P.
1088
c3e899c1
JM
10892000-12-15 Jason Merrill <jason@redhat.com>
1090
96790071
JM
1091 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs!
1092
8d42565b
JM
1093 * init.c (build_new_1): Don't strip quals from type.
1094
fab09a24
JM
1095 * decl.c (pushdecl): Don't check for linkage on a non-decl.
1096
c3e899c1
JM
1097 * call.c (build_op_delete_call): See through ARRAY_TYPEs.
1098
1099 * call.c (build_new_function_call): Lose space before paren in
1100 error message.
1101 (build_new_method_call): Likewise.
1102
1103 * typeck2.c (build_m_component_ref): Propagate quals from datum.
1104
edac124d
KL
11052000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1106
1107 * pt.c (check_explicit_specialization): Propagate default
1108 function arguments to explicit specializations.
1109
31750649 11102000-12-13 DJ Delorie <dj@redhat.com>
8d3b081e
DD
1111
1112 * typeck.c (build_binary_op): Do signed/unsigned warnings for >?
1113 and <? operators.
1114
5e818b93
JM
11152000-12-08 Jason Merrill <jason@redhat.com>
1116
1117 * error.c (dump_function_name): Don't let the user see __comp_ctor.
1118
1119 Clean up copy-initialization in overloading code.
1120 * call.c (build_user_type_conversion_1): Die if we are asked to
1121 convert to the same or a base type.
1122 (implicit_conversion): Avoid doing so. Lose reference binding code.
1123 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
1124 direct-initialization. Also do direct-init part of copy-init.
1125 (build_user_type_conversion): Don't provide context to convert_like.
1126 * cvt.c (ocp_convert): build_user_type_conversion will now provide
1127 the constructor call for copy-init.
1128
1129 * pt.c (tsubst_decl): Call clone_function_decl here if this is an
1130 instantiation of a member template.
1131 (do_decl_instantiation): Not here.
1132
38da6039
NS
11332000-12-07 Nathan Sidwell <nathan@codesourcery.com>
1134
1135 * class.c (check_field_decls): Don't special case anonymous
1136 fields in error messages.
c9407e4c 1137 (note_name_declared_in_class): Use %D on diagnostic.
d363e7bf 1138
38da6039
NS
1139 * tree.c (pod_type_p): Use strip_array_types.
1140 (cp_valid_lang_attribute): Likewise.
1141 * typeck.c (cp_type_quals): Strip arrays separately, to avoid
1142 multiple evaluations.
d363e7bf 1143 (cp_has_mutable_p): Use strip_array_types.
38da6039 1144
a11d04b5
NS
11452000-12-07 Nathan Sidwell <nathan@codesourcery.com>
1146
1147 * cp-tree.h (sufficient_parms_p): Declare new function.
1148 * call.c (sufficient_parms_p): New function, broken out of ...
1149 (add_function_candidate): ... here. Use it.
1150 (add_conv_candidate): Use it.
1151 * decl.c (grok_ctor_properties): Use it.
1152
5eec2847
JJ
11532000-12-07 Jakub Jelinek <jakub@redhat.com>
1154
1155 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
1156
c907e684
JM
11572000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
1158
1159 * decl2.c (lang_decode_option): Handle -Wformat-security.
1160
74601d7c
KL
11612000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1162
1163 * pt.c (verify_class_unification): New function.
1164 (get_class_bindings): Use it.
1165 (try_class_unification): Tidy.
1166 (unify): Handle when argument of a template-id is not
1167 template parameter dependent.
1168 (template_args_equal): Handle when TREE_CODE's do not match.
1169
8954e858
AO
11702000-12-06 Alexandre Oliva <aoliva@redhat.com>
1171
1172 * lang-specs.h (c++): When invoking the stand-alone preprocessor
1173 for -save-temps, pass all relevant -Defines to it, and then don't
1174 pass them to cc1plus.
1175
3dc9aec6
WC
11762000-12-05 Will Cohen <wcohen@redhat.com>
1177
1178 * decl.c (finish_case_label): Cleared
1179 more_cleanups_ok in surrounding function scopes.
1180 (define_label): Likewise.
1181
cbb40945
NS
11822000-12-05 Nathan Sidwell <nathan@codesourcery.com>
1183
1184 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
1185 (get_matching_virtual): Remove.
1186 (look_for_overrides): Declare new function.
1187 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
1188 DECL_VINDEX here.
1189 * class.c (check_for_override): Move base class iteration code
1190 to look_for_overrides.
1191 * search.c (next_baselink): Remove.
1192 (get_virtuals_named_this): Remove.
1193 (get_virtual_destructor): Remove.
1194 (tree_has_any_destructors_p): Remove.
1195 (struct gvnt_info): Remove.
1196 (check_final_overrider): Remove `virtual' from error messages.
1197 (get_matching_virtuals): Remove. Move functionality to ...
1198 (look_for_overrides): ... here, and ...
1199 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
1200 to be overriding.
1201
61402b80
NS
12022000-12-05 Nathan Sidwell <nathan@codesourcery.com>
1203
1204 * typeck.c (get_delta_difference): If via a virtual base,
1205 return zero.
1206 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no
1207 adjustment.
1208
39abc9a6
RH
12092000-12-04 Richard Henderson <rth@redhat.com>
1210
1211 * error.c (dump_tree): Use output_add_string not OB_PUTS.
1212
c00996a3
JM
12132000-12-04 Jason Merrill <jason@redhat.com>
1214
1215 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
d363e7bf 1216 (write_builtin_type): Pass intSI_type_node and the like through
c00996a3
JM
1217 type_for_mode.
1218 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
1219 Pass intSI_type_node and the like through type_for_mode.
1220 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
1221 * pt.c (tsubst, unify): Likewise.
1222 * tree.c (walk_tree): Likewise.
1223 * error.c (dump_type): Likewise.
1224 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
d363e7bf 1225
c00996a3
JM
1226 * Make-lang.in: Tweak top comment for emacs.
1227 (cp/TAGS): Restore.
1228
1229 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
1230
c00996a3
JM
1231 * class.c (clone_function_decl): Robustify.
1232
12332000-12-04 Michael Matz <matzmich@cs.tu-berlin.de>
1234
1235 * decl.c (store_bindings): Only search in the non modified
1236 old_bindings for duplicates.
1237
00bb3dad
NS
12382000-12-04 Nathan Sidwell <nathan@codesourcery.com>
1239
1240 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
1241 TYPE_POLYMORPHIC_P.
d363e7bf 1242
00bb3dad
NS
1243 * typeck.c (build_static_cast): Remove unused variable.
1244
dc957d14
KL
12452000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1246
1247 * pt.c: Fix typo in comment.
1248
4d808927
JM
12492000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
1250
1251 * decl2.c (warn_format): Remove definition.
1252 (lang_decode_option): Handle -Wformat-nonliteral,
1253 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat.
1254
5fd8e536
JM
12552000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
1256
1257 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
1258 (init_decl_processing): Don't create string_type_node,
1259 const_string_type_node, wint_type_node, intmax_type_node,
1260 uintmax_type_node, default_function_type, ptrdiff_type_node and
1261 unsigned_ptrdiff_type_node. Adjust position of call to
1262 c_common_nodes_and_builtins.
1263 (identifier_global_value): New function.
1264
13f9714b
NS
12652000-12-01 Nathan Sidwell <nathan@codesourcery.com>
1266
1267 * call.c (standard_conversion): Reject pointer to member
1268 conversions from ambiguous, inaccessible or virtual bases.
1269 * typeck.c (build_static_cast): Don't check pointers to members
1270 specially.
1271
31b1b957
NS
12722000-11-30 Nathan Sidwell <nathan@codesourcery.com>
1273
1274 * method.c (do_build_copy_constructor): Preserve cv
1275 qualifications when accessing source object members.
1276 (do_build_assign_ref): Likewise. Remove separate diagnostics for
1277 unnamed fields.
1278
717e3f73
NS
12792000-11-30 Nathan Sidwell <nathan@codesourcery.com>
1280
1281 * method.c (do_build_assign_ref): Construct appropriately
1282 CV-qualified base reference. Don't allow const casts in base
1283 conversion.
1284
2c92b94d
NS
12852000-11-30 Nathan Sidwell <nathan@codesourcery.com>
1286
1287 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on
1288 incomplete return type.
1289
bb92901d
NS
12902000-11-28 Nathan Sidwell <nathan@codesourcery.com>
1291
1292 * parse.y (base_class.1): Produce a _TYPE not a _DECL.
1293 * semantics.c (finish_base_specifier): Accept a _TYPE not a
1294 _DECL.
1295
2f3608c3
NS
12962000-11-28 Nathan Sidwell <nathan@codesourcery.com>
1297
1298 * spew.c (yyerror): Cope if yylval.ttype is NULL.
1299
eeb75383
NS
13002000-11-28 Nathan Sidwell <nathan@codesourcery.com>
1301
1302 * decl.c (grokdeclarator): Diagnose undefined template contexts.
1303
5ee4cc26
NS
13042000-11-28 Nathan Sidwell <nathan@codesourcery.com>
1305
1306 * decl.c (grokdeclarator): Do type access control on friend
1307 class.
1308
76e57b45
NS
13092000-11-27 Nathan Sidwell <nathan@codesourcery.com>
1310
1311 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
1312 bison parser ickiness.
1313 * pt.c (tsubst_friend_function): Enter namespace scope when
1314 tsubsting the function name.
1315 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
1316
f9825168
NS
13172000-11-27 Nathan Sidwell <nathan@codesourcery.com>
1318
1319 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
1320 * cvt.c (cp_convert_to_pointer): Add force parameter.
1321 Allow conversions via virtual base if forced.
1322 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
1323 (ocp_convert): Likewise.
1324 * search.c (binfo_from_vbase): Return the virtual base's binfo.
1325 * typeck.c (get_delta_difference): Adjust handling of virtual
1326 bases.
1327
9ccb25d5
MM
13282000-11-26 Mark Mitchell <mark@codesourcery.com>
1329
1330 * tree.c (struct list_hash): Remove.
1331 (list_hash_table): Make it be an htab.
1332 (struct list_proxy): New type.
1333 (list_hash_eq): New function.
1334 (list_hash_pieces): Renamed from ...
1335 (list_hash): ... this.
1336 (list_hash_lookup): Remove.
1337 (list_hash_add): Remove.
1338 (hash_tree_cons): Use the generic hashtable.
1339 (mark_list_hash): Remove.
1340 (init_tree): Create the hashtable.
1341
9399bad3
JM
13422000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
1343
1344 * method.c (build_mangled_C9x_name): Rename to
1345 build_mangled_C99_name. Change C9X references in comments to
1346 refer to C99.
1347
2f401cc8
NS
13482000-11-24 Nathan Sidwell <nathan@codesourcery.com>
1349
1350 * parse.y (unary_expr): Move VA_ARG from here ...
1351 (primary): ... to here.
1352
3d7e9ba4
NS
13532000-11-24 Nathan Sidwell <nathan@codesourcery.com>
1354
1355 * semantics.c (finish_id_expr): If type is error_mark, return
1356 error_mark.
1357
ab097535
NS
13582000-11-23 Nathan Sidwell <nathan@codesourcery.com>
1359
1360 * pt.c (lookup_template_class): Simplify loop exit constructs.
1361 Cope when there is no partial instantiation of a template
1362 template member.
1363
9196ece5
R
1364Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com>
1365
1366 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
1367
cac78ea2
MM
13682000-11-22 Mark Mitchell <mark@codesourcery.com>
1369
6e1b44bc
MM
1370 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
1371 prefix.
1372
cac78ea2
MM
1373 * pt.c (do_decl_instantiate): Explicitly clone constructors and
1374 destructors that haven't already been cloned.
1375
3aac38d7
RH
13762000-11-20 Richard Henderson <rth@redhat.com>
1377
1378 * parse.y (yyparse_1): Rename the parser entry point.
1379
13802000-11-20 Alex Samuel <samuel@codesourcery.com>
beac9b93
AS
1381
1382 * mangle.c (write_name): Use <unscoped-name> for names directly in
1383 function scope.
1384 (write_unscoped_name): Accept names directly in function scope.
d363e7bf 1385
447306fa
NS
13862000-11-20 Nathan Sidwell <nathan@codesourcery.com>
1387
1388 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
1389 * parse.y (extdef): Add EXPORT reduction.
1390 * spew.c (yylex): Don't skip export here.
1391
2650255a
MM
13922000-11-19 Mark Mitchell <mark@codesourcery.com>
1393
1394 * decl.c (init_decl_processing): Correct name of pure virtual
1395 function under the new ABI.
1396 * rtti.c (throw_bad_cast): Likewise, for bad cast function.
1397 (throw_bad_typeid): Likewise for bad typeid function.
1398
0657c69c
MM
13992000-11-18 Mark Mitchell <mark@codesourcery.com>
1400
04f3dc2b
MM
1401 * decl.c (grokparms): Don't even function types of `void' type,
1402 either.
1403 * mangle.c (write_type): Don't crash when confronted with the
1404 error_mark_node.
1405
0657c69c
MM
1406 * decl.c (grokparms): Don't create parameters of `void' type.
1407
a8a05998
ZW
14082000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
1409
1410 * lex.c (mark_impl_file_chain): Delete.
1411 (init_parse): Remove call to ggc_add_string_root. No need to
1412 ggc_strdup a string constant. Do not add impl_file_chain to GC
1413 roots.
1414 (handle_pragma_implementation): No need to ggc_strdup main_filename.
1415
35728a80
NS
14162000-11-17 Nathan Sidwell <nathan@codesourcery.com>
1417
1418 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
1419
5cce22b6
NS
14202000-11-17 Nathan Sidwell <nathan@codesourcery.com>
1421
1422 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
1423 * decl.c (grokdeclarator): Don't reject void parms here.
1424 (require_complete_types_for_parms): Simplify, use
1425 complete_type_or_else.
1426 (grokparms): Remove bitrot. Remove funcdef parm.
1427 Deal with ellipsis parm lists here.
1428 * semantics.c (finish_parmlist): Don't append void_list_node
1429 here. Set PARMLIST_ELLIPSIS_P.
1430
146c8d60
NS
14312000-11-17 Nathan Sidwell <nathan@codesourcery.com>
1432
1433 * typeck2.c (incomplete_type_error): Reorganise to avoid
1434 excessive diagnostics.
1435
520a57c8
ZW
14362000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
1437
1438 * lex.c (struct impl_files, internal_filename): Constify a char *.
1439
43048a06
MM
14402000-11-16 Mark Mitchell <mark@codesourcery.com>
1441
1442 * mangle.c (write_special_name_constructor): Don't generate
1443 assembler junk when confronted with an old-style constructor.
1444 (write_special_name_destructor): Likewise.
1445 (mangle_decl_string): Do it here instead.
1446
cdb71673
NS
14472000-11-16 Nathan Sidwell <nathan@codesourcery.com>
1448
1449 * call.c (op_error): Make error messages clearer.
1450
62136084
MM
14512000-11-15 Mark Mitchell <mark@codesourcery.com>
1452
1453 * decl.c (wrapup_globals_for_namespace): Don't mark things
1454 TREE_ASM_WRITTEN when they're not.
1455
ee3400e8
JM
14562000-11-15 Jason Merrill <jason@redhat.com>
1457
1458 * typeck2.c (friendly_abort): Uncount the error before handing
1459 off to fancy_abort.
1460
71631a1f
NS
14612000-11-15 Nathan Sidwell <nathan@codesourcery.com>
1462
1463 * typeck.c (lookup_anon_field): Cope with qv qualifiers.
1464
79cda2d1
MM
14652000-11-14 Mark Mitchell <mark@codesourcery.com>
1466
1467 * class.c (build_vtbl_initializer): Fix typo in comment.
1468 * typeck.c (expr_sizeof): Don't crash on errors.
1469
2567bc56
JW
14702000-11-14 Jim Wilson <wilson@redhat.com>
1471
1472 * lang-specs.h: Add %2 after %(cc1_options).
1473
8422942c
RH
14742000-11-14 Richard Henderson <rth@redhat.com>
1475
1476 * typeck.c (c_sizeof): Be strict about casting result value
1477 back to c_size_type_node.
1478 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
1479
19552aa5
JM
14802000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1481
1482 * typeck.c (build_unary_op): Use boolean_increment from
1483 c-common.c, moving the relevant code there.
1484
d96a6d1a
JM
14852000-11-11 Jason Merrill <jason@redhat.com>
1486
1487 * typeck.c (mark_addressable): Don't call put_var_into_stack.
492cca24
JM
1488
1489 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
1490 in inlines.
1491
4e135bdd
KG
14922000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1493
1494 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
1495 * lex.c (copy_lang_decl): Likewise.
1496
0a7394bc
MM
14972000-11-09 Mark Mitchell <mark@codesourcery.com>
1498
13507bd8
MM
1499 * dump.c (cp_dump_tree): Don't dump function bodies here.
1500
0a7394bc
MM
1501 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
1502 (dump.o): Update dependency list.
1503 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
1504 (flag_dump_translation_unit): Likewise.
1505 (CP_TYPE_QUALS): Adjust definition.
1506 (DECL_C_BIT_FIELD): Remove.
1507 (SET_DECL_C_BIT_FIELD): Likewise.
1508 (CLEAR_DECL_C_BIT_FIELD): Likewise.
1509 (add_maybe_template): Likewise.
1510 (strip_array_types): Likewise.
1511 (dump_node_to_file): Likewise.
1512 (cp_dump_tree): New function.
1513 * decl.c (init_decl_processing): Set lang_dump_tree.
1514 * decl2.c (flag_dump_translation_unit): Remove.
1515 * dump.c: Move most of it to ../c-dump.c.
1516 (cp_dump_tree): New function.
1517 * pt.c (add_maybe_template): Remove.
1518 * typeck.c (strip_array_types): Likewise.
a8a05998 1519
5362b086
EC
15202000-11-07 Eric Christopher <echristo@redhat.com>
1521
492cca24
JM
1522 * decl.c (init_decl_processing): Change definition of
1523 __wchar_t to wchar_t. Remove artificial declaration of
1524 wchar_t.
1525 * lex.c: Change instances of __wchar_t to wchar_t.
5362b086 1526
5361cbb7
NS
15272000-11-09 Nathan Sidwell <nathan@codesourcery.com>
1528
1529 * lex.c (do_identifier): Don't lookup_name for operators.
1530 * parse.y (operator): Save looking_for_typename.
1531 (unoperator): Restore it.
1532 * spew.c (frob_opname): Use nth_token for lookahead.
1533
36791f1e
NS
15342000-11-08 Nathan Sidwell <nathan@codesourcery.com>
1535
1536 * decl.c (grok_op_properties): Always use coerce_new_type and
1537 coerce_delete_type.
1538 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve
1539 exception specification. Tidy up.
1540 (coerce_delete_type): Preserve exception specification. Tidy up.
1541
961192e1
JM
15422000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
1543
1544 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
1545 (push_binding_level), error.c (cp_tree_printer), pt.c
1546 (process_partial_specialization, tsubst_template_arg_vector),
1547 search.c (lookup_member): Use memset () instead of bzero ().
1548
d48ebde1
NS
15492000-11-07 Nathan Sidwell <nathan@codesourcery.com>
1550
1551 * decl.c (build_ptrmemfunc_type): Allow error_mark_node.
1552
436a88a6
JM
15532000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
1554
1555 * Make-lang.in (c++.distdir): Remove.
1556
7a4e5091
MM
15572000-11-04 Mark Mitchell <mark@codesourcery.com>
1558
1559 * decl2.c (do_nonmember_using_decl): Allow `extern "C"'
1560 declarations from different namespaces to be combined.
1561
0e9295cf
ZW
15622000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
1563
1564 * decl.c: Include tm_p.h.
1565
da61dec9
JM
15662000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
1567
1568 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
1569
9473c522
JM
15702000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
1571
1572 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
1573 (build_overload_value), repo.c (open_repo_file), xref.c
1574 (open_xref_file): Use strchr () and strrchr () instead of index ()
1575 and rindex ().
1576
b0b3afb2
BS
15772000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
1578
1579 * call.c (build_over_call): Call fold on the CALL_EXPR.
1580
faafaee6
GDR
15812000-11-01 Gabriel Dos Reis <gdr@codesourcery.com>
1582
1583 * error.c (dump_template_decl): Separate template hearders with
1584 space not comma.
1585
761f0855
GDR
15862000-10-31 Gabriel Dos Reis <gdr@codesourcery.com>
1587
1588 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace
1589 TS_* flags with corresponding TFF_*. Adjust prototypes of
1590 functions (which used to take a tree_string_flags) to take an int.
1591
1592 * cp-tree.h (enum tree_string_flags): Remove
1593 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
1594 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
1595 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
1596 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
1597 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
1598 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
1599 (type_as_string, decl_as_string, expr_as_string,
1600 context_as_string): Adjust prototype.
1601
1602 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
1603 instead of TS_PLAIN.
1604
1605 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
1606 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
1607 plain `0'.
1608
ad50e811
MM
16092000-10-30 Mark Mitchell <mark@codesourcery.com>
1610
1611 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
1612 (linkage_kind): New enumeration.
1613 (decl_linkage): New function.
1614 * decl2.c (comdat_linkage): Extend comment.
1615 * error.c (dump_function_decl): Print the arguments used to
1616 instantiate a template, even when not printing the type of the
1617 function.
1618 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
1619 not TREE_PUBLIC, to test for external linkage.
1620 * tree.c (decl_linkage): New function.
1621
930cd796
MM
16222000-10-28 Mark Mitchell <mark@codesourcery.com>
1623
1624 * pt.c (instantiate_decl): Always instantiate static data members
1625 initialized in-class.
1626
b8dad04b
ZW
16272000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
1628
1629 * Make-lang.in: Move all build rules here from Makefile.in,
1630 adapt to new context. Wrap all rules that change the current
1631 directory in parentheses. Expunge all references to $(P).
1632 When one command depends on another and they're run all at
1633 once, use && to separate them, not ;. Add OUTPUT_OPTION to
1634 all object-file generation rules. Delete obsolete variables.
1635
1636 * Makefile.in: Delete.
1637 * config-lang.in: Delete outputs= line.
1638
5f9cd837
GDR
16392000-10-26 Gabriel Dos Reis <gdr@codesourcery.com>
1640
1641 * error.c (dump_function_decl): Print no space between
1642 `ptr-operator' the `type-specifier' of the return type.
1643 (dump_type_prefix): Make sure we put space at the appropriate
5362b086 1644 place.
5f9cd837 1645
6c6ed0ef
JM
16462000-10-23 Jason Merrill <jason@redhat.com>
1647
1648 * call.c (equal_functions): Also call decls_match for extern "C" fns.
1649
16502000-10-22 Jason Merrill <jason@redhat.com>
1651
1652 * call.c (build_conditional_expr): Use ocp_convert to force
1653 rvalue conversion.
1654
e36308b0
MM
16552000-10-22 Mark Mitchell <mark@codesourcery.com>
1656
583ca5a0
MM
1657 * call.c (standard_conversion): Use RVALUE_CONVs for all
1658 expressions that satisfy lvalue_p, not just those that satisfy
1659 real_lvalue_p.
1660
f9808f81
MM
1661 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
1662
5362b086 1663 * typeck.c (c_sizeof): Return an expression of `size_t' type,
e36308b0
MM
1664 not one with TYPE_IS_SIZETYPE set.
1665 (dubious_conversion_warnings): Remove special-case code.
1666
3b9ae6f0
GK
16672000-10-21 Geoffrey Keating <geoffk@cygnus.com>
1668
7a0f14e5
GK
1669 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
1670 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
1671 (dump_type_prefix): Print vector-of-int as 'int vector'.
1672 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
1673 * tree.c (walk_tree): Handle VECTOR_TYPE.
1674
3b9ae6f0 1675 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
5362b086 1676
aca77bd1
JM
16772000-10-21 Jason Merrill <jason@redhat.com>
1678
1679 * parse.y (operator): Set got_object from got_scope.
1680 Set looking_for_typename.
1681 * decl.c (lookup_name_real): Clear val after setting from_obj.
1682 Reorganize diagnostic.
1683
ba523395
JM
16842000-10-20 Jason Merrill <jason@redhat.com>
1685
1686 * tree.c (walk_tree): Don't walk into default args.
1687
1688 * error.c (dump_expr): Use host_integerp.
1689
2e44948d
DE
16902000-10-20 David Edelsohn <edelsohn@gnu.org>
1691
1692 * typeck2.c (abstract_virtuals_error): Use "because" instead of
1693 "since" in error message.
1694
44475138
RK
1695Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1696
1697 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
1698
11306230
JO
16992000-10-20 Jeffrey Oldham <oldham@codesourcery.com>
1700
1701 * decl.c (revert_static_member_fn): Fixed typo.
1702
97ba1e3c
MM
17032000-10-19 Mark Mitchell <mark@codesourcery.com>
1704
c20118a8
MM
1705 * class.c (subobject_offset_fn): New type.
1706 (dfs_record_base_offsets): Remove.
1707 (record_base_offsets): Likewise.
1708 (dfs_search_base_offsets): Likewise.
1709 (record_subobject_offset): New function.
1710 (check_subobject_offset): Likewise.
1711 (walk_subobject_offsets): Likewise.
1712 (record_subobject_offsets): Likewise.
1713 (layout_conflict_p): Reimplement.
1714 (layout_nonempty_base_or_field): Correct handling of type
1715 conflicts during layout.
1716 (layout_empty_base): Likewise.
1717 (build_base_field): Adjust to handle new representation of empty
1718 base offset table.
1719 (build_base_fields): Likewise.
1720 (layout_virtual_bases): Likewise.
1721 (splay_tree_compare_integer_csts): New function.
1722 (layout_class_type): Use a splay_tree, rather than a varray, to
1723 represent the offsets of empty bases.
5362b086 1724
97ba1e3c
MM
1725 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
1726 * decl.c (select_decl): Don't return declarations that are
1727 DECL_ANTICIPATED.
1728
6bcedb4e
MM
17292000-10-18 Mark Mitchell <mark@codesourcery.com>
1730
1731 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
1732 (fake_std_node): New macro.
1733 * decl.c (in_std): Rename to ...
1734 (in_fake_std): ... this.
1735 (flag_no_builtin): Remove.
1736 (flag_no_nonansi_builtin): Likewise.
1737 (walk_namespaces_r): Use fake_std_node.
1738 (push_namespace): Use std_identifier.
1739 (pop_namespace): Use in_fake_std.
1740 (lookup_name_real): Use fake_std_node.
1741 (init_decl_processing): When -fhonor-std, create the `std'
1742 namespace. Don't create a dummy fake_std_node in that case.
1743 Adjust call to c_common_nodes_and_builtins. Use std_identifier.
1744 (builtin_function): Put builtins whose names don't begin
1745 with `_' in the std namespace.
1746 * decl2.c (flag_no_builtin): Remove.
1747 (flag_no_nonansi_builtin): Likewise.
1748 (set_decl_namespace): Use fake_std_node.
1749 (validate_nonmember_using_decl): Likewise.
1750 (do_using_directive): Likewise.
1751 (handle_class_head): Likewise.
1752 * dump.c (dequeue_and_dump): Likewise.
1753 * except.c (init_exception_processing): Use std_identifier.
1754 * init.c (build_member_call): Use fake_std_node.
1755 * rtti.c (init_rtti_processing): Use std_identifier.
5362b086 1756
67673f5c
MM
17572000-10-17 Mark Mitchell <mark@codesourcery.com>
1758
1759 * cp-tree.h (back_end_hook): Remove declaration.
1760 * decl2.c (back_end_hook): Remove definition.
1761
1762 * dump.c (dequeue_and_dump): Dump TREE_USED.
1763
8fef2e47
BL
1764Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu>
1765
1766 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
1767
652469d0
JM
17682000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
1769
1770 * decl.c (WINT_TYPE): Define.
1771 (init_decl_processing): Create types unsigned_ptrdiff_type_node,
1772 c_size_type_node, signed_size_type_node and wint_type_node.
1773
74ff4629
JM
17742000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
1775
1776 * decl2.c (warn_missing_format_attribute): New variable.
1777 (lang_decode_option): Decode -Wmissing-format-attribute.
1778
634790f4
MM
17792000-10-16 Mark Mitchell <mark@codesourcery.com>
1780
1781 * typeck.c (qualify_type): Remove.
1782 (composite_pointer_type): Fix handling of conversions to `cv void*'.
1783
bb12da9d
KG
17842000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1785
1786 * Makefile.in (parse.c, parse.h): Fix think-o in last patch.
1787
4b945402
KG
17882000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1789
1790 * Makefile.in (parse.c, parse.h): Create atomically.
1791
1f8f4a0b
MM
17922000-10-12 Mark Mitchell <mark@codesourcery.com>
1793
1794 * class.c (current_obstack): Remove.
1795 * decl.c (ggc_p): Remove.
1796 (start_decl): Don't use decl_tree_cons.
1797 (grokdeclarator): Don't use build_decl_list.
1798 (start_function): Don't use decl_tree_cons.
1799 (finish_function): Don't mess with obstacks.
1800 * decl2.c (grok_x_components): Don't use build_decl_list.
1801 * lex.c (make_call_declarator): Don't call decl_tree_cons.
1802 (implicitly_declare_fn): Don't call build_decl_list.
1803 * parse.y (frob_specs): Don't call build_decl_list or
1804 decl_tree_cons.
1805 (expr_or_declarator_intern): Don't call decl_tree_cons.
1806 (primary): Don't call build_decl_list.
1807 (fcast_or_absdcl): Likewise.
1808 (typed_declspecs): Don't call decl_tree_cons.
1809 (reserved_declspecs): Don't call build_decl_list.
1810 (declmods): Likewise.
1811 (reserved_typespecquals): Likewise.
1812 (aggr): Likewise.
1813 (new_type_id): Likewise.
1814 (cv_qualifiers): Likewise.
1815 (after_type_declarator_intern): Likewise.
1816 (notype_declarator_intern): Likewise.
1817 (absdcl_intern): Likewise.
1818 (named_parm): Likewise.
1819 * pt.c (most_specialized_class): Likewise.
1820 * repo.c (temporary_obstack): Make it a structure, not a pointer.
1821 (init_repo): Initialize it.
1822 * search.c (current_obstack): Remove.
1823 * typeck2.c (add_exception_specifier): Don't call build_decl_list.
5362b086 1824
8dc54971
RH
18252000-10-09 Richard Henderson <rth@cygnus.com>
1826
1827 * Make-lang.in (CXX_EXTRA_HEADERS): Remove.
1828 (c++ language support bits for libgcc): Remove.
1829 (c++.clean): Remove cplib2.txt cleanup.
1830 * config-lang.in (headers, lib2funcs): Remove.
1831
1832 * exception.cc, new.cc, new1.cc, new2.cc: Remove files.
1833 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
1834 * inc/cxxabi.h, inc/exception, inc/new: Remove files.
1835 * inc/new.h, inc/typeinfo: Remove files.
1836
b15ad712
JM
18372000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
1838
1839 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
1840 defined.
1841 (init_decl_processing): Initialize intmax_type_node and
1842 uintmax_type_node.
1843
156ce211
RH
18442000-10-06 Richard Henderson <rth@cygnus.com>
1845
1846 * cp-tree.h (struct cp_language_function): Remove x_result_rtx.
1847 (original_result_rtx): Remove.
1848 * decl.c (save_function_data): Don't clear x_result_rtx.
1849 (mark_lang_function): Don't mark it either.
1850 * expr.c (fixup_result_decl): Remove.
1851 * semantics.c (genrtl_named_return_value): Frob the return decl
1852 before calling emit_local_var.
1853 (genrtl_finish_function): Don't call fixup_result_decl.
1854 Always emit the jump to return_label.
1855
92777ce4
NS
18562000-10-06 Nathan Sidwell <nathan@codesourcery.com>
1857
1858 * pt.c (lookup_template_class): Set current access for enum.
1859 (tsubst_enum): Set file & line for enum decl.
5362b086 1860
92777ce4
NS
1861 * spew.c (yylex): Remove unused variable.
1862
63c16fc5
RH
18632000-10-05 Richard Henderson <rth@cygnus.com>
1864
1865 * semantics.c (genrtl_finish_function): Don't init or check
1866 can_reach_end; remove noreturn and return value checks.
1867
d1a458c4
TT
18682000-10-05 Tom Tromey <tromey@cygnus.com>
1869
1870 * init.c (build_java_class_ref): Use `build_static_name' with a
1871 suffix, not a prefix, to build the class object's name.
1872
509fc277
NS
18732000-10-05 Nathan Sidwell <nathan@codesourcery.com>
1874
1875 * cp-tree.h (access_kind): Fix comment typo.
1876 * decl2.c (grokfield): Fix diagnostic typo.
1877 * semantics.c (finish_template_type): Fix comment typo.
1878 (finish_qualified_object_call_expr): Likewise.
1879
ce2e5191
NS
18802000-10-05 Nathan Sidwell <nathan@codesourcery.com>
1881
1882 * pt.c (tsubst_expr, DECL_STMT case): Don't process if
5362b086 1883 tsubsting fails.
ce2e5191 1884
79cc5312
NS
18852000-10-05 Nathan Sidwell <nathan@codesourcery.com>
1886
1887 * spew.c (frob_id): New static function.
1888 (frob_opname): Use it.
1889 (yylex): Use it.
1890
f15b9af9
MM
18912000-10-01 Mark Mitchell <mark@codesourcery.com>
1892
1893 * decl.c (lang_mark_false_label_stack): Remove.
1894 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
5362b086 1895
28e6b1c2
JM
18962000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
1897
1898 * gxxint.texi: Use @email for formatting email addresses.
1899
99885b3f
GDR
19002000-09-29 Gabriel Dos Reis <gdr@codesourcery.com>
1901
1902 * error.c: Remove direct obstack manipulation. Replace with
1903 output_buffer-based formatting. Adjust calls to removed macros.
1904 (obstack_chunk_alloc, obstack_chunk_free): Remove.
1905 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
1906 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
1907
c06aa51e
MM
19082000-09-24 Mark Mitchell <mark@codesourcery.com>
1909
1910 * ir.texi: Move to ../c-tree.texi.
1911
99fada40
JM
19122000-09-20 Jason Merrill <jason@redhat.com>
1913
1914 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
1915
bb20cc46
AJ
19162000-09-21 Andreas Jaeger <aj@suse.de>
1917
1918 * errfn.c: Move declaration of cp_printer and cp_printers to ...
1919 * cp-tree.h: ... here.
1920
1921 * error.c: Remove declaration of cp_printer.
1922
fab701da
MM
19232000-09-20 Mark Mitchell <mark@codesourcery.com>
1924
1925 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
1926
0370fea1
HPN
19272000-09-20 Hans-Peter Nilsson <hp@axis.com>
1928
1929 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
1930 users.
1931
78c120b5
MM
19322000-09-18 Mark Mitchell <mark@codesourcery.com>
1933
1934 * decl.c (start_function): Robustify.
1935
3f80e6ac
KG
19362000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1937
1938 * cp-tree.h (check_function_format): Accept a `status' parameter.
bb20cc46 1939
3f80e6ac
KG
1940 * call.c, typeck.c: Updates calls to `check_function_format'.
1941
fc928afe
GK
19422000-09-17 Geoffrey Keating <geoffk@cygnus.com>
1943
1944 * decl2.c (handle_class_head): Always push some scope even
1945 in the error case.
1946
8f17b5c5
MM
19472000-09-16 Mark Mitchell <mark@codesourcery.com>
1948
1949 * cp-tree.h (struct cp_language_function): Remove
1950 x_scope_stmt_stack and name_declared.
1951 (current_scope_stmt_stack): Remove.
1952 (function_name_declared_p): New macro.
1953 (struct lang_decl_flags): Use c_lang_decl as a base class.
1954 (context): Remove.
1955 (struct lang_decl): Replace saved_tree with context.
1956 (DECL_FRIEND_CONTEXT): Adjust accordingly.
1957 (SET_DECL_FRIEND_CONTEXT): Likewise.
1958 (DECL_VIRTUAL_CONTEXT): Likewise.
1959 (DECL_SAVED_TREE): Remove.
1960 (C_DECLARED_LABEL_FLAG): Likewise.
1961 (cplus_expand_expr_stmt): Don't declare.
1962 (add_decl_stmt): Likewise.
1963 (add_scope_stmt): Likewise.
1964 * decl.c (mark_stmt_tree): Remove.
1965 (case_compare): Likewise.
1966 (finish_case_label): Use c_add_case_label.
1967 (init_decl_processing): Set more language-specific hooks.
1968 (build_enumerator): Fix typo in comment.
1969 (cplus_expand_expr_stmt): Remove.
1970 (mark_lang_function): Use mark_c_language_function.
1971 (lang_mark_tree): Use c_mark_lang_decl.
1972 * decl2.c: Change order of inclusion.
1973 * except.c: Likewise.
1974 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall
1975 back on c_expand_expr.
1976 * friend.c: Include expr.h.
1977 * init.c: Change order of inclusion.
1978 * Makefile.in: Update dependencies.
1979 * lex.h (free_lang_decl_chain): Remove.
1980 * optimize.c (maybe_clone_body): Use function_name_declared_p.
1981 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
1982 it doesn't exist.
1983 (instantiate_decl): Use function_name_declared_p.
1984 * semantics.c (lang_expand_expr_stmt): Remove.
1985 (set_current_function_name_declared): Likewise.
1986 (current_function_name_declared): Likewise.
1987 (begin_compound_stmt): Use function_name_declared_p.
1988 (add_decl_stmt): Remove.
1989 (setup_vtbl_ptr): Use function_name_declared_p.
1990 (add_scope_stmt): Remove.
1991 (current_scope_stmt_stack): New function.
1992 (cp_expand_stmt): Don't handle SCOPE_STMTs.
1993 (expand_body): Use function_name_declared_p.
1994 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
1995 * typeck.c: Change order of includes.
1996 (convert_sequence): Remove.
bb20cc46 1997
d9dbd9b1
JM
19982000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
1999
2000 * lex.c (reswords): Add _Complex.
2001
9985f210
RK
2002Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2003
2004 * Make-lang.in (cplib2.txt): Depend on cp/Makefile.
2005
f903ebb1
DA
20062000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
2007
2008 * init.c (begin_init_stmts): Don't use // comments.
2009
f2ae0c45
JM
20102000-09-12 Jason Merrill <jason@redhat.com>
2011
2012 * decl.c (maybe_deduce_size_from_array_init): Set do_default for
2013 all non-extern arrays.
2014
2015 * decl.c (grokdeclarator): Complain about 'friend T' for implicit
2016 typenames, too. Downgrade complaint to pedwarn.
2017 (xref_tag): Warn about surprising behavior of 'friend struct T'.
2018 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
2019 'class This::Inherited'.
2020
71ad4a16
MM
20212000-09-12 Mark Mitchell <mark@codesourcery.com>
2022
2023 * decl.c (finish_case_label): Given the LABEL_DECL a
2024 DECL_CONTEXT.
2025
c3e76028
GDR
20262000-09-12 Gabriel Dos Reis <gdr@codesourcery.com>
2027
2028 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
2029 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
2030 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
2031 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
2032 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
2033 New macros.
2034 (sorry_for_unsupported_tree, print_scope_operator,
2035 print_left_paren, print_right_paren, print_left_bracket,
2036 print_right_bracket, print_whitespace): Likewise.
2037 (aggr_variety): Rename to class_key_or_enum.
2038 (print_type): Rename to print_type_id.
2039 (print_type_specifier_seq, print_simple_type_specifier,
2040 print_elaborated_type_specifier,
2041 print_rest_of_abstract_declarator,
2042 print_parameter_declaration_clause, print_exception_specification,
2043 print_nested_name_specifier, print_template_id,
2044 typedef_original_name, print_template_argument_list_start,
2045 print_template_argument_list_end): New functions.
2046
eb50138b
GDR
20472000-09-11 Gabriel Dos Reis <gdr@codesourcery.com>
2048
a8a05998 2049 * ir.texi: Add more documentation.
eb50138b 2050
f444e36b
MM
20512000-09-11 Mark Mitchell <mark@codesourcery.com>
2052
2053 * cp-tree.h (struct saved_scope): Remove x_function_parms.
2054 (current_function_parms): Don't define.
2055 (struct cp_language_function): Remove parms_stored.
2056 (current_function_just_assigned_this): Don't define.
2057 (current_function_parms_stored): Likewise.
2058 (static_ctors): Declare.
2059 (static_dtors): Likewise.
2060 (SF_EXPAND): Don't define.
2061 (expand_start_early_try_stmts): Remove declaration.
2062 (store_parm_decls): Likewise.
2063 * decl.c (static_ctors): Don't declare.
2064 (static_dtors): Likewise.
2065 (struct binding_level): Remove this_block.
2066 (poplevel): Remove dead code.
2067 (set_block): Likewise.
2068 (mark_binding_level): Don't mark this_block.
2069 (mark_saved_scope): Don't mark x_function_parms.
2070 (init_decl_processing): Don't add current_function_parms as a GC
2071 root.
2072 (check_function_type): Change prototype.
2073 (start_function): Remove RTL-generation code.
2074 (expand_start_early_try_stmts): Remove.
2075 (store_parm_decls): Give it internal linkage. Remove
2076 RTL-generation code.
2077 (finish_function): Remove RTL-generation code.
2078 * decl2.c (static_ctors): Fix formatting.
2079 (static_dtors): Likewise.
2080 * method.c (use_thunk): Don't call store_parm_decls.
2081 (synthesize_method): Likewise.
2082 * optimize.c (maybe_clone_body): Likewise.
2083 * parse.y (fn.def2): Likewise.
2084 (.set_base_init): Likewise.
2085 (nodecls): Likewise.
2086 * pt.c (instantiate_decl): Likewise.
2087 * rtti.c (synthesize_tinfo_fn): Likewise.
2088 * semantics.c (genrtl_try_block): Simplify.
2089 (expand_body): Use genrtl_start_function and
2090 genrtl_finish_function.
2091 (genrtl_start_function): New function.
2092 (genrtl_finish_function): Likewise.
2093
181d2ba0
NS
20942000-09-11 Nathan Sidwell <nathan@codesourcery.com>
2095
2096 * error.c (cp_tree_printer, case 'P'): Append break.
2097
f2d71db6
NS
20982000-09-11 Nathan Sidwell <nathan@codesourcery.com>
2099
2100 * cp-tree.h (frob_opname): Declare.
2101 * parse.y (saved_scopes): New static variable.
2102 (cp_parse_init): Adjust.
2103 (do_id): If lastiddecl is NULL, do do_identifier.
2104 (operator): Save scope information.
aca77bd1 2105 (unoperator): New reduction. Restore scope information.
f2d71db6
NS
2106 (operator_name): Append unoperator. Call frob_opname.
2107 * spew.c (frob_opname): Define.
2108
d8ea8f28
ZW
21092000-09-10 Zack Weinberg <zack@wolery.cumb.org>
2110
2111 * decl.c, rtti.c: Include defaults.h if not already included.
2112 Don't define the *_TYPE_SIZE macros.
2113
56cb9733
MM
21142000-09-09 Mark Mitchell <mark@codesourcery.com>
2115
2116 * cp-tree.h (push_switch): Change prototype.
2117 (check_cp_case_value): Remove declaration.
2118 (decl_constant_value): Likewise.
2119 * decl.c (struct cp_switch): Add switch_stmt and cases.
2120 (case_compare): New function.
2121 (push_switch): Set switch_stmt. Initialize cases.
2122 (pop_switch): Clean up cases.
2123 (define_case_label): Rename to ...
2124 (finish_case_label): ... this. Do semantic analysis for case
2125 labels here.
2126 (start_function): Correct comment.
2127 * decl2.c (check_cp_case_value): Remove.
2128 * expr.c (do_case): Remove.
2129 * pt.c (tsubst_expr): Adjust call to finish_case_label.
2130 * semantics.c (genrtl_do_poplevel): Remove declaration.
2131 (RECHAIN_STMTS): Remove.
2132 (finish_break_stmt): Use build_break_stmt.
2133 (finish_continue_stmt): Use build_continue_stmt.
2134 (finish_switch_cond): Adjust condition here, rater than in
2135 c_expand_start_case.
2136 (finish_case_label): Remove.
2137 * typeck.c (c_expand_return): Remove.
2138 (c_expand_start_case): Likewise.
bb20cc46 2139
990a9693
GDR
21402000-09-07 Gabriel Dos Reis <gdr@codesourcery.com>
2141
2142 * ir.texi: Document type nodes.
2143
ae499cce
MM
21442000-09-06 Mark Mitchell <mark@codesourcery.com>
2145
54f7877c
MM
2146 * cp-tree.h (init_cp_semantics): Declare.
2147 (genrtl_try_block): Don't declare.
2148 (genrtl_handler): Likewise.
2149 (genrtl_catch_block): Likewise.
2150 (genrtl_ctor_stmt): Likewise.
2151 (genrtl_subobject): Likewise.
2152 (genrtl_do_poplevel): Likewise.
2153 (genrtl_named_return_value): Likewise.
2154 * lex.c (init_parse): Call init_cp_semantics.
2155 * semantics.c (genrtl_try_block): Give it internal linkage.
2156 (genrtl_handler): Likewise.
2157 (genrtl_catch_block): Likewise.
2158 (genrtl_ctor_stmt): Likewise.
2159 (genrtl_subobject): Likewise.
2160 (genrtl_do_poplevel): Likewise.
2161 (genrtl_named_return_value): Likewise.
2162 (lang_expand_stmt): Rename to ...
2163 (cp_expand_stmt): ... this. Only handle C++-specific nodes.
2164 (init_cp_semantics): Define.
2165
3a0d3e1e
MM
2166 * decl.c (initialize_local_var): Remove RTL-generating code.
2167 * semantics.c (genrtl_try_block): Fix formatting.
2168
ae499cce
MM
2169 Move statement-tree facilities from C++ to C front-end.
2170 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
2171 (void_zero_node): Remove.
2172 (stmt_tree): Likewise.
2173 (scope_chain): Adjust.
2174 (language_function): Rename to cp_language_function.
2175 (cp_function_chain): Adjust.
2176 (current_stmt_tree): Remove.
2177 (last_tree): Likewise.
2178 (last_expr_type): Likewise.
2179 (struct lang_decl): Adjust.
2180 (STMT_IS_FULL_EXPR_P): Remove.
2181 (add_tree): Remove.
2182 (begin_stmt_tree): Likewise.
2183 (finish_stmt_tree): Likewise.
2184 (walk_tree_fn): Likewise.
2185 (walk_stmt_tree): Likewise.
2186 * class.c (finish_struct): Replace use of add_tree with add_stmt.
2187 * decl.c (mark_stmt_tree): Adjust type.
2188 (init_decl_processing): Don't build void_zero_node.
2189 (initialize_local_var): Adjust usage of current_stmt_tree.
2190 (finish_enum): Use add_stmt, not add_tree.
2191 (save_function_data): Adjust use of language_function.
2192 (finish_constructor_body): Use add_stmt, not add_tree.
2193 (finish_destructor_body): Likewise.
2194 (push_cp_function_context): Adjust use of language_function.
2195 (pop_cp_function_context): Likewise.
2196 (mark_lang_function): Likewise.
2197 (mark_cp_function_context): Likewise.
2198 * init.c (build_aggr_init): Adjust use of current_stmt_tree.
2199 (build_vec_init): Likewise.
2200 * semantics.c (SET_LAST_STMT): Remove.
2201 (RECHAIN_STMTS): Don't use it.
2202 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
2203 (current_stmt_tree): Define.
2204 (add_tree): Remove.
2205 (finish_goto_stmt): Use add_stmt, not add_tree.
2206 (finish_expr_stmt): Likewise.
2207 (begin_if_stmt): Likewise.
2208 (finish_then_clause): Likewise.
2209 (begin_while_stmt): Likewise.
2210 (begin_do_stmt): Likewise.
2211 (finish_return_stmt): Likewise.
2212 (begin_for_stmt): Likewise.
2213 (finish_break_stmt): Likewise.
2214 (finish_continue_stmt): Likewise.
2215 (begin_switch_stmt): Likewise.
2216 (finish_case_label): Likewise.
2217 (begin_try_block): Likewise.
2218 (begin_function_try_block): Likewise.
2219 (begin_handler): Likewise.
2220 (begin_catch_block): Likewise.
2221 (begin_compound_stmt): Likewise.
2222 (begin_asm_stmt): Likewise.
2223 (finish_asm_stmt): Likewise.
2224 (finish_label_stmt): Likewise.
2225 (add_decl_stmt): Likewise.
2226 (finish_subobject): Likewise.
2227 (finish_decl_cleanup): Likewise.
2228 (finish_named_return_value): Likewise.
2229 (setup_vtbl_ptr): Likewise.
2230 (add_scope_stmt): Likewise.
2231 (finish_stmt_expr): Likewise.
2232 (prune_unused_decls): Remove.
2233 (begin_stmt_tree): Likewise.
2234 (finish_stmt_tree): Likewise.
2235 (prep_stmt): Adjust use of current_stmt_tree.
2236 (lang_expand_stmt): Likewise.
2237 * tree.c (statement_code_p): Remove.
2238 (cp_statement_code_p): New function.
2239 (walk_stmt_tree): Remove.
2240 (init_tree): Set lang_statement_code_p.
bb20cc46 2241
0e5921e8
ZW
22422000-09-06 Zack Weinberg <zack@wolery.cumb.org>
2243
2244 Integrated preprocessor.
2245
2246 * Make-lang.in, Makefile.in: Remove all references to input.c,
2247 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
2248 * gxx.gperf, hash.h, input.c: Delete.
2249 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
2250 initialized properly.
2251
2252 * class.c (fixup_pending_inline): Take a tree, not a
2253 struct pending_inline *. All callers changed.
2254 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
2255 RID_PROTECTED entries in ridpointers[] array here.
2256 * decl.c (duplicate_decls): Do not refer to struct
2257 pending_inline.
2258 (record_builtin_type, init_decl_processing): Use RID_MAX not
2259 CP_RID_MAX.
2260 (grokdeclarator): Use C_IS_RESERVED_WORD.
2261 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
2262 cpplib.
2263 (grok_x_components): Do not inspect pending_inlines chain.
2264
2265 * cp-tree.h (struct lang_identifier): Add rid_code entry.
2266 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
2267 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
2268 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
2269 TIME_IDENTIFIER_FILEINFO): Kill.
2270 Update prototypes.
2271 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
2272 single 32-bit word.
2273 * parse.y: Call do_pending_inlines unconditionally.
2274 reinit_parse_for_method is now snarf_method. fn.defpen is no
2275 longer necessary. Remove unnecessary <itype> annotation on
2276 SCOPE. Do not refer to end_of_file or struct pending_inline.
2277 * semantics.c (begin_inline_definitions): Call
2278 do_pending_inlines unconditionally.
2279
2280 * lex.c: Remove all code now shared with C front end.
2281 Initialize cpplib properly if USE_CPPLIB. Put reserved words
2282 into the get_identifier table. Rewrite pragma handling to
2283 work with the registry. Move code to save tokens for later
2284 processing to spew.c.
2285
2286 * spew.c: Rewrite everything in terms of token streams instead
2287 of text. Move routines here from lex.c / input.c as
2288 appropriate. GC-mark trees hanging off the pending inlines
2289 chain.
2290
44835fdd
MM
22912000-09-06 Mark Mitchell <mark@codesourcery.com>
2292
2293 * NEWS: Mention that the named return value extension has been
2294 deprecated.
2295 * cp-tree.h (original_result_rtx): Define.
2296 (TREE_REFERENCE_EXPR): Remove.
2297 (DECL_VPARENT): Likewise.
2298 (pushdecl_nonclass_level): Likewise.
2299 (store_return_init): Likewise.
2300 (reinit_lang_specific): Likewise.
2301 (genrtl_named_return_value): Change prototype.
2302 * decl.c (original_result_rtx): Remove.
2303 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
2304 Do not generate RTL for local variables here.
2305 (store_return_init): Remove.
2306 * semantics.c (genrtl_named_return_value): Simplify. Fold in
2307 store_return_init.
2308 (finish_named_return_value): Adjust accordingly. Warn that this
2309 extension is deprecated.
2310 (lang_expand_stmt): Adjust call to genrtl_named_return_value.
2311
d7c4edd0
NS
23122000-09-06 Nathan Sidwell <nathan@codesourcery.com>
2313
2314 * pt.c (type_unification_real): Replace switch with if.
2315 (unify): Tsubst non-type parms before comparing.
2316
46e2747c
NS
23172000-09-06 Nathan Sidwell <nathan@codesourcery.com>
2318
2319 * error.c (dump_typename): New function, broken out of ...
2320 (dump_type): ... here. Use it.
2321 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
2322
c833d2be
NS
23232000-09-06 Nathan Sidwell <nathan@codesourcery.com>
2324
2325 * init.c (build_offset_ref): Deal with namespace scoped
2326 TEMPLATE_ID_EXPRs.
2327
b1ce3eb2
NS
23282000-09-06 Nathan Sidwell <nathan@codesourcery.com>
2329
2330 * class.c (resolve_address_of_overloaded_function): Add
2331 explanation message.
2332 * decl.c (define_case_label): Reformat explanation.
2333 * decl2.c (finish_static_data_member_decl): Likewise.
2334 (grokfield): Likewise.
2335 * friend.c (do_friend): Likewise.
2336
11f53b6a
ZW
23372000-09-05 Zack Weinberg <zack@wolery.cumb.org>
2338
2339 * tree.c (walk_tree): Expose tail recursion.
2340 (walk_stmt_tree): New function.
2341 * cp-tree.h: Prototype walk_stmt_tree.
2342 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
2343 the BLOCKs directly. If a BLOCK has no variables after
2344 pruning, discard it.
2345 (finish_stmt_tree): Use walk_stmt_tree. No need to save and
2346 restore the line number.
2347
ee94fce6
MM
23482000-09-05 Mark Mitchell <mark@codesourcery.com>
2349
2350 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
2351 (pt.o): Remove dependency on HTAB_H.
2352 * cp-tree.h: Include hashtab.h.
2353 (walk_tree): Change prototype.
2354 (walk_tree_without_duplicates): New function.
2355 * decl.c (check_default_argument): Use it.
2356 * optimize.c (remap_decl): Adjust calls to walk_tree.
2357 (copy_body): Likewise.
2358 (expand_calls_inline): Likewise.
2359 (calls_setjmp_p): Use walk_tree_without_duplicates.
2360 * pt.c: Don't include hashtab.h.
2361 (for_each_template_parm): Use walk_tree_without_duplicates.
2362 * semantics.c (finish-stmt_tree): Likewise.
2363 (expand_body): Likewise.
2364 * tree.c (walk_tree): Add additional parameter.
2365 (walk_tree_without_duplicates): New function.
2366 (count_trees): Use it.
2367 (verify_stmt_tree): Adjust call to walk_tree.
2368 (find_tree): Use walk_tree_without_duplicates.
2369 (no_linkage_check): Likewise.
2370 (break_out_target_exprs): Adjust call to walk_tree.
2371 (cp_unsave): Likewise.
2372
a1281f45
KL
23732000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2374
2375 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
2376 (TEMPLATE_TEMPLATE_PARM): Adjust comment.
2377 * cp-tree.h (TYPE_BINFO): Adjust comment.
2378 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
2379 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
2380 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
2381 (TYPE_TEMPLATE_INFO): Likewise.
2382 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
2383 * class.c (push_nested_class): Likewise.
2384 * decl.c (lookup_name_real): Likewise.
2385 (grokdeclarator): Likewise.
2386 (grok_op_properties): Likewise.
2387 (xref_tag): Likewise.
2388 (xref_basetypes): Likewise.
2389 * decl2.c (constructor_name_full): Likewise.
2390 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
2391 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
2392 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
2393 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
2394 (dump_type_suffix): Likewise.
2395 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
2396 instead.
2397 (get_aggr_from_typedef): Likewise.
2398 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
2399 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
2400 (write_template_parm): Likewise.
2401 (write_template_template_parm): Check tree code instead of
2402 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
0e5921e8 2403 * method.c (build_overload_nested_name): Add
a1281f45
KL
2404 BOUND_TEMPLATE_TEMPLATE_PARM.
2405 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
2406 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
2407 * pt.c (convert_template_argument): Check tree code instead of
2408 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
2409 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
2410 (for_each_template_parm): Adjust comment.
2411 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize.
2412 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
2413 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use
2414 template_args_equal to compare template template parameter cases.
2415 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
2416 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
2417 instead.
2418 * tree.c (copy_template_template_parm): Decide whether to create
2419 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
2420 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
2421 (copy_tree_r): Likewise.
2422 * typeck.c (comptypes): Likewise. Check tree code instead of
2423 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
2424
c9672d45
ME
24252000-09-04 Mark Elbrecht <snowball3@bigfoot.com>
2426
2427 * decl.c (finish_function): Move the code for handling functions
2428 marked with the constructor and destructor attributes inside the
2429 expand_p block.
2430
67804825
NS
24312000-09-04 Nathan Sidwell <nathan@codesourcery.com>
2432
2433 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
2434
1bc0793e
NS
24352000-09-04 Nathan Sidwell <nathan@codesourcery.com>
2436
2437 * pt.c (lookup_template_class): Remove abort.
2438 * tree.c (get_type_decl): Allow error_mark_node.
2439
3338663b
NS
24402000-09-04 Nathan Sidwell <nathan@codesourcery.com>
2441
2442 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
2443 TEMPLATE_ID_EXPRs.
2444
1b84dc37
MM
24452000-09-03 Mark Mitchell <mark@codesourcery.com>
2446
2447 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
c9672d45 2448 new ABI mangling.
1b84dc37 2449
9687f8f4
NS
24502000-09-01 Nathan Sidwell <nathan@codesourcery.com>
2451
2452 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
c9672d45 2453 union tag mismatch error reporting.
9687f8f4 2454
4f8025eb
NS
24552000-09-01 Nathan Sidwell <nathan@codesourcery.com>
2456
c9672d45 2457 * call.c (build_scoped_method_call): Check it is not a namespace.
4f8025eb 2458
495d26d6
JM
24592000-08-30 Jason Merrill <jason@redhat.com>
2460
2461 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
2462
2463 * tree.c (bot_manip): Check TREE_CONSTANT rather than
2464 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and
2465 build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
2466
2467 * decl.c (start_function): Always call make_function_rtl.
2468
7efcf466
ZW
24692000-08-29 Zack Weinberg <zack@wolery.cumb.org>
2470
495d26d6 2471 * semantics.c (prune_unused_decls): New function.
7efcf466
ZW
2472 (finish_stmt_tree): Call it via walk_tree.
2473
63ad61ed
ZW
24742000-08-29 Zack Weinberg <zack@wolery.cumb.org>
2475
2476 * class.c (build_secondary_vtable): Constify a char *.
2477 * decl.c (init_decl_processing): Initialize function_id_node,
2478 pretty_function_id_node, and func_id_node.
2479 * input.c (struct input_source): Constify 'str'.
2480 (feed_input): Constify first argument.
2481 * mangle.c (write_identifier): Constify argument.
2482 * pt.c (mangle_class_name_for_template): Constify argument.
2483
4361b41d
MM
24842000-08-29 Mark Mitchell <mark@codesourcery.com>
2485
2486 * typeck.c (mark_addressable): Remove code that pokes around in
2487 RTL.
2488
881c6935
JM
24892000-08-28 Jason Merrill <jason@redhat.com>
2490
2491 * lex.c (file_name_nondirectory): Move to toplev.c.
2492
2493 * cp-tree.h (LOCAL_CLASS_P): New macro.
2494 * class.c (finish_struct_1): Use it.
2495
f0f33848
AS
24962000-08-27 Alex Samuel <samuel@codesourcery.com>
2497
2498 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
2499 (write_encoding): Pass another argument to write_name.
2500 (write_name): Add ignore_local_scope parameter. Fix handling of
2501 local names.
2502 (write_nested_name): Use write_unqualified_name.
2503 (write_prefix): Likewise. Skip out on FUNCTION_DECLs.
2504 (write_template_prefix): Use write_unqualified_name.
2505 (write_component): Remove.
2506 (write_local_name): Add parameter. Use direct local entity to
2507 discriminator calculation.
0e5921e8 2508 (write_class_enum_type): Pass another argument to write_name.
f0f33848
AS
2509 (write_template_template_arg): Likewise.
2510 (make_guard_variable): Likewise.
0e5921e8 2511
94dfccd1
JM
25122000-08-27 Jason Merrill <jason@redhat.com>
2513
2514 * decl.c (pushdecl): Matching decls for local externs are found in
2515 the current level. Propagate linkage information from previous
2516 declarations.
2517
14fdf4b6
GDR
25182000-08-26 Gabriel Dos Reis <gdr@codesourcery.com>
2519
2520 * ir.texi (Expressions): Fix typo.
2521
b5232c64
GM
25222000-08-25 Greg McGary <greg@mcgary.org>
2523
2524 * tree.c (init_tree): Use ARRAY_SIZE.
2525
22a4158c
GDR
25262000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
2527
2528 * error.c (cp_tree_printer): Rework.
2529
f22967f3
MM
25302000-08-25 Mark Mitchell <mark@codesourcery.com>
2531
a0c182fe
MM
2532 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
2533 dyn-string.o.
2534 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
2535 (cp-demangle.o): Remove target.
2536 (dyn-string.o): Likewise.
2537
f22967f3
MM
2538 * decl.c (grokfndecl): Require that `main' return an `int'.
2539 * mangle.c (write_encoding): Don't mangle return types for
2540 conversion functions.
2541
a1066c99
GDR
25422000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
2543
2544 * error.c (tree_formatting_info): New data type.
2545 (tree_being_formatted): New macro.
2546 (tree_formatting_flags): Likewise.
2547 (put_whitespace): Likewise.
2548 (print_tree_identifier): Likewise.
2549 (print_identifier): Likewise.
2550 (cp_tree_printer, print_function_argument_list, print_declaration,
2551 print_expression, print_function_declaration,
2552 print_function_parameter, print_type, print_cv_qualifier): New
0e5921e8 2553 functions.
a1066c99
GDR
2554 (init_error): Initialize lang_printer.
2555
3f2b640a
JM
25562000-08-24 Jason Merrill <jason@redhat.com>
2557
2558 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no
2559 adjustment necessary.
2560
7ec09bf7
GM
25612000-08-24 Greg McGary <greg@mcgary.org>
2562
2563 * cp-tree.h (MAIN_NAME_P): Remove macro.
2564
2ab99c46
GDR
25652000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
2566
2567 * error.c (print_instantiation_context): Don't forget to flush the
2568 buffer.
2569
7def1251
JM
25702000-08-23 Jason Merrill <jason@redhat.com>
2571
2572 * typeck.c (build_ptrmemfunc): Save the input pmf.
2573
2574 * method.c (process_modifiers): Use same_type_p.
2575
94350948
MM
25762000-08-23 Mark Mitchell <mark@codesourcery.com>
2577
2578 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
2579 * mangle.c (write_function_type): Change prototype.
2580 (write_encoding): Don't mangle return types for
2581 constructors or destructors.
2582 (write_type): Adjust call to write_function_type.
2583 * pt.c (instantiate_template): Instantiate alternate entry points
2584 when instantiating the main function.
0e5921e8 2585
a64e7329
GDR
25862000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
2587
2588 * error.c (cp_print_error_function): Don't use embedded '\n' in
0e5921e8 2589 output_printf.
a64e7329 2590
a72462a4
GDR
25912000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
2592
2593 * decl.c (init_decl_processing): Remove bogus initialization.
2594 * error.c (lang_print_error_function): Restore here.
0e5921e8
ZW
2595 (init_error): Initialize print_error_function.
2596
3add6264
TP
25972000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2598
2599 * decl2.c (arg_assoc): Revert my 2000-08-11 change.
2600
cb753e49
GDR
26012000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
2602
2603 * Makefile.in (error.o): Depends on diagnostic.h
2604
2605 * cp-tree.h (problematic_instantiation_changed,
2606 record_last_problematic_instantiation, current_instantiation,
2607 print_instantiation_context): Declare.
2608 (maybe_print_template_context): Remove.
2609
2610 * decl.c (init_decl_processing): Set print_error_function to NULL.
2611 (lang_print_error_function): Remove, since we're using a new
2612 machinery.
2613
2614 * error.c: #include diagnostic.h
2615 (function_category): New function.
2616 (cp_diagnostic_starter): Likewise.
2617 (cp_diagnostic_finalizer): Likewise.
2618 (cp_print_error_function): Likewise.
2619 (maybe_print_instantiation_context): Likewise.
2620 (print_instantiation_full_context): Likewise.
2621 (print_instantiation_partial_context): Likewise.
2622 (print_instantiation_context): Define.
2623 (init_error): Initialize diagnostic pager and finalizer.
2624
2625 * pt.c (problematic_instantiation_changed): Define.
2626 (record_last_problematic_instantiation): Likewise.
2627 (current_instantiation): Likewise.
2628 (maybe_print_template_context): Remove.
2629 (print_template_context): Likewise.
2630 (current_tinst_level): Make static to reflect Brendan Kehoe's
2631 change of 1995-04-13.
0e5921e8
ZW
2632 (push_tinst_level): Call print_instantiation_context.
2633
05a3d06e 26342000-08-21 Nix <nix@esperi.demon.co.uk>
0e5921e8 2635
05a3d06e
N
2636 * lang-specs.h: Do not process -o or run the assembler if
2637 -fsyntax-only.
2638
93e2382f
JM
26392000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
2640
2641 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New
2642 variables.
2643 * decl2.c (lang_decode_option): Disable gettext attributes for
2644 -ansi.
2645
24805e80
GDR
26462000-08-21 Gabriel Dos Reis <gdr@codesourcery.com>
2647
2648 * lex.c (lang_init_options): Default diagnostic message maximum
2649 length to 80, when line-wrapping.
2650
b485e15b
MM
26512000-08-20 Mark Mitchell <mark@codesourcery.com>
2652
2653 * class.c (build_vtbl_initializer): Clear the entire
2654 vtbl_init_data. Start keeping track of the functions for which we
2655 have created vcall offsets here.
2656 (dfs_build_vcall_offset_vtbl_entries): Remove.
2657 (build_vcall_offset_vtbl_entries): Reimplement.
2658 (add_vcall_offset_vtbl_entries_r): New function.
2659 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for
2660 computing when vcall offsets are necessary.
2661
2ae7bada
NS
26622000-08-18 Nathan Sidwell <nathan@codesourcery.com>
2663
2664 * decl.c (member_function_or_else): Use cp_error ... %T.
2665 (grokdeclarator): Likewise.
2666 (start_method): Likewise.
0e5921e8 2667 * friend.c (make_friend_class): Use cp_pedwarn ... %T.
2ae7bada 2668
7a8b1375
NS
26692000-08-18 Nathan Sidwell <nathan@codesourcery.com>
2670
2671 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
0e5921e8 2672 TYPE_DECLs.
7a8b1375 2673
19420d00
NS
26742000-08-18 Nathan Sidwell <nathan@codesourcery.com>
2675
2676 * cp-tree.h (PTRMEM_OK_P): New macro.
2677 (itf_ptrmem_ok): New enumeration value.
2678 * class.c (resolve_address_of_overloaded_function): Add PTRMEM
2679 argument. Diagnose implicit pointer to member.
2680 (instantiate_type): Don't diagnose implicit pointer to member
2681 here. Pass itf_ptrmem_ok if ok. Adjust calls to
2682 resolve_address_of_overloaded_function.
2683 * init.c (build_offset_ref): Set PTRMEM_OK_P.
2684 (resolve_offset_ref): Don't diagnose implicit pointer to member here.
2685 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
2686 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
2687 (build_unary_op): Deal with single non-static member in
2688 microsoft-land.
2689
66081283
NS
26902000-08-18 Nathan Sidwell <nathan@codesourcery.com>
2691
2692 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
2693
fa40aa12
NS
26942000-08-18 Nathan Sidwell <nathan@codesourcery.com>
2695
2696 * cp-tree.h (enum_name_string): Remove prototype.
2697 (report_case_error): Remove prototype.
2698 * cp/typeck2.c (enum_name_string): Remove.
2699 (report_case_error): Remove.
2700 * error.c (dump_expr): Deal with enum values directly.
2701 Correctly negate integer constant.
2702
d13b34e9
NS
27032000-08-17 Nathan Sidwell <nathan@codesourcery.com>
2704
2705 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
2706 (__cxa_vec_delete2, __cxa_vec_delete3): Declare.
2707 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
2708 (__cxa_vec_delete2, __cxa_vec_delete3): Implement.
2709 (__cxa_vec_new): Use __cxa_vec_new2.
2710 (__cxa_vec_delete): Use __cxa_vec_delete2.
2711
2f1b80af
NS
27122000-08-17 Nathan Sidwell <nathan@codesourcery.com>
2713
2714 * vec.cc (__cxa_vec_new): Set "C" linkage.
2715 (__cxa_vec_ctor): Likewise.
2716 (__cxa_vec_cctor): Likewise.
2717 (__cxa_vec_dtor): Likewise.
2718 (__cxa_vec_delete): Likewise.
2719 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
2720 (__cxa_vec_ctor): Likewise.
2721 (__cxa_vec_cctor): Likewise.
2722 (__cxa_vec_dtor): Likewise.
2723 (__cxa_vec_delete): Likewise.
2724
105d8e1f
NS
27252000-08-17 Nathan Sidwell <nathan@codesourcery.com>
2726
2727 * class.c (instantiate_type): Reinstate local variable
2728 deleted in previous change.
0e5921e8 2729
f1819d9a
NS
2730 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not
2731 itf_no_attributes.
105d8e1f 2732
5e76004e
NS
27332000-08-17 Nathan Sidwell <nathan@codesourcery.com>
2734
2735 * cp-tree.h (instantiate_type_flags): New enumeration.
2736 (instantiate_type): Change parameter.
2737 * class.c (instantiate_type): Adjust prototype. Adjust.
2738 * call.c (standard_conversion): Adjust instantiate_type call.
2739 (reference_binding): Likewise.
2740 (build_op_delete_call): Likewise.
2741 (convert_like_real): Likewise.
2742 * cvt.c (cp_convert_to_pointer): Likewise.
2743 (convert_to_reference): Likewise.
2744 * pt.c (convert_nontype_argument): Likewise.
2745 * typeck.c (build_binary_op): Likewise.
2746 (build_ptrmemfunc): Likewise.
2747 (convert_for_assignment): Likewise.
2748
4b054b80
NS
27492000-08-17 Nathan Sidwell <nathan@codesourcery.com>
2750
2751 * cp-tree.h (CPTR_AGGR_TAG): New global tree node.
2752 (current_aggr): Define.
2753 * decl.c (grokdeclarator): Make sure a friend class is an
2754 elaborated type specifier.
2755 * parse.y (current_aggr): Remove static definition.
2756 (cp_parse_init): Adjust.
2757 (structsp): Clear and restore current_aggr.
2758 (component_decl_list): Clear current_aggr.
0e5921e8 2759
4b054b80
NS
2760 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the
2761 aggregate tag on the typename's context.
0e5921e8 2762
321cba97
NS
2763 * pt.c (tsubst_friend_class): Return error_mark_node, if
2764 parms becomes NULL.
2765 (instantiate_class_template): Ignore error_mark_node friend types.
4b054b80 2766
08aead78
NS
27672000-08-14 Nathan Sidwell <nathan@codesourcery.com>
2768
2769 * cvt.c (warn_ref_binding): New static function, broken out of ...
0e5921e8 2770 (convert_to_reference): ... here. Use it.
08aead78 2771
fa1f3ebc
KL
27722000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
2773
2774 * parse.y (template_arg): Add rule for template qualified with
2775 global scope.
2776
9845b52b
TP
27772000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2778
2779 * decl2.c (add_function): Reorganize.
2780 (arg_assoc): Do not consider function template decls.
2781
e69c8072
JM
27822000-08-11 Jason Merrill <jason@redhat.com>
2783
2784 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
2785 looking inside.
2786
5c1e5476
NS
27872000-08-11 Nathan Sidwell <nathan@codesourcery.com>
2788
2789 * cp-tree.h (resolve_scope_to_name): Remove unused prototype.
2790 (lookup_nested_tag): Likewise.
0e5921e8 2791
5c1e5476
NS
2792 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs
2793 can be produced.
2794
5426aa7f
NS
27952000-08-11 Nathan Sidwell <nathan@codesourcery.com>
2796
2797 * parse.y (named_complex_class_head_sans_basetype): Remove
2798 always true if.
2799
fd037e0d
NS
28002000-08-11 Nathan Sidwell <nathan@codesourcery.com>
2801
2802 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
2803 explicit TEMPLATE_ID_EXPR args.
2804 (build_expr_from_tree, case CALL_EXPR): Likewise.
2805
73ae5c34
NS
28062000-08-11 Nathan Sidwell <nathan@codesourcery.com>
2807
2808 * decl.c (check_tag_decl): Diagnose typename's which don't
2809 declare anything.
2810
aa54df09
NS
28112000-08-10 Nathan Sidwell <nathan@codesourcery.com>
2812
2813 * init.c (build_aggr_init): Reject bogus array initializers
2814 early.
2815
7e8dad18
NS
28162000-08-09 Nathan Sidwell <nathan@codesourcery.com>
2817
2818 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
2819 runtime.
2820 * cp/tinfo.cc (__dynamic_cast): Likewise.
0e5921e8 2821 * cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7e8dad18 2822
0f586b9b
NS
28232000-08-09 Nathan Sidwell <nathan@codesourcery.com>
2824
2825 * cvt.c (convert_to_pointer_force): Fix error message when
0e5921e8 2826 attempting to cast from ambiguous base.
0f586b9b 2827
08e72a19
JM
28282000-08-08 Jason Merrill <jason@redhat.com>
2829
2830 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
2831 (tsubst_template_arg_vector): Likewise.
2832
2833 * decl2.c (build_anon_union_vars): Choose the largest field; don't
2834 assume that one will be as large as the union.
2835
0811ea8f
KH
28362000-08-07 Kazu Hirata <kazu@hxi.com>
2837
2838 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
2839 * decl.c (pop_labels): Likewise.
2840
f9fcf62b
JO
28412000-08-04 Jeffrey Oldham <oldham@codesourcery.com>
2842
2843 * inc/cxxabi.h (__pbase_type_info): Changed member names to match
2844 specifications.
2845 (__pointer_to_member_type_info): Likewise.
2846 (__base_class_info): Likewise.
2847 (__class_type_info): Likewise.
2848 (__si_class_type_info): Likewise.
2849 (__vmi_class_type_info): Likewise.
2850 * tinfo.cc (__si_class_type_info::__do_find_public_src):
2851 Changed member names to match specifications.
2852 (__vmi_class_type_info::__do_find_public_src): Likewise.
2853 (__si_class_type_info::__do_dyncast): Likewise.
2854 (__vmi_class_type_info::__do_dyncast): Likewise.
2855 (__si_class_type_info::__do_upcast): Likewise.
2856 (__vmi_class_type_info::__do_upcast): Likewise.
2857 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
2858 (__pbase_type_info::__pointer_catch): Likewise.
2859 (__pointer_type_info::__pointer_catch): Likewise.
2860 (__pointer_to_member_type_info::__pointer_catch): Likewise.
2861
a36556a8
ZW
28622000-08-04 Zack Weinberg <zack@wolery.cumb.org>
2863
0e5921e8
ZW
2864 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
2865 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
2866 (cc1plus): Link with $(BACKEND) and $(C_OBJS).
a36556a8 2867
452a394b
MM
28682000-08-04 Mark Mitchell <mark@codesourcery.com>
2869
2870 * cp-tree.h (add_method): Change prototype.
2871 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P.
2872 Don't double the size of the method vector in the error case.
2873 (handle_using_decl): Adjust call to add_method.
2874 (add_implicitly_declared_members): Likewise.
2875 (clone_function_decl): Likewise.
2876 * decl2.c (check_classfn): Likewise.
2877 * semantics.c (finish_member_declaration): Likewise.
0e5921e8 2878
b8458e3e
JM
28792000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
2880
2881 * decl.c (flag_isoc94): New variable.
2882
a1bcc528
JM
28832000-08-02 Jason Merrill <jason@redhat.com>
2884
2885 * pt.c (do_type_instantiation): Add complain parm; don't complain
2886 if called recursively.
2887 * cp-tree.h, parse.y: Adjust.
2888
50e60bc3
ZW
28892000-08-02 Zack Weinberg <zack@wolery.cumb.org>
2890
eae51189
ZW
2891 * decl2.c: Silently ignore -Wstrict-prototypes; warn about
2892 -Wno-strict-prototypes.
2893
37620334
ZW
2894 * g++spec.c: Adjust type of second argument to
2895 lang_specific_driver, and update code as necessary.
2896
50e60bc3
ZW
2897 * cp-tree.h: Don't prototype min_precision here.
2898 (my_friendly_assert): Cast expression to void.
2899 * semantics.c (do_poplevel): Initialize scope_stmts.
2900
3f954fc3
MM
29012000-08-02 Mark Mitchell <mark@codesourcery.com>
2902
2903 * cp-tree.h (DECL_NEEDED_P): Tweak.
2904
ab4fa7ed
JM
29052000-07-28 Jason Merrill <jason@redhat.com>
2906
2907 * lang-specs.h: Use %i in rule for .ii files.
2908
4871239e
ZW
29092000-07-31 Zack Weinberg <zack@wolery.cumb.org>
2910
2911 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
2912
911a71a7
MM
29132000-07-30 Mark Mitchell <mark@codesourcery.com>
2914
2915 Allow indirect primary bases.
2916 * cp-tree.h (struct lang_type): Remove vfield_parent. Add
2917 primary_base.
2918 (CLASSTYPE_VFIELD_PARENT): Remove.
2919 (CLASSTYPE_PRIMARY_BINFO): Reimplement.
2920 (BINFO_PRIMARY_BINFO): Remove.
2921 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
2922 (BINFO_VBASE_PRIMARY_P): Likewise.
2923 (BINFO_PRIMARY_BASE_OF): New macro.
2924 (BINFO_INDIRECT_PRIMARY_P): Likewise.
2925 (get_primary_binfo): New function.
2926 * decl.c (lang_mark_tree): Make lang_type::primary_base.
2927 * class.c (vcall_offset_data_s): Rename to ...
2928 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p,
2929 and add ctor_vtbl_p.
2930 (get_derived_offset): Use get_primary_binfo.
2931 (dfs_mark_primary_bases): Adjust handling of virtual primary
2932 bases.
2933 (mark_primary_bases): Likewise.
2934 (set_primary_base): Take a binfo, not an integer, as a
2935 representation of the primary base.
2936 (indirect_primary_base_p): Remove.
2937 (determine_primary_base): Adjust for indirect primary bases.
2938 (dfs_find_final_overrider): Fix typo in coment.
2939 (update_vtable_entry_for_fn): Use get_primary_binfo.
2940 (layout_nonempty_base_or_field): Tweak.
2941 (build_base_fields): Adjust for new primary base semantics.
2942 (dfs_propagate_binfo_offsets): Remove.
2943 (propagate_binfo_offsets): Rewrite.
2944 (dfs_set_offset_for_shared_vbases): Remove.
2945 (layout_virtual_bases): Don't use it.
2946 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new
2947 ABI.
2948 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
2949 CLASSTYPE_VFIELD_PARENT.
2950 (dfs_get_primary_binfo): New function.
2951 (get_primary_binfo): Likewise.
2952 (dump_class_hierarchy_r): Tweak printing of primary bases.
2953 (build_vtbl_initializer): Fix typo in comments. Use
2954 vtbl_init_data.
2955 (build_vcall_and_vbase_vtbl_entries): Likewise.
2956 (build_vbaes_offset_vtbl_entries): Likewise.
2957 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of
2958 BV_VCALL_INDEX to handle indirect primary bases.
2959 (build_vcall_offset_vtbl_entries): Use vtbl_init_data.
2960 (build_rtti_vtbl_entries): Likewise.
2961 * search.c (get_shared_vbase_if_not_primary): Tweak.
2962 (find_vbase_instance): Likewise.
2963 (binfo_for_vtable): Simplify.
2964 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
2965 (make_binfo): Make it have 11 entries.
0e5921e8 2966
722bed0f
AS
29672000-07-30 Alex Samuel <samuel@codesourcery.com>
2968
2969 * mangle.c (DECL_TEMPLATE_ID_P): Remove.
2970 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
2971 ascertaining primaryness.
2972 (G): Remove template_args.
2973 (decl_is_template_id): New function.
2974 (write_encoding): Use decl_is_template_id.
2975 (write_name): Likewise. Handle type_decls. Get main variant of
2976 type decls.
2977 (write_nested_name): Likewise.
2978 (write_prefix): Likewise.
2979 (write_template_prefix): Likewise.
2980 (write_special_name_constructor): Remove defunct production from
2981 comment.
2982 (write_bare_function_type): Remove comment about absent parameter.
2983 (write_template_template_arg): Add missing grammar production to
2984 comment.
2985
9076e292
JM
29862000-07-27 Jason Merrill <jason@redhat.com>
2987
2988 * decl.c (duplicate_decls): If common_type produces a non-typedef
2989 type for a typedef, just use the old type.
2990
b2244c65
MM
29912000-07-27 Mark Mitchell <mark@codesourcery.com>
2992
2993 * cp-tree.h (function_depth): Declare.
2994 (verify_stmt_tree): Likewise.
2995 (find_tree): Likewise.
2996 * decl.c (function_depth): Give it external linkage.
2997 * optimize.c (optimize_function): Increment and decrement it.
2998 * tree.c (verify_stmt_tree_r): New function.
2999 (verify_stmt_tree): Likewise.
3000 (find_tree_r): Likewise.
3001 (find_tree): Likewise.
3002
62e3bf54
JM
30032000-07-27 Jason Merrill <jason@redhat.com>
3004
9076e292
JM
3005 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
3006 TYPE_PTRMEMFUNC_P.
3007 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
62e3bf54 3008
5a728aca
MM
30092000-07-26 Mark Mitchell <mark@codesourcery.com>
3010
3011 * decl.c (start_cleanup_fn): Mark the function as `inline'.
3012 * decl2.c (get_guard): Call cp_finish_decl, not
3013 rest_of_decl_compilation, for local guards.
3014 * lex.c (do_identifier): Remove unused variable.
3015
6a1fa5f9
ME
3016Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
3017
3018 * parse.y: Add missing ';'.
3019
0c10a805
MM
30202000-07-26 Mark Mitchell <mark@codesourcery.com>
3021
3022 * parse.y (empty_parms): Use `()', not `(...)', when in the scope
3023 of `extern "C++"'.
3024
8b27e9ef
NS
30252000-07-25 Nathan Sidwell <nathan@codesourcery.com>
3026
3027 Kill strict_prototype. Backwards compatibility only for
3028 non NO_IMPLICIT_EXTERN_C systems.
3029 * cp-tree.h (flag_strict_prototype): Remove.
3030 (strict_prototype): Remove.
3031 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
3032 * decl.c (maybe_push_to_top_level): Adjust.
3033 (pop_from_top_level): Adjust.
3034 (decls_match): Only allow sloppy parm matching for ancient
3035 system headers.
3036 (init_decl_processing): Adjust.
3037 (grokdeclarator): Adjust.
3038 * decl2.c (flag_strict_prototype): Remove.
3039 (strict_prototype): Remove.
3040 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
3041 (lang_f_options): Remove "strict-prototype".
3042 (unsupported-options): Add "strict-prototype".
3043 * lex.c (do_identifier): Adjust.
3044 (do_scoped_id): Adjust.
3045 * parse.y (empty_parms): Adjust.
3046 * class.c (push_lang_context): Adjust.
3047 (pop_lang_context): Adjust.
3048 * typeck.c (comp_target_parms): Adjust.
3049
c3783399
NS
30502000-07-25 Nathan Sidwell <nathan@codesourcery.com>
3051
3052 * decl.c (poplevel): Deal with anonymous variables at for scope.
3053 (maybe_inject_for_scope_var): Likewise.
3054
a7023245
ZW
30552000-07-25 Zack Weinberg <zack@wolery.cumb.org>
3056
3057 * decl.c: Remove all signal handling code, now done in toplev.c.
3058
95ee998c
MM
30592000-07-23 Mark Mitchell <mark@codesourcery.com>
3060
3061 * decl.c (make_rtl_for_nonlocal_decl): Rework.
3062
3063 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
3064 correctly.
3065
1b493b81
ZW
30662000-07-20 Zack Weinberg <zack@wolery.cumb.org>
3067
3068 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
3069 Define my_friendly_assert and my_friendly_abort as macros
3070 which may call friendly_abort. Prototype friendly abort, not
3071 my_friendly_abort or my_friendly_assert.
3072 * decl.c (signal_catch): Report the signal caught in the error
3073 message. Call fatal directly.
3074 * typeck2.c (ack, my_friendly_assert): Delete.
3075 (my_friendly_abort): Rename to friendly_abort. Expect file,
3076 line, and function parameters. Report the abort code, then
3077 call fancy_abort. Do not mask an abort if errors have
3078 already occurred.
3079
a306451c
NS
30802000-07-18 Nathan Sidwell <nathan@codesourcery.com>
3081
3082 * typeck.c (comp_target_parms): Remove obsolete parameter.
3083 (comp_target_types): Adjust.
3084
f49fad00
JM
30852000-07-17 Jason Merrill <jason@redhat.com>
3086
3087 * typeck.c (mark_addressable): Never set TREE_USED.
3088 * call.c (build_call): Don't abort on calls to library functions
3089 that have been declared normally.
3090
3091 * typeck.c (build_binary_op): Fix grammar in warning.
3092
3093 * exception.cc (__eh_free): Fix prototype.
3094
3095 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
3096
0e5921e8 3097 * decl.c (pushdecl): Handle seeing an OVERLOAD in
f49fad00
JM
3098 IDENTIFIER_NAMESPACE_VALUE.
3099
69690d98
MM
31002000-07-16 Mark Mitchell <mark@codesourcery.com>
3101
3102 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
3103 * method.c (use_thunk): Correct handling of vcall offsets.
3104
bfbbc080
ZW
31052000-07-14 Zack Weinberg <zack@wolery.cumb.org>
3106
3107 * .cvsignore: parse.h and parse.c have no cp- prefix.
3108
83a90717
MM
31092000-07-13 Mark Mitchell <mark@codesourcery.com>
3110
3111 * .cvsignore: New file.
3112
ea414c97
ZW
31132000-07-13 Zack Weinberg <zack@wolery.cumb.org>
3114
3115 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
3116
792abd35
MM
31172000-07-12 Mark Mitchell <mark@codesourcery.com>
3118
3119 * Makefile.in ($(PARSE_H)): Depend directly on parse.y.
3120 * parse.c: Remove.
3121 * parse.h: Likewise.
3122
72a50ab0
MM
31232000-07-11 Mark Mitchell <mark@codesourcery.com>
3124
3125 * class.c (layout_class_type): Add pointers to virtual bases after
3126 base classes under the old ABI.
3127
0dfdeca6
BC
31282000-07-10 Benjamin Chelf <chelf@codesourcery.com>
3129
3130 * semantics.c (finish_for_stmt): Remove call to emit_line_note.
3131 (finish_continue_stmt): Likewise.
3132 (begin_for_stmt): Remove call to note_level_for_for.
3133 (finish_goto_stmt): Change call from build_min_nt
3134 to build_stmt.
3135 (finish_expr_stmt): Likewise.
3136 (begin_if_stmt): Likewise.
3137 (begin_while_stmt): Likewise.
3138 (finish_while_stmt): Likewise.
3139 (finish_return_stmt): Likewise.
3140 (begin_for_stmt): Likewise.
3141 (finish_for_stmt): Likewise.
3142 (finish_break_stmt): Likewise.
3143 (begin_switch_stmt): Likewise.
3144 (finish_case_label): Likewise.
3145 (genrtl_try_block): Likewise.
3146 (begin_try_block): Likewise.
3147 (begin_handler): Likewise.
3148 (begin_compound_stmt): Likewise.
3149 (finish_asm_stmt): Likewise.
3150 (finish_label_stmt): Likewise.
3151 (add_decl_stmt): Likewise.
3152 (finish_subobject): Likewise.
3153 (finish_decl_cleanup): Likewise.
3154 (finish_named_return_value): Likewise.
3155 (setup_vtbl_ptr): Likewise.
3156 (add_scope_stmt): Likewise.
3157 * decl.c (finish_constructor_body): Likewise.
3158 (finish_destructor_body): Likewise.
3159 * optimize.c (copy_body_r): Likewise.
3160 (initialize_inlined_parameters): Likewise.
3161 (declare_return_variable): Likewise.
3162 (expand_call_inline): Likewise.
0e5921e8 3163
f12eef58
JJ
31642000-07-10 Jakub Jelinek <jakub@redhat.com>
3165
3166 * semantics.c (expand_body): Sync interface information
3167 at the end of function body expansion.
3168
2bb5d995
JM
31692000-07-09 Jason Merrill <jason@redhat.com>
3170
3171 * init.c (build_new_1): Bail early if the call to new fails.
3172
0e5921e8 3173 * decl.c (compute_array_index_type): Check specifically for
2bb5d995
JM
3174 an INTEGER_CST, not just TREE_CONSTANT.
3175
0e5921e8 3176 * decl.c (duplicate_decls): Don't call duplicate_decls on
2bb5d995
JM
3177 the DECL_TEMPLATE_RESULT.
3178 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
3179 codes.
3180
3181 * error.c (dump_template_bindings): Don't crash if we had an
3182 invalid argument list.
3183
3184 * typeck.c (c_expand_start_case): Do narrowing here.
3185 * semantics.c (finish_switch_cond): Not here.
3186
31872000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com>
3188
3189 * parse.y (asm_clobbers): Do string concatenation.
3190
089acd57
MM
31912000-07-09 Mark Mitchell <mark@codesourcery.com>
3192
3193 * decl.c (pushtag): Don't put local classes in template functions
3194 on the local_classes list.
3195
31962000-07-04 Scott Snyder <snyder@fnal.gov>
3197
3198 * decl2.c (get_guard): Add missing return for old ABI local
3199 variable case.
3200
7b019c19
MM
32012000-07-09 Mark Mitchell <mark@codesourcery.com>
3202
3203 * cp-tree.h (char_type_p): New function.
3204 * decl.c (init_decl_processing): Don't initialize
3205 signed_wchar_type_node or unsigned_wchar_type_node.
3206 (complete_array_type): Handle brace-enclosed string-constants.
3207 * rtti.c (emit_support_tinfos): Remove #if 0'd code.
3208 * tree.c (char_type_p): New function.
3209 * typeck2.c (digest_init): Use char_type_p.
3210
a5f1c5f8
NS
32112000-07-06 Nathan Sidwell <nathan@codesourcery.com>
3212
3213 * pt.c (tsubst): Don't layout type, if it's error_mark.
3214
84e5ca0f
NS
32152000-07-06 Nathan Sidwell <nathan@codesourcery.com>
3216
3217 * pt.c (instantiate_pending_templates): Reset template level.
3218
ab785305
JM
32192000-07-05 Jason Merrill <jason@redhat.com>
3220
3221 * call.c (joust): Don't complain about `operator char *()' beating
3222 `operator const char *() const'.
3223
90418208
JM
32242000-07-04 scott snyder <snyder@fnal.gov>
3225 Jason Merrill <jason@redhat.com>
3226
0e5921e8 3227 * repo.c (repo_get_id): Handle the case where a class with virtual
90418208
JM
3228 bases has a null TYPE_BINFO_VTABLE.
3229
32302000-07-04 Kevin Buhr <buhr@stat.wisc.edu>
3231 Jason Merrill <jason@redhat.com>
3232
3233 * parse.y (member_init): Just pass in the type.
3234 * init.c (expand_member_init): Handle getting a type.
3235
3236