]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
NetworkInterface.java: New file.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
171d2f50
NS
12002-09-16 Nathan Sidwell <nathan@codesourcery.com>
2
3ec83083
NS
3 PR c++/7718
4 * pt.c (tsubst_decl): Remove assert.
5
171d2f50
NS
6 Remove DR 295 implementation.
7 * pt.c (check_cv_quals_for_unify): Disable function & method cases.
8 * tree.c (cp_build_qualified_type_real): Likewise. Don't warn
9 about ignoring volatile qualifiers.
10
11 * search.c (lookup_member): Correct documentation.
12
36a5eadd
GK
132002-09-16 Geoffrey Keating <geoffk@apple.com>
14
15 * cp-tree.h (union lang_tree_node): Add chain_next option.
16
28c56d25
NS
172002-09-16 Nathan Sidwell <nathan@codesourcery.com>
18
7979434d
NS
19 * parse.y (parse_finish_call_expr): Check lookup_member result.
20
28c56d25
NS
21 PR c++/7015
22 * semantic.c (finish_asm_stmt): Fix operand/output_operands
23 thinko.
24 * typeck.c (c_expand_asm_operands): Protect from error_mark_node.
25
3baab484
NS
262002-09-15 Nathan Sidwell <nathan@codesourcery.com>
27
28 PR c++/7919
29 * call.c (build_over_call): Convert this pointer for fns found by
30 using decls.
31
d30d6e7a
KH
322002-09-15 Kazu Hirata <kazu@cs.umass.edu>
33
34 * ChangeLog: Follow spelling conventions.
35 * ChangeLog.1: Likewise.
36
c8460010
NS
372002-09-14 Nathan Sidwell <nathan@codesourcery.com>
38
39 PR c++/7768
40 * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P.
41
c6002625
KH
422002-09-14 Kazu Hirata <kazu@cs.umass.edu>
43
44 * error.c: Fix comment formatting.
45 * except.c: Likewise.
46 * expr.c: Likewise.
47 * friend.c: Likewise.
48 * g++spec.c: Likewise.
49 * init.c: Likewise.
50 * lex.c: Likewise.
51 * mangle.c: Likewise.
52 * method.c: Likewise.
53 * optimize.c: Likewise.
54 * pt.c: Likewise.
55 * rtti.c: Likewise.
56 * search.c: Likewise.
57 * semantics.c: Likewise.
58 * spew.c: Likewise.
59 * tree.c: Likewise.
60 * typeck.c: Likewise.
61 * typeck2.c: Likewise.
62
712467a4
NS
632002-09-13 Nathan Sidwell <nathan@codesourcery.com>
64
65 * pt.c (unify, ARRAY_TYPE): Element type can be more qualified.
66
a1c65f9f
KH
672002-09-13 Kazu Hirata <kazu@cs.umass.edu>
68
69 * decl.c: Fix comment formatting.
70 * decl2.c: Likewise.
71
00a17e31
KH
722002-09-12 Kazu Hirata <kazu@cs.umass.edu>
73
74 * call.c: Fix comment formatting.
75 * class.c: Likewise.
76 * cp-lang.c: Likewise.
77 * cp-tree.h: Likewise.
78 * cvt.c: Likewise.
79
3fd9d606
ZW
802002-09-11 Zack Weinberg <zack@codesourcery.com>
81
82 * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c,
83 and c++filt from cxxfilt.o + version.o + $(LIBDEPS).
84 * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with
85 minor adjustments (use version_string, eliminate yet another
86 duplicate of xmalloc)
87
2515a7ea
KG
882002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
89
90 * cp-tree.h (require_complete_eh_spec_types): Add prototype.
91
5aa3396c
JM
922002-09-05 Jason Merrill <jason@redhat.com>
93
94 * typeck2.c (add_exception_specifier): Only pedwarn for an
95 incomplete type.
96 (require_complete_eh_spec_types): New fn.
97 (cxx_incomplete_type_diagnostic): Also support pedwarning.
98 * typeck.c (complete_type_or_diagnostic): Likewise.
99 * call.c (build_call): Call require_complete_eh_spec_types.
100 * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting
101 on an incomplete type.
102
23ccd1f3
JJ
1032002-09-04 Jakub Jelinek <jakub@redhat.com>
104
105 * decl.c (start_cleanup_fn): Clear interface_only before
106 start_function, restore it afterwards.
107
d99f015c
JM
1082002-08-31 Jason Merrill <jason@redhat.com>
109
110 * cp-lang.c (cp_expr_size): Allow initialization from a
111 CONSTRUCTOR.
112
8a3c9180
RH
1132002-08-30 Richard Henderson <rth@redhat.com>
114
c9989d09 115 PR opt/7515
8a3c9180
RH
116 * tree.c: Include target.h.
117 (cp_cannot_inline_tree_fn): Don't auto-inline functions that
118 don't bind locally.
119 * Makefile.in (tree.o): Update.
120
eca7f13c
MM
1212002-08-27 Mark Mitchell <mark@codesourcery.com>
122
123 * class.c (layout_virtual_bases): Warn about bugs in G++ that
124 result in incorrect object layouts.
125 (layout_class_type): Likewise.
126
13d3f0b6
MA
1272002-08-24 Matt Austern <austern@apple.com>
128
129 * tree.c (lvalue_p_1): Add argument for whether casts of lvalues
130 are allowable.
131 (real_lvalue_p): Update caller.
132 (lvalue_p): Ditto.
133 (non_cast_lvalue_or_else): New.
134 * tree.h: Declare it.
135 * typeck.c (build_unary_op): Use non_cast_lvalue_or_else.
136
5b770a96
MM
1372002-08-22 Mark Mitchell <mark@codesourcery.com>
138
139 * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR
140 and COND_EXPR specially; fix error message output.
141
d65b1d77
JM
1422002-08-22 Jason Merrill <jason@redhat.com>
143
144 * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
145 * semantics.c (nullify_returns_r): Likewise.
146
8a5f4379
GDR
1472002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
148
149 Fix PR/7621
150 * typeck.c (finish_class_member_access_expr): Diagnose cases where
151 name lookup finds nothing.
152
5d764395
JM
1532002-08-15 Jason Merrill <jason@redhat.com>
154
155 * semantics.c (finish_then_clause): Remove redundant assignment.
156 (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the
157 extra binding level outside the if/switch statement.
158 (finish_while_cond, finish_for_cond): Rewrite complex condition
159 into the loop body.
160
c01b9ec8
AO
1612002-08-15 Alexandre Oliva <aoliva@redhat.com>
162
163 * parse.y (sizeof, alignof, typeof): New non-terminals to
164 increment skip_evaluation. Replace terminals with them and
165 decrement skip_evaluation at the end of rules using them.
166 * decl2.c (mark_used): Don't assemble_external if
167 skipping evaluation.
168
e8fe46d4
GDR
1692002-08-15 Gabriel Dos Reis <gdr@nerim.net>
170
171 Fix PR/7504
172 * parse.y (parse_finish_call_expr): Handle incomplete
173 type used to name a scope.
174
eac5ce6c
NS
1752002-08-15 Nathan Sidwell <nathan@codesourcery.com>
176
177 PR c++/7598
178 * typeck.c (build_unary_op): Fold offsetof idiom. Fixes
179 regression caused by my 2002-08-08 patch.
180
22eadedb
MM
1812002-08-13 Mark Mitchell <mark@codesourcery.com>
182
183 * decl.c (pushdecl_class_level): Honor requests to bind names to
184 OVERLOADs.
185
e65e6212
KG
1862002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
187
188 * decl2.c (build_call_from_tree): Fix uninitialized variable.
189 * parse.y (parse_finish_call_expr): Likewise.
190 * repo.c (old_args, old_dir, old_main): Const-ify.
191
3e72ec9a
GDR
1922002-08-11 Gabriel Dos Reis <gdr@nerim.net>
193
194 * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE +
195 DECL_SOURCE_LINE with DECL_SOURCE_LOCATION.
196 * optimize.c (maybe_clone_body): Likewise.
197 * pt.c (tsubst_enum): Likewise.
198 (lookup_template_class): Likewise.
199 * tree.c (cp_copy_res_decl_for_inlining): Likewise.
200
f749a36b
NB
2012002-08-10 Neil Booth <neil@daikokuya.co.uk>
202
203 * lang-specs.h: Remove -ansi.
204
3ebf5204
NS
2052002-08-10 Nathan Sidwell <nathan@codesourcery.com>
206
207 * tree.c (maybe_dummy_object): Replace // with /* */
208
9e259dd1
MM
2092002-08-09 Mark Mitchell <mark@codesourcery.com>
210
211 * call.c (standard_conversion): Use build_ptrmem_type.
212 * cp-tree.h (build_ptrmem_type): New function.
213 (adjust_result_of_qualified_name_lookup): Likewise.
214 * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate
215 static data members.
216 (build_ptrmem_type): New function.
217 (grokdeclarator): Do not use build_offset_type when encountering a
218 qualified name.
219 * parse.y (parse_finish_call_expr): Use
220 adjust_result_of_qualified_name_lookup.
221 * search.c (adjust_result_of_qualified_name_lookup): New function.
222 * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than
223 accessing OFFSET_TYPEs directly.
224
0e339752
MS
2252002-08-08 Mike Stump <mrs@apple.com>
226
227 * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid.
228 (type_decays_to): Likewise.
229 * class.c (find_final_overrider): Likewise.
230 (maybe_note_name_used_in_class): Likewise.
231 * decl.c (current_tmpl_spec_kind): Likewise.
232 (add_binding): Likewise.
233 (push_class_binding): Likewise.
234 (duplicate_decls): Likewise.
235 (layout_var_decl): Likewise.
236 (grokfndecl): Likewise.
237 (grokdeclarator): Likewise.
238 (check_default_argument): Likewise.
239 * decl2.c (handle_class_head): Likewise.
240 * error.c (dump_template_decl): Likewise.
241 * init.c (build_offset_ref): Likewise.
242 * pt.c (check_specialization_scope): Likewise.
243 (determine_specialization): Likewise.
244 (check_explicit_specialization): Likewise.
245 (maybe_check_template_type): Likewise.
246 (process_partial_specialization): Likewise.
247 (check_default_tmpl_args): Likewise.
248 (push_template_decl_real): Likewise.
249 (convert_template_argument): Likewise.
250 (try_class_unification): Likewise.
251 (get_bindings_real): Likewise.
252 (do_decl_instantiation): Likewise.
253 * semantics.c (begin_function_definition): Likewise.
254 (finish_member_declaration): Likewise.
255 (check_multiple_declarators): Likewise.
256 * typeck.c (comp_array_types): Likewise.
257 (comptypes): Likewise.
258 (expr_sizeof): Likewise.
259 (build_binary_op): Likewise.
260 (dubious_conversion_warnings): Likewise.
261 (check_return_expr): Likewise.
b6ce26ac 262
a6f5b2d3
MM
2632002-08-08 Mark Mitchell <mark@codesourcery.com>
264
265 * typeck.c (build_class_member_access_expr): Do not return
266 error_mark_node when no error has occurred.
b6ce26ac 267
c93a26f5
NS
2682002-08-08 Nathan Sidwell <nathan@codesourcery.com>
269
270 * typeck.c (build_component_addr): Remove.
271 (build_unary_op): Just check it's not a bitfield, and then build
272 an ADDR_EXPR.
273
5bfc90de
NS
2742002-08-08 Nathan Sidwell <nathan@codesourcery.com>
275
276 * class.c (convert_to_base): Correct check for error_mark_node.
277 (create_vtable_ptr): Remove unused VFUNS_P parm.
278
22aa533e
NS
2792002-08-08 Nathan Sidwell <nathan@codesourcery.com>
280
281 * cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
282
50ad9642
MM
2832002-08-07 Mark Mitchell <mark@codesourcery.com>
284
285 Rework build_component_ref.
286 * call.c (build_vfield_ref): Do not go through build_component_ref.
287 (build_field_call): Use build_class_member_access_expr.
288 (build_user_type_conversion_1): Use BASELINK_FUNCTIONS.
289 (build_object_call): Likewise.
290 * class.c (convert_to_base): New function.
291 (type_requires_array_cookie): Use BASELINK_FUNCTIONS.
292 (instantiate_type): Handle BASELINKs.
293 * cp-tree.def (BASELINK): New tree code.
294 * cp-tree.h (BASELINK_P): Reimplement.
295 (SET_BASELINK_P): Remove.
296 (BASELINK_BINFO): Reimplement.
297 (BASELINK_FUNCTIONS): Likewise.
298 (BASELINK_ACCESS_BINFO): Likewise.
299 (BASELINK_OPTYPE): Likewise.
300 (convert_to_base): New function.
301 (name_p): Likewise.
302 (build_object_ref): Remove.
303 (build_component_ref_1): Likewise.
304 (build_component_ref): Likewise.
305 (build_x_component_ref): Likewise.
306 (build_class_member_access_expr): New function.
307 (finish_class_member_access_expr): Likewise.
308 (build_ptrmemfunc_access_expr): Likewise.
309 * decl.c (grokdeclarator): Handle BASELINKs.
310 * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using
311 finish_class_member_access_expr.
312 (arg_assoc): Handle BASELINKs.
313 (do_class_using_decl): Likewise.
314 * error.c (dump_decl): Likewise.
315 (dump_expr): Use build_ptrmemfunc_access_expr.
316 * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find
317 destructors.
318 (build_throw): Use BASELINK_FUNCTIONS.
319 * init.c (perform_member_init): Use
320 build_class_member_access_expr.
321 (build_offset_ref): Handle BASELINKs. Use
322 build_class_member_access_expr.
323 * method.c (hack_identifier): Likewise.
324 * parse.y (do_id): Use BASELINK, not TREE_LIST.
325 (primary): Remove uses of build_object_ref.
326 * pt.c (lookup_template_function): Handle BASELINKs.
327 (resolve_overloaded_unification): Likewise.
328 * search.c (build_baselink): Build a BASELINK, not a TREE_LIST.
329 (lookup_field): Use BASELINK, not TREE_LIST.
330 (lookup_fnfiels): Likewise.
331 (setup_class_bindings): Likewise.
332 * semantics.c (finish_object_call_expr): Do not use
333 build_method_call when we already know what function is being
334 called.
335 * spew.c (identifier_type): Use BASELINK, not TREE_LIST.
336 * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not
337 TREE_CHAIN.
338 (name_p): New function.
339 * typeck.c (build_object_ref): Remove.
340 (build_component_ref_1): Likewise.
341 (build_x_component_ref): Likewise.
342 (build_class_member_access_expr): New function.
343 (finish_class_member_access_expr): Likewise.
344 (build_ptrmemfunc_access_expr): Likewise.
345 (get_member_function_from_ptrfunc): Use
346 build_ptrmemfunc_access_expr.
347 (build_binary_op): Likewise.
348 (build_unary_op): Likewise.
349 (build_ptrmemfunc): Likewise.
350 (pfn_from_ptrmemfunc): Likewise.
351 * typeck2.c (build_m_component_ref): Adjust comment.
b6ce26ac 352
0b6f2917
NB
3532002-08-07 Neil Booth <neil@daikokuya.co.uk>
354
355 * Make-lang.in (CXX_C_OBJS): Update.
356 * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
357 * cp-tree.h (cxx_decode_option): Remove.
358 * decl2.c (compare_options, lang_f_options, unsupported_options,
359 cxx_decode_option): Remove.
360
1e14c7f0
GDR
3612002-08-06 Gabriel Dos Reis <gdr@nerim.net>
362
363 * typeck.c (build_x_unary_op): Handle pointer-to-member.
364
b3426eb9
GK
3652002-08-05 Geoffrey Keating <geoffk@redhat.com>
366
367 * class.c: Don't include obstack.h.
b6ce26ac 368 (popclass):
b3426eb9
GK
369 * decl2.c: Delete bogus comment.
370 * error.c: Don't include obstack.h.
371 * except.c: Likewise.
372 (dump_type): Correct comment.
373 * method.c: Don't include obstack.h.
374 * tree.c: Likewise.
375
201fbb7f
GDR
3762002-08-04 Gabriel Dos Reis <gdr@nerim.net>
377
378 Fix PR/2213
379 * cvt.c (cp_convert_to_pointer): Reject conversions from integral
380 expressions to pointer-to-data-member of pointer-to-member-functions.
381
6d9f628e
GK
3822002-08-04 Geoffrey Keating <geoffk@redhat.com>
383
384 * cvt.c (ocp_convert): Delete obsolete code.
385 * parse.y (permanent_obstack): Delete declaration.
386 * pt.c (permanent_obstack): Delete declaration.
387 * repo.c (permanent_obstack): Delete declaration.
388 (open_repo_file): Use xmalloc instead of permanent_obstack.
389 (init_repo): Use xstrdup instead of permanent_obstack.
390
dd98e14f
NS
3912002-08-04 Nathan Sidwell <nathan@codesourcery.com>
392
393 * cp-tree.h (VF_DERIVED_VALUE): Remove.
394 * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE.
395
e6858a84
NS
3962002-08-03 Nathan Sidwell <nathan@codesourcery.com>
397
398 PR 7470.
399 C++ ABI change - vfunc ordering.
400 * class.c (add_virtual_function): Remove.
401 (dfs_modify_all_vtables): Take list of all declared
402 virtuals. Assign all that are not in primary base.
403 (check_for_override): Adjust comments.
404 (create_vtable_ptr): Take single list of virtuals. Build chain
405 of declared virtuals here.
406 (layout_class_type): Take single list of virtuals. Adjust.
407 (finish_struct_1): Keep virtuals on single list. Adjust.
408
55765de4
MM
4092002-08-02 Mark Mitchell <mark@codesourcery.com>
410
411 * init.c (build_member_call): Use build_new_method_call, not
412 build_method_call.
413
d0067571
KW
4142002-08-02 Krister Walfridsson <cato@df.lth.se>
415
416 * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies.
417
4a34e0e8
MM
4182002-08-02 Mark Mitchell <mark@codesourcery.com>
419
420 * call.c (build_method_call): Issue a more helpful error message
421 about ambiguous method names.
422
41ab2ae2
NS
4232002-08-02 Nathan Sidwell <nathan@codesourcery.com>
424
425 * tree.c (build_shared_int_cst): Make cache file scope, and
426 GTY it.
427
367aa585
JM
4282002-08-02 Jason Merrill <jason@redhat.com>
429
a77a9a18
JM
430 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
431 (cp_expr_size): New fn.
432 * call.c (build_over_call): Lose empty class hackery.
433 (convert_arg_to_ellipsis): Promote non-POD warning to error.
434 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
435
367aa585
JM
436 * semantics.c (expand_body): Do tree optimization in the function
437 context, too.
438
4078b403
NB
4392002-08-01 Neil Booth <neil@daikokuya.co.uk>
440
441 * cp-tree.h: Move all warning and flag declarations to c-common.h.
442 * decl.c: Move all warning and flag variables to c-common.c.
443 * decl2.c: Move all warning and flag variables to c-common.c.
444 * lex.c (flag_digraphs): Remove.
445 (warn_traditional): Now in c-common.c.
446
4ba126e4
MM
4472002-07-31 Mark Mitchell <mark@codesourcery.com>
448
449 * call.c (build_field_call): Do not look up the field by name.
450 (build_method_call): Simplify.
451 (struct z_candidate): Add access_path and conversion_path. Remove
452 basetype_path.
453 (convert_class_to_reference): Adjust use of
454 add_function_candidate.
455 (add_candidate): Add conversion_path argument.
456 (add_function_candidate): Use it.
457 (add_conv_dndidate): Likewise.
458 (build_builtin_candidate): Likewise.
459 (add_template_candidate_real): Add conversion_path argument.
460 (add_template_conv_candidate): Likewise.
461 (add_template_candidate): Likewise.
462 (build_user_type_conversion_1): Use it.
463 (build_new_function_call): Remove name lookup code. Adjust use of
464 add_template_candidate and add_function_candidate.
465 (build_new_op): Likewise.
466 (convert_like_real): Use build_special_member_call.
467 (build_over_call): Use cand->conversion_path.
468 (build_special_member_call): New method.
469 (build_new_method_call): Remove name lookup code.
470 * cp-tree.def (OFFSET_REF): Update documentation.
471 (TEMPLATE_ID_EXPR): Likewise.
472 * cp-tree.h (BASELINK_ACCESS_BINFO): New macro.
473 (BASELINK_OPTYPE): Likewise.
474 (build_new_method_call): Adjust prototype.
475 (build_special_member_call): New method.
476 (build_baselink): New method.
477 (build_offset_ref_call_from_tree): Likewise.
478 (build_call_from_tree): Likewise.
479 (finish_qualified_call_expr): Remove.
480 (finish_call_expr): Adjust prototype.
481 (build_x_function_call): Remove.
482 * cvt.c (ocp_convert): Use build_special_member_call.
483 * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr.
484 (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and
485 CALL_EXPR.
486 (build_offset_ref_call_from_tree): New function.
487 (build_call_from_tree): Likewise.
488 * init.c (expand_cleanup): Use build_special_member_call.
489 (expand_default_init): Likewise.
490 (build_member_call): Use finish_call_expr.
491 (build_new_1): Use build_special_member_call.
492 (push_base_cleanups): Likewise.
493 * method.c (do_build_assign_ref): Likewise.
494 * parse.y (template_id): Do not pass a COMPONENT_REF to
495 lookup_template_function.
496 (primary): Use parse_finish_call_epxr, not finish_call_expr.
497 (parse_finish_call_expr): New function.
498 * pt.c (lookup_template_function): Add assertions.
499 * search.c (lookup_base): Allow T to be a binfo.
500 (build_baselink): New function.
501 (lookup_member): Use it.
502 * semantics.c (finish_call_expr): Do not do name lookup.
503 (finish_object_call_expr): Remove #if 0'd code.
504 (finish_qualified_call_expr): Remove.
505 * typeck.c (build_x_function_call): Remove.
506 (build_static_case): Use build_special_member_call.
507 * typeck2.c (build_functional_cast): Likewise.
b6ce26ac 508
60b8aa94
FS
5092002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
510
511 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c.
512
8a4a7242
GDR
5132002-07-30 Gabriel Dos Reis <gdr@nerim.net>
514
515 * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion.
516
03fc215c
NS
5172002-07-30 Nathan Sidwell <nathan@codesourcery.com>
518
519 * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more
520 documentation.
521
3f16a8f3
AM
5222002-07-29 Alan Modra <amodra@bigpond.net.au>
523
524 * cp-tree.h: Comment typo fix.
525
c03d566f
RE
5262002-07-29 Richard Earnshaw <rearnsha@arm.com>
527
528 * spew.c (space_for_token): Allocate zeroed memory for a new token
529 chunk.
530
c2ef6d34
RS
5312002-07-27 Roger Sayle <roger@eyesopen.com>
532
533 * decl.c (builtin_function_1): No need to explicitly mark
534 BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
535
a3926fe1
RS
5362002-07-27 Roger Sayle <roger@eyesopen.com>
537
538 * decl2.c (cxx_decode_option): Support -fno-builtin-foo.
539
8e51619a
JM
5402002-07-26 Jason Merrill <jason@redhat.com>
541
542 * call.c (build_over_call): Likewise.
543 (cp_convert_parm_for_inlining): New fn.
544 (convert_for_arg_passing): New fn.
545 (convert_default_arg, build_over_call): Use it.
546 (type_passed_as): New fn.
547 * pt.c (tsubst_decl): Use it.
548 * decl2.c (cp_build_parm_decl): New fn.
549 (build_artificial_parm): Use it.
550 (start_static_storage_duration_function): Likewise.
551 * decl.c (start_cleanup_fn, grokdeclarater): Likewise.
552 (grokparms): Don't mess with DECL_ARG_TYPE.
553 * typeck.c (convert_arguments): Use convert_for_arg_passing.
554 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
555 Define.
556 * cp-tree.h: Declare new fns.
b6ce26ac 557
c372b0fa
NB
5582002-07-26 Neil Booth <neil@daikokuya.co.uk>
559
560 * cp-tree.h (flag_operator_names): Remove.
561 * decl2.c (flag_operator_names): Remove.
562 (lang_f_options): Remove operator-names.
563 * lex.c (D_OPNAME): Remove.
564 (reswords): Remove operator names.
565 (rid_to_yy): Remove operator names.
566 (init_reswords): No need to handle D_OPNAME.
567 * spew.c (read_process_identifier): There are no operator
568 names.
569
558ee214
JM
5702002-07-26 Jason Merrill <jason@redhat.com>
571
572 * dump.c (cp_dump_tree): Call c_dump_tree.
573 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
574
81a1552d
NB
5752002-07-25 Neil Booth <neil@daikokuya.co.uk>
576
577 * error.c (print_whitespace): Remove.
578 * g++spec.c (LIBUNWIND): Move.
579 * mangle.c (mangled_position, write_signed_number): Remove.
580
cad2c6b6
NB
5812002-07-25 Neil Booth <neil@daikokuya.co.uk>
582
583 * decl2.c (cxx_decode_option): Similarly.
584
ea793912
GDR
5852002-07-25 Gabriel Dos Reis <gdr@nerim.net>
586
587 * cp-tree.h (cxx_sizeof_nowarn): Now a macro.
588 (cxx_sizeof_or_alignof_type): Take a third argument.
589 (cxx_sizeof): Adjust definition.
590 (cxx_alignof): Likewise.
591 * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
592 * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
593 complaining.
594 (c_sizeof_nowarn): Remove definition.
595 (build_unary_op): Use cxx_sizeof_nowarn.
596
3cfab7ec
GK
5972002-07-24 Geoffrey Keating <geoffk@redhat.com>
598
599 * tree.c (cp_build_qualified_type_real): When copying
600 pointer-to-method types, unshare the record that holds
601 the cached pointer-to-member-function type.
602
c0667597
NB
6032002-07-23 Neil Booth <neil@daikokuya.co.uk>
604
605 * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove.
606
fa72b064
GDR
6072002-07-23 Gabriel Dos Reis <gdr@nerim.net>
608
609 Fix PR/7363:
610 * typeck.c (cxx_sizeof_or_alignof_type): New function.
611 (c_sizeof): Remove definition.
612 (expr_sizeof): Use cxx_sizeof.
613 * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type.
614 * decl.c (finish_destructor_body): Use cxx_sizeof.
615 * semantics.c (finish_alignof): Likewise.
616 (finish_alignof): Use cxx_alignof.
617 * cp-tree.h (cxx_sizeof, cxx_alignof): New macros.
618 (cxx_sizeof_or_alignof_type): Declare.
619 (my_friendly_assert): Move to ../c-common.h.
620
4fa31c2a
NB
6212002-07-23 Neil Booth <neil@daikokuya.co.uk>
622
623 * class.c, method.c, pt.c, search.c: Don't define obstack macros.
624
0e902d98
KL
6252002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
626
627 PR c++/7347, c++/7348
628 * cp-tree.h (tsubst_flags_t): Add tf_parsing.
629 * decl.c (make_typename_type): Use it.
630 (make_unbound_class_template): Likewise.
631 (lookup_name_real): Don't call type_access_control if scope is
632 template parameter dependent.
633 * parse.y (template_arg): Call make_unbound_class_template with
634 tf_parsing set.
635 (nest_name_specifier): Call make_typename_type with tf_parsing set.
636 (typename_sub0): Likewise.
637 (typename_sub1): Likewise.
638 (instantiate_decl): Push class scope.
639 * pt.c (regenerate_decl_from_template): Call pushclass and popclass
640 for both static variable and member function template.
641 (instantiate_decl) Call pushclass and popclass when tsubst'ing type
642 and arguments.
643 * search.c (type_access_control): Do type access for TEMPLATE_DECL
644 too.
645
b886c620
RS
6462002-07-20 Roger Sayle <roger@eyesopen.com>
647
648 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions
649 test by using positive_option. Make whitespace consistent.
650
7a561142
GDR
6512002-07-20 Gabriel Dos Reis <gdr@nerim.net>
652
fa72b064 653 * spew.c (struct unparsed_test): Replace 'filename' and 'lineno'
7a561142
GDR
654 members with 'locus'. Adjust use throughout.
655 (struct feed): Likewise.
656 (alloc_unparsed_test): Change prototype, take a 'const location_t *'.
657 Adjust use.
658 (snarf_defarg): Use error(), not error_with_file_and_line().
659
059ba716
CD
6602002-07-19 Chris Demetriou <cgd@broadcom.com>
661
662 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever
663 cpp_options is included.
664
d955f6ea
KL
6652002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
666
667 PR c++/2862, c++/2863
668 * pt.c (determine_specialization): Compare the length of
669 TYPE_ARG_TYPES. Tidy.
670
d03d18e8
KL
6712002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
672
673 PR c++/3797
674 * decl.c (duplicate_decls): Don't propagate inlining parameters from
b6ce26ac 675 olddecl to newdecl when newdecl is a specialization of the
d03d18e8
KL
676 instantiation olddecl.
677
ba59df78
KL
6782002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
679
680 PR c++/4802, c++/5387
681 * decl.c (make_typename_type): Use enforce_access.
682
58f05188
SS
6832002-07-17 Scott Snyder <snyder@fnal.gov>
684
685 PR c++/7320
686 * rtti.c (get_tinfo_decl): Set DECL_COMDAT.
687
04ec0065
MM
6882002-07-12 Mark Mitchell <mark@codesourcery.com>
689
690 * class.c (add_method): Correct handling of conversion operators.
691
f0ab6bf2
MM
6922002-07-11 Mark Mitchell <mark@codesourcery.com>
693
694 PR c++/7224
695 * class.c (add_method): Simplify.
696
34902e16
JM
6972002-07-11 Jason Merrill <jason@redhat.com>
698
699 PR c++/7279
700 * tree.c (cp_copy_res_decl_for_inlining): Also copy
701 TREE_ADDRESSABLE.
702
6e04241f
GS
7032002-07-10 Graham Stott <graham.stott@btinternet.com>
704
705 * pt.c (template_parm_this_level_p, push_template_decl_real):
b6ce26ac 706 Pass depth as int pointer.
6e04241f 707
8ac9d31f
TJ
7082002-07-11 Tim Josling <tej@melbpc.org.au>
709
b6ce26ac 710 Remove front end hard coding from gengtype.c.
8ac9d31f
TJ
711
712 * config-lang.in (gtfiles): Add files needed for this front end.
713
15c7fb9c
MM
7142002-07-10 Mark Mitchell <mark@codesourcery.com>
715
716 * cp-tree.h (unqualified_name_lookup_error): Declare it.
717 (begin_function_definition): Adjust prototype.
718 * lex.c (unqualified_name_lookup_error): New function, split out
719 from ...
720 (do_identifier): ... here.
721 * parse.y (parse_begin_function_definition): New function.
722 (fn.def1): Use it.
723 * semantics.c (begin_function_definition): Accept decl-specifiers
724 and attributes as separate parameters.
725
abf92e26
JM
7262002-07-10 Jason Merrill <jason@redhat.com>
727
728 PR c++/6255
729 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
730 modifying the old one.
731
8ba658ee
MM
7322002-07-09 Mark Mitchell <mark@codesourcery.com>
733
734 * cp-tree.h (constructor_name_p): Declare it.
735 (check_template_template_default_arg): Likewise.
736 * class.c (handle_using_decl): Use constructor_name_p.
737 * decl.c (grokdeclarator): Likewise.
738 * decl2.c (constructor_name_p): Define it.
739 * init.c (build_member_call): Use constructor_name_p.
740 * parse.y (template_parm): Use check_template_template_default_arg.
741 * pt.c (check_explicit_specialization): Use constructor_name_p.
742 * semantics.c (check_template_template_default_arg): New function.
b6ce26ac 743
d5372501
KL
7442002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
745
746 * pt.c (can_complete_type_without_circularity): Add static to
747 function definition.
748
594bb0e7
MM
7492002-07-08 Mark Mitchell <mark@codesourcery.com>
750
751 * cp-tree.h (have_extern_spec): Declare it
752 * decl.c (have_extern_spec): Define it.
753 (start_decl): Eliminate use of used_extern_spec.
754 (start_function): Likewise.
755 * parse.y (have_extern_spec): Remove declaration.
756 (used_extern_spec): Likewise.
757 (frob_specs): Eliminate use of used_extern_spec.
758 (.hush_warning): Likewise.
759
eb8845be
MM
7602002-07-07 Mark Mitchell <mark@codesourcery.com>
761
762 * Make-lang.in (cp/parse.o): Depend on decl.h.
763 * cp-tree.h (do_decl_instantiation): Change prototype.
764 * parse.y: Include decl.h.
765 (parse_decl_instantiation): New function.
766 (explicit_instantiation): Use it.
767 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
768 and DECLSPECS.
b6ce26ac 769
78abea27
RS
7702002-07-07 Roger Sayle <roger@eyesopen.com>
771
772 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
773 constructor and destructor tests when passed a TEMPLATE_DECL.
774
98c07d7b
JM
7752002-07-05 Jason Merrill <jason@redhat.com>
776
212e17fd
JM
777 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null
778 pointers.
779
98c07d7b
JM
780 PR optimization/7145
781 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
782
c6f553d1
NS
7832002-07-05 Nathan Sidwell <nathan@codesourcery.com>
784
785 Repair damage on weak-impared targets caused by my previous patch.
786 * cp-tree.h (import_export_tinfo): Add parameter.
787 * decl2.c (import_export_tinfo): Add parameter, post adjust
788 DECL_COMDAT.
789 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
790 import_export_tinfo.
791
b2153b98
KL
7922002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
793
794 PR c++/6944
795 * init.c (build_aggr_init): Remove qualifiers of init before calling
796 build_vec_init.
797 (build_vec_init): Flatten multi-dimensional array during cleanup.
798 (build_vec_delete_1): Abort if the type of each element is array.
799
492ff760
GS
8002002-07-03 Graham Stott <graham.stott@btinternet.com>
801
802 * pt.c (instantiate_class_template): Fix typo.
803
04c4491d
KL
8042002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
805
06728f70
KL
806 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
807 by CVS conflict in my last patch.
04c4491d 808
17f29637
KL
8092002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
810
811 PR c++/6716
812 * pt.c (can_complete_type_without_circularity): New function.
813 (instantiate_class_template): Use it.
06728f70
KL
814 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error
815 message due to incomplete fields.
17f29637 816
5d69ba1f
MM
8172002-07-01 Mark Mitchell <mark@codesourcery.com>
818
819 PR c++/7112
820 * mangle.c (write_expression): Add mangling for sizeof when
821 applied to a type.
822 * operators.def: Remove stale comment.
823
d689a8f1
NS
8242002-06-30 Nathan Sidwell <nathan@codesourcery.com>
825
826 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
827 (CPTI_TYPE_INFO_PTR_TYPE): ... this.
828 (tinfo_decl_type): Replace with ...
829 (type_info_ptr_type): ... this.
830 (import_export_tinfo): Declare.
831 (tinfo_decl_p): Rename to ...
832 (unemitted_tinfo_decl_p): ... this.
833 * decl2.c (import_export_decl): Break out tinfo handling into ...
834 (import_export_tinfo): ... here. New function.
835 (finish_file): Adjust.
836 * rtti.c (TINFO_REAL_NAME): New macro.
837 (init_rtti_processing): Create the tinfo types.
838 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
839 (get_tinfo_decl): Adjust.
840 (get_tinfo_ptr): New function.
841 (get_type_id): Use it.
842 (tinfo_base_init): Create vtable decl here, if it doesn't exist.
843 (ptr_initializer): Use get_tinfo_ptr.
844 (ptm_initializer): Likewise.
845 (synthesize_tinfo_var): Break into ...
846 (get_pseudo_ti_init): ... this. Just create the initializer.
847 (get_pseudo_ti_desc): .. and this.
848 (create_real_tinfo_var): Remove.
849 (create_pseudo_type_info): Don't create the vtable decl here.
850 (get_vmi_pseudo_type_info): Remove.
851 (create_tinfo_types): Adjust.
852 (tinfo_decl_p): Rename to ...
853 (unemitted_tinfo_decl_p): ... here. Adjust.
854 (emit_tinfo_decl): Adjust. Create the initializer.
855
5ce49b4b
MM
8562002-06-27 Mark Mitchell <mark@codesourcery.com>
857
858 PR c++/6695
859 * pt.c (tsubst_friend_class): Substitute into the context of the
860 friend before using it.
861
88e5899c
MM
8622002-06-26 Mark Mitchell <mark@codesourcery.com>
863
864 * cp-tree.h (xref_tag): Change prototype.
865 (handle_class_head): Likewise.
866 (build_x_component_ref): Likewise.
867 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
868 (xref_tag): Take attributes as a separate parameter.
869 (xref_tag_from_type): Adjust call to xref_tag.
870 * decl2.c (build_expr_from_tree): Adjust call to
871 build_x_component_ref.
872 (handle_class_head): Take attributes as a separate parameter.
873 * parse.y (parse_xref_tag): New function.
874 (parse_handle_class_head): Likewise.
875 (primary): Use parse_xref_tag.
876 (class_head_decl): Use parse_handle_class_head.
877 (class_head_defn): Likewise.
878 * rtti.c (init_rtti_processing): Adjust call to xref_tag.
879 (build_dynamic_cast_1): Likewise.
880 (create_pseudo_type_info): Likewise.
881 (emit_support_tinfos): Likewise.
882 * typeck.c (build_object_ref): Adjust call to
883 build_x_component_ref.
884 (build_x_component_ref): Remove protect parameter.
b6ce26ac 885
da15dae6
MM
8862002-06-25 Mark Mitchell <mark@codesourcery.com>
887
888 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
889 * class.c (handle_using_decl): Likewise.
890 (instantiate_type): Likewise.
891 * cp-tree.h (BASELINK_FUNCTIONS): New macro.
892 (xref_basetypes): Change prototype.
893 (begin_mem_initializers): New function.
894 (get_overloaded_fn): Likewise.
895 * decl.c (xref_basetypes): Simplify.
896 * error.c (dump_expr): Use BASELINK_FUNCTIONS.
897 * init.c (build_offset_ref): Likewise.
898 * parse.y (base_init): Use begin_mem_initializers().
899 (structsp): Adjust call to xref_basetypes.
900 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
901 (instantiate_class_template): Adjust call to xref_basetypes.
902 * semantics.c (begin_mem_initializers): New function.
903 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
904 (really_overlaoded_fn): Likewise.
905 (get_overloaded_fn): New function.'
906 (get_first_fn): USe BASELINK_FUNCTIONS.
b6ce26ac 907
5f261ba9
MM
9082002-06-24 Mark Mitchell <mark@codesourcery.com>
909
910 * cp-tree.h (SCALAR_TYPE_P): New macro.
911 (check_for_out_of_scope_variable): New function.
912 (at_class_scope_p): Likewise.
913 (finish_fname): Likewise.
914 * class.c (finish_struct): Use at_function_scope_p.
915 * decl.c (check_for_out_of_scope_variable): New function, split
916 out from do_identifier.
917 (finish_enum): Use at_function_scope_p.
918 * lex.c (do_identifier): Use check_for_out_of_scope_variable.
919 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname.
920 (primary): Use at_function_scope_p.
921 * search.c (at_class_scope_p): New function.
922 * semantics.c (finish_fname): Likewise.
923 (check_multiple_declarators): Use at_function_scope_p.
b6ce26ac 924
80b1331c
MM
9252002-06-23 Mark Mitchell <mark@codesourcery.com>
926
927 * parse.y (parse_scoped_id): New function.
928 (primary): Use it.
929 * cp-tree.h (do_scoped_id): Adjust declaration.
930 * lex.c (do_scoped_id): Remove call to yylex.
931 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
932 * typeck2.c (add_exception_specifier): Use tree_cons, rather than
933 expanding it inline.
b6ce26ac 934
08c7ae5a
MT
9352002-06-23 Matt Thomas <matt@3am-software.com>
936
937 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to
938 "#if VMS_TARGET".
939
eb6b51b9
KG
9402002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
941
942 * mangle.c (integer_type_codes): Const-ify.
943
aa8dea09
RH
9442002-06-20 Richard Henderson <rth@redhat.com>
945
946 PR c++/6747
947 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
948 Call put_var_into_stack.
949
62c71f4b
KG
9502002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
951
952 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
953 array size calculation.
954
aa16c0fa
KL
9552002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
956
957 PR c++/6892
958 * pt.c (tsubst_expr): Handle FILE_STMT.
959
342cea95
KL
9602002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
961
962 PR c++/6723
963 * pt.c (lookup_template_class): Don't build complete argument of
964 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
965 argument.
966
84d901be
AD
9672002-06-19 Akim Demaille <akim@epita.fr>
968
969 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
970 decl.h's TYPENAME.
971 * spew.c, lex.c: Adjust.
972 * parse.y (explicit_instantiation): Add empty action to override
973 the default $$ = $1 where it introduces a type clash.
974
83b14b88
JM
9752002-06-14 Jason Merrill <jason@redhat.com>
976
18ba380b
JM
977 * semantics.c (begin_for_stmt): Push the 'for' scope before
978 adding the FOR_STMT.
979
83b14b88
JM
980 C++ ABI changes.
981 * class.c (build_base_field): Set DECL_PACKED.
982 (layout_class_type): Don't use tail padding of PODs.
983 * mangle.c (write_unqualified_name): Fix template conversion op
984 mangling.
985
fd852454
RH
9862002-06-16 Richard Henderson <rth@redhat.com>
987
988 PR opt/6793
989 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
990 after template instantiation.
991
750491fc
RH
9922002-06-16 Richard Henderson <rth@redhat.com>
993
994 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
995
f7d3c5f0
GDR
9962002-06-15 Gabriel Dos Reis <gdr@codesourcery.com>
997
998 * cp-tree.h (compiler_error): Remove declaration.
999 * lex.c (compiler_error): Remove definition.
1000
893a047c
SE
10012002-06-14 Steve Ellcey <sje@cup.hp.com>
1002
1003 * g++spec.c (LIBUNWIND): New.
1004 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
1005
a6f5e048
RH
10062002-06-13 Jessica Han <jessica@cup.hp.com>
1007
1008 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
1009 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
1010 (build_vbase_offset_vtbl_entries): Likewise.
1011 * rtti.c (build_headof): Likewise.
1012 (get_tinfo_decl_dynamic): Likewise.
1013 (create_pseudo_type_info): Likewise.
1014
e4dadd2a
SS
10152002-06-12 Stan Shebs <shebs@apple.com>
1016
1017 * mpw-config.in: Remove file, no longer used.
1018 * mpw-make.sed: Ditto.
1019
09e77dee
ZW
10202002-06-07 Zack Weinberg <zack@codesourcery.com>
1021
1022 * decl2.c: Update call to cpp_handle_option.
1023
4bafaa6f
L
10242002-06-07 H.J. Lu (hjl@gnu.org)
1025
1026 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
1027
3cb8660c
GDR
10282002-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
1029
1030 * error.c (cp_error_at): Fix typo.
1031
47b69537
GDR
10322002-06-04 Gabriel Dos Reis <gdr@codesourcery.com>
1033
1034 * error.c (cp_diagnostic_starter): Adjust call.
1035 (maybe_print_instantiation_context): Change prototype to take a
1036 'diagnostic_info *'.
1037 (print_instantiation_full_context): Likewise.
1038 (print_instantiation_partial_context): Likewise.
1039 (cp_diagnostic_starter): Likewise.
1040 (cp_diagnostic_finalizer): Likewise.
1041 (cp_print_error_function): Likewise.
1042 (cp_printer): Take a secondary parameter as a 'text_info *'.
1043 Remove output_state savings. Adjust calls.
1044
e2500fed
GK
10452002-06-03 Geoffrey Keating <geoffk@redhat.com>
1046
1047 * pt.c (inline_parm_levels): Mark for GC.
1048
1049 * mangle.c (start_mangling): Allocate G.substitutions here...
1050 (init_mangle): ... rather than here.
1051 (finish_mangling): Clear the varray pointer when done with it.
84d901be
AD
1052 * spew.c (yylexstring): Don't use VARRAY_FREE.
1053 * search.c (bfs_walk): Don't use VARRAY_FREE.
e2500fed
GK
1054 * decl2.c (pending_statics): Use gengtype to mark.
1055 (deferred_fns): Likewise.
1056 (ssdf_decls): Likewise.
1057 (init_decl2): Delete.
1058 * decl.c (pop_from_top_level): Don't use VARRAY_FREE.
1059 (cxx_init_decl_processing): Don't call init_decl2.
1060 (cxx_pop_function_context): Don't use VARRAY_FREE.
1061 * cp-tree.h (struct saved_scope): No need for special marking
1062 of varrays.
1063 (struct language_function): Likewise.
1064 (local_classes): Use gengtype to mark.
1065 (init_decl2): Delete prototype.
1066 * class.c (init_class_processing): Don't use
1067 ggc_add_tree_varray_root.
1068 (build_vtbl_initializer): Don't use VARRAY_FREE.
1069
1070 * decl.c (typename_compare): Don't use same_type_p.
1071
1072 * decl.c: Include hashtab.h instead of hash.h.
1073 (typename_hash): Update to use htab_h.
1074 (typename_compare): Likewise.
1075 (typename_htab): Use gengtype to mark.
1076 (build_typename_type): Update to use htab_h.
1077 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
1078
1079 * Make-lang.in (gt-cp-tree.h): New rule.
1080 (cp/tree.o): Depend on gt-cp-tree.h.
1081 * config-lang.in (gtfiles): Add cp/tree.c.
1082 * tree.c: Include gt-cp-tree.h.
1083 (list_hash_table): Use gengtype to mark.
1084 (init_tree): Use gengtype to mark trees.
1085
1086 * Make-lang.in (cp/decl.o): Add debug.h dependency.
1087 * call.c (struct z_candidate): Use gengtype.
1088 (USER_CONV_CAND): Use WRAPPER_ZC.
1089 (convert_class_to_reference): Use build_zc_wrapper.
1090 (build_type_conversion_1): Likewise.
1091 (build_over_call): Use WRAPPER_ZC.
1092 (add_warning): Use build_zc_wrapper.
1093 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
1094 * cp-tree.h (struct lang_identifier): Use gengtype.
1095 (struct template_parm_index_s): Likewise.
1096 (struct ptrmem_cst): Likewise.
1097 (struct tree_binding): Likewise.
1098 (struct tree_overload): Likewise.
1099 (struct tree_srcloc): Likewise.
1100 (struct tree_wrapper): Likewise. Also modify to have a pointer
1101 to struct z_candidate rather than void.
1102 (enum cp_tree_node_structure_enum): New.
1103 (union lang_tree_node): New.
1104 (cxx_mark_tree): Delete prototype.
1105 (cp_tree_node_structure): New prototype.
1106 (build_ptr_wrapper): Delete prototype.
1107 (build_int_wrapper): Delete prototype.
1108 (build_zc_wrapper): New prototype.
1109 * decl.c: Include debug.h
1110 (cxx_mark_tree): Delete.
1111 (cp_tree_node_structure): New.
1112 * tree.c (build_ptr_wrapper): Delete.
1113 (build_int_wrapper): Delete.
1114 (build_zc_wrapper): New.
1115
1116 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
1117 Correct typo. Patch from k_fukui@highway.ne.jp.
1118
1119 * semantics.c (current_stmt_tree): Update for change to
1120 struct language_function.
1121 (finish_mem_initializers): Likewise.
1122 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
1123 * cp-tree.h (struct language_function): Rename from
1124 cp_language_function. Change all uses.
1125 (cp_function_chain): Don't need to cast.
1126
1127 * class.c (duplicate_tag_error): Reset discriminator.
1128 (check_bases_and_members): Update for data structure changes.
1129 * cp-tree.h (struct lang_id2): Use gengtype.
1130 (flagged_type_tree): Likewise.
1131 (SET_LANG_ID): Use GGC on struct lang_id2.
1132 (struct cp_language_function): Use gengtype. Remove field
1133 'x_vcalls_possible_p'.
1134 (current_vcalls_possible_p): Delete.
1135 (struct lang_type_header): New.
1136 (struct lang_type_class): Rename from struct lang_type. Include
1137 struct lang_type_header.
1138 (struct lang_type_ptrmem): New.
1139 (struct lang_type): New.
1140 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros.
1141 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros.
1142 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
1143 (struct lang_decl_flags): Use gengtype. Add discriminators.
1144 (struct lang_decl): Use gengtype. Add and use discriminators.
1145 Update the macros that reference moved fields.
1146 (LANG_DECL_U2_CHECK): New function. Use it when appropriate.
1147 (SET_DECL_THUNK_P): Set discriminator too.
1148 (clear_inline_text_obstack): Delete prototype.
1149 (finish_inline_definitions): Delete prototype.
1150 (mark_pending_inlines): Delete prototype.
1151 (lang_check_failed): New prototype.
1152 * decl.c (struct named_label_use_list): Use gengtype.
1153 (struct named_label_list): Likewise.
1154 (mark_binding_level): Delete.
1155 (mark_named_label_lists): Delete.
1156 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
1157 (cxx_init_decl_processing): Use generated marker routine.
1158 (begin_destructor_body): Delete dead set to
1159 current_vcalls_possible_p.
1160 (mark_lang_function): Delete.
1161 (mark_cp_function_context): Delete.
1162 (lang_mark_tree): Use generated marker routines.
1163 * decl2.c (start_objects): Set discriminator when setting
1164 GLOBAL_INIT_PRIORITY.
1165 * lex.c (retrofit_lang_decl): Set discriminators.
1166 (copy_lang_type): Update for changes to lang_type structure.
1167 (cp_make_lang_type): Set discriminator.
1168 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers.
1169 * search.c: Include ggc.h.
1170 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
1171 (finish_inline_definitions): Delete.
1172 * spew.c (struct token): Use gengtype.
1173 (struct token_chunk): New.
1174 (struct unparsed_text): Use gengtype. Store tokens in chunks.
1175 (struct feed): Use gengtype.
1176 (feed_obstack): Delete.
1177 (feed): Mark as GC root.
1178 (pending_inlines): Mark as GC root.
1179 (pending_inlines_tail): Likewise.
1180 (processing_these_inlines): Likewise.
1181 (token_obstack): Make static.
1182 (first_token): Likewise.
d30d6e7a 1183 (init_spew): Don't initialize deleted things; use gengtype for roots.
e2500fed
GK
1184 (clear_inline_text_obstack): Delete.
1185 (feed_input): Use GC for struct feed. Update for changes to
1186 struct unparsed_text.
1187 (mark_pending_inlines): Delete.
1188 (next_token): Rename from add_token. Change all callers. Update
1189 for changes to struct unparsed_text.
1190 (space_for_token): New.
1191 (remove_last_token): New.
1192 (alloc_unparsed_text): New.
1193 (snarf_block): Take an unparsed_text. Update for changes to struct
1194 unparsed_text.
1195 (snarf_method): Update for changes to struct unparsed_text.
1196 (snarf_defarg): Update for changes to struct unparsed_text.
1197 * tree.c (lang_check_failed): New.
1198
1199 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
1200 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
1201 (cp/spew.o): Add dependency on gt-<filename>.h.
1202 (cp/decl2.o): Add dependency on gt-<filename>.h.
1203 (cp/call.o): Add dependency on gt-<filename>.h.
1204 (cp/pt.o): Add dependency on gt-<filename>.h.
1205 (cp/repo.o): Add dependency on gt-<filename>.h.
1206 (cp/parse.o): Add dependency on gt-<filename>.h.
1207 * call.c: Use gengtype for roots.
1208 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
1209 decl2.c parse.y pt.c repo.c spew.c.
1210 * cp-tree.h: Use gengtype for roots.
1211 (struct saved_scope): Use GGC, gengtype.
1212 (cp_parse_init): Delete prototype.
1213 (init_pt): Delete prototype.
1214 * decl.c: Use gengtype for roots.
1215 (mark_saved_scope): Delete.
1216 (cxx_init_decl_processing): Don't call deleted initilisation
1217 routines.
1218 (signed_size_zero_node): Delete, unused.
1219 * decl.h: Use gengtype for roots.
1220 * decl2.c: Use gengtype for roots.
1221 * lex.h: Use gengtype for roots.
1222 * parse.y: Use gengtype for roots.
1223 (cp_parse_init): Delete.
1224 * pt.c: Use gengtype for roots.
1225 (init_pt): Delete.
1226 * repo.c: Use gengtype for roots.
1227 * spew.c: Use gengtype for roots.
1228
1229 * Make-lang.in: Allow for filename changes. Add gtype-cp.h.
1230 (cp/decl.o): Add dependency on gtype-cp.h.
1231 * decl.c: Remove use of add_deletable_root, use GTY marker instead.
1232 Include gtype-cp.h. Allow for filename changes.
1233
1234 * Make-lang.in (cp/gt-decl.h): Generate using gengtype.
1235 (cp/decl.o): Add cp/gt-decl.h dependency.
1236 * config-lang.in (gtfiles): New.
1237 * tree.h: Rename struct binding_level to struct cp_binding_level.
1238 * decl.c: Rename struct binding_level to struct cp_binding_level.
1239 Include cp/gt-decl.h.
1240 (struct cp_binding_level): Use gengtype.
1241 (make_binding_level): Use GGC on struct cp_binding_level.
1242 (mark_binding_level): Use gt_ggc_m_cp_binding_level.
1243 (cxx_init_decl_processing): Mark free_binding_level as
1244 deletable.
1245
1246 * decl.c (mark_cp_function_context): Update calling sequence.
1247
1248 * decl.c (start_function): Don't free 'struct
1249 cp_language_function'.
1250 (pop_cp_function_context): Likewise.
1251 (save_function_data): Allocate it using GC.
1252 * semantics.c (genrtl_start_function): Don't free 'struct
1253 cp_language_function'.
1254
8b968bd1
MW
12552002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
1256
1257 * lang-specs.h: Use cpp_debug_options.
1258
11ad4784
ZW
12592002-05-28 Zack Weinberg <zack@codesourcery.com>
1260
1261 * mangle.c, tree.c: Include real.h.
1262 * Make-lang.in: Update dependency lists.
1263
81a75f0f
NB
12642002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
1265
1266 * lex.c: Don't include c-lex.h.
1267 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
1268
a97d1398
NB
12692002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
1270
1271 * spew.c (yyungetc, snarf_block): Remove indent_level handling.
1272
6f001fdf
RH
12732002-05-22 Richard Henderson <rth@redhat.com>
1274
1275 * decl.c (obscure_complex_init): Check for VAR_DECL
1276 before using DECL_THREAD_LOCAL.
1277
7a1f3f5f
RH
12782002-05-22 Richard Henderson <rth@redhat.com>
1279
1280 * decl.c (check_tag_decl): Handle RID_THREAD.
1281 (obscure_complex_init): Reject run-time init of tls.
1282 (grokvardecl, grokdeclarator): Handle RID_THREAD.
1283 * lex.c (reswords): Add __thread.
1284 (rid_to_yy): Map RID_THREAD to SCSPEC.
1285
e5f3b786
NB
12862002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
1287
1288 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
1289 * cp-tree.h (cxx_post_options): Kill.
1290 * cp-lex.c (cxx_post_options): Kill.
1291
3d78f2e9
RH
12922002-05-21 Richard Henderson <rth@redhat.com>
1293
1294 * lex.c (rid_to_yy): Add RID_THREAD.
1295
c8a3d889
AO
12962002-05-21 Alexandre Oliva <aoliva@redhat.com>
1297
1298 * init.c (build_vec_init): Test for trivial copy-assignment when
1299 copy-assigning arrays.
1300
500abaa8
AJ
13012002-05-20 Andreas Jaeger <aj@suse.de>
1302
1303 * init.c (build_default_init): Remove unused variable.
1304
ecc42c14
AO
13052002-05-20 Alexandre Oliva <aoliva@redhat.com>
1306
1307 * call.c (any_strictly_viable): New.
1308 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
1309
4e664ef1
KL
13102002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1311
1312 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
1313
07782718
KL
13142002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1315
1316 PR c++/186, DR 259
1317 * pt.c (do_decl_instantiation): Don't complain explicit
1318 instantiation after explicit specialization.
1319 (do_type_instantiation): Likewise.
1320
23b4deba
AO
13212002-05-19 Alexandre Oliva <aoliva@redhat.com>
1322
1323 * cp-tree.h (complete_type_or_diagnostic): Changed prototype,
1324 renamed from...
1325 (complete_type_or_else): ... this. Redefined as macro.
1326 (cxx_incomplete_type_diagnostic): Declare.
1327 (cxx_incomplete_type_error): Define as macro.
1328 * init.c (build_delete): Warn about incomplete types other than
1329 void, and use the built-in operator delete for them.
1330 * typeck.c (complete_type_or_diagnostic): Renamed from
1331 complete_type_or_else. Added warn_only argument, passed to...
1332 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print
1333 warnings or errors depending on new warn_only argument. Renamed
1334 from...
1335 (cxx_incomplete_type_error): ... this. New implementation in
1336 terms of cxx_incomplete_type_diagnostic.
1337
b41d214e
JM
13382002-05-18 Jason Merrill <jason@redhat.com>
1339
98c07d7b 1340 PR c++/6611
b41d214e
JM
1341 * decl2.c (import_export_decl): If we clear
1342 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
1343
e2005c8d
KL
13442002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1345
1346 PR c++/6620
1347 * pt.c (verify_class_unification): Don't check if PARM is template
1348 parameter dependent. Simplify.
1349 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
1350 parameter dependent expression.
1351
ff48be5c
JM
13522002-05-14 Jason Merrill <jason@redhat.com>
1353
1354 * rtti.c (get_tinfo_decl): Don't call comdat_linkage.
1355 Do set DECL_COMDAT.
1356 (synthesize_tinfo_var): Take the public decl.
1357 (create_real_tinfo_var): Likewise. Check DECL_COMDAT.
1358 (emit_tinfo_decl): Adjust. Call import_export_decl.
1359 * decl2.c (import_export_decl): Simplify tinfo decl handling.
1360
94e6e4c4
AO
13612002-05-14 Alexandre Oliva <aoliva@redhat.com>
1362
1363 * cp-tree.h (struct lang_type): Added non_zero_init.
0fe1cd70 1364 (CLASSTYPE_NON_ZERO_INIT_P): New macro.
94e6e4c4
AO
1365 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
1366 * class.c (check_field_decls): Test non_zero_init.
1367 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
1368 zero-to-NULL conversions.
1369 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
1370 type that needs zero-initialization without zeros.
1371 (check_initializer_decl): Compute zero-initializer for types
1372 that require a non-trivial one.
1373 * init.c (build_forced_zero_init): New function.
1374 (build_default_init): Use it.
1375 * tree.c (zero_init_p): New function.
1376 * typeck2.c (force_store_init_value): New function.
1377 (process_init_constructor): Create non-trivial zero-initializers
1378 for array members and class fields.
1379
e5f5feea
NB
13802002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
1381
1382 * lang-specs.h: Remove redundant -lang-c++.
1383
f63ab951
JM
13842002-05-13 Jason Merrill <jason@redhat.com>
1385
1386 * class.c (build_vtbl_ref_1): Use fixed_type_or_null.
1387 (fixed_type_or_null): See through reference vars.
1388 (build_base_path): Vtable contents are constant.
1389 * typeck.c (get_member_function_from_ptrfunc): Likewise.
1390
0d08ea48
JM
13912002-05-12 Jason Merrill <jason@redhat.com>
1392
1393 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
1394 structs are safe.
1395
3df89291
NB
13962002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
1397
1398 * cp-tree.h (flag_ansi): Remove.
1399 * decl2.c (flag_ansi): Remove.
1400 (cxx_decode_option): Set flag_iso and flag_undef.
1401
c87978aa
JM
14022002-05-09 Jason Merrill <jason@redhat.com>
1403
1404 * typeck.c (get_member_function_from_ptrfunc): Reorganize.
1405 Use subtraction rather than a bitmask to get the index.
1406 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
1407
1408 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
1409
a5a49440
NB
14102002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
1411
1412 * Make-lang.in (decl2.o): Update.
1413 * cp-tree.h (warn_multichar): Remove.
1414 * decl2.c: Include c-common.h.
1415 (warn_multichar): Remove.
1416
609688f3
JM
14172002-05-03 Jason Merrill <jason@redhat.com>
1418
0abc082a
JM
1419 * tree.c (build_cplus_array_type): Only const and volatile get
1420 special handling.
1421
609688f3
JM
1422 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
1423
8b16faa2
MM
14242002-04-30 Mark Mitchell <mark@codesourcery.com>
1425
394ab947 1426 ABI change, returning simple classes from functions.
8b16faa2
MM
1427 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
1428 TYPE_HAS_TRIVIAL_INIT_REF is false or
1429 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
1430
ac905924
JM
14312002-04-30 Jason Merrill <jason@redhat.com>
1432
2cb008af 1433 PR debug/6436
ac905924
JM
1434 * decl.c (grokdeclarator): Don't override TYPE_NAME of an
1435 anonymous class with a typedef if there are attributes.
1436
e6e81f1c 14372002-04-29 Paul Eggert <eggert@twinsun.com>
b819d9e0 1438
e6e81f1c 1439 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
b819d9e0 1440
3a73bffb
JJ
14412002-04-29 Jakub Jelinek <jakub@redhat.com>
1442
1443 PR c++/6477
1444 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
1445 non-NULL first.
1446
33dd07ee
MM
14472002-04-29 Mark Mitchell <mark@codesourcery.com>
1448
1449 PR c++/6492
1450 * pt.c (tsubst_friend_class): If the friend has an explicit scope,
1451 enter that scope before name lookup.
1452
1453 PR c++/6486
1454 * method.c (do_build_copy_constructor): Avoid building
1455 cv-qualified reference types.
500abaa8 1456
4bd7c270
NS
14572002-04-29 Nathan Sidwell <nathan@codesourcery.com>
1458
1459 PR c++/5719
500abaa8 1460 * decl.c (grok_op_properties): Assignment ops don't have to return
4bd7c270
NS
1461 by value. operator% should.
1462
45806a3f
FS
14632002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1464
1465 PR c/6343
1466 * decl.c (duplicate_decls): Call merge_weak.
1467
94a50397
RH
14682002-04-26 Richard Henderson <rth@redhat.com>
1469
1470 * parse.y (malloced_yyss, malloced_yyvs): New.
1471 (yyoverflow): Re-add. Set them.
1472 (free_parser_stacks): New.
1473
7d793e9b
MM
14742002-04-26 Mark Mitchell <mark@codesourcery.com>
1475
1476 PR c++/6497
1477 * method.c (do_build_assign_ref): Pass a derivation to
1478 build_method_call when calling base class assignment operators.
1479
bde3c0c0
RH
14802002-04-26 Richard Henderson <rth@redhat.com>
1481
1482 * parse.y (yyoverflow): Revert.
1483
b84a3874
RH
14842002-04-26 Richard Henderson <rth@redhat.com>
1485
1486 PR c/3581
1487 * parse.y (string): Remove. Update all uses to use STRING
1488 instead, and not call combine_strings.
1489 * rtti.c (tinfo_name): Use fix_string_type.
1490 * semantics.c (finish_asm_stmt): Don't call combine_strings.
1491 * spew.c (yylexstring): New.
1492 (read_token): Use it.
1493
6052bef0
RH
14942002-04-25 Richard Henderson <rth@redhat.com>
1495
1496 PR c/2161
1497 * parse.y (yyoverflow): New.
1498
8d1f0f67
JM
14992002-04-25 Jason Merrill <jason@redhat.com>
1500
1501 PR c++/5607
1502 * search.c (check_final_overrider): No longer static.
1503 * class.c (update_vtable_entry_for_fn): Call it.
1504 * cp-tree.h: Adjust.
1505
ff45c01e
NB
15062002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
1507
1508 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1509 * cp-tree.h (cxx_set_yydebug): Die.
1510 * lex.c (YYDEBUG): Get from c-lex.h.
1511 (cxx_set_yydebug): Remove.
1512 * parse.y: Include c-lex.h.
1513 (YYDEBUG): Get from c-lex.h.
1514
a62d375f
MM
15152002-04-24 Mark Mitchell <mark@codesourcery.com>
1516
1517 PR c++/6438.
1518 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
1519 void.
1520
349ae713
NB
15212002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
1522
1523 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1524 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
1525 Redefine.
1526 * cp-tree.h (cp_attribute_table): Rename.
1527 * decl.c (lang_attribute_table): Remove declaration.
1528 (cxx_init_decl_processing): Don't set it.
1529 * tree.c (cp_attribute_table): Rename.
1530
b602511f
JM
15312002-04-24 Jason Merrill <jason@redhat.com>
1532
985723ce
JM
1533 PR c++/6331
1534 * method.c (do_build_copy_constructor): Use cp_build_qualified_type.
1535 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
a49cfba8
JM
1536 The pedwarn for array assignment is now unconditional.
1537 * tree.c (build_cplus_array_type_1): Still process simple array types
1538 normally in templates.
985723ce 1539
b602511f
JM
1540 PR c++/6395
1541 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
1542 stuff for comdats.
1543
29cece2e
JJ
15442002-04-23 Jakub Jelinek <jakub@redhat.com>
1545
1546 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class
1547 node with attributes.
1548
515387dc
DB
15492002-2-23 David O'Brien <obrien@FreeBSD.org>
1550
1551 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
1552 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
1553
77adef84
MM
15542002-04-23 Mark Mitchell <mark@codesourcery.com>
1555
1556 PR c++/6256:
1557 * pt.c (tsubst_friend_class): Handle templates with explicit
1558 nested names.
1559
1560 PR c++/6331:
1561 * typeck.c (merge_types): Remember the cv-qualification of pointer
1562 types when merging them.
1563
b03e38e1
NB
15642002-04-20 Neil Booth <neil@daikokuya.demon.co.uk>
1565
1566 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
1567 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
1568 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
1569 cxx_mark_function_context): New.
1570 * decl.c (push_cp_function_context, pop_cp_function_context,
1571 mark_cp_function_context): Rename for consistency.
1572 (cxx_init_decl_processing): Don't set old hooks.
1573
ab393bf1
NB
15742002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
1575
1576 * call.c (convert_type_from_ellipsis): Rename, update.
1577 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
1578 * cp-tree.h (convert_type_from_ellipsis): Rename.
1579 * decl.c (cxx_init_decl_processing): Don't set hook.
1580
7a228918
NB
15812002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
1582
1583 * call.c (build_new_method_call): Update.
1584 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1585 * cp-tree.h (cxx_incomplete_type_error): New.
1586 * decl.c (grokdeclarator, grokparms): Update.
1587 * decl2.c (check_classfn): Update.
1588 * pt.c (tsubst): Update.
1589 * typeck.c (complete_type_or_else, expr_sizeof,
1590 decay_conversion): Update.
1591 * typeck2.c (incomplete_type_error): Rename.
1592 (add_exception_specifier): Update.
1593
8152c320
JM
15942002-04-18 Jason Merrill <jason@redhat.com>
1595
1596 PR c++/5658
1597 * search.c (setup_class_bindings): A class template qualifies as a
1598 type binding.
1599
32121b96
JJ
16002002-04-17 Jakub Jelinek <jakub@redhat.com>
1601
1602 PR c++/6316
1603 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
1604 before expanding.
1605
b2123dc0
MM
16062002-04-16 Mark Mitchell <mark@codesourcery.com>
1607
1608 * init.c (begin_init_stmts): Remove commented out code.
1609 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
1610 * semantics.c (begin_gobal_stmt_expr): Adjust call to
1611 expand_start_stmt_expr.
500abaa8 1612
0f268005
MM
16132002-04-15 Mark Mitchell <mark@codesourcery.com>
1614
1615 * decl.c (register_dtor_fn): Pass the address of dso_handle, not
1616 dso_handle itself, to __cxa_atexit.
1617
bd6bec6b
GDR
16182002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
1619
1620 * error.c (cxx_print_error_function): Adjust call to macros.
1621
0f490a2b
JJ
16222002-04-14 Jakub Jelinek <jakub@redhat.com>
1623
1624 * class.c (layout_virtual_bases): Do all dsize computation on trees.
1625
85b7def6
JM
16262002-04-14 Jason Merrill <jason@redhat.com>
1627
1628 * typeck.c (get_member_function_from_ptrfunc): Don't do
1629 gratuitious division and multiplication on
1630 ptrmemfunc_vbit_in_delta targets.
1631
0481bc21
MM
16322002-04-12 Mark Mitchell <mark@codesourcery.com>
1633
1634 PR c++/5373.
1635 * semantics.c (finish_expr_stmt): Remember the type of the
1636 expression before any conversions are performed.
1637
9928a3d5
MM
16382002-04-12 Mark Mitchell <mark@codesourcery.com>
1639
1640 PR c++/5189.
1641 * call.c (add_template_candidate_real): Do not treat member
1642 templates as copy constructors.
1643
c740732f
MM
16442002-04-12 Mark Mitchell <mark@codesourcery.com>
1645
1646 * decl.c (duplicate_decls): Do not copy the RTL for a variable
1647 declaration if the old variable had an incomplete type and the new
1648 variable does not.
1649 (complete_vars): Do not call layout_decl for completed variables.
1650
4782bd5b
RS
16512002-04-12 Richard Sandiford <rsandifo@redhat.com>
1652
1653 * decl.c (duplicate_decls): Don't try to unify an implicit typedef
1654 with an explicit one.
1655 (follow_tag_typedef): New.
1656 (lookup_tag): Use it to extract the tag of an explicit typedef.
1657 (xref_tag): Likewise.
1658
2f4d058f
AH
16592002-04-11 Andrew Haley <aph@redhat.com>
1660
1661 * typeck.c (type_after_usual_arithmetic_conversions):
1662 If two types have the same variant, return immediately.
500abaa8 1663 When two floating-point operands are the same precision:
2f4d058f
AH
1664 convert to float if one of the operands is float;
1665 if neither operand is one of the standard types, return the type
1666 of the first operand.
500abaa8 1667
ba3307c0
NS
16682002-04-10 Nathan Sidwell <nathan@codesourcery.com>
1669
1670 PR c++/5507
1671 * decl.c (make_typename_type): Remove implicit typenameness.
1672
cd6af0c1
JM
16732002-04-09 Jason Merrill <jason@redhat.com>
1674
edf5cd1d
JM
1675 PR optimization/6189
1676 * semantics.c (genrtl_start_function): Don't free
1677 DECL_SAVED_FUNCTION_DATA for inline functions.
1678
cd6af0c1
JM
1679 * init.c (build_member_call): For now, don't convert to
1680 intermediate base if it would cause an error.
1681
224e6091
PC
16822002-04-08 Paolo Carlini <pcarlini@unitus.it>
1683
1684 * parse.y (namespace_qualifier, maybe_identifier,
1685 begin_explicit_instantiation, end_explicit_instantiation,
1686 apparent_template_type, .finish_template_type,
1687 do_id, maybe_init, defarg_again, component_decl_1):
1688 Add ending ';', in accordance with POSIX.
1689
0154eaa8
MM
16902002-04-06 Mark Mitchell <mark@codesourcery.com>
1691
1692 PR c++/5571
1693 * class.c (layout_class_type): Remember incomplete static
1694 variables.
1695 (finish_struct_1): Call complete_vars, not
1696 hack_incomplete_structures.
1697 * cp-tree.h (hack_incomplete_structures): Rename to ...
1698 (complete_vars): ... this.
1699 (struct saved_scope): Remove incomplete.
1700 (namespace_scope_incomplete): Remove.
1701 * decl.c (struct binding_level): Remove incomplete.
1702 (incomplete_vars): New variable.
1703 (mark_binding_level): Don't mark incomplete.
1704 (print_binding_level): Don't print it.
1705 (mark_saved_scope): Don't mark incomplete.
1706 (pushdecl): Use maybe_register_incopmlete_var.
1707 (cxx_init_decl_processing): Register incomplete_vars for GC.
1708 (start_decl_1): Clarify error message.
1709 (hack_incomplete_vars): Remove.
1710 (maybe_register_incomplete_var): New function.
1711 (complete_vars): Likewise.
1712
f62ea157
JM
17132002-04-06 Jason Merrill <jason@redhat.com>
1714
03da5286
JM
1715 PR c++/4934
1716 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
1717 set before checking it.
1718
a29e1034
JM
1719 PR c++/525
1720 * init.c (build_member_call): Use build_scoped_ref.
1721 (resolve_offset_ref): Likewise.
1722 * call.c (build_scoped_method_call): Likewise.
500abaa8 1723 * tree.c (maybe_dummy_object): Kludge around current_class_type being
a29e1034
JM
1724 wrong.
1725 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
1726 * cp-tree.h: Adjust.
500abaa8 1727
a29e1034
JM
1728 * init.c (push_base_cleanups): Just use build_scoped_method_call.
1729
f62ea157 1730 PR c++/6179
500abaa8 1731 * method.c (implicitly_declare_fn): Pass unqualified type to
f62ea157
JM
1732 synthesize_exception_spec.
1733
78ef5b89
NB
17342002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
1735
1736 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1737 * cvt.c: Update comment.
1738 * init.c (expand_cleanup_for_base): Update.
1739 * semantics.c (finish_parenthesized_expr): Update.
1740 * typeck.c (cp_truthvalue_conversion): Update.
1741
dffa4176
JM
17422002-04-04 Jason Merrill <jason@redhat.com>
1743
659e5a7a
JM
1744 * semantics.c (finish_eh_cleanup): New fn.
1745 * cp-tree.h: Add prototype.
500abaa8 1746 * init.c (perform_member_init, expand_cleanup_for_base): Use
659e5a7a
JM
1747 finish_eh_cleanup.
1748 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
1749 * cp-tree.h: Remove references.
1750 * decl.c (begin_constructor_body, end_constructor_body): Likewise.
1751 * dump.c (cp_dump_tree): Likewise.
1752 * pt.c (tsubst_expr): Likewise.
1753 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
1754 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
1755 * tree.c (cp_statement_code_p): Likewise.
1756
1757 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
1758
1759 PR c++/5636
1760 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
1761 cleanup for nrv.
1762
dffa4176
JM
1763 PR c++/5104
1764 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
1765 specifiers.
1766 [METHOD_TYPE]: Use same code as FUNCTION_TYPE.
1767
ef4f94ac
RH
17682002-04-03 Richard Henderson <rth@redhat.com>
1769
1770 * cp-lang.c (cxx_warn_unused_global_decl): New.
1771 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1772
599bba86
NB
17732002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
1774
1775 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
1776 * tree.c (init_tree): Don't set hook.
1777
cba2004a
RS
17782002-04-03 Roger Sayle <roger@eyesopen.com>
1779
1780 PR c++/5998:
1781 * decl.c (duplicate_decls): Don't mess with assembler names when
1782 redeclaring builtin functions as static.
1783
dffd7eb6
NB
17842002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1785
1786 * call.c (build_addr_func): Update.
1787 * class.c (resolve_address_of_overloaded_function): Update.
1788 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1789 * cp-tree.h (cxx_mark_addressable): New.
1790 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
1791 * decl2.c (build_cleanup): Update.
1792 * except.c (build_throw): Update.
1793 * init.c (resolve_offset_ref): Update.
1794 * pt.c (convert_nontype_argument): Update.
1795 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
1796 * typeck.c (decay_conversion, build_array_ref, build_unary_op,
1797 unary_complex_lvalue): Update.
1798 (mark_addressable): Rename.
1799
04a9d080
RS
18002002-04-01 Roger Sayle <roger@eyesopen.com>
1801
1802 PR c++/5998:
1803 * decl.c (duplicate_decls): Overwrite the RTL when (and only
1804 when) overwriting a built-in function. Don't use COPY_DECL_RTL,
1805 but follow the SET_DECL_RTL idiom used elsewhere in the function.
1806
ceef8ce4
NB
18072002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1808
1809 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1810 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1811 * decl.c (grokdeclarator): Update.
1812 * mangle.c (write_integer_cst): Update.
1813 * typeck.c (build_binary_op): Update.
1814
48a7a235
NB
18152002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
1816
1817 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1818 * lex.c (cxx_init): Don't set hook.
1819
7cb32822
NB
18202002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
1821
1822 * Make-lang.in (error.o): Update.
1823 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
1824 * cp-tree.h (struct diagnostic_context): Predeclare.
1825 (cxx_print_error_function): New.
1826 * error.c: Include langhooks-def.h.
1827 (lang_print_error_function): Rename. Update.
1828 (init_error): Don't set hook.
1829
b0c48229
NB
18302002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1831
1832 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1833 Redefine.
1834 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
1835 * decl.c (finish_enum): Similarly.
1836 * error.c (dump_type): Similarly.
1837 * lex.c (cxx_init): Similarly.
1838 * mangle.c (write_builtin_type): Similarly.
1839 * typeck.c (comptypes): Similarly.
1840
d52e4867
RS
18412002-03-28 Roger Sayle <roger@eyesopen.com>
1842
1843 PR c++/5998:
1844 * decl.c (cxx_init_decl_processing): Re-enable built-in functions
1845 in the g++ front-end.
1846 (duplicate_decl): Allow redefinition of anticipated built-ins.
1847 Fix inlining problem by over-writing the old DECL_RTL.
1848 (lookup_namespace_name): Fail to find an identifier in the
1849 specified namespace if its still anticipated.
1850 (builtin_function_1): New function split out from builtin_function
1851 to create a builtin in the current namespace with given context.
1852 (builtin_function): Call builtin_function_1 to define the
1853 appropriate builtins in both the std and global namespaces.
1854 (select_decl): Don't test for anticipated decls here.
1855 (unqualified_namespace_lookup): Instead ignore them whilst
1856 searching through scopes and namespaces.
1857 * decl2.c (do_nonmember_using_decl): If a using declaration
1858 specifies an anticipated built-in function, mark it as no longer
1859 anticipated in that scope.
1860 (ambiguous_decl): Avoid resolving to an anticipated decl.
1861 * lex.c (do_scoped_id): Fail to find an identifier in the global
1862 namespace if its still anticipated.
1863
f1e639b1
NB
18642002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1865
1866 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
1867 * cp-tree.h (cp_make_lang_type): Rename.
1868 * lex.c (cp_make_lang_type): Rename.
1869 (make_aggr_type): Update.
1870 * tree.c (init_tree): Don't set make_lang_type_fn.
1871
c7f4981a
JJ
18722002-03-29 Jakub Jelinek <jakub@redhat.com>
1873
1874 PR c++/6073
1875 * class.c (finish_struct_1): Update static field's DECL_MODE even
1876 if its type is a variant of t.
1877
7ffb4fd2
NB
18782002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1879
1880 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
1881 * cp-tree.h (cxx_insert_default_attributes): New.
1882 * decl.c (insert_default_attributes): Rename.
1883
cd4e8331
MM
18842002-03-27 Mark Mitchell <mark@codesourcery.com>
1885
1886 PR c++/4884
1887 * call.c (build_op_delete_call): Allow for the fact the placement
1888 may be a COMPOUND_EXPR.
500abaa8 1889
c9d892a8
NB
18902002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1891
1892 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1893 * cp-tree.h (init_cplus_expand): Remove.
1894 (cxx_expand_expr): New.
1895 * expr.c (cplus_expand_expr): Rename cxx_expand_expr,
1896 fix prototype.
1897 (init_cplus_expand): Remove.
1898 * lex.c (cxx_init): Don't call init_cplus_expand.
1899
46ff5047
MM
19002002-03-26 Mark Mitchell <mark@codesourcery.com>
1901
1902 PR c++/4884.
1903 * init.c (build_new_1): Allow for the fact the result of
1904 build_function_call may be a COMPOUND_EXPR.
1905
6d4c57a0
NS
19062002-03-26 Nathan Sidwell <nathan@codesourcery.com>
1907
1908 PR c++/5682
1909 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
1910 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
1911 (dfs_skip_nonprimary_vbases_markedp): Remove.
1912 * search.c (get_shared_vbase_if_not_primary): Remove.
1913 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
1914 (dfs_skip_nonprimary_vbases_markedp): Remove.
1915 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
1916 (dfs_marked_real_bases_queue_p): Likewise.
1917
4f0ade92
NB
19182002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
1919
1920 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1921 * cp-tree.h (cxx_mark_tree): New.
1922 * decl.c (lang_mark_tree): Rename cxx_mark_tree.
1923
c88770e9
NB
19242002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
1925
1926 * cp-tree.h (cxx_maybe_build_cleanup): New.
1927 * decl.c (destroy_local_var, hack_incomplete_structures): Update.
1928 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
1929 * tree.c (build_target_expr): Update.
7b3e5198 1930 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
c88770e9 1931
aaf93206
NB
19322002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
1933
1934 * decl2.c (cxx_decode_option): Handle -E.
1935 * lang-specs.h (default_compilers): Preprocess with cc1plus.
1936 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
1937
e756a7da
JJ
19382002-03-23 Jakub Jelinek <jakub@redhat.com>
1939
1940 PR c++/6037
1941 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
1942
ea9264e9
GDR
19432002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
1944
1945 * error.c (dump_type): Be careful about implicit typenames.
1946
acb044ee
GDR
19472002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
1948
1949 PR C++/3656
1950 * semantics.c (finish_base_specifier): Handle erronous base
500abaa8 1951 classes.
acb044ee 1952
b216cd4a
ZW
19532002-03-22 Zack Weinberg <zack@codesourcery.com>
1954
1955 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
1956 REAL_IS_NOT_DOUBLE.
1957
9181f8db
JK
19582002-03-22 Jeff Knaggs <jknaggs@redhat.com>
1959
cd6af0c1
JM
1960 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to
1961 an index into the vtable_entry array regardless of
9181f8db
JK
1962 TARGET_PTRMEMFUNC_VBIT_LOCATION.
1963
e019cf95
AH
19642002-03-21 Aldy Hernandez <aldyh@redhat.com>
1965
84d901be 1966 * tree.c (cp_cannot_inline_tree_fn): Same.
e019cf95 1967
43577e6b
NB
19682002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
1969
1970 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
1971 insert_block, getdecls, global_bindings_p): New.
1972
8c152bad
NS
19732002-03-20 Nathan Sidwell <nathan@codesourcery.com>
1974
1975 PR c++/4361
1976 * mangle.c (struct globals) Add internal_mangling_p member.
1977 (write_template_param): Do internal mangling, if needed.
1978 (mangle_conv_op_name_for_type): Request internal mangling.
1979
e3fe84e5
JM
19802002-03-20 Jason Merrill <jason@redhat.com>
1981
1982 PR c++/2136
1983 * init.c (build_delete): Check access for a member op delete here.
1984 * decl2.c (delete_sanity): Not here.
1985
ea122333
JM
19862002-03-19 Jason Merrill <jason@redhat.com>
1987
1988 PR c++/5118
1989 * class.c (get_vfield_name): Use the constructor_name.
1990
7afff7cf
NB
19912002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
1992
1993 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
1994 * cp-tree.h (lang_printable_name): Rename.
1995 * error.c (lang_decl_name): Use new hook.
1996 * lex.c (cxx_init): Remove old hook.
1997 * pt.c (tsubst_decl): Use new hook.
1998 * tree.c (lang_printable_name): Rename.
1999
ff77ac85
EB
20002002-03-18 Eric Botcazou <ebotcazou@multimania.com>
2001
2002 PR c++/3882
2003 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
2004 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
2005 only after recording the declaration.
2006
ffd696af
JM
20072002-03-18 Jason Merrill <jason@redhat.com>
2008
097955f2
JM
2009 PR c++/2039
2010 * init.c (resolve_offset_ref): Hand off to build_component_ref.
2011
b663bcf3
JM
2012 PR c++/4222, c++/5995
2013 * call.c (build_over_call): Fix empty class logic.
2014
0f4237c2
JM
2015 PR c++/3870
2016 * cp-tree.h (struct saved_scope): Add last_parms field.
2017 * decl.c (maybe_push_to_top_level): Save last_function_parms.
2018 (pop_from_top_level): Restore it.
2019
001ad76c
JM
2020 PR c++/4377
2021 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip
2022 NON_LVALUE_EXPRs.
2023
2024 PR c++/4003
ed2fa432
JM
2025 * pt.c (tsubst_friend_function): Use decl_namespace_context.
2026
ffd696af
JM
2027 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
2028 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
2029 type with a nontrivial destructor.
2030
f2606a97
JM
20312002-03-17 Jason Merrill <jason@redhat.com>
2032
2033 PR c++/4460
2034 * class.c (build_base_path): Virtual base layout is fixed in
2035 in-charge [cd]tors.
2036
52dabb6c
NB
20372002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
2038
2039 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
2040 * parse.y (yyparse): Remove macro.
2041
beb9c8a2
JM
20422002-03-17 Jason Merrill <jason@redhat.com>
2043
2044 PR c++/5757
2045 * init.c (build_new_1): Pass the right pointer to op delete.
2046
5dd236e2
NS
20472002-03-16 Nathan Sidwell <nathan@codesourcery.com>
2048
2049 PR c++/4361
2050 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
2051 conversion operators go.
2052 (struct lang_decl_flags): Add template_conv_p and unused
2053 bitfields.
2054 (DECL_TEMPLATE_CONV_FN_P): New macro.
2055 * call.c (build_user_type_conversion_1): Don't check second type
2056 conversion of overload set first.
2057 * class.c (add_method): Make sure templated conversion operators
2058 all end up on slot 2.
2059 * lex.c (do_identifier): A conversion operator token might be
2060 satisfied by a templated conversion operator.
5dd236e2
NS
2061 * pt.c (check_explicit_specialization): Use
2062 CLASSTYPE_FIRST_CONVERSION_SLOT.
2063 (template_parm_this_level_p): New function.
2064 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
8c152bad 2065 * search.c (lookup_fnfields_1): Template conversions will be on
5dd236e2
NS
2066 the first slot.
2067 * typeck.c (build_component_ref): Preserve the type of an
2068 conversion operator name on the overload type.
2069 (build_x_function_call): Retrieve the conversion operator name.
2070
0ba20759
RH
20712002-03-15 Richard Henderson <rth@redhat.com>
2072
2073 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
2074
6e4ae815
MM
20752002-03-15 Mark Mitchell <mark@codesourcery.com>
2076
2077 * cp-tree.h (CLEANUP_DECL): Remove.
2078 (CLEANUP_EXPR): Likewise.
2079 * decl.c (destroy_local_var): Simplify.
2080 (maybe_build_cleanup): Tidy.
2081 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
2082 * semantics.c (cp_expand_stmt): Likewise.
2083 * cp/tree.c (cp_statement_code_p): Likewise.
2084
5cc90635
JM
20852002-03-15 Jason Merrill <jason@redhat.com>
2086
6da794e8
JM
2087 PR c++/5857
2088 * decl.c (duplicate_decls): Use merge_types instead of common_type.
2089 * typeck.c (common_type): Just hand off to
2090 type_after_usual_arithmetic_conversions and
2091 composite_pointer_type.
2092 (merge_types): New fn.
2093 (commonparms): Use it instead of common_type.
2094 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
2095 (composite_pointer_type): Also handle attributes.
2096 * cp-tree.h: Declare merge_types.
2097
5cc90635
JM
2098 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
2099 variables.
2100 * decl2.c (maybe_make_one_only): Also mark the decl as needed.
2101
ecb0eece
RH
21022002-03-14 Richard Henderson <rth@redhat.com>
2103
2104 * decl.c: Include c-pragma.h.
2105 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
2106 * Make-lang.in: Update dependencies.
2107
d3f129b3
JJ
21082002-03-14 Jakub Jelinek <jakub@redhat.com>
2109
f6562b37 2110 PR c++/5908
d3f129b3
JJ
2111 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
2112 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
2113
049e6879
RS
21142002-03-12 Richard Sandiford <rsandifo@redhat.com>
2115
2116 * mangle.c (write_builtin_type): Handle 128-bit integers even if
2117 they are not a standard integer type.
2118
872c9284
RS
21192002-03-12 Richard Sandiford <rsandifo@redhat.com>
2120
2121 * cp-tree.h (init_init_processing): Remove declaration.
2122 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
2123 * decl.c (cxx_init_decl_processing): Don't call init_init_processing.
2124
2f9834e8
KG
21252002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2126
2127 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
2128 Define.
2129 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
2130 tree_code_length.
2131 * lex.c (cplus_tree_code_type, cplus_tree_code_length,
2132 cplus_tree_code_name): Delete.
2133 (cxx_init): Don't call add_c_tree_codes, instead set
2134 lang_unsafe_for_reeval. Don't try to copy into the various
2135 tree_code arrays.
2136
df867456
NS
21372002-03-12 Nathan Sidwell <nathan@codesourcery.com>
2138
2139 PR c++/5659
2140 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
2141 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
2142 definitions.
2143
ab04e34b
NS
21442002-03-11 Nathan Sidwell <nathan@codesourcery.com>
2145
2146 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>,
2147 DR209 is now not a defect.
2148 * cp-tree.h (skip_type_access_control): Remove.
2149 * decl.c (grokdeclarator): Do type access control for friend
2150 declarations.
2151 * semantics.c (decl_type_access_control): Don't reset
2152 current_type_lookups.
2153 (save_type_access_control): Always save the lookups.
2154 (skip_type_access_control): Remove.
2155 (finish_class_definition): Don't change type_lookups.
2156
999cc24c
NS
21572002-03-11 Nathan Sidwell <nathan@codesourcery.com>
2158
2159 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>,
2160 It is incorrect.
2161 * typeck.c (build_static_cast): Compare non-qualified types
2162 with pointer to member conversions.
2163
61eece67
DN
21642002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
2165 Daniel Berlin <dan@dberlin.org>
2166
2167 * cp-lang.c (ok_to_generate_alias_set_for_type): New function.
2168 (cxx_get_alias_set): Use it.
2169
644d28d4
KG
21702002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2171
2172 * cp-tree.h (stabilize_expr): Prototype.
2173
7e326356
CR
21742002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
2175
2176 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
2177 conditional return void.
2178
24965e7a
NB
21792002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
2180
2181 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
2182 * cp-tree.h (cxx_unsave): New.
2183 * tree.c (cp_unsave): Rename cxx_unsave, update prototype.
2184 (init_tree): Update.
2185
ca7558fc
KG
21862002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2187
2188 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
2189 explicit sizeof/sizeof.
2190 * decl2.c (cxx_decode_option): Likewise.
2191 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
2192
fd87b7a7
NS
21932002-03-02 Nathan Sidwell <nathan@codesourcery.com>
2194
2195 PR c++/775
2196 * decl.c (lookup_tag): Only reject enum/class mismatch, not
2197 class/union mismatch.
2198 * parse.y (check_class_key): New function.
2199 (structsp): Call it.
2200
bfba94bd
MM
22012002-03-01 Michael Matz <matz@suse.de>
2202
2203 * typeck.c (cp_pointer_int_sum): Complete inner type which is
2204 used later by size_in_bytes().
2205
fdc9bf29
PE
22062002-03-01 Phil Edwards <pme@gcc.gnu.org>
2207
2208 * cp-tree.h: Require __GNUC__ to be #defined.
2209 (build_init): Add missing prototype.
2210
6f30f1f1
JM
22112002-03-01 Jason Merrill <jason@redhat.com>
2212
2213 * except.c: Don't include decl.h or obstack.h. Do include
2214 tree-inline.h.
2215 (build_throw): Destroy temporaries from the thrown
500abaa8 2216 expression before calling __cxa_throw. Construct a thrown
6f30f1f1
JM
2217 temporary directly into the exception object.
2218 (stabilize_throw_expr): New function.
2219 (wrap_cleanups_r): New function.
2220 * tree.c (stabilize_expr): New function.
2221 * init.c (build_init): New function.
2222 * Make-lang.in (cp/except.o): Adjust .h deps.
2223
46cfb101
JM
22242002-02-28 Jason Merrill <jason@redhat.com>
2225
07f521fc
JM
2226 * search.c (lookup_base_r): Don't clear is_non_public just because
2227 we found a friendly scope.
2228
46cfb101
JM
2229 * decl.c (finish_function): Only warn about missing return
2230 statement with -Wreturn-type.
2231
63e1b1c4
NB
22322002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
2233
2234 * class.c (build_clone): Update.
2235 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
2236 * cp-tree.h (cxx_dup_lang_specific_decl): New.
2237 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
2238 (copy_decl): Update.
2239 * method.c (make_thunk): Update.
2240
f458d1d5
ZW
22412002-02-27 Zack Weinberg <zack@codesourcery.com>
2242
2243 * decl2.c: Delete traditional-mode-related code copied from
2244 the C front end but not used, or used only to permit the
2245 compiler to link.
2246
500abaa8 22472002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org>
3387d36e
CR
2248
2249 PR c++/4093
2250 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
2251 to void.
2252
25c8b645
JJ
22532002-02-22 Jakub Jelinek <jakub@redhat.com>
2254
2255 PR other/5746
2256 * semantics.c (finish_switch_cond): Don't call get_unwidened
2257 if error_mark_node.
2258
4f2b0fb2
NS
22592002-02-22 Nathan Sidwell <nathan@codesourcery.com>
2260
2261 PR c++/2645, DR 295
2262 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
2263 tf_keep_type_decl.
2264 (make_typename_type): Use tsubst_flags_t.
2265 * decl.c (make_typename_type): Adjust. Return non-artificial
2266 TYPE_DECLs, if required.
2267 (grokdeclarator): Simplify CVR qualification handling. Allow bad
2268 qualifiers on typedef types.
2269 * decl2.c (handle_class_head): Adjust make_typename_type call.
2270 * parse.y (nested_name_specifier): Likewise.
2271 (typename_sub0): Likewise.
2272 (typename_sub1): Likewise.
2273 * pt.c (convert_template_argument): Adjust make_typename_type
2274 return value.
2275 (tsubst): Adjust cp_build_qualified_type_real calls.
2276 (check_cv_quals_for_unify): Cope with alowing bad qualifications
2277 on template type parms.
2278 (instantiate_decl): Recheck substitutions to give warnings on bad
2279 qualifications.
2280 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
2281
8fc2ba41
AH
22822002-02-21 Aldy Hernandez <aldyh@redhat.com>
2283
84d901be 2284 * cp/decl.c (duplicate_decls): Merge always_inline attribute.
8fc2ba41 2285
84d901be
AD
2286 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
2287 unless DECL_ALWAYS_INLINE.
8fc2ba41 2288
7552da58
JJ
22892002-02-20 Jakub Jelinek <jakub@redhat.com>
2290
2291 * typeck.c (cp_pointer_int_sum): Renamed from
2292 pointer_int_sum, call pointer_int_sum.
2293
00fae85d
JJ
22942002-02-20 Jakub Jelinek <jakub@redhat.com>
2295
2296 * decl.c (duplicate_decls): Return 0 if issued error about
2297 redeclaration.
2298
6ea868b7
JM
22992002-02-19 Jason Merrill <jason@redhat.com>
2300
500abaa8 2301 ABI change: Mangle `void (A::*)() const' as
6ea868b7
JM
2302 M1AKFvvE, not MK1AFvvE.
2303 * mangle.c (write_function_type): Write cv-quals for member
2304 function type here.
2305 (write_pointer_to_member_type): Not here.
2306
c02f5e29
JM
23072002-02-18 Jason Merrill <jason@redhat.com>
2308
2309 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
2310 (do_decl_instantiation): Likewise.
2311
624a5800
CR
23122002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org>
2313
2314 PR c++/5685
2315 * decl.c (duplicate_decls): Make warning unconditional
2316 if duplicate default argument declarations are present.
2317
f6f8ada3
JJ
23182002-02-17 Jakub Jelinek <jakub@redhat.com>
2319
2320 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
2321 shortening.
2322
8d6e459d
NS
23232002-02-15 Nathan Sidwell <nathan@codesourcery.com>
2324
2325 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
2326 remove incorrect comment. Move #if 0'd code to common path. Use
2327 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
2328
ca4feb54
JM
23292002-02-13 Jason Merrill <jason@redhat.com>
2330
57d5032b
JM
2331 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
2332 (finish_function): Don't warn if current_function_returns_null.
2333
bb26522d
JM
2334 * typeck2.c (digest_init): Do handle values of vector type.
2335
ca4feb54
JM
2336 * typeck2.c (digest_init, process_init_constructor): Treat vectors
2337 like arrays.
2338
e6b9638b
JM
23392002-02-11 Jason Merrill <jason@redhat.com>
2340
2341 * parse.y (reserved_declspecs): Don't handle attributes.
2342 (reserved_typespecquals): Handle them here.
2343 * Make-lang.in (parse.c): Adjust expected conflicts.
2344
1cf537c5
JJ
23452002-02-08 Jakub Jelinek <jakub@redhat.com>
2346
2347 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
2348 instead of compstmt.
2349 (compstmt_or_stmtexpr): Renamed from compstmt.
2350 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
2351
c2ea3a40
NS
23522002-02-07 Nathan Sidwell <nathan@codesourcery.com>
2353
2354 Rename instantiate_type_flags to tsubst_flags_t & expand use.
2355 * cp-tree.h (instantiate_type_flags): Rename to ...
2356 (tsubst_flags_t): ... here. Rename itf_complain to tf_error,
2357 add tf_warning flag.
2358 (instantiate_type): Adjust prototype.
2359 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
2360 do_type_instantiation, cp_build_qualified_type_real): Likewise.
2361 cp_build_qualified_type: Adjust.
2362 * class.c (instantiate_type): Adjust parameter. Rename itf_* to
2363 tf_*.
2364 * call.c (standard_conversion): Rename itf_* to tf_*.
2365 (reference_binding): Likewise.
2366 (convert_like_real): Likewise.
2367 * cvt.c (cp_convert_to_pointer): Likewise.
2368 (convert_to_reference): Likewise.
2369 * decl.c (lookup_namespace_name): Use tf_* flags.
2370 (make_typename_type): Likewise.
2371 (grokdeclarator): Likewise.
2372 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
2373 (coerce_template_template_parms, convert_template_argument,
2374 coerce_template_parms, maybe_get_template_decl_from_type_decl,
2375 lookup_template_class, tsubst_friend_function, tsubst_friend_class,
500abaa8
AJ
2376 instantiate_class_template, tsubst_template_arg_vector,
2377 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
c2ea3a40 2378 tsubst_decl, tsubst_arg_types, tsubst_function_type,
500abaa8 2379 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
c2ea3a40 2380 instantiate_template, fn_type_unification,
500abaa8
AJ
2381 resolve_overloaded_unification, verify_class_unification,
2382 unify, get_bindings_real, do_type_instantiation,
2383 regenerate_decl_from_template, instantiate_decl,
c2ea3a40
NS
2384 tsubst_initializer_list, tsubst_enum,
2385 get_mostly_instantiated_function_type,
2386 invalid_nontype_parm_type_p): Likewise.
2387 * tree.c (cp_build_qualified_type_real): Likewise.
2388 * typeck.c (build_binary_op): Rename itf_* to tf_*.
2389 (build_ptrmemfunc): Likewise.
2390 (convert_for_assignment): Likewise.
2391
d5614afb
NS
23922002-02-07 Nathan Sidwell <nathan@codesourcery.com>
2393
2394 PR c++/109
2395 * decl.c (grokdeclarator): Allow friend declarations from
8d6e459d 2396 dependent types.
d5614afb
NS
2397 * decl2.c (handle_class_head): Don't push into template parm contexts.
2398 * pt.c (push_template_decl_real): Template parm contexts are never
2399 being defined.
2400
1af6141b
AO
24012002-02-05 Alexandre Oliva <aoliva@redhat.com>
2402
2403 * class.c: Include target.h.
2404 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
2405 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
2406 bit-field layout.
2407 * Make-lang.in: Adjust deps.
2408
d8a6f584
JM
24092002-02-05 Jason Merrill <jason@redhat.com>
2410
2411 * error.c (dump_type): Be more helpful about VECTOR_TYPE.
2412
6f9fdf4d
JJ
24132002-02-04 Jakub Jelinek <jakub@redhat.com>
2414
2415 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
2416 (finish_switch_cond): Set SWITCH_TYPE.
2417
14691f8d
RH
24182002-02-04 Richard Henderson <rth@redhat.com>
2419
2420 * method.c (use_thunk): Always initialize the block tree. Reindent.
2421 * semantics.c (expand_body): Emit thunks after function, not before.
2422
e89a6075
JM
24232002-02-04 Jason Merrill <jason@redhat.com>
2424
2425 * decl.c (start_function): Call cplus_decl_attributes immediately
2426 after grokdeclarator.
2427
2428 * decl.c (start_function): Combine DECL_RESULT handling code.
2429
9780c24f
JM
24302002-02-03 Jason Merrill <jason@redhat.com>
2431
2432 * xref.c: Remove.
2433 * Make-lang.in (CXX_OBJS): Remove cp/xref.o
2434 (cp/xref.o): Remove dependencies.
2435 * class.c (finish_struct_1, check_methods): Don't call xref fns.
2436 (finish_struct_1): Likewise.
2437 * friend.c (make_friend_class): Likewise.
2438 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
2439 * spew.c (read_process_identifier): Likewise.
2440
65f36ac8
JM
24412002-02-01 Jason Merrill <jason@redhat.com>
2442
efe49da0 2443 PR c++/4872
500abaa8 2444 * decl.c (finish_function): Warn about a non-void function with
efe49da0
JM
2445 no return statement and no abnormal exit.
2446 * cp-tree.h (struct cp_language_function): Add returns_abnormally.
2447 (current_function_returns_abnormally): New macro.
2448 * call.c (build_call): Set it.
2449
f2d9afec
JM
2450 * typeck.c (build_component_ref): Always complain about offsetof
2451 constructs on non-PODs. Only make it an error for members of
2452 virtual bases.
2453
65f36ac8
JM
2454 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
2455 (dump_function_decl): Always dump parms.
2456
2457 * decl2.c (finish_static_data_member_decl): Complain about a local
2458 class with a static data member.
2459
2460 PR c++/4286
2461 * search.c (lookup_field_1): Don't xref a static data member
2462 just because we looked it up.
2463
98884b26
JM
24642002-01-31 Jason Merrill <jason@redhat.com>
2465
b88c0704
JM
2466 * Make-lang.in (parse.c): Handle .output file.
2467
a588fe25
JM
2468 PR c++/3395
2469 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
2470 not TREE_TYPE.
2471 * semantics.c (finish_class_definition): Adjust.
2472
98884b26
JM
2473 Allow attributes in parms and casts.
2474 * parse.y (named_parm): Don't strip attrs.
2475 (declmods): Remove 'attributes' production.
2476 (nonempty_cv_qualifiers): Accept attributes.
2477 (ATTRIBUTE): Give precedence.
2478 * decl.c (groktypename): Handle attributes.
2479 (grokparms): Likewise.
2480
ffdeea47
JJ
24812002-01-29 Jakub Jelinek <jakub@redhat.com>
2482
2483 * decl2.c (cxx_decode_option): Pass 0 as last argument to
2484 cpp_handle_option.
2485 * lang-specs.h: Use cpp_unique_options instead of cpp_options
2486 when used together with cc1_options.
2487
b8b98c66
NS
24882002-01-29 Nathan Sidwell <nathan@codesourcery.com>
2489
2490 PR c++/5132
2491 * typeck2.c (digest_init): Make sure non-array core type is
2492 instantiated.
2493 * decl2.c (reparse_absdcl_as_casts): Just store the type in the
2494 constructor, rather than build a new one.
2495 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the
2496 PURPOSE of constructor elts.
2497
7437519c
ZW
24982002-01-23 Zack Weinberg <zack@codesourcery.com>
2499
2500 * Make-lang.in (parse.c): Adjust expected number of
2501 shift-reduce conflicts.
2502 (decl.o): Depend on diagnostic.h.
2503 * decl.c: Include diagnostic.h.
2504 (grokdeclarator): Check for null pointer.
2505 (finish_function): Don't abort when
2506 current_binding_level->parm_flag != 1, if errors have
2507 occurred; throw away the statement tree and extra binding
2508 levels, and continue.
2509 * lex.c (note_list_got_semicolon): Check for null pointer.
2510 * method.c (hack_identifier): Just return error_mark_node if
2511 value is error_mark_node.
2512 * parse.y (primary: TYPEID(type_id)): No need to use
2513 TYPE_MAIN_VARIANT here.
2514 (handler_seq): Accept an empty list of catch clauses and
2515 generate a fake handler block to avoid later crashes.
2516 (ansi_raise_identifier): Accept the error token too.
2517 * semantics.c (begin_class_definition,
2518 finish_class_definition): Check for error_mark_node.
2519
c588e52b
ZW
25202002-01-23 Zack Weinberg <zack@codesourcery.com>
2521
2522 * typeck2.c (friendly_abort): Delete definition.
2523 * cp-tree.h (friendly_abort): Don't prototype.
2524 (my_friendly_assert): Use fancy_abort.
2525
d55ecaa4
CR
25262002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
2527
2528 * cp-tree.h (my_friendly_abort): Remove.
2529
0a01c261
JJ
25302002-01-23 Jakub Jelinek <jakub@redhat.com>
2531
2532 * spew.c (pending_inlines, pending_inlines_tail,
2533 processing_these_inlines): Make static.
2534 (mark_pending_inlines): Remove static.
2535 (begin_parsing_inclass_inline): If in function, save pi
2536 for GC to cp_function_chain->unparsed_inlines instead.
2537 (process_next_inline): Likewise.
2538 * cp-tree.h (struct cp_language_function): Add unparsed_inlines.
2539 (mark_pending_inlines): Add prototype.
2540 * decl.c (spew_debug): Remove unused extern.
2541 (mark_lang_function): Call mark_pending_inlines.
2542
a98facb0
CR
25432002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
2544
c588e52b
ZW
2545 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
2546 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
2547 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
a98facb0
CR
2548 Change my_fancy_abort() to abort().
2549
f893c16e
JM
25502002-01-23 Jason Merrill <jason@redhat.com>
2551
608afcc5
JM
2552 PR c++/5453
2553 * class.c (fixed_type_or_null): Fix thinko.
2554
f893c16e
JM
2555 PR c++/3331
2556 * init.c (resolve_offset_ref): Use build_indirect_ref.
6bc34b14 2557
b2115575
JM
2558 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
2559
f893c16e
JM
25602002-01-22 Jason Merrill <jason@redhat.com>
2561
b5856475
JM
2562 * parse.y (function_body): Suppress the block for the outermost
2563 curly braces.
2564 * decl.c (pushdecl): Don't try to skip it.
2565 (begin_function_body): Keep the block we create, not the next one.
2566 * init.c (emit_base_init): Don't mess with keep_next_level.
2567
6bc34b14
JM
2568 * class.c (build_base_path): Tweak formatting.
2569
3807621a
NS
25702002-01-19 Nathan Sidwell <nathan@codesourcery.com>
2571
2572 Fix regression introduced with patch for c++/775
2573 * parse.y (class_head_defn): Check for template specializations
2574 with a different class-key.
2575
cdd2559c
JM
25762002-01-17 Jason Merrill <jason@redhat.com>
2577
2578 * decl.c (begin_constructor_body, begin_destructor_body): New fns.
2579 (begin_function_body): Call them and keep_next_level.
2580 * init.c (emit_base_init): Call keep_next_level.
2581 * semantics.c (setup_vtbl_ptr): Lose.
2582 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
2583 (vtbls_set_up_p): Lose.
2584 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
2585 * method.c (do_build_copy_constructor): Likewise.
2586 (synthesize_method): Call finish_mem_initializers.
2587 * parse.y (nodecls): Likewise.
ad6b1795
JM
2588
2589 * error.c (dump_type_suffix): Print the exception specs before
2590 recursing.
2591 (dump_function_decl): Here, too.
2592
2593 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
2594
195a5def
IR
25952002-01-10 Ira Ruben <ira@apple.com>
2596
6bc34b14 2597 PR c++/907
195a5def
IR
2598 * decl.c (start_method): Handle attrlist.
2599
f21ee879
JJ
26002002-01-10 Jakub Jelinek <jakub@redhat.com>
2601
2602 * decl2.c (max_tinst_depth): Increase default limit to 500.
2603
26042002-01-10 Graham Stott <grahams@redhat.com>
8fabd4e2
GS
2605
2606 * spew.c (YYCHAR): Uppercase macro parameter and add
2607 parenthesis.
2608 (YYCODE): Likewise.
2609 (NAME): Uppercase macro parameter.
2610
c3af729a
GS
26112002-01-09 Graham Stott <grahams@redhat.com>
2612
6bc34b14 2613 * decl.h (grokdeclarator): Wrap long line.
5d8b4235 2614
c3af729a
GS
2615 * semantics.c (FINISH_COND): Uppercase macro paramaters and
2616 add parenthesis.
2617
91800747
GS
26182002-01-08 Graham Stott <grahams@redhat.com>
2619
2620 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
2621 (PALLOC): Uppercase macro parameter and whitespace.
2622 (SALLOC): Uppercase macro parameter.
2623 (SFREE): Uppercase macros parameter, add parenthese and
2624 whitespace.
2625 (STREQL): Uppercase macro parameter and whitespace.
2626 (STRNEQ): Likewise.
2627 (STRLSS): Likewise.
2628 (STRLEQ): Likewise.
2629 (STRGTR): Likewise.
2630 (STRGEQ): Likewise.
2631
2632 * call.c (convert_like): Add parenthesis and wrap.
2633 (convert_like_with_context): Likewise.
2634 (ICS_RANK): Whitespace.
2635 (NEED_TEMPORARY_P): Remove parenthesis.
2636
2637 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
2638 whitespace.
2639 (VTT_MARKED_BINFO_P): Likewise.
2640
2641 * decl.c (BINDING_LEVEL): Add parenthesis.
2642 (DEF_OPERATOR): Likewise.
2643
91800747
GS
2644 * mangle.c (MANGLE_TRACE): Add parenthesis.
2645 (MANGLE_TRACE_TREE): Likewise.
2646 (write_signed_number): Likewise.
2647 (write_unsigned_number): Likewise.
2648
2649 * pt.c (ccat): Uppercase macro parameter.
2650 (cat): Likewise
2651
2652 * search.c (SET_BINFO_ACCESS): Add parenthesis.
2653
15eb1e43
JM
26542002-01-07 Jason Merrill <jason@redhat.com>
2655
2656 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
2657 to pedwarn.
2658
6bc34b14 2659 PR c++/3536
15eb1e43
JM
2660 * method.c (make_thunk): If !flag_weak, give the thunk the
2661 function's linkage.
2662 (use_thunk): Here, too.
2663
b34c06e3
GS
26642002-01-07 Graham Stott <grahams@redhat.com>
2665
6bc34b14
JM
2666 * error.c: Update copyright date.
2667 (print_scope_operator): Add parenthesis.
2668 (print_left_paren): Likewise.
2669 (print_right_paren): Likewise.
2670 (print_left_bracket): Likewise.
2671 (print_right_bracket): Likewise.
2672 (print_template_argument_list_start): Likewise.
2673 (print_template_argument_list_end): Likewise.
2674 (print_non_consecutive_character): Likewise.
2675 (print_tree_identifier): Likewise.
2676 (print_identifier): Likewise.
2677 (NEXT_CODE): Uppercase macro parameter.
2678 (ident_fndecl): Delete unused.
2679 (GLOBAL_THING): Likewise.
b34c06e3 2680
98e40e83
GS
26812002-01-06 Graham Stott <grahams@redhat.com>
2682
2683 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
2684 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
2685 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
2686 (RECORD_OR_UNION_TYPE_CHECK): Likewise.
2687 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
2688 (C_IS_RESERVED_WORD): Uppercase macro parameter.
2689 (C_RID_YYCODE) Likewise.
2690 (ptrmem_cst): Use rtx.
2691 (LOCAL_BINDING_P): Add whitespace.
2692 (INHERITED_VALUE_BINDING_P): Likewise.
2693 (BINDING_SCOPE): Wrap long line.
2694 (BINDING_HAS_LEVEL_P): Remove parenthesis.
2695 (BINDING_VALUE): Wrap long line.
2696 (BINDING_TYPE): Whitespace.
2697 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
2698 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
c588e52b 2699 (IDENTIFIER_NAMESPACE_VALUE): Likewise.
98e40e83
GS
2700 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
2701 (same_type_p): Uppercase macro parameters.
2702 (same_type_ignoring_top_level_qualifiers_p): Likewise.
2703 (OVL_FUNCTION): Wrap long line.
2704 (OVL_CHAIN): Whitespace.
b34c06e3 2705 (OVL_CURRENT): Add parenthesis and whitespace.
98e40e83
GS
2706 (OVL_NEXT): Whitespace.
2707 (OVL_USED): Likewise.
2708 (IDENTIFIER_TYPE_VALUE): Likewise.
2709 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
2710 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
2711 (LANG_ID_FIELD): Whitespace.
2712 (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
2713 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
2714 (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
2715 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
2716 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
2717 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
2718 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
2719 (IDENTIFIER_VIRTUAL_P): Likewise.
2720 (IDENTIFIER_OPNAME_P): Likewise.
2721 (IDENTIFIER_TYPENAME_P): Remove parenthesis.
2722 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
2723 (C_SET_EXP_ORIGINAL_CODE): Likewise.
2724 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
2725 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
2726 (IS_AGGR_TYPE): Uppercase macro parameter.
2727 (CLASS_TYPE_P): Likewise.
2728 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
2729 (IS_AGGR_TYPE_2): Whitespace.
2730 (TAGGED_TYPE_P): Uppercase macro parameter.
2731 (TYPE_BUILT_IN): Whitespace.
2732 (TYPE_FOR_JAVA): Likewise.
2733 (FUNCTION_ARG_CHAIN): Remove parenthesis.
2734 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
2735 (FUNCTION_FIRST_USER_PARAM): Likewise.
2736 (PROMOTES_TO_AGGR_TYPE): Whitespace.
2737 (DERIVED_FROM_P): Add parenthesis and wrap.
2738 (UNIQUELY_DERIVED_FROM_P): Likewise.
2739 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
2740 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
2741 (CLASSTYPE_USE_TEMPLATE): Whitespace.
2742 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
2743 (TYPE_GETS_DELETE): Add parenthesis.
2744 (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
2745 (TYPE_HAS_ASSIGN_REF): Likewise,
2746 (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
2747 (TYPE_HAS_INIT_REF): Likewise.
2748 (TYPE_HAS_CONST_INIT_REF): Likewise.
2749 (TYPE_BEING_DEFINED): Likewise.
2750 (TYPE_LANG_SPECIFIC): Likewise.
2751 (CLASSTYPE_RTTI): Likewise.
2752 (TYPE_OVERLOADS_CALL_EXPR): Likewise.
2753 (TYPE_OVERLOADS_ARRAY_REF): Likewise.
2754 (TYPE_OVERLOADS_ARROW): Likewise.
2755 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
2756 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
2757 (CLASSTYPE_METHOD_VEC): Likewise.
2758 (CLASSTYPE_MARKED_N): Likewise.
2759 (CLASSTYPE_MARKED): Likewise.
2760 (CLASSTYPE_MARKED2): Likewise.
2761 (CLASSTYPE_MARKED3): Likewise.
2762 (CLASSTYPE_MARKED4): Likewise.
2763 (CLASSTYPE_MARKED5): Likewise.
2764 (CLASSTYPE_MARKED6): Likewise.
2765 (SET_CLASSTYPE_MARKED): Whitespace.
2766 (CLEAR_CLASSTYPE_MARKED): Likewise.
2767 (SET_CLASSTYPE_MARKED2): Likewise.
2768 (CLEAR_CLASSTYPE_MARKED2): Likewise.
2769 (SET_CLASSTYPE_MARKED3): Likewise.
2770 (CLEAR_CLASSTYPE_MARKED3): Likewise.
2771 (SET_CLASSTYPE_MARKED4): Likewise.
2772 (CLEAR_CLASSTYPE_MARKED4): Likewise.
2773 (SET_CLASSTYPE_MARKED5): Likewise.
2774 (CLEAR_CLASSTYPE_MARKED5): Likewise.
2775 (SET_CLASSTYPE_MARKED6): Likewise.
2776 (CLEAR_CLASSTYPE_MARKED6): Likewise.
2777 (CLASSTYPE_TAGS): Likewise.
2778 (CLASSTYPE_VSIZE): Likewise.
2779 (CLASSTYPE_VBASECLASSES): Likewise.
2780 (CANONICAL_BINFO): Add parenthesis.
2781 (CLASSTYPE_SIZE(NODE): Likewise.
2782 (CLASSTYPE_SIZE_UNIT): Likewise.
2783 (CLASSTYPE_ALIGN(NODE): Likewise.
2784 (CLASSTYPE_USER_ALIGN): Likewise.
2785 (TYPE_JAVA_INTERFACE): Likewise.
2786 (CLASSTYPE_PURE_VIRTUALS): Likewise.
2787 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
2788 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
2789 (CLASSTYPE_HAS_MUTABLE): Likewise.
2790 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
2791 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
2792 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
2793 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
2794 (CLASSTYPE_INTERFACE_ONLY): Likewise.
2795 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
2796 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
2797 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
2798 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
2799 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
2800 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
2801 (BINFO_UNSHARED_MARKED): Whitespace.
2802 (BINFO_MARKED): Whitespace and wrap.
2803 (SET_BINFO_MARKED): Likewise.
2804 (CLEAR_BINFO_MARKED): Likewise.
2805 (BINFO_VTABLE_PATH_MARKED): Likewise.
2806 (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
2807 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
2808 (BINFO_SUBVTT_INDEX): Remove parenthesis.
2809 (BINFO_VPTR_INDEX): Likewise.
2810 (BINFO_PRIMARY_BASE_OF): Likewise,
2811 (CLASSTYPE_VFIELDS): Whitespace.
2812 (VF_DERIVED_VALUE): Wrap long line.
2813 (NAMESPACE_LEVEL): Whitespace.
6bc34b14
JM
2814 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
2815 (DEFARG_POINTER): Whitespace.
2816 (DECL_NEEDED_P): Remove parenthesis.
2817 (DECL_LANGUAGE): Whitespace.
2818 (SET_DECL_LANGUAGE): Add parenthesis.
2819 (DECL_CONSTRUCTOR_P): Whitespace and wrap.
2820 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
2821 (DECL_IN_AGGR_P): Whitespace.
2822 (DECL_FRIEND_P): Likewise.
2823 (DECL_BEFRIENDING_CLASSES): Likewise.
2824 (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
2825 (DECL_NONCONVERTING_P): Whitespace.
2826 (DECL_PURE_VIRTUAL_P): Likewise.
2827 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
2828 (DECL_PENDING_INLINE_INFO): Whitespace.
2829 (DECL_SORTED_FIELDS): Likewise.
2830 (DECL_DEFERRED_FN): Likewise.
2831 (DECL_TEMPLATE_INFO): Likewise.
2832 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
2833 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
2834 (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
2835 (TMPL_ARGS_LEVEL): Likewise.
2836 (SET_TMPL_ARGS_LEVEL): Likewise.
2837 (INNERMOST_TEMPLATE_PARMS): Whitespace.
2838 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
2839 (INTEGRAL_CODE_P(CODE): Add parenthesis.
2840 (CP_INTEGRAL_TYPE_P): Remove parenthesis.
2841 (TYPE_HAS_CONSTRUCTOR): Whitespace.
2842 (TREE_HAS_CONSTRUCTOR): Likewise.
2843 (TYPE_HAS_DESTRUCTOR): Likewise.
2844 (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
2845 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
2846 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
2847 (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
2848 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
2849 (TYPE_PTRMEMFUNC_P): Likewise.
2850 (TYPE_PTRMEMFUNC_FLAG): Likewise.
2851 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
2852 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
2853 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
2854 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
2855 (DECL_ACCESS): Whitespace.
2856 (DECL_GLOBAL_CTOR_P): Remove parenthesis.
2857 (DECL_GLOBAL_DTOR_P): Likewise.
2858 (GLOBAL_INIT_PRIORITY): Likewise.
98e40e83 2859 (DECL_TEMPLATE_PARMS): Likewise.
6bc34b14
JM
2860 (DECL_TEMPLATE_RESULT): Likewise.
2861 (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
2862 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
2863 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
2864 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
2865 (PRIMARY_TEMPLATE_P): Add parenthesis.
2866 (DECL_USE_TEMPLATE): Whitespace.
2867 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
2868 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
2869 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
2870 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
2871 (CALL_DECLARATOR_PARMS): Remove parenthesis.
2872 (CALL_DECLARATOR_QUALS): Likewise.
2873 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
2874 (TEMP_NAME_P): Wrap.
2875 (VFIELD_NAME_P): Likewise.
2876 (B_SET): Uppercase macro parameters and add parenthesis.
2877 (B_CLR): Likewise.
2878 (B_TST): Likewise.
2879 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
2880 (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
2881 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
2882 (same_or_base_type_p): Likewise.
2883 (cp_deprecated): Likewise.
98e40e83 2884
c28abdf0
RH
28852002-01-05 Richard Henderson <rth@redhat.com>
2886
15eb1e43 2887 * semantics.c (expand_body): Revert last change.
c28abdf0 2888
f11ee281
JM
28892002-01-04 Jason Merrill <jason@redhat.com>
2890
195a5def 2891 PR c++/4122
f11ee281
JM
2892 * class.c (update_vtable_entry_for_fn): Set delta to zero for a
2893 lost primary.
2894
2895 * class.c (build_vtbl_initializer): Check for a lost primary
2896 before calculating the vtable entry to throw away.
2897
a4200657
JM
28982002-01-02 Jason Merrill <jason@redhat.com>
2899
2900 * semantics.c (expand_body): Call outlining_inline_function when
2901 emitting an inline function out of line.
2902
40e593d7
NS
29032002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2904
2905 PR c++/5116, c++/764 reversion
2906 * call.c (build_new_op): Revert the instantiations. They are
2907 incorrect.
c588e52b 2908
323728aa
NS
29092002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2910
2911 PR c++/5089
2912 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
2913
46c895ac
NS
29142002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2915
2916 PR c++/3716
2917 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
2918 (tsubst, case POINTER_TYPE): Handle pmfs here.
2919 (tsubst, case OFFSET_TYPE): Check it is not an offset to
2920 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
2921
833aa4c4
NS
29222002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2923
2924 PR c++/35
2925 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
2926 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
2927 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
2928 PARM_DECL.
2929 (tsubst_template_parms): Break up loop statements.
2930 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
2931 parm PARM_DECLs don't get promoted.
2932
18976b21
NS
29332002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2934
2935 PR c++/5123
2936 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
2937 (build_x_function_call): Cope with a COMPONENT_REF containing a
2938 TEMPLATE_ID_EXPR.
2939
303d1c55
NS
29402002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2941
2942 PR c++/5213
2943 * pt.c (convert_template_argument): Be more careful determining
2944 when RECORD_TYPE templates are or are not templates.
2945
d46a33b3
NS
29462002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2947
2948 PR c++/775
2949 * cp-tree.h (handle_class_head): Adjust prototype.
2950 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
2951 parameters. Use for all class heads.
2952 * parse.y (named_class_head_sans_basetype, named_class_head,
2953 named_complex_class_head_sans_basetype,
2954 named_class_head_sans_basetype_defn,
2955 unnamed_class_head): Remove.
2956 (class_head, class_head_apparent_template): Recognize class heads
2957 (class_head_decl, class_head_defn): New reductions. Process class
2958 heads.
2959 (structsp): Adjust class definition and class declaration
2960 reductions.
2961 (maybe_base_class_list): Give diagnostic on empty list.
2962
4542128e
NS
29632002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2964
2965 PR c++/4379
2966 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
2967 single non-static member.
2968 (unary_complex_lvalue): If it cannot be a pointer to member, don't
2969 make it so. Check it is not pointer to reference.
2970
903c6234
NS
29712002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2972
2973 PR c++/5132
2974 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
2975 are processing a template decl.
2976
477558bf
NS
29772002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2978
2979 PR c++/5116, c++/764
2980 * call.c (build_new_op): Make sure template class operands are
2981 instantiated. Simplify arglist construction.
2982
41f5d4b1
NS
29832001-12-29 Nathan Sidwell <nathan@codesourcery.com>
2984
2985 * call.c (build_user_type_conversion_1): Use my_friendly_assert
2986 rather than if ... abort.
2987 * cvt.c (convert_to_reference): Likewise.
2988 * semantics.c (setup_vtbl_ptr): Likewise.
2989 * pt.c (lookup_template_class): Comment typo.
c588e52b 2990
f3368a90
NS
29912001-12-29 Nathan Sidwell <nathan@codesourcery.com>
2992
2993 PR c++/5125
2994 * pt.c (push_template_decl_real): Make sure DECL has
2995 DECL_LANG_SPECIFIC.
2996
03c9c274
NS
29972001-12-29 Nathan Sidwell <nathan@codesourcery.com>
2998
2999 PR c++/335
3000 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
3001 for non-reference fields.
3002 * typeck.c (require_complete_type): Use resolve_offset_ref).
3003
7d8e8369
NS
30042001-12-26 Nathan Sidwell <nathan@codesourcery.com>
3005
3006 PR c++/196
03c9c274 3007 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
7d8e8369 3008
a56ca899
NS
30092001-12-24 Nathan Sidwell <nathan@codesourcery.com>
3010
3011 PR c++/160
3012 * typeck.c (build_modify_expr): Remove old unreachable code & tidy
3013 up. Don't stabilize_references when initializing a reference.
3014
0b5826ac
KG
30152001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3016
3017 * decl2.c (lang_f_options): Const-ify.
3018
38be19f6
JM
30192001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
3020
3021 * config-lang.in (diff_excludes): Remove.
3022
2e4cf9dc
NS
30232001-12-19 Nathan Sidwell <nathan@codesourcery.com>
3024
3025 PR c++/90
3026 * typeck.c (build_function_call_real): Use original function
3027 expression for errors.
3028
00e4119c
JM
30292001-12-18 Jason Merrill <jason@redhat.com>
3030
195a5def 3031 PR c++/3242
00e4119c
JM
3032 * class.c (add_method): Do compare 'this' quals when trying to match a
3033 used function. Don't defer to another used function.
3034
3ad97789
NS
30352001-12-18 Nathan Sidwell <nathan@codesourcery.com>
3036
3037 * pt.c (instantiate_clone): Remove, fold into ...
3038 (instantiate_template): ... here. Simplify by removing mutual
3039 recursion.
3040 * typeck2.c (build_m_component_ref): Don't cv qualify the function
3041 pointed to by a pointer to function.
3042 * class.c (delete_duplicate_fields_1): Typo.
3043
f21add07
JM
30442001-12-18 Jason Merrill <jason@redhat.com>
3045
3046 C++ ABI change: destroy value arguments in caller.
3047 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
3048 create an extra binding level for the parameters.
3049 * decl.c (store_parm_decls): Don't do parameter cleanups.
3050
ea50ad82
NS
30512001-12-18 Nathan Sidwell <nathan@codesourcery.com>
3052
3053 * call.c (build_new_method_call): Use '%#V'.
3054 * error.c (cv_to_string): Use V parameter to determine padding.
3055
3855d0d1
JM
30562001-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
3057
3058 * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
3059 spellings in messages.
3060
33bd39a2
ZW
30612001-12-17 Zack Weinberg <zack@codesourcery.com>
3062
3063 * cp-tree.h: Delete #defines for cp_error, cp_warning,
3064 cp_pedwarn, and cp_compiler_error.
3065 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
3066 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
3067 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
3068 typeck2.c: Change calls to the above macros to use their
3069 language-independent equivalents: error, warning, pedwarn, and
3070 internal_error respectively.
3071
317c26c3
NB
30722001-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
3073
3074 * decl2.c (finish_file): Remove back_end_hook.
3075
aba649ba
JM
30762001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
3077
3078 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
3079 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
3080 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
3081
1737c953
JM
30822001-12-15 Joseph S. Myers <jsm28@cam.ac.uk>
3083
3084 * lang-options.h: Use American spelling in messages.
3085
4a90862e
JM
30862001-12-13 Jason Merrill <jason@redhat.com>
3087
ade3dc07
JM
3088 * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
3089
3090 Use cleanups to run base and member destructors.
3091 * init.c (push_base_cleanups): New function, split out from...
3092 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code.
3093 * decl.c (finish_destructor_body): Move vbase destruction code to
3094 push_base_cleanups.
3095 (begin_function_body, finish_function_body): New fns.
3096 (finish_function): Move [cd]tor handling and call_poplevel to
3097 finish_function_body.
3098 (pushdecl): Skip the new level.
3099 * semantics.c (genrtl_try_block): Don't call end_protect_partials.
3100 (setup_vtbl_ptr): Call push_base_cleanups.
3101 * method.c (synthesize_method): Call {begin,end}_function_body.
3102 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
3103 * cp-tree.h: Declare new fns.
3104 * parse.y (function_body, .begin_function_body): New nonterminals.
3105 (fndef, pending_inline, function_try_block): Use function_body.
3106 (ctor_initializer_opt, function_try_block): No longer has a value.
3107 (base_init): Remove .set_base_init token.
3108 (.set_base_init, compstmt_or_error): Remove.
3109 * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
3110
4a90862e
JM
3111 * optimize.c (maybe_clone_body): Fix parameter updating.
3112
a0de9d20
JM
31132001-12-12 Jason Merrill <jason@redhat.com>
3114
3115 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
3116 * semantics.c (genrtl_start_function): Don't pass
3117 parms_have_cleanups or push an extra binding level.
3118 (genrtl_finish_function): Lose cleanup_label cruft.
3119
3120 * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
3121 (ctor_label): Remove.
3122 * semantics.c (finish_return_stmt): Lose ctor_label support.
3123 * decl.c (finish_constructor_body, mark_lang_function): Likewise.
33bd39a2 3124 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
a0de9d20
JM
3125 dtor_label.
3126
3127 * call.c (build_new_method_call): Let resolves_to_fixed_type_p
3128 check for [cd]tors.
3129 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
3130
3131 * decl.c (finish_function): Check VMS_TARGET, not VMS.
3132
3133 * decl.c (start_cleanup_fn): Remove redundant pushlevel.
3134 (end_cleanup_fn): And poplevel.
3135
3136 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
3137 if we're in a template.
3138
dc5c569a
JJ
31392001-12-12 Jakub Jelinek <jakub@redhat.com>
3140
3141 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
3142 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
3143 THIS_NAME_P): Delete.
3144 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
3145 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
3146 with internal naming scheme.
3147 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
3148
ad1a6d45
NS
31492001-12-12 Nathan Sidwell <nathan@codesourcery.com>
3150
3151 * decl.c (grokdeclarator): Deprecated implicit typename use.
3152
270d8c65
NS
31532001-12-11 Nathan Sidwell <nathan@codesourcery.com>
3154
3155 PR g++/51
3156 * parse.y (frob_specs): Indicate it is a language linkage which
3157 contained the extern.
3158 * decl.c (grokdeclarator): Allow extern language linkage with
3159 other specifiers.
3160
9aaceb4b
NS
31612001-12-10 Nathan Sidwell <nathan@codesourcery.com>
3162
3163 PR g++/72
3164 * decl.c (add_binding): Don't reject duplicate typedefs involving
3165 template parameters.
3166
a23c9413
NB
31672001-12-10 Neil Booth <neil@daikokuya.demon.co.uk>
3168
3169 * parse.y, semantics.c: Similarly.
3170
9aaceb4b 31712001-12-09 Nathan Sidwell <nathan@codesourcery.com>
271e6f02
NS
3172
3173 PR g++/87
3174 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
3175 (copy_args_p): Rename to ...
3176 (copy_fn_p): ... here.
3177 (grok_special_member_properties): New function.
3178 (grok_op_properties): Lose VIRTUALP parameter.
3179 (copy_assignment_arg_p): Remove.
3180 * call.c (build_over_call): Use copy_fn_p.
3181 * decl.c (grokfndecl): Reformat. Adjust call to
3182 grok_op_properties.
3183 (copy_args_p): Rename to ...
3184 (copy_fn_p): ... here. Reject template functions. Check for pass
3185 by value.
3186 (grok_special_member_properties): Remember special functions.
3187 (grok_ctor_properties): Don't remember them here, just check.
3188 (grok_op_properties): Likewise.
3189 (start_method): Call grok_special_member_properties.
3190 * decl2.c (grokfield): Likewise.
3191 (copy_assignment_arg_p): Remove.
3192 (grok_function_init): Don't remember abstract assignment here.
3193 * pt.c (instantiate_class_template): Call
3194 grok_special_member_properties.
3195 (tsubst_decl): Adjust grok_op_properties call.
3196
bdd8737f
AH
31972001-12-08 Aldy Hernandez <aldyh@redhat.com>
3198
33bd39a2
ZW
3199 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
3200 RID_TYPES_COMPATIBLE_P.
bdd8737f 3201
46af705a
JDA
32022001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
3203
3204 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
3205 call to build_aggr_init.
3206 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
3207
cb97d97d
NB
32082001-12-08 Neil Booth <neil@daikokuya.demon.co.uk>
3209
3210 * parse.y: Replace uses of the string non-terminal with STRING.
3211 Don't perform string concatentaion here.
3212 (string): Remove non-terminal.
3213 * semantics.c (finish_asm_stmt): Don't concatenate strings here.
3214
742a37d5
JM
32152001-12-05 Jason Merrill <jason@redhat.com>
3216
3217 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
3218 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
3219 * tree.c (cp_start_inlining, cp_end_inlining): New fns.
3220 * pt.c (push_tinst_level): No longer static.
3221 * cp-tree.h: Declare them.
3222
3223 * init.c (resolve_offset_ref): Don't check access for the base
3224 conversion to access a FIELD_DECL.
3225
3226 * cp-tree.h (TYPE_REFFN_P): New macro.
3227 * decl.c (bad_specifiers): Check it, too.
3228
3229 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
3230 on the __*_type_info type if we haven't seen a definition.
3231
26f943fd
NB
32322001-12-05 Neil Booth <neil@daikokuya.demon.co.uk>
3233
3234 * decl.c: Include c-common.h.
3235 (shadow_warning): Move to c-common.c.
3236
37a08a29
RK
3237Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3238
3239 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
3240
9471d3e2
NS
32412001-12-04 Nathan Sidwell <nathan@codesourcery.com>
3242
3243 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
3244
713ccd0c
NS
32452001-12-04 Nathan Sidwell <nathan@codesourcery.com>
3246
3247 PR g++/164
3248 * init.c (sort_base_init): Allow binfos to be directly specified.
3249 * method.c (do_build_copy_constructor): Explicitly convert to the
3250 base instance.
3251 (do_build_assign_ref): Likewise.
3252
591382c4
HPN
32532001-12-03 Hans-Peter Nilsson <hp@bitrange.com>
3254
3255 * decl.c (xref_basetypes): Don't use C99 construct in tag_code
3256 declaration and initialization.
3257
c725bd79
NB
32582001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
3259
3260 * typeck2.c: Remove leading capital from diagnostic messages, as
3261 per GNU coding standards.
3262
a5d7c4a3
MK
32632001-12-03 Mumit Khan <khan@nanotech.wisc.edu>
3264
3265 PR c++/3394
9fe038e8
HPN
3266 * decl.c (xref_basetypes): Handle attributes between
3267 'class' and name.
a5d7c4a3 3268
f1880e13
NS
32692001-12-03 Nathan Sidwell <nathan@codesourcery.com>
3270
3271 PR g++/3381
3272 * parse.y (named_complex_class_head_sans_basetype): Add new
3273 reduction.
3274 * Make-lang.in (parse.c): Adjust expected conflict count.
3275
ff668506
JM
32762001-12-03 Jason Merrill <jason@redhat.com>
3277
3278 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
3279 immediate binfos for our virtual bases.
3280
1f978f5f
NB
32812001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
3282
3283 * call.c (build_java_interface_fn_ref): Similarly.
3284 * except.c (is_admissible_throw_operand): Similarly.
3285 * init.c (build_java_class_ref): Similarly.
3286 * xref.c (open_xref_file): Similarly.
3287
357351e5
NB
32882001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
3289
3290 * class.c (finish_struct): Remove trailing periods from messages.
3291 * decl.c (check_tag_decl): Similarly.
3292 * lex.c (cxx_set_yydebug): Similarly.
3293 * typeck2.c (friendly_abort): Similarly.
3294
998979e6
MM
32952001-11-29 Mark Mitchell <mark@codesourcery.com>
3296
3297 PR c++/3048
3298 * cp-tree.h (ovl_member): Remove.
33bd39a2 3299 * decl2.c (merge_functions): Handle extern "C" functions
998979e6
MM
3300 specially.
3301 * tree.c (ovl_member): Remove.
3302
7d5b8b11
MM
33032001-11-29 Mark Mitchell <mark@codesourcery.com>
3304
3305 PR c++/4842
3306 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
3307 FUNCTION_DECL, as input.
3308 (mark_overriders): Remove.
3309 (warn_hidden): Rework for the new ABI.
3310
b67db529
MM
33112001-11-29 Mark Mitchell <mark@codesourcery.com>
3312
3313 PR c++/3471
3314 * call.c (convert_like_real): Do not build additional temporaries
3315 for rvalues of class type.
3316
2db1ab2d
NS
33172001-11-28 Nathan Sidwell <nathan@codesourcery.com>
3318
3319 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
3320 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
3321 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
3322 (DERIVED_FROM_P): Likewise.
3323 (enum base_access): Renumber, add ba_quiet bit mask.
3324 (get_binfo): Remove.
3325 (get_base_distance): Remove.
3326 (binfo_value): Remove.
3327 (ACCESSIBLY_DERIVED_FROM_P): Remove.
3328 * call.c (standard_conversion): Use lookup_base.
3329 * class.c (strictly_overrides): Likewise.
3330 (layout_virtual_bases): Likewise.
3331 (warn_about_ambiguous_direct_bases): Likewise.
3332 (is_base_of_enclosing_class): Likewise.
3333 (add_vcall_offset_vtbl_entries_1): Likewise.
3334 * cvt.c (build_up_reference): Adjust comment.
3335 * init.c (build_member_call): Reformat.
3336 * search.c (get_binfo): Remove.
3337 (get_base_distance_recursive): Remove.
3338 (get_base_distance): Remove.
3339 (lookup_base_r): Tweak.
3340 (lookup_base): Add ba_quiet control. Complete the types here.
3341 (covariant_return_p): Use lookup_base.
3342 * tree.c (binfo_value): Remove.
3343 (maybe_dummy_object): Use lookup_base.
3344 * typeck.c (build_static_cast): Use lookup_base.
3345 (get_delta_difference): Likewise.
3346 * typeck2.c (binfo_or_else): Use lookup_base.
3347 (build_scoped_ref): Add back error_mark_check.
3348 (build_m_component_ref): Use lookup_base.
3349
d3945f0a
JM
33502001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
3351
3352 * Make-lang.in (c++.generated-manpages): New dummy target.
3353
ac79cd5a
RK
3354Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3355
3356 * Make-lang.in (cp-lang.o): Depends on c-common.h.
3357 * cp-lang.c (c-common.h): Include.
3358 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
3359 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
3360 * expr.c (init_cplus_expand): Don't set lang_expand_constant.
3361
4d6baafa
NB
33622001-11-26 Neil Booth <neil@daikokuya.demon.co.uk>
3363
3364 * decl2.c (c_language): Move to c-common.c.
3365 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
3366 functions.
3367 (cxx_init): Update.
3368
5b0c5896
JM
33692001-11-26 Jason Merrill <jason@redhat.com>
3370
3371 * call.c (joust): Remove COND_EXPR hack.
3372
4bdd26e6
AH
33732001-11-25 Aldy Hernandez <aldyh@redhat.com>
3374
195a5def 3375 * search.c (lookup_base_r): Declare bk in variable declaration
4bdd26e6 3376 space.
33bd39a2 3377
338d90b8
NS
33782001-11-25 Nathan Sidwell <nathan@codesourcery.com>
3379
3380 PR g++/3145
3381 * class.c (build_vbase_pointer): Remove.
3382 (build_vbase_path): Remove.
3383 (build_base_path): New function.
3384 * cp-tree.h (base_access, base_kind): New enumerations.
3385 (build_base_path): Declare.
3386 (convert_pointer_to_real): Remove.
3387 (convert_pointer_to): Remove.
3388 (lookup_base): Declare.
3389 (convert_pointer_to_vbase): Remove.
3390 * call.c (build_scoped_method_call): Use lookup_base &
3391 build_base_path instead of convert_pointer_to_real,
3392 get_base_distance & get_binfo.
3393 (build_over_call): Likewise.
3394 * cvt.c (cp_convert_to_pointer): Likewise.
3395 (convert_to_pointer_force): Likewise.
3396 (build_up_reference): Likewise.
3397 (convert_pointer_to_real): Remove.
3398 (convert_pointer_to): Remove.
3399 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
3400 instead of convert_pointer_to_vbase & build_vbase_path.
3401 (emit_base_init): Use build_base_path instead of
3402 convert_pointer_to_real.
3403 (expand_virtual_init): Lose unrequired conversions.
3404 (resolve_offset_ref): Use lookup_base and build_base_path
3405 instead of convert_pointer_to.
3406 * rtti.c (build_dynamic_cast_1): Use lookup_base &
3407 build_base_path instead of get_base_distance & build_vbase_path.
3408 * search.c (get_vbase_1): Remove.
3409 (get_vbase): Remove.
3410 (convert_pointer_to_vbase): Remove.
07f521fc 3411 (lookup_base_r): New function.
338d90b8
NS
3412 (lookup_base): New function.
3413 * typeck.c (require_complete_type): Use lookup_base &
3414 build_base_path instead of convert_pointer_to.
3415 (build_component_ref): Likewise.
3416 (build_x_function_call): Likewise.
3417 (get_member_function_from_ptrfunc): Likewise.
3418 (build_component_addr): Likewise.
3419 * typeck2.c (build_scoped_ref): Likewise.
3420
89d684bb
BM
34212001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3422
3423 * cp-tree.h (CP_TYPE_QUALS): Removed.
3424 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
33bd39a2 3425 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
89d684bb 3426 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
33bd39a2 3427 * dump.c (cp_dump_tree): Use void* dump_info argument to match
89d684bb
BM
3428 lang-hooks prototype.
3429 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
3430 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
3431 CP_TYPE_QUALS changed to cp_type_quals.
3432 * Make-lang.in: References to c-dump.h changed to tree-dump.h.
3433 (CXX_C_OBJS): Remove c-dump.o.
3434
12eb9f93 34352001-11-21 Mark Mitchell <mark@codesourcery.com>
2d2e8123
MM
3436
3437 PR c++/3637
12eb9f93
MM
3438 * pt.c (lookup_template_class): Ensure that all specializations
3439 are registered on the list corresponding to the most general
3440 template.
3441
34422001-11-20 Mark Mitchell <mark@codesourcery.com>
3443
2d2e8123 3444 * call.c (non_reference): Add documentation.
33bd39a2 3445 (convert_class_to_reference): Do not strip reference types
2d2e8123
MM
3446 from conversion operators.
3447 (maybe_handle_ref_bind): Simplify.
3448 (compare_ics): Correct handling of references.
3449
78a40378
MM
34502001-11-19 John Wilkinson <johnw@research.att.com>
3451
3452 * dump.c (dump_op): New function.
3453 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use
3454 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
3455 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
33bd39a2 3456
78a40378
MM
34572001-11-19 Mark Mitchell <mark@codesourcery.com>
3458
3459 PR4629
3460 * semantics.c (finish_sizeof): Make sure that expression created
3461 while processing a template do not have a type.
3462 (finish_alignof): Likewise.
3463 * typeck.c (c_sizeof): Likewise.
3464 (expr_sizeof): Likewise.
3465
22703ccc
NB
34662001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
3467
3468 * lex.c (cxx_finish): Call c_common_finish.
3469 (finish_parse): Remove.
3470
b3faacfd
KL
34712001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3472
3473 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
3474 when displaying error message about missing array bounds.
3475
873ff987
KL
34762001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3477
3478 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
3479 CONST_CAST_EXPR.
3480 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
3481
08f3a861
NB
34822001-11-16 Neil Booth <neil@daikokuya.demon.co.uk>
3483
3484 * cp-tree.h (print_class_statistics): Restore.
3485
8a2b77e7
JM
34862001-11-15 Jason Merrill <jason@redhat.com>
3487
3b1a4132
JM
3488 * method.c (use_thunk): Don't emit debugging information for thunks.
3489
8a2b77e7
JM
3490 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
3491 * decl.c (make_typename_type): Handle getting a class template.
3492 * search.c (lookup_field_r): A class template is good enough for
3493 want_type.
3494
3495 * call.c (convert_like_real): Only use cp_convert for the bad part.
3496 (standard_conversion): Also allow bad int->enum.
3497 * typeck.c (ptr_reasonably_similar): Also allow functions to
3498 interconvert. Pointers to same-size integers are reasonably
3499 similar.
3500
3501 * cvt.c (convert_to_void): If we build a new COND_EXPR, always
3502 give it void type.
3503
36a68fe7
NS
35042001-11-15 Nathan Sidwell <nathan@codesourcery.com>
3505
3506 PR g++/3154
3507 * init.c (sort_base_init): Remove unreachable code.
3508 (expand_member_init): Adjust comment to reflect reality. Simplify
3509 and remove unreachable code.
3510
f5e99456
NB
35112001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
3512
3513 * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
3514 (cxx_init): Update prototype.
3515 * decl.c (init_decl_processing): Rename. Move null node init
3516 to its creation time.
3517 * lex.c (cxx_init_options): Update.
3518 (cxx_init): Combine with old init_parse; also call
3519 cxx_init_decl_processing.
3520
fe5b6c1c
RS
35212001-11-14 Richard Sandiford <rsandifo@redhat.com>
3522
8a2b77e7
JM
3523 * decl.c (check_initializer): Try to complete the type of an
3524 array element before checking whether it's complete. Don't
3525 complain about arrays with complete element types but an
3526 unknown size.
3527 (cp_finish_decl): Build the hierarchical constructor before
3528 calling maybe_deduce_size_from_array_init.
fe5b6c1c 3529
77bd67cb
JM
35302001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
3531
3532 * Make-lang.in: Change all uses of $(manext) to $(man1ext).
3533
b02922a4
NS
35342001-11-13 Nathan Sidwell <nathan@codesourcery.com>
3535
3536 PR g++/4206
3537 * parse.y (already_scoped_stmt): Remove.
3538 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
3539
abfc1ef6
L
35402001-11-12 H.J. Lu <hjl@gnu.org>
3541
195a5def 3542 * cvt.c (ocp_convert): Don't warn the address of a weak
abfc1ef6
L
3543 function is always `true'.
3544
5d69f816
NB
35452001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
3546
3547 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
3548 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
3549 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
3550 * cp-tree.h (print_class_statistics): Remove.
3551 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
3552 cxx_print_identifier, cxx_set_yydebug): New.
3553 * lex.c (set_yydebug): Rename c_set_yydebug.
3554 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
3555 lang_print_xnode): Rename.
3556 * tree.c (print_lang_statistics): Rename.
3557
4fdc14ca
KG
35582001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3559
3560 * class.c (dump_array): Fix format specifier warning.
3561
3ac88239
NB
35622001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
3563
3564 * cp-lang.c (LANG_HOOKS_NAME): Override.
3565 (struct lang_hooks): Constify.
3566 * lex.c (cxx_init_options): Update.
3567 (lang_identify): Remove.
33bd39a2 3568 * parse.y (language_string): Remove.
3ac88239 3569
b21d216c
AF
35702001-11-08 Andreas Franck <afranck@gmx.de>
3571
3572 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
3573 DEMANGLER_CROSS_NAME): Handle program_transform_name the way
3574 suggested by autoconf.
3575 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
3576 (c++.install-common): Use the transformed target alias names.
3577
d23c55c2
NB
35782001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
3579
3580 * Make-lang.in: Update.
3581 * cp-lang.c: Include langhooks-def.h.
3582
2a2b1d56
KL
35832001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3584
3585 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
3586
76648a8b
KG
35872001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3588
3589 * lex.c (copy_lang_type): Add static prototype.
3590
fccef71e
KL
35912001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3592
3593 * pt.c (unify): Handle SCOPE_REF.
3594
19989812
JJ
35952001-11-01 Jakub Jelinek <jakub@redhat.com>
3596
3597 * tree.c (cp_copy_res_decl_for_inlining): Adjust
3598 DECL_ABSTRACT_ORIGIN for the return variable.
3599
5b7874aa
ZW
36002001-10-31 Zack Weinberg <zack@codesourcery.com>
3601
3602 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
3603
306ef644
JM
36042001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
3605
3606 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
3607 semantics.c, spew.c: Fix spelling errors.
3608
76543000
KL
36092001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3610
3611 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
3612
37207ee7
ZW
36132001-10-25 Zack Weinberg <zack@codesourcery.com>
3614
3615 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
3616 pop_everything.
3617
8ac61af7
RK
3618Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3619
3620 * cp-lang.c (cxx_get_alias_set): New function.
3621 Point LANG_HOOKS_GET_ALIAS_SET to it.
3622
f1e09fa2 36232001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
b8c6534b
KL
3624
3625 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
3626 * cp-tree.h (make_unbound_class_template): Prototype new function.
3627 * decl.c (make_unbound_class_template): New function.
3628 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
3629 * error.c (dump_type): Likewise.
3630 * mangle.c (write_type): Likewise.
3631 * parse.y (template_parm): Likewise.
3632 (template_argument): Use make_unbound_class_template.
3633 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
3634 (tsubst): Likewise.
3635 (tsubst_copy): Likewise.
3636 (unify): Likewise.
3637 * tree.c (walk_tree): Likewise.
3638 * typeck.c (comptypes): Likewise.
3639
0df6c2c7
KG
36402001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3641
3642 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
3643 extra calls into fewer ones.
3644
97055d5c
AO
36452001-10-18 Alexandre Oliva <aoliva@redhat.com>
3646
3647 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
3648 Warn when merging inline with attribute noinline.
3649 (start_decl, start_function): Warn if inline and attribute
3650 noinline appear in the same declaration.
3651
b5823a44
L
36522001-10-16 H.J. Lu <hjl@gnu.org>
3653
3654 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
3655 for tree checking disabled.
3656
dc8ad298
HPN
36572001-10-16 Hans-Peter Nilsson <hp@axis.com>
3658
3659 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
3660 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
3661
d9f818d9
RS
36622001-10-15 Richard Sandiford <rsandifo@redhat.com>
3663
3664 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
3665 (unify): Only handle MINUS_EXPR specially if the above flag is set
3666 and the subtracted constant is 1. Clear the flag on recursive calls.
3667 Set it when unifying the maximum value in an INTEGER_TYPE's range.
3668
e1be26f4
RS
36692001-10-15 Richard Sandiford <rsandifo@redhat.com>
3670
3671 * decl.c (bad_specifiers): Don't allow exception specifications
3672 on any typedefs.
3673
a5da89c6
NB
36742001-10-14 Neil Booth <neil@daikokuya.demon.co.uk>
3675
3676 * cp/lex.c (init_cp_pragma): Similarly.
3677
4f96ff63
KL
36782001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3679
3680 * pt.c (lookup_template_class): Build complete template arguments
3681 for BOUND_TEMPLATE_TEMPLATE_PARM.
3682
11e74ea6
KL
36832001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3684
3685 * cp-tree.h (TYPE_BINFO): Update comment.
3686 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
3687 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
3688 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
3689 (copy_type): Prototype new function.
3690 * lex.c (copy_lang_decl): Gather tree node statistics.
3691 (copy_lang_type): New function.
3692 (copy_type): Likewise.
3693 (cp_make_lang_type): Create lang_type for
3694 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE
3695 and BOUND_TEMPLATE_TEMPLATE_PARM.
3696 * pt.c (tsubst): Use copy_type instead of copy_node.
3697 * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
3698
f5d47abd
KL
36992001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3700
3701 * pt.c (determine_specialization): Ignore functions without
3702 DECL_TEMPLATE_INFO.
3703
e60505a5
NS
37042001-10-12 Nathan Sidwell <nathan@codesourcery.com>
3705
3706 PR g++/4476
3707 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
3708
6f32162a
JM
37092001-10-11 Jason Merrill <jason_merrill@redhat.com>
3710
3711 * typeck2.c (store_init_value): Don't re-digest a bracketed
3712 initializer.
3713
3714 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
3715 ANON_AGGR_TYPE_P.
3716
4a8d0c9c
RH
37172001-10-11 Richard Henderson <rth@redhat.com>
3718
3719 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
3720 of an asm statement.
3721 (build_vtbl_ref_1): Split out from build_vtbl_ref.
3722 (build_vfn_ref): Use it to handle vtable descriptors before
3723 calling build_vtable_entry_ref.
3724 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
3725
84b72302
RH
37262001-10-10 Richard Henderson <rth@redhat.com>
3727
37207ee7 3728 * parse.y (asm_operand): Allow named operands.
84b72302
RH
3729 * semantics.c (finish_asm_stmt): Tweek for changed location
3730 of the operand constrant.
3731
48c8b0be 37322001-10-09 Jason Merrill <jason_merrill@redhat.com>
72a08131
JM
3733
3734 * call.c (standard_conversion): Add bad conversion between
3735 integers and pointers.
3736 (convert_like_real): Don't use convert_for_initialization for bad
3737 conversions; complain here and use cp_convert.
3738 (build_over_call): Don't handle bad conversions specially.
3739 (perform_implicit_conversion): Allow bad conversions.
3740 (can_convert_arg_bad): New fn.
3741 * cp-tree.h: Declare it.
3742 * typeck.c (convert_for_assignment): Use it.
3743 (ptr_reasonably_similar): Any target type is similar to void.
3744
19551f29
AO
37452001-10-08 Alexandre Oliva <aoliva@redhat.com>
3746
3747 * Make-lang.in (CXX_OBJS): Added cp-lang.o.
3748 (cp/cp-lang.o): New rule.
3749 * cp-tree.h: Declare hooks.
3750 * tree.c: Make hooks non-static.
3751 (init_tree): Don't initialize hooks here.
3752 * lex.c: Likewise. Move definition of lang_hooks to...
3753 * cp-lang.c: ... new file.
3754
31ed8fea
RH
37552001-10-08 Richard Henderson <rth@redhat.com>
3756
3757 * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
3758 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
3759
8b60264b
KG
37602001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3761
3762 * class.c (build_vtable_entry_ref): Const-ify.
3763 * decl.c (predefined_identifier,
37207ee7 3764 initialize_predefined_identifiers): Likewise.
8b60264b
KG
3765 * init.c (build_new_1): Likewise.
3766 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
3767 Likewise.
3768
bc4c7159
AO
37692001-10-05 Alexandre Oliva <aoliva@redhat.com>
3770
3771 * optimize.c (struct inline_data): Moved to ../tree-inline.c.
3772 (INSNS_PER_STMT): Likewise.
3773 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
3774 (copy_body, initialize_inlined_parameters): Likewise.
3775 (declare_return_variable, inlinable_function_p): Likewise.
3776 (expand_call_inline, expand_calls_inline): Likewise.
3777 (optimize_inline_calls, clone_body): Likewise.
3778 * tree.c (walk_tree): Moved to ../tree-inline.c.
3779 (walk_tree_without_duplicates): Likewise.
3780 (copy_tree_r, remap_save_expr): Likewise.
3781
25af8512
AO
37822001-10-04 Alexandre Oliva <aoliva@redhat.com>
3783
3784 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
3785 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
3786 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
3787 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
3788 (flag_inline_trees): Moved declaration to ../tree-inline.h.
3789 (walk_tree): Moved declaration to ../tree-inline.h.
3790 (walk_tree_without_duplicates, copy_tree_r): Likewise.
3791 (remap_save_expr): Likewise.
3792 * decl.c: Include tree-inline.h.
3793 (lang_mark_tree): Don't mark inlined_fns.
3794 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
3795 * optimize.c: Include tree-inline.h.
3796 (optimize_inline_calls): Move declaration to ../tree.h, as
3797 non-static.
3798 (remap_decl): Use language-independent constructs and hooks.
3799 (remap_block, copy_body_r, declare_return_variable): Likewise.
3800 (inlinable_function_p): Likewise. Don't test for
3801 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
3802 no longer language-specific.
3803 (optimize_inline_calls): Likewise. Make it non-static. Moved
3804 call of dump_function to...
3805 (optimize_function): Here...
3806 (clone_body): New function, extracted from...
3807 (maybe_clone_body): ... here. Build decl_map locally and pass
3808 it on to clone_body.
3809 * pt.c, semantics.c: Include tree-inline.h.
3810 * tree.c: Likewise.
3811 (cp_walk_subtrees): New language-specific hook for tree inlining.
3812 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
3813 cp_is_overload_p, cp_auto_var_in_fn_p,
3814 cp_copy_res_decl_for_inlining): Likewise.
3815 (walk_tree): Move language-specific constructs into...
3816 (cp_walk_subtrees): this new function.
3817 (copy_tree_r): Use language-independent constructs and hooks.
3818 (init_tree): Initialize tree inlining hooks.
3819 (remap_save_expr): Adjust prototype so that the declaration
3820 does not require the definition of splay_tree.
3821
6a4af81f
JDA
38222001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
3823
3824 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
3825 to build the declaration instead of the declaration itself.
3826
0caee1c6
JM
38272001-10-02 Jason Merrill <jason_merrill@redhat.com>
3828
48c8b0be
JM
3829 * decl2.c (cxx_decode_option): Add 'else'.
3830
0caee1c6
JM
3831 * spew.c (end_input): No longer static.
3832 * cp-tree.h: Declare it.
3833 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
3834
80a497e4
JM
38352001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
3836
3837 * call.c (build_over_call), typeck.c (build_function_call_real):
3838 Pass type attributes to check_function_format rather than name or
3839 assembler name. Don't require there to be a name or assembler
3840 name to check formats.
3841
6431177a
JM
38422001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
3843
3844 * decl.c (init_decl_processing): Don't call
3845 init_function_format_info. Initialize lang_attribute_table
3846 earlier.
3847 (builtin_function): Call decl_attributes.
3848 (insert_default_attributes): New.
3849
55b3d665
JM
38502001-10-01 Jason Merrill <jason_merrill@redhat.com>
3851
3852 * decl.c (grokdeclarator): Copy array typedef handling from C
3853 frontend.
3854
3855 * decl.c (grokdeclarator): Copy too-large array handling from C
3856 frontend.
3857
9f57ca19
AO
38582001-09-29 Alexandre Oliva <aoliva@redhat.com>
3859
3860 * config-lang.in (target_libs): Added target-gperf, so that we
3861 don't try to build it if C++ is disabled.
3862
749ced52
ZW
38632001-09-23 Zack Weinberg <zack@codesourcery.com>
3864
3865 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
3866 (cp/errfn.o): Delete rule.
3867 (cp/error.o): Depend on flags.h.
3868 * errfn.c: Delete file.
3869 * cp-tree.h: Declare warn_deprecated. Remove definitions of
3870 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
3871 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
3872 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
3873 internal_error respectively. Make cp_deprecated into a macro.
3874 Don't define cp_printer typedef or declare cp_printers.
3875 * error.c: Include flags.h.
3876 Delete: struct tree_formatting_info, print_function_argument_list,
3877 print_declaration, print_expression, print_function_declaration,
3878 print_function_parameter, print_type_id, print_cv_qualifier_seq,
3879 print_type_specifier_seq, print_simple_type_specifier,
3880 print_elaborated_type_specifier, print_rest_of_abstract_declarator,
3881 print_parameter_declaration_clause, print_exception_specification,
3882 print_nested_name_specifier, and definition of cp_printers.
3883 (locate_error): New function.
3884 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
3885 rewritten in terms of locate_error and diagnostic.c.
3886 (cp_tree_printer): Rename cp_printer; wire up to *_to_string
3887 instead of deleted print_* routines. Handle %C, %L, %O, %Q also.
3888 (init_error): Adjust to match.
3889
bb9f8221
RK
3890Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3891
3892 * Make-lang.in (CXX_C_OBJS): Add attribs.o.
3893
67231816
RH
38942001-09-21 Richard Henderson <rth@redhat.com>
3895
3896 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
3897 (build_vtbl_initializer): Likewise.
3898 (build_vfn_ref): New.
3899 * cp-tree.h: Declare it.
3900 * call.c (build_over_call): Use it.
3901 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
3902 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
3903
c9574c9f
R
3904Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com>
3905
3906 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
3907
91d231cb
JM
39082001-09-21 Joseph S. Myers <jsm28@cam.ac.uk>
3909
3910 Table-driven attributes.
3911 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
3912 * decl2.c (cplus_decl_attributes): Only take one attributes
3913 parameter.
3914 * cp-tree.c (cplus_decl_attributes): Update prototype.
3915 * class.c (finish_struct), decl.c (start_decl, start_function),
3916 decl2.c (grokfield), friend.c (do_friend), parse.y
3917 (parse_bitfield): Update calls to cplus_decl_attributes.
3918 * decl.c (grokdeclarator): Take a pointer to a single ordinary
3919 attribute list.
3920 * decl.h (grokdeclarator): Update prototype.
3921 * decl2.c (grokfield): Take a single ordinary attribute list.
3922 * friend.c (do_friend): Likewise.
3923 * decl.c (shadow_tag, groktypename, start_decl,
3924 start_handler_parms, grokdeclarator, grokparms, start_function,
3925 start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
3926 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
3927 (process_template_parm, do_decl_instantiation): Pass single
3928 ordinary attribute lists around.
3929 * decl.c (grokdeclarator): Correct handling of nested attributes.
3930 Revert the patch
3931 1998-10-18 Jason Merrill <jason@yorick.cygnus.com>
3932 * decl.c (grokdeclarator): Embedded attrs bind to the right,
3933 not the left.
3934 .
3935 * cp-tree.h (cp_valid_lang_attribute): Remove declaration
3936 (cp_attribute_table): Declare.
3937 * decl.c (valid_lang_attribute): Don't define.
3938 (lang_attribute_table): Define.
3939 (init_decl_processing): Initialize lang_attribute_table instead of
3940 valid_lang_attribute.
3941 * tree.c (cp_valid_lang_attribute): Remove.
3942 (handle_java_interface_attribute, handle_com_interface_attribute,
3943 handle_init_priority_attribute): New functions.
3944 (cp_attribute_table): New array.
3945 * decl2.c (import_export_class): Don't use
3946 targetm.valid_type_attribute.
3947
a1bda5f1
GDR
39482001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3949
e6b9638b
JM
3950 * Make-lang.in (cp/error.o): Depend on real.h
3951 * error.c: #include "real.h"
a1bda5f1 3952
cb6edbcb
KG
39532001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3954
3955 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
3956 xmalloc/strcpy/strcat.
3957
83182544
KG
39582001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3959
3960 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
3961 Const-ification.
3962 * pt.c (tsubst_decl): Likewise.
3963
40008eda
KG
39642001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3965
3966 * decl2.c (lang_f_options): Const-ification.
3967 * lex.c (cplus_tree_code_name): Likewise.
3968 * spew.c (yyerror): Likewise.
3969
39e78d8b
NS
39702001-09-06 Nathan Sidwell <nathan@codesourcery.com>
3971
3972 PR c++/3986
3973 * class.c (force_canonical_binfo_r): Check & move an indirect
3974 primary base first.
3975 (force_canonical_binfo): Check that it's not already
3976 canonical.
3977 (mark_primary_virtual_base): Remove BINFO parameter.
3978 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
3979
6d0a3f67
NS
39802001-09-06 Nathan Sidwell <nathan@codesourcery.com>
3981
3982 Remove TYPE_NONCOPIED_PARTS.
3983 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
3984 CLASSTYPE_PURE_VIRTUALS.
3985 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
3986 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
72a08131 3987 (layout_class_type): Don't call fixup_inline_methods here ...
6d0a3f67
NS
3988 (finish_struct_1): ... call it here.
3989
4f8e1232
MM
39902001-09-04 Mark Mitchell <mark@codesourcery.com>
3991
3992 * decl.c (duplicate_decls): Remove code deadling with
3993 DECL_SAVED_INSNS.
3994 * decl2.c (finish_file): Likewise.
3995 * pt.c (instantiate_decl): Likewise.
3996 * semantics.c (expand_body): Don't defer local functions if
3997 they wouldn't be deferred for some other reason. Don't
3998 generate RTL for functions that will not be emitted.
3999 (genrtl_start_function): Remove code deadling with
4000 DECL_SAVED_INSNS.
4001 (genrtl_finish_function): Likewise.
4002
da86f08f
NS
40032001-09-04 Nathan Sidwell <nathan@codesourcery.com>
4004
4005 PR c++/4203
4006 * call.c (build_over_call): Do not optimize any empty base
4007 construction.
4008
38066e83
KL
40092001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4010
4011 * error.c (dump_template_decl): Output template parameters
4012 together with their specifiers.
4013 Output `class' prefix for template template parameter.
4014 (dump_decl): Fix formatting.
4015
598e9ba5 40162001-08-30 Kurt Garloff <garloff@suse.de>
749ced52 4017
598e9ba5
KG
4018 * optimize.c (inlinable_function_p): Allow only smaller single
4019 functions. Halve inline limit after reaching recursive limit.
749ced52 4020
f232e4a5
JR
40212001-08-30 Joern Rennecke <amylaar@redhat.com>
4022 Jason Merrill <jason_merrill@redhat.com>
4023
4024 * class.c (build_vtable_entry_ref): Subtract in char*, not
4025 ptrdiff_t.
4026
0213a355
JM
40272001-08-23 Jason Merrill <jason_merrill@redhat.com>
4028
4029 * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
4030 (build_cplus_array_type): Use cp_build_qualified_type, not
4031 TYPE_MAIN_VARIANT, to get an unqualified version.
4032
4033 * decl2.c (grok_alignof): Lose.
4034 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
4035 * typeck.c (c_alignof): Lose.
4036 * semantics.c (finish_sizeof, finish_alignof): New.
4037 * parse.y: Use them.
4038 * cp-tree.h: Declare them.
4039
fd10dd09
JM
40402001-08-22 Jason Merrill <jason_merrill@redhat.com>
4041
4042 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
4043 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
4044 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
4045
baeb4732
JJ
40462001-08-19 Jakub Jelinek <jakub@redhat.com>
4047
4048 * typeck2.c (add_exception_specifier): Only require complete type if
4049 not in processing template declaration.
4050
1c0cc57e
KG
40512001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4052
4053 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
4054 GNU_xref_start_scope and GNU_xref_end_scope.
4055
4056 * tree.c (TYPE_HASH): Moved to ../tree.h.
4057
9a52d09b
MM
40582001-08-16 Mark Mitchell <mark@codesourcery.com>
4059
4060 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
4061 on COMPOUND_EXPRs.
4062
b5d1cbd2
RH
40632001-08-14 Richard Henderson <rth@redhat.com>
4064
4065 * class.c, cp-tree.h (build_vfn_ref): Remove.
4066 * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
4067
63d6f87a
MM
40682001-08-13 Mark Mitchell <mark@codesourcery.com>
4069
4070 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
4071 empty class assignment as having side-effects to avoid
4072 spurious warnings.
4073
e78d8e51
ZW
40742001-08-13 Zack Weinberg <zackw@panix.com>
4075
4076 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
4077 * except.c: Include libfuncs.h.
4078
a60af04a
GDR
40792001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
4080
4081 * decl.c (grokdeclarator): Clarify diagnostic message.
4082
3605b283
KL
40832001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4084
4085 * decl2.c (do_nonmember_using_decl): Replace using directive
4086 with using declaration in the error message.
4087
4d5f3fbd
KL
40882001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4089
4090 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
4091 criterion to avoid rebuilding expression tree instead of
4092 processing_template_decl.
4093
07b2f2fd
JM
40942001-08-07 Jason Merrill <jason_merrill@redhat.com>
4095
4096 Support named return value optimization for inlines, too.
4097 * decl.c (finish_function): Nullify returns here.
4098 * semantics.c (genrtl_start_function): Not here.
4099 (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
4100 (nullify_returns_r): No longer static. Just clear RETURN_EXPR.
4101 Also nullify the CLEANUP_STMT for the nrv.
4102 * cp-tree.h: Declare it.
4103 * optimize.c (declare_return_variable): Replace the nrv with the
4104 return variable.
4105 * typeck.c (check_return_expr): Be more flexible on alignment check.
4106 Ignore cv-quals when checking for a matching type.
4107
2cc07db4
RH
41082001-08-09 Richard Henderson <rth@redhat.com>
4109
4110 * decl2.c (finish_objects): Use target hooks instead of
4111 assemble_constructor and assemble_destructor.
4112
0ca179b2
JDA
41132001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
4114
4115 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
4116
0830ae44
NS
41172001-08-07 Nathan Sidwell <nathan@codesourcery.com>
4118
4119 PR c++/3820
4120 Stop using TYPE_NONCOPIED_PARTS.
4121 * call.c (build_over_call): Be careful when copy constructing
4122 or assigning to an empty class.
4123 * class.c (check_bases_and_members): It has a
4124 COMPLEX_ASSIGN_REF if it has a vptr.
4125 (layout_class_type): Don't add empty class padding to
4126 TYPE_NONCOPIED_PARTS.
4127 (finish_struct_1): Don't add the VFIELD either.
4128 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
4129 initialization.
4130
59a13e0f
JM
41312001-08-07 Jason Merrill <jason_merrill@redhat.com>
4132
4133 * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
4134
47907859
RH
41352001-08-06 Richard Henderson <rth@redhat.com>
4136
4137 * decl2.c (finish_objects): Pass a symbol_ref and priority to
4138 assemble_{constructor,destructor}. Remove priority handling.
4139
eac69b8a
GDR
41402001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
4141
4142 Don't allow template-id in using-declaration.
4143 * decl2.c (validate_nonmember_using_decl): Handle template-ids.
4144 (do_class_using_decl): Likewise.
4145
ef6e958a
NB
41462001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk>
4147
4148 * cp/spew.c (read_token): No need to pop buffers.
4149
dff94ad7
SS
41502001-08-02 Stan Shebs <shebs@apple.com>
4151
4152 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
4153 (fnaddr_from_vtable_entry): Remove decl.
4154 * method.c (use_thunk): Update comment.
4155
026c3f13
AC
41562001-08-01 Andrew Cagney <ac131313@redhat.com>
4157
4158 * repo.c (get_base_filename): Change return value to const char
4159 pointer.
4160
1dbb6023
NS
41612001-08-02 Nathan Sidwell <nathan@codesourcery.com>
4162
4163 Kill -fhonor-std.
4164 * NEWS: Document.
4165 * cp-tree.h (flag_honor_std): Remove.
4166 (CPTI_FAKE_STD): Remove.
4167 (std_node): Remove comment about it being NULL.
4168 (fake_std_node): Remove.
4169 * decl.c (in_fake_std): Remove.
4170 (walk_namespaces_r): Remove fake_std_node check.
4171 (push_namespace): Remove in_fake_std code.
4172 (pop_namespace): Likewise.
4173 (lookup_name_real): Remove fake_std_node check.
4174 (init_decl_processing): Always create std_node. Always add
4175 std:: things there.
4176 (builtin_function): Always put non '_' fns in std.
4177 * decl2.c (flag_honor_std): Remove.
4178 (lang_f_options): Remove honor-std.
4179 (unsupported_options): Add honor-std.
4180 (set_decl_namespace): Remove fake_std_node check.
4181 (validate_nonmember_using_decl): Likewise.
4182 (do_using_directive): Likewise.
4183 (handle_class_head): Likewise.
4184 * dump.c (cp_dump_tree): Likewise.
4185 * except.c (init_exception_processing): Adjust.
4186 * init.c (build_member_call): Remove fake_std_node check.
4187 (build_offset_ref): Likewise.
4188 * lang-options.h: Remove -fhonor-std, -fno-honor-std.
4189 * rtti.c (init_rtti_processing): Adjust.
4190
6ad7895a
APB
41912001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
4192
4193 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
4194 operand while calling cp_tree_equal.
4195
befe7c61
NS
41962001-07-31 Nathan Sidwell <nathan@codesourcery.com>
4197
4198 The 3.0 ABI no longer has vbase pointer fields.
4199 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
4200 FORMAT_VBASE_NAME): Remove.
4201 * method.c (do_build_copy_constructor): Adjust.
4202 (do_build_assign_ref): Adjust.
4203 * search.c (lookup_field_r): Adjust.
4204 * typeck.c (build_component_ref): Adjust.
4205
4206 The 3.0 ABI always has a vtable pointer at the start of every
4207 polymorphic class.
4208 * rtti.c (build_headof_sub): Remove.
4209 (build_headof): Adjust.
4210 (get_tinfo_decl_dynamic): No need to check flag_rtti
4211 here. Adjust.
4212 (create_real_tinfo_var): Explain why we need a hidden name.
4213
20dde49d
NS
42142001-07-31 Nathan Sidwell <nathan@codesourcery.com>
4215
4216 PR c++/3631
4217 * class.c (update_vtable_entry_for_fn): The fixed adjustment
4218 of a virtual thunk should be from declaring base.
4219
b7ad2f8b
NS
42202001-07-31 Nathan Sidwell <nathan@codesourcery.com>
4221
4222 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
4223 the shared virtual base, so preserving inheritance graph order.
4224
57cb6d52
AJ
42252001-07-30 Andreas Jaeger <aj@suse.de>
4226
749ced52 4227 * decl2.c: Remove unused var global_temp_name_counter.
57cb6d52 4228
594280a3
RH
42292001-07-28 Richard Henderson <rth@redhat.com>
4230
4231 * method.c (pending_inlines): Remove.
4232
0ab142b0
NS
42332001-07-27 Nathan Sidwell <nathan@codesourcery.com>
4234
4235 * class.c (mark_primary_virtual_base): Don't adjust base
4236 offsets here.
4237 (dfs_unshared_virtual_bases): Adjust them here.
4238 (mark_primary_bases): Explain why we adjust at the end.
4239
d60d223b
NS
42402001-07-27 Nathan Sidwell <nathan@codesourcery.com>
4241
4242 * class.c (finish_struct_1): When copying the primary base's
4243 VFIELD, make sure we find it is at offset zero.
4244
db3ef87b
KL
42452001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4246
4247 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
4248 tsubst_expr for default template arguments.
4249
312b7c9d
NS
42502001-07-26 Nathan Sidwell <nathan@codesourcery.com>
4251
d60d223b 4252 PR c++/3621
312b7c9d
NS
4253 * spew.c (yylex): Only copy the token's lineno, if it is
4254 non-zero.
4255
648c2206
NS
42562001-07-26 Nathan Sidwell <nathan@codesourcery.com>
4257
4258 PR c++/3624
4259 * call.c (resolve_args): Simplify, call
4260 convert_from_reference.
4261 (build_new_op): Resolve and convert from reference ARG1
4262 earlier. Adjust ARG2 & ARG3 resolve and conversion.
4263
969fd501
NS
42642001-07-26 Nathan Sidwell <nathan@codesourcery.com>
4265
4266 * decl.c (last_function_parm_tags): Remove.
4267 (current_function_parm_tags): Remove.
4268 (init_decl_processing): Adjust.
4269 (start_function): Adjust.
4270 (store_parm_decls): Adjust.
4271
4272 PR c++/3152
4273 * decl.c (grokdeclarator): Detect when a function typedef is
4274 declaring a function, and create last_function_parms correctly.
4275
08ac397c 42762001-07-25 Jason Merrill <jason_merrill@redhat.com>
749ced52 4277
08ac397c
JM
4278 * call.c (joust): Only prefer a non-builtin candidate to a builtin
4279 one if they have the same signature.
4280
4281 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on
4282 it rather than toplevel_bindings_p. Give it a mangled name if static.
4283 (convert_to_reference): Adjust.
4284 * decl2.c (get_temp_name): Lose.
4285 * mangle.c (mangle_ref_init_variable): New fn.
4286 (mangle_guard_variable): Strip the ref-init header.
4287 * cp-tree.h: Adjust.
4288 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
4289 initializer.
4290 (grok_reference_init): Always use DECL_INITIAL.
4291
40260429
NS
42922001-07-25 Nathan Sidwell <nathan@codesourcery.com>
4293
4294 PR c++/3416
4295 * call.c (build_conditional_expr): Recheck args after
4296 conversions.
4297 * cp-tree.h (build_conditional_expr): Move to correct file.
4298 * typeck.c (decay_conversion): Diagnose any unknown types
4299 reaching here.
4300 (build_binary_op): Don't do initial decay or default
4301 conversions on overloaded functions.
4302 (build_static_cast): Don't do a decay conversion here.
4303
ab085207
NS
43042001-07-25 Nathan Sidwell <nathan@codesourcery.com>
4305
4306 PR c++/3543
4307 * typeck.c (condition_conversion): Resolve an OFFSET_REF.
4308 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
4309
0abe00c5
NS
43102001-07-25 Nathan Sidwell <nathan@codesourcery.com>
4311
4312 * class.c (build_vtbl_or_vbase_field): Remove, move into ...
4313 (create_vtbl_ptr): ... here.
4314
90b1ca2f
NS
43152001-07-25 Nathan Sidwell <nathan@codesourcery.com>
4316
4317 * class.c (build_vbase_offset_vbtl_entries): Look for
4318 non-primary base of which we are a sub vtable.
4319
cfe5dc31
PE
43202001-07-24 Phil Edwards <pme@sources.redhat.com>
4321
4322 * semantics.c (finish_this_expr): Remove unused code.
4323
7f54a851
NS
43242001-07-24 Nathan Sidwell <nathan@codesourcery.com>
4325
4326 Simplify rtti, now we've only one ABI.
4327 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
4328 CPTI_TINFO_VAR_ID.
4329 (tinfo_decl_id, tinfo_var_id): Remove.
4330 (get_typeid_1): Remove.
4331 * rtti.c
4332 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
4333 (typeid_ok_p): New function.
4334 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
4335 (get_tinfo_decl): Remove old abi documentation.
4336 (tinfo_from_decl): Remove.
4337 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
4338 (get_typeid_1): Remove.
4339 (get_base_offset): Remove.
4340 (synthesize_tinfo_var): Absorb get_base_offset.
4341 (create_real_tinfo_var): Don't use tinfo_decl_id.
4342
18fee3ee
GS
43432001-07-23 Graham Stott <grahams@redhat.com>
4344
d30d6e7a 4345 * cp/class.c (type_requires_array_cookie): Fix use of uninitialized
18fee3ee
GS
4346 variable has_two_argument_delete_p.
4347
c4372ef4
NS
43482001-07-21 Nathan Sidwell <nathan@codesourcery.com>
4349
4350 Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
4351 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
4352 (CPTI_INDEX_IDENTIFIER): Remove.
4353 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
4354 (delta2_identifier): Remove.
4355 (index_identifier): Remove.
4356 (pfn_or_delta2_identifier): Remove.
4357 (flag_vtable_thunks): Remove.
4358 (VTABLE_DELTA2_NAME): Remove.
4359 (VTABLE_INDEX_NAME): Remove.
4360 (FNADDR_FROM_VTABLE_ENTRY): Adjust.
4361 (vfunc_ptr_type_node): Adjust.
4362 (VTABLE_NAME_PREFIX): Adjust.
4363 (build_vfn_ref): Lose first parameter.
4364 (fixup_all_virtual_upcast_offsets): Remove.
4365 * decl.c (initialize_predefined_identifiers): Remove
4366 delta2_identifier, index_identifier, pfn_or_delta2_identifier.
4367 (init_decl_processing): Remove no-vtable-thunk code.
4368 * decl2.c (flag_vtable_thunks): Remove.
4369 (mark_vtable_entries): Remove no-vtable-thunk code.
4370 * error.c (dump_decl): Remove no-vtable-thunk code.
4371 (dump_expr): Adjust ptr to member function code.
4372 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
4373 code.
4374 * rtti.c (build_headof): Remove no-vtable-thunk code.
4375 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
4376 * search.c (get_base_distance): Remove expand_upcast_fixups case.
4377 (virtual_context) Remove.
4378 (expand_upcast_fixups): Remove.
4379 (fixup_virtual_upcast_offsets): Remove.
4380 (fixup_all_virtual_upcast_offsets): Remove.
4381 * typeck.c (get_member_function_from_ptrfunc): Remove
4382 no-vtable-thunk code.
4383 * call.c (build_over_call): Adjust call to build_vfn_ref.
4384 * class.c (build_vfn_ref): Lose first parameter. Remove
4385 no-vtable-thunk code.
4386 (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
4387 (build_vtable_entry): Remove no-vtable-thunk code.
4388
3461fba7
NS
43892001-07-20 Nathan Sidwell <nathan@codesourcery.com>
4390
4391 Remove old-abi remnants. Remove comments about old abi
aba649ba 4392 behaviour. Remove references to 'new-abi' in comments.
3461fba7
NS
4393 * cp-tree.h: Adjust comments.
4394 (vbase_offsets_in_vtable_p): Delete.
4395 (vcall_offsets_in_vtable_p): Delete.
4396 (vptrs_present_everywhere_p): Delete.
4397 (all_overridden_vfuns_in_vtables_p): Delete.
4398 (merge_primary_and_secondary_vtables_p): Delete.
4399 (TYPE_CONTAINS_VPTR_P): Adjust.
4400 (VTT_NAME_PREFIX): Remove.
4401 (CTOR_VTBL_NAME_PREFIX): Remove.
4402 (init_vbase_pointers): Remove.
4403 * class.c: Adjust coments.
4404 (build_vbase_pointer_fields): Delete.
4405 (build_vbase_pointer): Remove old-abi code.
4406 (build_secondary_vtable): Likewise.
4407 (modify_all_vtables): Likewise.
4408 (create_vtable_ptr): Likewise.
4409 (layout_class_type): Likewise.
4410 (finish_struct_1): Likewise.
4411 (finish_vtbls): Likewise.
4412 (dfs_finish_vtbls): Delete.
4413 (build_vbase_offset_vtbl_entries): Remove old-abi code.
4414 * cvt.c: Adjust comments.
4415 * decl.c: Adjust comments.
4416 * decl2.c: Adjust comments.
4417 * init.c: Adjust comments.
4418 (construct_virtual_bases): Remove old-abi code.
4419 * lang-specs.h: Remove -fno-new-abi.
4420 * mangle.c: Adjust comments.
4421 * rtti.c: Adjust comments.
4422 (get_base_offset): Remove old-abi-code.
4423 * search.c: Adjust comments.
4424 (dfs_init_vbase_pointers): Remove.
4425 (dfs_vtable_path_unmark): Remove.
4426 (init_vbase_pointers): Remove.
4427 * semantics.c: Adjust comments.
4428 (emit_associated_thunks): Remove old-abi code.
4429 * typeck.c: Adjust comments.
4430
1c432a87
DB
44312001-07-20 Daniel Berlin <dan@cgsoftware.com>
4432
4433 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
4434 params.h.
4435
b7076960
MM
44362001-07-19 Mark Mitchell <mark@codesourcery.com>
4437
4438 * class.c (finish_struct_anon): Forbid nested classes.
4439
2b85879e
NB
44402001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
4441
4442 * decl2.c: Don't include dwarfout.h and dwarf2out.h.
4443 * optimize.c: Include debug.h.
4444 (maybe_clone_body): Use debug hook.
4445 * semantics.c: Include debug.h.
4446 (expand_body): Use debug hook.
4447
c60e94a7
NB
44482001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
4449
4450 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
4451
dbc957f1
MM
44522001-07-18 Mark Mitchell <mark@codesourcery.com>
4453
4454 * class.c (type_requires_array_cookie): New function.
4455 (check_methods): Don't try to figure out whether the type needs a
4456 cookie here.
4457 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
4458 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
4459 (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
4460 * pt.c (instantiate_class_template): Don't set
4461 TYPE_VEC_DELETE_TAKES_SIZE.
4462 * NEWS: Document ABI changes from GCC 3.0.
57cb6d52 4463
7ba0b0f7 44642001-07-18 Xavier Delacour <xavier@fmaudio.net>,
749ced52 4465 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7ba0b0f7
XD
4466
4467 * NEWS (Changes in GCC 3.0): Fix typo.
4468
59387d2e
JM
44692001-07-13 Joseph S. Myers <jsm28@cam.ac.uk>
4470
4471 * decl2.c (cplus_decl_attributes): Take a pointer to the node to
4472 which attributes are to be attached, and a flags argument. Update
4473 call to decl_attributes.
4474 (grokfield): Update call to decl_attributes.
4475 * class.c (finish_struct): Update call to cplus_decl_attributes.
4476 * cp-tree.h (cplus_decl_attributes): Update prototype.
4477 * decl.c (start_decl, grokdeclarator, start_function): Update
4478 calls to decl_attributes and cplus_decl_attributes.
4479 * friend.c (do_friend): Update call to cplus_decl_attributes.
4480 * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
4481
7ed47c04
MM
44822001-07-12 Mark Mitchell <mark@codesourcery.com>
4483
4484 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
4485 for `register' variables with an asm-specification.
4486
40b18c0a
MM
44872001-07-11 Mark Mitchell <mark@codesourcery.com>
4488
4489 * semantics.c (finish_asm_stmt): Mark the output operands
4490 to an asm addressable, if necessary.
4491
517c3b80
BE
44922001-07-11 Ben Elliston <bje@redhat.com>
4493
219670f1
BE
4494 * Revert this change -- there is a subtle bug.
4495
517c3b80
BE
4496 PR c++/80
4497 * decl.c (finish_enum): New "attributes" argument; pass it to
4498 cplus_decl_attributes. Use a narrower type if the enum is packed.
4499 * cp-tree.h (finish_enum): Adjust prototype.
4500 * parse.y (enum_head): New non-terminal.
4501 (structsp): Use it. Enums now may be preceded or followed by
4502 optional attributes -- pass their chained tree to finish_enum().
4503 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
4504
2ba9c47e
MM
45052001-07-10 Mark Mitchell <mark@codesourcery.com>
4506
4507 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
4508 variables.
4509
35241192
JM
45102001-07-10 Jason Merrill <jason_merrill@redhat.com>
4511
4512 * semantics.c (cp_expand_stmt): Fix for null
4513 current_function_return_value.
4514
07167a18
JM
45152001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl>
4516
4517 * call.c (build_op_delete_call): Initialize fn.
4518 (convert_like_real): Delete conditional.
4519 (joust): Initialize *w and *l.
4520 * class.c: Add prototype for binfo_ctor_vtable.
4521 (get_primary_binfo): Initialize result.
4522 * init.c (build_java_class_ref): Initialize name.
ae818d3b 4523
35241192
JM
45242001-07-09 Erik Rozendaal <dlr@acm.org>
4525
ae818d3b
ER
4526 * typeck.c (unary_complex_lvalue): Do not duplicate the
4527 argument to modify, pre-, or post-increment when used as an
4528 lvalue and when the argument has side-effects.
4529
12a68f1f
JM
45302001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
4531
4532 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
4533 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call
4534 cplus_decl_attributes even if attrs is NULL.
4535 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
4536
f7a4cec0
JM
45372001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
4538
4539 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
4540 calls to decl_attributes.
4541
c80106a4
IR
45422001-07-06 Ira Ruben <ira@apple.com>
4543
ae818d3b 4544 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
c80106a4
IR
4545 be DECL_TEMPLATE_RESULT.
4546
dac65501
KL
45472001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4548
4549 * cp-tree.h (copy_template_template_parm): Rename to ...
4550 (bind_template_template_parm): ... here.
4551 * tree.c (copy_template_template_parm): Rename to ...
4552 (bind_template_template_parm): ... here. Remove the case when
4553 NEWARGS is NULL_TREE.
4554 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
4555 BOUND_TEMPLATE_TEMPLATE_PARM.
4556 * pt.c (lookup_template_class): Adjust.
4557
01f9e964
JM
45582001-07-05 Jason Merrill <jason_merrill@redhat.com>
4559
4560 * cvt.c (convert_lvalue): New fn.
4561 * cp-tree.h: Declare it.
4562 * method.c (do_build_assign_ref): Use it.
4563 (do_build_copy_constructor): Convert parm to base types
4564 before calling base constructors.
4565
4566 * typeck.c (check_return_expr): Check DECL_ALIGN instead of
4567 DECL_USER_ALIGN. Check flag_elide_constructors instead of
4568 optimize.
4569 * semantics.c (cp_expand_stmt): Don't destroy the named return value.
4570
6be77748
NS
45712001-07-02 Nathan Sidwell <nathan@codesourcery.com>
4572
4573 * optimize.c (optimize_inline_calls): New function, broken out
4574 of ...
4575 (optimize_function): ... here. Call it. Don't inline if it is
4576 a thunk.
4577 (dump_function): Print name of dump flag causing this dump.
4578 * semantics.c (expand_body): Move thunk inline check to
4579 optimize_function.
4580
8d8e52be
JM
45812001-06-29 Joseph S. Myers <jsm28@cam.ac.uk>
4582
4583 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
4584 (comptypes): Use target.comp_type_attributes.
4585
5a0db193
NS
45862001-06-29 Nathan Sidwell <nathan@codesourcery.com>
4587
4588 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
4589
46f018e1
GDR
45902001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
4591
4592 * error.c (lang_print_error_function): Add a `diagnostic_context *'
4593 parameter. Tweak.
4594
501990bb
NB
45952001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk>
4596
4597 * decl2.c (import_export_class): Update.
4598
f68fc4db
GDR
45992001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
4600
4601 * error.c (init_error): Adjust settings.
4602
9596ddd6
GDR
46032001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
4604
4605 * error.c (init_error): Adjust settings.
4606
c93586fa
RS
46072001-06-19 Richard Sandiford <rsandifo@redhat.com>
4608
4609 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
4610 return pointers to data members by reference rather than by value.
4611
0d97bf4c
JM
46122001-06-18 Jason Merrill <jason_merrill@redhat.com>
4613
4614 Implement the Named Return Value optimization.
4615 * cp-tree.h (struct cp_language_function): Add x_return_value.
4616 (current_function_return_value): Now a macro.
4617 * decl.c: Don't define it.
4618 (define_label, finish_case_label): Don't clear it.
4619 (init_decl_processing): Don't register it with GC.
4620 * semantics.c (genrtl_finish_function): Don't check it for
4621 no_return_label. Copy the RTL from the return value to
4622 current_function_return_value and walk, calling...
4623 (nullify_returns_r): ...this new fn.
4624 * typeck.c (check_return_expr): Set current_function_return_value.
4625
13de7ec4
JM
46262001-06-15 Jason Merrill <jason_merrill@redhat.com>
4627
4628 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
4629 sharing a ctor vtable with. Merge code for cases 1 and 2.
4630 (binfo_ctor_vtable): New fn.
4631 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
4632
3ea099f1
JM
46332001-06-14 Jason Merrill <jason_merrill@redhat.com>
4634
4635 * class.c (dfs_find_final_overrider): Fix logic.
4636
4637 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
4638 virtual thunk instead of non-virtual.
4639 (get_matching_virtual): Uncomment.
4640
4641 * pt.c (unify): Don't recurse between the POINTER_TYPE and the
4642 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on
4643 PARM, not ARG.
4644
87326ba8
NS
46452001-06-14 Nathan Sidwell <nathan@codesourcery.com>
4646
4647 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
4648 we've not emerged from the hierarchy of RTTI_BINFO on reaching
4649 a non-virtual base.
4650
e065a36e
MM
46512001-06-13 Mark Mitchell <mark@codesourcery.com>
4652
4653 * NEWS: Update release number.
4654
623fe76a
NS
46552001-06-12 Nathan Sidwell <nathan@codesourcery.com>
4656
4657 PR c++/3130, c++/3131, c++/3132
4658 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
4659 * class.c (force_canonical_binfo_r): Move
4660 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
4661 virtual bases unless they're primary and what they're primary
4662 too has been moved.
4663 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
4664 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
4665 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
4666 derived binfo.
4667 (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
4668 (layout_nonempty_base_or_field): Add most derived type
4669 parameter. Adjust.
4670 (layout_empty_base): Likewise.
4671 (build_base_field): Likewise.
4672 (build_base_fields): Likewise.
4673 (propagate_binfo_offsets): Add most derived type
4674 parameter. Skip non canonical virtual bases too.
4675 (dfs_set_offset_for_unshared_vbases): Don't skip primary
4676 bases. Do skip canonical bases.
4677 (layout_virtual_bases): Adjust.
4678 (layout_class_type): Adjust.
4679 (dfs_get_primary_binfo): Build list of virtual primary base
4680 candidates.
4681 (get_primary_binfo): Check that the shared virtual primary
4682 base candidate was found first.
4683 (accumulate_vtbl_inits): Don't do anything for non-vptr
4684 containing binfos. For case 1 primary virtual bases, keep
4685 checking that we've not emerged from the hierarchy of RTTI_BINFO.
4686
7bdcf888
NS
46872001-06-12 Nathan Sidwell <nathan@codesourcery.com>
4688
4689 PR c++/3089
4690 * class.c (dfs_accumulate_vtbl_inits): Always walk down the
4691 hierarchy looking for primary bases for a ctor
4692 vtable. Recursively call oneself, if we meet our primary via
4693 this route and haven't met it yet via inheritance graph order.
4694
25b5b465
MM
46952001-06-11 Mark Mitchell <mark@codesourcery.com>
4696
4697 * lang-options.h: Emit documentation for -fno-honor-std, not
4698 -fhonor-std.
4699
eb2d0614
AO
47002001-06-10 Alexandre Oliva <aoliva@redhat.com>
4701
4702 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
4703 Don't clobber delta.
4704 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
4705
2a2b2d43
GDR
47062001-06-10 Mark Mitchell <mark@codesourcery.com>
4707 Gabriel Dos Reis <gdr@codesourcery.com>
4708
4709 * Make-lang.in (cp/call.o): Depend on diagnostic.h
4710 (cp/typeck.o): Depend on diagnostic.h
4711 (cp/typeck2.o): Depend on diagnostic.h
07167a18 4712 (cp/repo.o): Depend on dignostic.h
2a2b2d43
GDR
4713 * typeck.c: #include diagnostic.h
4714 (convert_for_initialization): Remove extern declaration for
4715 warningcount and errorcount.
4716
4717 * call.c: #include diagnostic.h
4718 (convert_like_real): Remove extern declaration for warnincount and
07167a18 4719 errorcount.
2a2b2d43
GDR
4720
4721 * repo.c: #include diagnostic.h
4722 * typeck2.c: #include diagnostic.h
4723
06d5e633
NS
47242001-06-08 Nathan Sidwell <nathan@codesourcery.com>
4725
4726 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
4727 in previous change.
4728
9ac1bd2e
NS
47292001-06-08 Nathan Sidwell <nathan@codesourcery.com>
4730
4731 PR c++/2929
4732 * friend.c (do_friend): Use push_decl_namespace for classes at
4733 namespace scope.
4734
85a9a0a2
NS
47352001-06-08 Nathan Sidwell <nathan@codesourcery.com>
4736 Jason Merrill <jason_merrill@redhat.com>
4737
4738 PR c++/3061
4739 * class.c (build_secondary_vtable): Use assert, rather than an error
4740 message.
4741 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
4742 (dfs_accumulate_vtbl_inits): A lost primary virtual base may
4743 be between ORIG_BINFO and RTTI_BINFO, but neither of them.
4744 Don't set BINFO_VTABLE for a primary virtual base.
4745
daa8df65
MM
47462001-06-07 Mark Mitchell <mark@codesourcery.com>
4747
4748 * decl.c (duplicate_decls): Update source position information
4749 when a template function is defined.
4750
37344b9b
PE
47512001-06-07 Phil Edwards <pme@sources.redhat.com>
4752
4753 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h.
4754
fcebb2dd
NS
47552001-06-07 Nathan Sidwell <nathan@codesourcery.com>
4756
4757 PR c++/2914
4758 * decl.c (pushtag): Don't push into a complete type's scope.
4759
d0cd8b44
JM
47602001-06-06 Jason Merrill <jason_merrill@redhat.com>
4761
4762 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
4763 (struct lang_decl_flags): Lose generate_with_vtable_p.
4764 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
4765 * class.c (copy_virtuals): Adjust.
4766 * decl2.c (mark_vtable_entries): Adjust.
4767 * method.c (make_thunk, build_vtable_entry): Adjust.
4768 * class.c (update_vtable_entry_for_fn): Only look as far as the
4769 first defining class.
07167a18 4770 (build_vtbl_initializer): Put nothing in the slot for a function only
d0cd8b44 4771 defined in a lost primary virtual base.
07167a18 4772 (add_vcall_offset_vtbl_entries_1): Use the same code for
d0cd8b44
JM
4773 the lost primary case and the normal case.
4774 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
4775 (get_vfield_offset, get_derived_offset): Lose.
4776 (dfs_find_final_overrider): Use look_for_overrides_here.
4777 (get_matching_virtual): New fn.
4778 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
4779 not BV_VCALL_INDEX.
4780 * search.c (look_for_overrides_here): Split out from...
4781 (look_for_overrides_r): Here.
4782
4783 * class.c (find_final_overrider): Return error_mark_node on error.
4784
4785 * decl2.c (key_method): #if 0 accidental change.
4786
acf97e0b
JDA
47872001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
4788
4789 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
4790 (build_over_call): Likewise.
4791 * decl.c (grokparms): Likewise.
4792 * pt.c (tsubst_decl): Likewise.
4793 * typeck.c (convert_arguments): Likewise.
4794
7e9abee9
MM
47952001-06-05 Mark Mitchell <mark@codesourcery.com>
4796
47ee8904
MM
4797 * semantics.c (begin_class_definition): Robustify.
4798
7e9abee9
MM
4799 * pt.c (instantiate_decl): Tell the repository code about the
4800 clones, not the cloned functions.
4801 * repo.c (repo_template_used): Explicitly instantiate the cloned
4802 function, not the clones.
4803
bea09693
NS
48042001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4805
4806 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
4807 ICS_BAD_FLAG on created conversion.
4808 (compare_ics): Break out rank.
4809
8f7550ca
NS
48102001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4811
4812 * decl.c (xref_tag): Remove extraneous %s on dependent name
4813 lookup warning.
4814
442e01b6
NS
48152001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4816
4817 * class.c (layout_vtable_decl): Fix off by one error on
4818 build_index_type.
4819 (build_vtt): Likewise.
4820 (build_ctor_vtbl_group): Likewise.
4821
b7442fb5
NS
48222001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4823
4824 * class.c (maybe_indent_hierarchy): New function.
4825 (dump_class_hierarchy_r): Add flags. Dump extra binfo
4826 information, if enabled. Use maybe_indent_hierarchy. Adjust
4827 output format.
4828 (dump_class_hierarchy): Adjust prototype. Adjust output format.
4829 (dump_array, dump_vtable, dump_vtt): New functions.
4830 (finish_struct_1): Adjust hierarchy dumping.
4831 (initialize_vtable): Call dump_vtable.
4832 (build_vtt): Call dump_vtt.
4833 (build_ctor_vtbl_group): Call dump_vtable.
4834 * decl2.c (flag_dump_class_layout): Remove.
4835 (cxx_decode_option): Remove dump translation unit
4836 and dump class hierarchy check. Call dump_switch_p.
4837 (finish_file): Adjust dumping.
4838 (dump.c): Only dump base classes if not TDF_SLIM.
4839 Only dump namespace members if not TDF_SLIM.
4840 * optimize.c (dump_function): New function.
4841 (optimize_function): Call dump_function.
4842 * semantics.c (expand_body): Use dump_enabled_p.
4843
e5410b32
NS
48442001-06-01 Nathan Sidwell <nathan@codesourcery.com>
4845
4846 PR g++/2936
4847 Part missed from first commit
4848 * decl2.c (finish_anon_union): Copy context.
4849
e97c9488
NS
48502001-05-30 Nathan Sidwell <nathan@codesourcery.com>
4851
4852 PR g++/2936
e97c9488
NS
4853 * optimize.c (remap_decl): Remap anonymous aggregate members too.
4854
87d9ac49
NS
48552001-05-26 Nathan Sidwell <nathan@codesourcery.com>
4856
4857 PR g++/2823
4858 * semantics.c (expand_body): Don't optimize thunks.
4859
88657302
RH
48602001-05-25 Sam TH <sam@uchicago.edu>
4861
4862 * cp-tree.h lex.h: Fix header include guards.
4863
48642001-05-25 Mark Mitchell <mark@codesourcery.com>
10841285
MM
4865
4866 * decl.c (init_decl_processing): Tweak.
4867
0b1161fc
MM
48682001-05-24 Mark Mitchell <mark@codesourcery.com>
4869
4870 * decl.c (duplicate_decls): Tidy.
4871 (init_decl_processing): Always set flag_no_builtin.
4872
6f56d925
NS
48732001-05-24 Nathan Sidwell <nathan@codesourcery.com>
4874
4875 PR c++/2184
4876 * decl2.c (do_local_using_decl): Push the decls, even in a
4877 template.
4878
39e0656d
MM
48792001-05-22 Mark Mitchell <mark@codesourcery.com>
4880
4881 * optimize.c (initialize_inlined_parameters): Don't set
4882 TREE_READONLY for a VAR_DECL taking the place of an inlined
4883 PARM_DECL.
4884
0401d499
JM
48852001-05-22 Jason Merrill <jason_merrill@redhat.com>
4886
4887 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
4888 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
4889 attribute.
4890
14fc3426
JM
48912001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
4892
4893 * parse.y: Refer to compound literals as such, not as
4894 constructor-expressions.
4895
3f41ffd8
MM
48962001-05-21 Mark Mitchell <mark@codesourcery.com>
4897
4898 * call.c (build_op_delete_call): Ignore exception-specifications
4899 when looking for matching delete operators.
4900 * init.c (build_new_1): Compute whether or not the allocation
4901 function used is a placement allocation function or not, and
4902 communicate this information to build_op_delete_call.
4903
1a6025b4
JM
49042001-05-21 Jason Merrill <jason_merrill@redhat.com>
4905
90ecce3e
JM
4906 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi.
4907 (build_vtbl_ref): Adjust.
4908 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
4909 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
4910 Re-add vtable-gc.
4911 (unsupported_options): Correspondingly.
4912
4913 * decl2.c (maybe_make_one_only): Check flag_weak, not
4914 supports_one_only().
4915
1a6025b4
JM
4916 * cp-tree.def (START_CATCH_STMT): Lose.
4917 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS.
4918 * tree.c (cp_statement_code_p): Don't case it.
4919 * semantics.c (cp_expand_stmt): Likewise.
4920 * cp-tree.h (START_CATCH_TYPE): Lose.
4921 (HANDLER_TYPE): New.
4922 * except.c (expand_start_catch_block): Don't start any blocks.
4923 Return the type.
4924 (expand_end_catch_block): Don't end any blocks.
4925 * parse.y (handler): Don't pass anything from finish_handler_parms
4926 to finish_handler.
4927 * pt.c (tsubst_expr): Likewise.
4928 * semantics.c (begin_handler): Call note_level_for_catch here.
4929 (finish_handler_parms): Don't return anything.
4930 (genrtl_catch_block, begin_catch_block): Lose.
4931 (genrtl_handler): Call expand_start_catch here.
4932
49332001-05-18 Jason Merrill <jason_merrill@redhat.com>
4934
4935 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
4936 (get_vtable_decl, build_vtt): Not here.
4937
d30a825a
NS
49382001-05-20 Nathan Sidwell <nathan@codesourcery.com>
4939
4940 PR c++/2781
4941 * optimize.c (update_cloned_parm): Copy addressability and other
4942 flags.
4943
3b82c249
KL
49442001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4945
4946 * pt.c (determine_specialization): Ignore artificial functions.
4947
2a967f3d
NB
49482001-05-20 Neil Booth <neil@daikokuya.demon.co.uk>
4949
4950 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
4951 (C_RID_CODE): Remove.
4952 * lex.c (cxx_init_options): Call set_identifier_size. Update.
4953 (init_parse): Don't do it here.
4954
f99df08e
DN
49552001-05-18 Diego Novillo <dnovillo@redhat.com>
4956
4957 * decl2.c (finish_objects): Use the original SYMBOL_REF from the
4958 function declaration to avoid stripping the symbol's attributes.
4959
2b0cbc5d
NS
49602001-05-18 Nathan Sidwell <nathan@codesourcery.com>
4961
4962 * decl.c (pushdecl): Adjust error string.
4963 (xref_tag): Adjust friend class injection warning. Remove the
4964 inherited name from the class shadowed scope.
4965
e6855a2d
MM
49662001-05-17 Mark Mitchell <mark@codesourcery.com>
4967
4968 * except.c (cp_protect_cleanup_actions): New function.
07167a18 4969 (init_exception_processing): Don't set protect_cleanup_actions
e6855a2d
MM
4970 here. Do set lang_protect_cleanup_actions.
4971
cc469ee9
NS
49722001-05-16 Nathan Sidwell <nathan@codesourcery.com>
4973
4974 * spew.c (read_token): Call yyerror on all unexpected tokens.
4975
3f0a9b35
NS
49762001-05-16 Nathan Sidwell <nathan@codesourcery.com>
4977
4978 * init.c (member_init_ok_or_else): Take a tree rather than
4979 string for name.
4980 (expand_member_init): Adjust.
4981
8d0cb60d
NC
49822001-05-14 Nick Clifton <nickc@cambridge.redhat.com>
4983
4984 * decl.c (duplicate_decls): Suppress warning about duplicate
749ced52 4985 decls if the first decl is a friend.
8d0cb60d 4986
1f730ff7
ZW
49872001-05-12 Zack Weinberg <zackw@stanford.edu>
4988
4989 * except.c (choose_personality_routine): Export. Add
4990 explanatory comment. Take an enum languages, not a boolean.
4991 (initialize_handler_parm): Adjust to match.
4992 * cp-tree.h: Prototype choose_personality_routine.
4993 * lex.c (handle_pragma_java_exceptions): New function.
4994 (init_cp_pragma): Register #pragma GCC java_exceptions.
4995
90e0c410
NB
49962001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
4997
4998 * method.c (build_mangled_C99_name): Remove unused prototype.
4999
cb7fdde2
AO
50002001-05-12 Alexandre Oliva <aoliva@redhat.com>
5001
5002 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
5003 * typeck.c (get_member_function_from_ptrfunc,
5004 build_ptrmemfunc, expand_ptrmemfunc_cst): Take
5005 TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
18ae7f63
AO
5006
5007 Reverted Geoff Keating's 2001-05-03's patch.
5008
401deb20
IR
50092001-05-11 Ira Ruben <ira@apple.com>
5010
5011 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
5012
8e93d446
NB
50132001-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
5014
5015 * cp-tree.h (finish_label_expr, lookup_label): Delete.
5016 * parse.y: Update for '&&'; don't issue warning here.
5017 * semantics.c (finish_label_expr): Delete.
5018
5cdba4ff
MM
50192001-05-07 Mark Mitchell <mark@codesourcery.com>
5020
5021 * splay-tree.h (splay_tree_max): New function.
5022 (splay_tree_min): Likewise.
5023
8e9eff6b
GK
50242001-05-03 Geoffrey Keating <geoffk@redhat.com>
5025
5026 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
5027 (pfn_vflag_identifier): Define.
5028 Update comment about layout of pointer functions.
5029 (build_ptrmemfunc1): Update prototype.
5030 (expand_ptrmemfunc_cst): Update prototype.
5031 * decl.c (initialize_predefined_identifiers): Initialize
5032 pfn_vflag_identifier.
5033 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
5034 an extra field to the type.
07167a18 5035 * expr.c (cplus_expand_constant): Pass 'flag' between
8e9eff6b
GK
5036 expand_ptrmemfunc_cst and build_ptrmemfunc1.
5037 * typeck.c (get_member_function_from_ptrfunc): When
5038 FUNCTION_BOUNDARY < 16, look at additional field to determine
5039 if a pointer-to-member is a real pointer or a vtable offset.
5040 (build_ptrmemfunc1): Add new parameter to contain extra field.
5041 (build_ptrmemfunc): Pass the extra field around.
5042 (expand_ptrmemfunc_cst): Add new parameter to return extra field.
5043 (pfn_from_ptrmemfunc): Ignore the extra field.
5044
acc72c37
MM
50452001-05-03 Mark Mitchell <mark@codesourcery.com>
5046
5047 * cp-tree.h (flag_inline_trees): Update documentation.
5048 * decl.c (init_decl_processing): Adjust handling of
5049 flag_inline_functions and flag_inline_trees to support -O3.
5050 (grokfndecl): Set DECL_INLINE on all functions if that's what
5051 the user requested.
5052 (save_function_data): Clear DECL_INLINE in
5053 current_function_cannot_inline is non-NULL.
5054 * decl2.c (flag_inline_trees): Update documentation.
5055
5158d7ee
NS
50562001-05-03 Nathan Sidwell <nathan@codesourcery.com>
5057
5058 * dump.c (cp_dump_tree, USING_STMT case): New case.
5059 * tree.c (cp_statement_code_p): Add USING_STMT.
5060 * decl2.c (do_using_directive): Add the using directive statement.
5061
5062 * tree.c (walk_tree): Reformat an if block.
5063
80f5bb34
MM
50642001-05-02 Mark Mitchell <mark@codesourcery.com>
5065
5066 * decl.c (compute_array_index_type): Don't try to do anything with
5067 the indices when processing a template.
5068
3e411c3f
KG
50692001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5070
5071 * call.c: NULL_PTR -> NULL.
5072 * class.c: Likewise.
5073 * cvt.c: Likewise.
5074 * decl.c: Likewise.
5075 * decl2.c: Likewise.
5076 * except.c: Likewise.
5077 * init.c: Likewise.
5078 * rtti.c: Likewise.
5079 * search.c: Likewise.
5080 * tree.c: Likewise.
5081 * typeck.c: Likewise.
5082 * typeck2.c: Likewise.
5083
46188dca
MM
50842001-05-02 Mark Mitchell <mark@codesourcery.com>
5085
5086 * decl2.c (do_using_directive): Revert previous patch.
5087
9da99f7d
NS
50882001-05-01 Nathan Sidwell <nathan@codesourcery.com>
5089
5090 * cp-tree.def (USING_STMT): New statement node.
5091 * cp-tree.h (USING_STMT_NAMESPACE): New macro.
5092 * decl2.c (do_using_directive): Add USING_STMT to statement
5093 tree. Don't emit errors when processing template decl.
5094 * pt.c (tsubst_expr, USING_STMT case): New case.
5095 * semantics.c (cp_expand_stmt, USING_STMT case): New case.
5096
4b48a93e
NS
50972001-05-01 Nathan Sidwell <nathan@codesourcery.com>
5098
5099 * call.c (build_new_op): Convert args from reference here.
5100 (build_conditional_expr): Don't convert here.
5101
1bcea8d7
NS
51022001-05-01 Nathan Sidwell <nathan@codesourcery.com>
5103
5104 * spew.c (last_token_id): New static variable.
5105 (read_token): Set it here.
5106 (yyerror): Use it here.
5107
d72040f5
RH
51082001-04-30 Richard Henderson <rth@redhat.com>
5109
749ced52 5110 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
d72040f5
RH
5111 * decl.c: Likewise.
5112
c3aac512
MM
51132001-04-30 Mark Mitchell <mark@codesourcery.com>
5114
5115 * gxxint.texi: Remove.
5116 * Make-lang.in: Remove all traces of gxxint.texi.
5117
5fd893d5
MM
5118Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com>
5119
5120 * decl2.c (start_static_initialization_or_destruction): Correct
5121 logic to handle the -fno-use-cxa-atexit case.
5122
d60e5448
MM
51232001-04-30 Mark Mitchell <mark@codesourcery.com>
5124
5125 * optimize.c (update_cloned_parm): New function.
5126 (maybe_clone_body): Use it. Update the `this' parameter too.
5127
7200764f
JM
51282001-04-29 Joseph S. Myers <jsm28@cam.ac.uk>
5129
5130 * decl2.c (unsupported_options): Add new-abi.
5131 * lang-options.h: Remove no longer supported options.
5132
2d46ec83
NS
51332001-04-27 Nathan Sidwell <nathan@codesourcery.com>
5134
5135 * except.c (can_convert_eh): Don't check template parms,
5136 typename types etc.
5137
02a1a68c
NS
51382001-04-27 Nathan Sidwell <nathan@codesourcery.com>
5139
5140 * optimize.c (maybe_clone_body): Copy parameter names and locations.
5141
5f6eeeb3
NS
51422001-04-27 Nathan Sidwell <nathan@codesourcery.com>
5143
5144 * cp-tree.h (adjust_clone_args): Prototype new function.
5145 * class.c (adjust_clone_args): New function.
5146 * decl.c (start_function): Call it for in charge ctors.
5147
1b28d441
MM
51482001-04-26 Mark Mitchell <mark@codesourcery.com>
5149
5150 * method.c (use_thunk): Make sure that thunks really are emitted
5151 when requested.
5152
0576ec13
NS
51532001-04-26 Nathan Sidwell <nathan@codesourcery.com>
5154
5155 * mangle.c (write_chars): New macro.
5156 (hwint_to_ascii): New function
5157 (write_number): Use it.
5158 (write_integer_cst): Deal with really big numbers.
5159
b96ada87
MM
51602001-04-25 Mark Mitchell <mark@codesourcery.com>
5161
5162 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
5163 the clone.
5164
6bda7a5e
NS
51652001-04-25 Nathan Sidwell <nathan@codesourcery.com>
5166
5167 * decl.c (grokdeclarator): Set context of namespace scope
5168 TYPE_DECLS.
5169
11fe225a
ZW
51702001-04-24 Zack Weinberg <zackw@stanford.edu>
5171
5172 * cp/optimize.c: Include hashtab.h.
5173 (struct inline_data): Add tree_pruner.
5174 (expand_call_inline, expand_calls_inline): Use it when calling
5175 walk_tree.
5176 (optimize_function): Initialize and free tree_pruner.
5177
0ba8a114
NS
51782001-04-24 Nathan Sidwell <nathan@codesourcery.com>
5179
5180 Lazy __FUNCTION__ generation.
5181 * cp-tree.def (FUNCTION_NAME): Remove.
5182 * cp-tree.h (function_name_declared_p): Remove.
5183 (cp_fname_init): Prototype.
5184 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
5185 don't call declare_function_name. Call start_fname_decls.
5186 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
5187 clobber the line number.
5188 (cp_fname_init): New function.
5189 (start_function): Call start_fname_decls.
5190 (finish_function): Call finish_fname_decls.
5191 * lex.c (reswords): Add slots for __FUNCTION__ et al.
5192 (rid_to_yy): Add mappings for __FUNCTION__ et al.
5193 * optimize.c (maybe_clone_body): Remove function_name_declared_p.
5194 * parse.y (VAR_FUNC_NAME): New token.
5195 (primary): Add VAR_FUNC_NAME.
5196 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
5197 generation.
5198 (tsubst, FUNCTION_NAME case): Remove.
5199 (tsubst_copy, FUNCTION_NAME case): Remove.
5200 (tsubst_expr, DECL_STMT case): Be careful with a
5201 DECL_PRETTY_FUNCTION_P.
5202 (instantiate_decl): Remove function_name_declared_p.
5203 * semantics.c (begin_compound_statement): Don't call
5204 declare_function_name here.
5205 (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
5206 (finish_translation_unit): Call finish_fname_decls.
5207 (expand_body): Remove function_name_declared_p.
5208 * typeck2.c (digest_init): Allow any ERROR_MARK.
5209
dfbb4f34
NS
52102001-04-24 Nathan Sidwell <nathan@codesourcery.com>
5211
5212 * pt.c (tsubst_decl): Use VOID_TYPE_P.
5213 * semantics.c: Fix some typos.
5214
e2584c52
PE
52152001-04-23 Phil Edwards <pme@sources.redhat.com>
5216
5217 * cp/decl2.c (flag_honor_std): Always initialize to 1.
5218
d4c3ec27
KG
52192001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5220
5221 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
5222
2ac8a0f9
JM
52232001-04-23 Jason Merrill <jason_merrill@redhat.com>
5224
5225 * except.c (build_throw): Wrap the initialization of the exception
5226 object in a MUST_NOT_THROW_EXPR.
5227 (do_free_exception): #if 0.
5228
968b956a
MM
52292001-04-20 Mark Mitchell <mark@codesourcery.com>
5230
5231 * cp-tree.h (finish_enum): Change prototype.
5232 * decl.c (finish_enum): Reorganize.
5233 * parse.y (structsp): Adjust calls to finish_enum.
11fe225a 5234
aa1826e2
NS
52352001-04-20 Nathan Sidwell <nathan@codesourcery.com>
5236
5237 * tree.c (cp_tree_equal): Adjust final switch formatting. Add
5238 't' case.
5239
06d9f09f
NS
52402001-04-20 Nathan Sidwell <nathan@codesourcery.com>
5241
5242 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
5243 (layout_empty_base): Return at end flag.
5244 (build_base_field): Likewise.
5245 (build_base_fields): Likewise.
5246 (layout_virtual_bases): Don't add 1 to eoc value.
5247 (end_of_class): Use full size for empty bases.
5248 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
5249 empty bases. Don't add 1 to eoc value. Only add trailing padding
5250 if we're an empty class with no empty bases.
5251 (dump_class_hierarchy): Dump size and alignment.
5252
351a0f00
JJ
52532001-04-20 Jakub Jelinek <jakub@redhat.com>
5254
5255 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
5256 ICS_BAD_FLAG.
5257
881cae05
JJ
52582001-04-20 Jakub Jelinek <jakub@redhat.com>
5259
5260 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
5261 is found, look first if name does not match the structure name.
5262
5d2ed28c
MM
52632001-04-19 Mark Mitchell <mark@codesourcery.com>
5264
5265 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
5266 set.
5267 (SET_DECL_LANGUAGE): New macro.
5268 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
5269 (pushdecl): Likewise.
5270 (build_library_fn_1): Likewise.
5271 (build_cp_library_fn): Likewise.
5272 (grokfndecl): Likewise.
5273 (grokvardecl): Mark `extern "C"' variables as having C linkage.
5274 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
5275 * lex.c (retrofit_lang_decl): Likewise.
5276 * mangle.c (mangle_decl_string): Don't mangle the names of
5277 variables declared with C language linkage.
5278 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
11fe225a 5279
41251458
JDA
52802001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca>
5281
5282 * semantics.c (simplify_aggr_init_exprs_r): Don't restore
5283 flag_access_control from uninitialized storage.
5284
1b4a93f7
MM
52852001-04-15 Mark Mitchell <mark@codesourcery.com>
5286
24272dc0
MM
5287 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
5288 * mangle.c (write_pointer_to_member_type): Fix mangling of
5289 pointers to cv-qualified member function types.
5290
1b4a93f7
MM
5291 * init.c (build_delete): Create a SAVE_EXPR for the address if
5292 we're going to use it more than once.
5293
530ec96d
MM
52942001-04-13 Mark Mitchell <mark@codesourcery.com>
5295
5296 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
5297 (expand_ptremfunc_cst): Change prototype.
5298 (delta2_from_ptrmemfunc): Remove.
5299 * expr.c (cplus_expand_constant): Adjust call to
5300 expand_ptrmemfunc_cst.
5301 * typeck.c (build_ptrmemfunc1): Simplify.
5302 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
5303 results in a constant.
5304 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
5305 (delta2_from_ptrmemfunc): Remove.
5306 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
11fe225a 5307
ee8fc32b
JM
53082001-04-12 Jason Merrill <jason_merrill@redhat.com>
5309
5310 * cp-tree.h (decl_namespace_list): New macro.
5311 (struct saved_scope): Add decl_ns_list.
5312 * decl.c (mark_saved_scope): Mark it.
5313 * decl2.c: Lose static decl_namespace_list.
5314 (init_decl2): Don't save it.
5315
48857160
KG
53162001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5317
5318 * cp-tree.h (warn_return_type, yylex): Delete redundant
5319 declarations.
11fe225a 5320
48857160
KG
5321 * decl.c (current_class_depth, global_namespace): Likewise.
5322
5323 * decl2.c (current_class_depth, flag_gnu_xref): Likewise
5324
5325 * repo.c (flag_use_repository): Likewise.
5326
845e14ed
KG
53272001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5328
5329 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
5330 set_block, pushdecl, getdecls, gettags, init_decl_processing,
5331 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
5332 lvalue_or_else, print_lang_statistics, comp_target_types,
5333 unsigned_type, signed_type, signed_or_unsigned_type,
5334 build_function_call, mark_addressable, incomplete_type_error):
5335 Delete redundant declarations.
5336
1951a1b6
JM
53372001-04-11 Jason Merrill <jason_merrill@redhat.com>
5338
5339 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
5340 (TYPE_ANONYMOUS_P): New macro.
5341 (TAGGED_TYPE_P): New macro.
5342 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
5343 (grokfndecl, grokvardecl, grokdeclarator): Likewise.
5344 * tree.c (no_linkage_helper): Likewise.
5345 * semantics.c (begin_class_definition): Likewise.
5346 * pt.c (convert_template_argument): Likewise.
5347 * lex.c (check_for_missing_semicolon): Likewise.
5348
0fb3018c
NS
53492001-04-12 Nathan Sidwell <nathan@codesourcery.com>
5350
5351 * class.c (dfs_unshared_virtual_bases): New function.
5352 (mark_primary_bases): Call it.
5353 (check_bases): Ignore virtual bases when determining
5354 nearly-emptiness.
5355
bbb53468
NS
53562001-04-12 Nathan Sidwell <nathan@codesourcery.com>
5357
5358 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
5359
9b7949d5
MM
53602001-04-11 Mark Mitchell <mark@codesourcery.com>
5361
5362 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
5363 cloned function to the clone.
5364
d6684bc8
KG
53652001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5366
5367 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
5368
5369 * semantics.c: Include expr.h.
5370
a2095778
NS
53712001-04-11 Nathan Sidwell <nathan@codesourcery.com>
5372
5373 * method.c (implicitly_declare_fn): Commonize code for copy ctor
5374 and assignment op. Set TREE_USED for parameter.
5375
78b45a24
MM
53762001-04-10 Mark Mitchell <mark@codesourcery.com>
5377
5378 * class.c (find_final_overrider_data): Add `candidates'.
5379 (dfs_find_final_overrider): Don't issue error messages
5380 prematurely.
5381 (find_final_overrider): Issue error messages here.
5382 (build_base_field): Don't warn about amgibuous direct bases here.
5383 (warn_about_ambiguous_direct_bases): New function.
5384 (layout_class_type): Use it.
5385
0450d74d
RH
53862001-04-10 Richard Henderson <rth@redhat.com>
5387
5388 * typeck.c (build_array_ref): Push the array reference inside
5389 COMPOUND_EXPR and COND_EXPR.
5390
79065db2
MM
53912001-04-05 Mark Mitchell <mark@codesourcery.com>
5392
5393 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
5394 * decl.c (duplicate_decls): Adjust accordingly.
5395 (maybe_commonize_var): Likewise.
5396 (grokfndecl): Likewise.
5397 (start_function): Likewise.
5398 (start_method): Likewise.
5399 * decl2.c (key_method): Likewise.
5400 (import_export_decl): Likewise.
5401 * method.c (implicitly_declare_fn): Likewise.
5402 * optimize.c (maybe_clone_body): Likewise.
11fe225a 5403
fdecbf8a
BK
54042001-04-05 Benjamin Kosnik <bkoz@redhat.com>
5405
b03eced6 5406 * lang-specs.h: Add __DEPRECATED.
fdecbf8a 5407
0b4c1646
R
5408Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com>
5409
5410 * search.c (get_dynamic_cast_base_type): When building a new
5411 constant, set its type to ssizetype.
5412
e59d6709
JJ
54132001-04-04 Jakub Jelinek <jakub@redhat.com>
5414
5415 * optimize.c (expand_call_inline): Only add newly inlined statements
5416 into inlined_stmts.
5417
0c918ce5
MM
54182001-04-03 Mark Mitchell <mark@codesourcery.com>
5419
5420 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
5421 (OPERATOR_FORMAT): Likewise.
5422 (OPERATOR_TYPENAME_FORMAT): Likewise.
5423 * operators.def: Remove old name-mangling information.
5424 * decl.c (grok_op_properties): Adjust accordingly.
5425 * lex.c (init_operators): Likewise.
5426 * rtti.c (get_tinfo_decl): Issue error messages about types that
5427 have variable size.
5428
92788413
MM
54292001-04-03 Mark Mitchell <mark@codesourcery.com>
5430
11fe225a 5431 * decl2.c (import_export_decl): Don't call import_export_class
92788413
MM
5432 when processing an inline member function.
5433 * semantics.c (expand_body): Call import_export_decl before
5434 emitting inline functions.
5435
52a11cbf
RH
54362001-03-28 Richard Henderson <rth@redhat.com>
5437
5438 IA-64 ABI Exception Handling:
5439 * cp-tree.def (EH_SPEC_BLOCK): New.
5440 (MUST_NOT_THROW_EXPR): New.
5441 * cp-tree.h: Update changed function declarations.
5442 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
5443 (CPTI_CALL_UNEXPECTED): New.
5444 (struct cp_language_function): Rename x_eh_spec_try_block
5445 to x_eh_spec_block.
5446 (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
11fe225a 5447 * decl.c (current_binding_level): If no current function
52a11cbf
RH
5448 bindings, revert to scope_chain.
5449 (initialize_predefined_identifiers): Remove __cp_push_exception.
5450 (store_parm_decls): Use begin_eh_spec_block.
5451 (finish_function): Use finish_eh_spec_block.
5452 (mark_lang_function): Update for name changes.
5453 * decl2.c (finish_file): No mark_all_runtime_matches.
5454 * dump.c (cp_dump_tree): Handle new tree codes.
5455 * error.c (dump_expr) [BIND_EXPR]: Fix typo.
5456 * except.c (catch_language_init, catch_language): Remove.
5457 (init_exception_processing): Don't set language code.
5458 Initialize call_unexpected_node, protect_cleanup_actions,
5459 eh_personality_libfunc, lang_eh_runtime_type.
5460 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
5461 (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
5462 (prepare_eh_type): Split out type canonicalizations ...
5463 (build_eh_type_type): ... from here.
5464 (build_eh_type_type_ref): Remove.
5465 (mark_all_runtime_matches): Remove.
5466 (build_exc_ptr): New.
5467 (do_begin_catch, do_end_catch): New.
5468 (do_pop_exception): Remove.
5469 (build_terminate_handler): Remove.
5470 (choose_personality_routine): Split out language choice from ...
5471 (initialize_handler_parm): ... here.
5472 Use MUST_NOT_THROW_EXPR.
5473 (expand_start_catch_block): Use do_begin_catch. Simplify Java
5474 exception object handling.
5475 (expand_start_eh_spec, expand_end_eh_spec): Remove.
5476 (expand_exception_blocks, alloc_eh_object): Remove.
5477 (begin_eh_spec_block, finish_eh_spec_block): New.
5478 (do_allocate_exception, do_free_exception): New.
5479 (expand_throw): Merge into ...
5480 (build_throw): ... here. Update for abi.
5481 * expr.c (cplus_expand_expr): No expand_internal_throw.
5482 Handle MUST_NOT_THROW_EXPR.
5483 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
5484 * semantics.c (*) Update for except.h name changes.
5485 (genrtl_try_block): No protect_with_terminate.
5486 (genrtl_eh_spec_block): New.
5487 (genrtl_handler): Don't emit the goto here.
5488 (cp_expand_stmt): Handle EH_SPEC_BLOCK.
5489 (genrtl_finish_function): Don't expand_exception_blocks.
5490 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
5491
826840d9
RH
54922001-03-28 Richard Henderson <rth@redhat.com>
5493
5494 * decl.c (struct named_label_list): Rename eh_region to
5495 in_try_scope, add in_catch_scope.
5496 (struct binding_level): Rename eh_region to is_try_scope,
5497 add is_catch_scope.
5498 (note_level_for_try): Rename from note_level_for_eh.
5499 (note_level_for_catch): New.
5500 (poplevel): Copy both is_try_scope and is_catch_scope to
5501 the named_label_list struct.
5502 (check_previous_goto_1): Don't check for catch block via
5503 DECL_ARTIFICIAL; use in_try_scope instead.
5504 (check_goto): Likewise.
5505 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
5506 * except.c (expand_start_catch_block): Call note_level_for_catch.
5507 * semantics.c (begin_compound_stmt): Update for note_level_for_try.
5508
531073e7
RH
55092001-03-27 Richard Henderson <rth@redhat.com>
5510
5511 * except.c: Use USING_SJLJ_EXCEPTIONS instead of
5512 exceptions_via_longjmp.
5513
8653a2c3
PE
55142001-03-27 Phil Edwards <pme@sources.redhat.com>
5515
5516 * pt.c (check_default_tmpl_args): Make error messages clearer.
5517
55182001-03-26 Phil Edwards <pme@sources.redhat.com>
5519
5520 * error.c: Also undefine 'A' macro used for cp_printers definition.
5521
911e6107
KG
55222001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5523
5524 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
5525
005a5cb0
MY
55262001-03-26 Mike Yang <yang@research.att.com>
5527 Mark Mitchell <mark@codesourcery.com>
5528
5529 * dump.c (dump_access): New function.
5530 (cp_dump_tree): Use it. Dump basetype information for class
5531 types.
5532
b850de4f
MM
55332001-03-26 Mark Mitchell <mark@codesourcery.com>
5534
5535 * Makefile.in (optimize.o): Depend on params.h.
5536 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
5537 (init_decl_processing): Set flag_no_inline when doing
5538 inlining-on-trees.
5539 * optimize.c: Include params.h.
5540 (struct inline_data): Improve documentation of FNS. Add
5541 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
5542 (INSNS_PER_STMT): New macro.
5543 (remap_block): Use CLONING_P.
5544 (inlinable_function_p): Don't inline big functions.
5545 (expand_call_inline): Keep track of how much inlining we've done.
5546 (optimize_function): Set FIRST_INLINED_FN.
5547 (maybe_clone_body): Set CLONING_P.
5548 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
5549 tree nodes.
5550 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
5551 rest_of_compilation. Clear DECL_RTL for local variables
5552 afterwards.
5553 (clear_decl_rtl): New function.
11fe225a 5554
788bf0e3
NS
55552001-03-26 Nathan Sidwell <nathan@codesourcery.com>
5556
5557 Implement DR 209
5558 * cp-tree.h (skip_type_access_control,
5559 reset_type_access_control): Prototype.
5560 * decl.c (grokdeclarator): Access of friends is not checked.
5561 * parse.y (component_decl_list): Reset type access control.
5562 * semantics.c (decl_type_access_control): Clear
5563 current_type_lookups.
5564 (save_type_access_control): Don't save if not deferring.
5565 (skip_type_access_control, reset_type_access_control): New
5566 functions.
5567 (begin_class_definition): Do type access control for basetypes.
5568 Start deferred access control.
5569 (finish_class_definition): Resume immediate access control if
5570 this is a local class.
5571
730e1556
KG
55722001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5573
5574 * class.c (add_method): Use memcpy/memmove, not bcopy.
5575
5576 * decl.c (duplicate_decls): Likewise.
5577
f1a0345c
JJ
55782001-03-23 Jakub Jelinek <jakub@redhat.com>
5579
5580 * mangle.c (write_discriminator): Use `_0' for discriminator 1,
5581 not `_'.
5582
8e4ce833
JJ
55832001-03-23 Jakub Jelinek <jakub@redhat.com>
5584
5585 * decl.c (local_names): Define.
5586 (push_local_name): New.
5587 (grok_reference_init): Return init if initializing static reference
5588 variable with non-constant instead of emitting it.
5589 Move expand_static_init call to cp_finish_decl.
5590 (layout_var_decl): Call push_local_name.
5591 (maybe_commonize_var): Allow inlining functions even if they have
5592 static local variables, use comdat_linkage for them if flag_weak.
5593 (check_initializer): Call obscure_complex_init if
5594 grok_reference_init returned non-zero.
5595 (save_function_data): Clear x_local_names.
5596 (pop_cp_function_context): Free x_local_names.
5597 (mark_inlined_fns): Remove.
5598 (mark_lang_function): Mark x_local_names.
5599 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
5600 Mark inlined_fns as tree, remove call to mark_inlined_fns.
5601 * class.c (alter_access): Ensure DECL_ACCESS is never set if
5602 DECL_DISCRIMINATOR_P.
5603 * cp-tree.h (cp_language_function): Add x_local_names.
5604 (lang_decl_flags): Add discriminator into u2.
5605 (lang_decl_inlined_fns): Remove.
5606 (lang_decl): inlined_fns is now a TREE_VEC.
5607 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
5608 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
5609 TREE_VEC, not a custom structure.
5610 (optimize_function): Likewise.
5611 * mangle.c (discriminator_for_local_entity): Discriminate among
5612 VAR_DECL local entities.
5613 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
5614 is not valid.
5615
60c87482
BM
56162001-03-22 Bryce McKinlay <bryce@albatross.co.nz>
5617
5618 Add support for Java interface method calls.
5619 * cp-tree.h (struct lang_type): Add java_interface flag.
5620 (TYPE_JAVA_INTERFACE): New macro.
5621 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
5622 by setting TYPE_JAVA_INTERFACE.
5623 * call.c (java_iface_lookup_fn): New static.
11fe225a 5624 (build_over_call): If calling a method declared in a
60c87482
BM
5625 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
5626 expression which resolves the function address.
5627 (build_java_interface_fn_ref): New function.
5628
94c7f30b
RH
56292001-03-22 Richard Henderson <rth@redhat.com>
5630
5631 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
5632 * except.c: Don't include it.
5633
fd8b7a0e 56342001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
826840d9 5635 based on an idea from Joe Buck <jbuck@synopsys.com>
fd8b7a0e
GP
5636
5637 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
5638 New nonterminals.
5639 (data_def, component_decl): Add reductions to bad_decl.
5640
a1c2b86d
JJ
56412001-03-22 Jakub Jelinek <jakub@redhat.com>
5642
5643 * method.c (do_build_assign_ref): Don't use build_modify_expr for
5644 anonymous aggregates, since they don't have assignment operator
5645 method.
5646 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
5647 assignment operators for anonymous structure fields.
5648
46ccf50a
JM
56492001-03-21 Jason Merrill <jason@redhat.com>
5650
5651 * pt.c (instantiate_decl): Abort if we see a member constant
5652 instantiation that doesn't already have its initializer.
5653 Downgrade explicit instantiation without definition to pedwarn.
5654
5655 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
5656 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
5657 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
5658
5659 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
5660 (pending_vtables): Remove.
5661 * decl2.c (pending_vtables): Remove.
5662 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
5663 CLASSTYPE_VTABLE_NEEDS_WRITING.
5664 (import_export_class): Likewise.
5665 (init_decl2): Don't mark pending_vtables.
5666 * lex.c (handle_pragma_vtable): Just sorry.
5667 * pt.c (instantiate_class_template): Don't mess with
5668 CLASSTYPE_VTABLE_NEEDS_WRITING.
5669 (mark_class_instantiated): Likewise.
5670 * ptree.c (print_lang_type): Don't print it.
5671 * semantics.c (begin_class_definition): Don't set it.
5672
5673 * pt.c (template_tail): Replace with last_pending_template.
5674 (maybe_templates, maybe_template_tail): Remove.
5675 (add_pending_template): Adjust.
5676 (instantiate_pending_templates): Adjust.
5677
5678 * cp-tree.h (struct saved_scope): Remove lang_stack field.
5679 (current_lang_stack): Remove.
5680 * decl.c (maybe_push_to_top_level): Don't initialize it.
5681 (duplicate_decls): Use current_lang_depth.
5682 (xref_basetypes): Likewise.
5683 * class.c (current_lang_depth): New fn.
5684 (push_lang_context): Use more varray functionality.
5685 (pop_lang_context): Likewise.
64d9c3fe
JM
5686
5687 * error.c (GLOBAL_THING): Always use '__'.
5688
1c06710a
MM
56892001-03-21 Mark Mitchell <mark@codesourcery.com>
5690
71cb9286
MM
5691 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
5692
1c06710a
MM
5693 * mangle.c (mangle_decl_string): Mangle the names of overloaded
5694 operators, even when they have `extern "C"' linkage.
5695
92643fea
MM
56962001-03-19 Mark Mitchell <mark@codesourcery.com>
5697
5698 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
5699 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5700 where it's not necessary.
5701 (add_method): Remove optimization involving comparison of
5702 DECL_ASSEMBLER_NAME.
5703 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
5704 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5705 where it's not necessary.
5706 (check_methods): Likewise.
5707 (build_clone): Likewise.
5708 (built_vtt): Likewise.
5709 * cp-tree.h (DECL_NEEDED_P): Likewise.
5710 * decl.c (pushtag): Likewise.
5711 (duplicate_decls): Likewise.
5712 (pushdecl): Likewise.
5713 (builtin_function): Likewise.
5714 (build_library_fn_1): Set DECL_LANGUAGE for library functions.
5715 (build_cp_library_fn): Likewise.
5716 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
5717 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5718 where it's not necessary.
5719 (make_rtl_for_nonlocal_decl): Likewise.
5720 (cp_finish_decl): Likewise.
5721 (grokfndecl): Likewise.
5722 (grokvardecl): Likewise.
5723 (grokdeclarator): Likewise.
5724 (start_function): Likewise.
5725 (cp_missing_return_ok_p): Likewise.
5726 * decl2.c (grokclassfn): Likewise.
5727 (check_classfn): Likewise.
5728 (finish_static_data_member_decl): Likewise.
5729 (grokfield): Likewise.
5730 * error.c (GLOBAL_IORD_P): Remove.
5731 (dump_global_iord): Improve output.
5732 (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
5733 * except.c (nothrow_libfn_p): Summarily reject any function not in
5734 namespace-scope.
5735 * init.c (build_java_class_ref): Don't explicitly set
5736 DECL_ASSEMBLER_NAME after calling mangle_decl.
5737 * mangle.c (mangle_decl_string): Handle extern "C" functions.
5738 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
5739 * method.c (set_mangled_name_for_decl): Don't explicitly set
5740 DECL_ASSEMBLER_NAME after calling mangle_decl.
5741 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
5742 IDENTIFIER_GLOBAL_VALUE for the thunk.
5743 * pt.c (set_mangled_name_for_template_decl): Remove.
5744 (check_explicit_specialization): Don't use it.
5745 (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
5746 (tsubst_friend_function): Likewise.
5747 (tsubst_decl): Likewise.
5748 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
5749 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
5750 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5751 where it's not necessary.
5752 (tinfo_base_init): Likewise.
5753 (create_real_tinfo_var): Likewise.
5754 * search.c (looup_field_1): Likewise.
5755 * semantics.c (finish_named_return_value): Likewise.
5756 * tree.c (init_tree): Set lang_set_decl_assembler_name.
11fe225a 5757
d064d75a
GDR
57582001-03-15 Gabriel Dos Reis <gdr@codesourcery.com>
5759
5760 Correct semantics restrictions checking in throw-expression.
5761 * except.c (is_admissible_throw_operand): New function.
5762 (build_throw): Use it.
5763
a3eab619
MM
57642001-03-14 Mark Mitchell <mark@codesourcery.com>
5765
5766 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
5767 and its ilk.
5768
19e7881c
MM
57692001-03-14 Mark Mitchell <mark@codesourcery.com>
5770
5771 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
5772 * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
5773 * decl.c (duplicate_decls): Likewise.
5774 (builtin_function): Likewise.
5775 (build_library_fn): Likewise.
5776 (build_cp_library_fn): Likewise.
5777 (check_initializer): Likewise.
5778 (cp_finish_decl): Likewise.
5779 * decl2.c (grokfield): Likewise.
5780 (grok_function_init): Remove #if 0'd code.
5781 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
5782 * friend.c (do_friend): Likewise.
5783 * init.c (get_temp_regvar): Likewise.
5784 * method.c (make_thunk): Likewise.
5785 * pt.c (tsubst_friend_function): Likewise.
5786 (tsubst_decl): Likewise.
5787 (regenerate_decl_from_template): Likewise.
5788 * semantics.c (genrtl_named_return_value): Likewise.
5789 (expand_body): Likewise.
5790 (genrtl_finish_function): Likewise.
5791 * tree.c (cp_tree_equal): Likewise.
11fe225a 5792
78fe06c2
NS
57932001-03-12 Nathan Sidwell <nathan@codesourcery.com>
5794
5795 * call.c (convert_like_real): Add extra semantics to INNER
5796 parameter. Don't convert to temporary if a user conversion
5797 gives us an lvalue that we're about to bind to a reference.
5798 Set INNER to indicate pending reference binding on recursive
5799 calls.
5800
b3e68a79
NB
58012001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
5802
5803 * cp/lex.c: Delete duplicate pending_lang_change.
5804
58052001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
5806
5807 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
5808 Similarly.
5809 * cp/repo.c (get_base_filename, open_repo_file): Similarly.
5810 * cp/cp-tree.h: Remove file_name_nondirectory prototype.
5811
11642c3a
ZW
58122001-03-09 Zack Weinberg <zackw@stanford.edu>
5813
5814 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
5815
bb6852eb 58162001-03-08 Stan Shebs <shebs@apple.com>
f7687817
SS
5817
5818 * cp-tree.h (set_identifier_local_value): Remove unused decl.
5819
cc937581
ZW
58202001-03-06 Zack Weinberg <zackw@stanford.edu>
5821
5822 * spew.c: Remove references to CPP_OSTRING.
5823
d1188d91
AH
58242001-03-06 Andrew Haley <aph@redhat.com>
5825
5826 * typeck.c (convert_arguments): Check that we have an fndecl.
5827
4eaf1d5b
AH
58282001-03-05 Andrew Haley <aph@redhat.com>
5829
5830 * typeck.c (convert_arguments): Don't do ellipsis conversion for
5831 __built_in_constant_p.
5832
7eeb553c
NS
58332001-03-02 Nathan Sidwell <nathan@codesourcery.com>
5834
5835 * typeck.c (build_static_cast): Allow enum to enum conversions
5836 as per DR 128.
5837
d282fcb2
NS
58382001-03-02 Nathan Sidwell <nathan@codesourcery.com>
5839
5840 * class.c (check_field_decls): Pointers to member do not a
5841 non-pod struct make, as per DR 148.
5842
f86fdf68
NS
58432001-03-02 Nathan Sidwell <nathan@codesourcery.com>
5844
5845 * call.c (joust): cp_pedwarn when using gnu extension concerning
5846 worst conversion sequences.
5847
d6edb99e
ZW
58482001-03-01 Zack Weinberg <zackw@stanford.edu>
5849
5850 * decl.c: Replace all uses of 'boolean' with 'bool'.
5851
f7143427
ZW
58522001-03-01 Zack Weinberg <zackw@stanford.edu>
5853
5854 * lang-specs.h: Add zero initializer for cpp_spec field to
5855 all array elements that need one. Don't put an #ifdef inside
5856 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
5857 use it.
5858
fbfe8c9e
NS
58592001-03-01 Nathan Sidwell <nathan@codesourcery.com>
5860
5861 Implement using decls inside template functions.
5862 * decl2.c (validate_nonmember_using_decl): Don't special case
5863 fake_std_node in the global namespace. Don't reject early when
5864 processing a template.
5865 (do_local_using_decl): Add to statement tree. Don't do further
5866 processing when building a template.
5867 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
5868
4d24a889
NS
58692001-03-01 Nathan Sidwell <nathan@codesourcery.com>
5870
5871 * decl2.c (do_nonmember_using_decl): Don't complain if we find
5872 same function. Do complain about ambiguating extern "C"
5873 declarations.
5874
e5844e6d
NS
58752001-02-28 Nathan Sidwell <nathan@codesourcery.com>
5876
5877 Remove floating point and complex type template constant parms.
5878 * pt.c (convert_nontype_argument): Remove REAL_TYPE and
5879 COMPLEX_TYPE extensions.
5880 (invalid_nontype_parm_type_p): Likewise.
5881
788f238c
JO
58822001-02-27 Jeffrey Oldham <oldham@codesourcery.com>
5883
5884 * except.c (call_eh_info): Revert "match_function"'s type.
5885
73ea87d7
NS
58862001-02-27 Nathan Sidwell <nathan@codesourcery.com>
5887
5888 Fix ctor vtable vcall offsets.
5889 * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
5890 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
5891 (get_matching_base): Remove.
5892 (get_original_base): New function.
11fe225a 5893 (build_vtbl_initializer): Initialize vid.rtti_binfo.
73ea87d7
NS
5894 Use a virtual thunk for a ctor vtable with an index
5895 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
5896 primary base within a constructor vtable. Only set
5897 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
5898 when primary base has been lost.
5899 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
5900
fe730161
JO
59012001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
5902
5903 * call.c (joust): Ensure more_specialized()'s argument length
5904 parameter has correct value for constructors.
5905
e5dd4aad
NS
59062001-02-26 Nathan Sidwell <nathan@codesourcery.com>
5907
5908 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
11fe225a 5909
e5dd4aad
NS
5910 * decl.c (mark_inlined_fns): Prototype.
5911
25200ab2
MM
59122001-02-22 Mark Mitchell <mark@codesourcery.com>
5913
5914 * spew.c (yylex): Correct handling of friends.
5915
f58c04ac
MM
59162001-02-22 Mark Mitchell <mark@codesourcery.com>
5917
5918 * mangle.c (write_encoding): Pass write_function_type the
5919 FUNCTION_DECL for the function being encoded.
5920 (write_function_type): Pass it along to write_bare_function_type.
5921 (write_bare_function_type): Pass it along to write_method_parms.
5922 (write_method_parms): Don't mangle the compiler-generated
5923 parameters to a constructor or destructor.
5924
9c96f3f8
AJ
59252001-02-22 Andreas Jaeger <aj@suse.de>
5926
5927 * optimize.c: Include toplev.h for
5928 note_deferral_of_defined_inline_function prototype.
5929
b3bae5e2
JJ
59302001-02-22 Jakub Jelinek <jakub@redhat.com>
5931
5932 * cp-tree.h (struct lang_decl_inlined_fns): New.
5933 (struct lang_decls): Add inlined_fns.
5934 (DECL_INLINED_FNS): New macro.
5935 * optimize.c (struct inline_data): Add inlined_fns.
5936 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
5937 (inlinable_function_p): Likewise, fix typo in comment,
5938 function is not inlinable if it already inlined function currently
5939 being optimized.
306ef644 5940 (expand_call_inline): Add fn to inlined_fns if necessary.
b3bae5e2
JJ
5941 (optimize_function): Initialize inlined_fns.
5942 Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
5943 * decl.c (mark_inlined_fns): New function.
5944 (lang_mark_tree): Call it.
5945
5daf7c0a
JM
59462001-02-21 Jason Merrill <jason@redhat.com>
5947
5948 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
5949 (DECL_UNINLINABLE): Move to middle-end.
5950
5951 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
5952 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
5953 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
5954 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
5955 parms and outer BLOCK. note_deferral_of_defined_inline_function.
5956
5957 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
5958 second parm of op=.
5959
2c0fc02d
MM
59602001-02-19 Mark Mitchell <mark@codesourcery.com>
5961
5962 * decl2.c (set_decl_namespace): Allow explicit instantiations in
5963 any namespace.
5964
612164eb
KL
59652001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5966
5967 * optimize.c (expand_call_inline): Don't walk subtrees of type
5968 nodes.
5969
69a59a49
MM
59702001-02-18 Mark Mitchell <mark@codesourcery.com>
5971
5972 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
5973 for a destructor.
5974
e0fff4b3
JM
59752001-02-18 Jason Merrill <jason@redhat.com>
5976
5977 Do put the VTT parameter in DECL_ARGUMENTS.
5978 * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
5979 (current_vtt_parm): New macro.
5980 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
5981 (DECL_HAS_VTT_PARM_P): New macro.
5982 (DECL_VTT_PARM): Remove.
5983 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
5984 * decl.c (duplicate_decls): Only copy the operator code if
5985 appropriate.
5986 (start_function): Set current_vtt_parm.
5987 (lang_mark_tree): Don't mark vtt_parm.
9c96f3f8 5988 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
e0fff4b3
JM
5989 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
5990 * class.c (build_clone): Maybe remove the VTT parm.
5991 * optimize.c (maybe_clone_body): Set up the VTT parm.
5992 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
5993 * call.c (build_over_call): Just allow the VTT arg.
5994 * method.c (make_thunk): Don't set DECL_VTT_PARM.
5995 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
5996 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
5997 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
5998 * error.c (dump_function_decl): Likewise.
5999 * call.c (build_user_type_conversion_1, convert_like_real): Abort
6000 if we try to call a constructor with in-charge or VTT parms.
6001 * method.c (skip_artificial_parms_for): New fn.
6002 * call.c (add_function_candidate, build_over_call): Call it.
6003 * call.c (build_new_method_call): Use current_vtt_parm.
6004 * init.c (expand_virtual_init): Likewise.
6005 * class.c (same_signature_p): No longer static.
6006 * cp-tree.h: Declare it.
6007 * search.c (look_for_overrides_r): Use it.
6008
c750255c
MM
60092001-02-17 Mark Mitchell <mark@codesourcery.com>
6010
8fa33dfa
MM
6011 * cp-tree.h (new_abi_rtti_p): Remove.
6012 (name_mangling_version): Likewise.
6013 (flag_do_squangling): Likewise.
6014 * class.c (build_rtti_vtbl_entries): Remove old ABI support.
6015 * decl.c (grokfndecl): Likewise.
6016 * decl2.c (name_mangling_version): Remove.
6017 (flag_do_squangling): Likewise.
6018 (lang_f_options): Remove `squangle'.
6019 (unsupported_options): Add `squangle'.
6020 (cxx_decode_option): Issue a warning about uses of
6021 -fname-mangling-version.
6022 (finish_file): Remove old ABI support.
6023 * pt.c (check_explicit_specialization): Likewise.
6024 (tsubst_decl): Likewise.
6025 * rtti.c (init_rtti_processing): Likewise.
6026 (build_headof): Likewise.
6027 (get_tinfo_decl_dynamic): Likewise.
6028 (tinfo_from_decl): Likewise.
6029 (build_dynamic_cast_1): Likewise.
6030 (synthesize_tinfo_var): Likewise.
12fa82db
MM
6031 * init.c (build_new): Allow enumeration types for the array-bounds
6032 in a direct-new-declarator.
6033
6034 * semantics.c (finish_typeof): Resolve OFFSET_REFs.
6035
c750255c
MM
6036 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
6037 TREE_PROTECTED from the template being specialized.
6038
a714e5c5
JM
60392001-02-17 Jason Merrill <jason@redhat.com>
6040
6041 * decl2.c (build_artificial_parm): Set TREE_READONLY.
6042
9c96f3f8 6043 * decl.c (bad_specifiers): Allow throw specs on things with
a714e5c5
JM
6044 pointer-to-function or -member-function type.
6045 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
6046 a pmf.
6047
8084b91e
MM
60482001-02-17 Mark Mitchell <mark@codesourcery.com>
6049
6050 * call.c (check_dtor_name): Handle template names correctly.
6051
48f22ed2
JM
60522001-02-16 Jason Merrill <jason@redhat.com>
6053
6054 * cp-tree.h (DECL_USE_VTT_PARM): Remove.
6055 * decl2.c (maybe_retrofit_in_chrg): Don't create it.
6056 * optimize.c (maybe_clone_body): Don't substitute it.
6057 * call.c (build_new_method_call): Check in_chrg instead.
6058 * init.c (expand_virtual_init): Likewise.
6059
e8186ecf
GDR
60602001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
6061
6062 * decl.c (check_tag_decl): Make sure a typedef for an anonymous
6063 class-type introduces at least a type-name.
6064
2c1be322
JJ
60652001-02-16 Jakub Jelinek <jakub@redhat.com>
6066
6067 * call.c (convert_like_real): Create a temporary for non-lvalue.
6068
aab8454a
JO
60692001-02-16 Jeffrey Oldham <oldham@codesourcery.com>
6070
6071 * cp-tree.h: Fix typos in comments.
6072
a901fa64
JM
60732001-02-16 Jason Merrill <jason@redhat.com>
6074
6075 * optimize.c (remap_block): If we're compiling a clone, pass the
6076 new block to insert_block.
6077
8853373c
MM
60782001-02-16 Mark Mitchell <mark@codesourcery.com>
6079
6080 * semantics.c (finish_asm_stmt): Robustify.
6081
b60ecc04
MM
60822001-02-15 Mark Mitchell <mark@codesourcery.com>
6083
6084 * pt.c (push_template_decl_real): Don't remangle the name of a
6085 class template.
6086
e658449e
JM
60872001-02-15 Jim Meyering <meyering@lucent.com>
6088
fd48c9b5
DD
6089 * Make-lang.in (c++.install-common): Depend on installdirs.
6090 (c++.install-info): Likewise.
6091 (c++.install-man): Likewise.
e658449e 6092
f1a3f197
MM
60932001-02-15 Mark Mitchell <mark@codesourcery.com>
6094
6095 * typeck2.c (build_m_component_ref): Robustify.
6096
8826b15b
AO
60972001-02-15 Alexandre Oliva <aoliva@redhat.com>
6098
6099 * friend.c (do_friend): Don't take the nested [template] class
6100 into account when deciding whether to warn about the friend
6101 function not referring to a template function.
6102
7161c1a5
JJ
61032001-02-14 Jakub Jelinek <jakub@redhat.com>
6104
6105 * typeck.c (build_unary_op): Clarify error message.
6106
4806765e
AH
61072001-02-08 Aldy Hernandez <aldyh@redhat.com>
6108
a901fa64
JM
6109 * parse.y (component_constructor_declarator): allow optional
6110 parentheses around constructor class name.
4806765e 6111
bfc8e1e2
NS
61122001-02-14 Nathan Sidwell <nathan@codesourcery.com>
6113
6114 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
6115 section.
6116 * init.c (emit_base_init): Remove incorrect comment about
6117 virtual bases.
6118 * method.c (make_thunk): Fix comment alignment.
6119
394fd776
NS
61202001-02-14 Nathan Sidwell <nathan@codesourcery.com>
6121
6122 Kill remnants of this is variable.
6123 * cp-tree.h (flag_this_is_variable): Remove.
6124 * decl2.c (flag_this_is_variable): Remove.
6125 * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
6126 (build_vbase_path): The path is non-static, even in a cdtor.
6127 (resolves_to_fixed_type_p): Add additional return value.
6128 * search.c (init_vbase_pointers): Adjust.
6129 * tree.c (lvalue_p_1): Adjust.
6130 * typeck.c (mark_addressable): Adjust.
6131
d0ab7624
NS
61322001-02-14 Nathan Sidwell <nathan@codesourcery.com>
6133
6134 * pt.c (unify): Don't check cv quals of array types.
6135
7773899b
NS
61362001-02-14 Nathan Sidwell <nathan@codesourcery.com>
6137
6138 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
6139 check whether we already have the type.
6140
52682a1b
MM
61412001-02-13 Mark Mitchell <mark@codesourcery.com>
6142
6143 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
6144 * call.c (build_op_delete_call): Simplify to remove duplicate
6145 code.
6146 * class.c (clone_function_decl): Don't build the deleting variant
6147 of a non-virtual destructor.
6148 * decl.c (finish_destructor_body): Don't call delete if this is a
6149 non-virtual destructor.
6150 * init.c (build_delete): Explicitly call `operator delete' when
6151 deleting an object with a non-virtual destructor.
9c96f3f8 6152
3b6bd115
JM
61532001-02-13 Jason Merrill <jason@redhat.com>
6154
6155 * lang-specs.h: Add more __EXCEPTIONS.
6156
45abaea8
NS
61572001-02-12 Nathan Sidwell <nathan@codesourcery.com>
6158
6159 * typeck2.c (process_init_constructor): Check
6160 TREE_HAS_CONSTRUCTOR before issuing missing init warning.
6161
996065b4
NS
61622001-02-12 Nathan Sidwell <nathan@codesourcery.com>
6163
6164 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
6165 Remove spurious information in comment. Allow further
6166 adjustments of REFERENCE_TYPE args.
6167
82c18d5c
NS
61682001-02-12 Nathan Sidwell <nathan@codesourcery.com>
6169
6170 * errfn.c (cp_deprecated): Tweak diagnostic text.
6171 * parse.y (new_initializer): Deprecate initializer lists
6172 extension.
6173
1f84ec23
MM
61742001-02-12 Mark Mitchell <mark@codesourcery.com>
6175
6176 Remove old ABI support.
6177
8c310e3f
MM
61782001-02-11 Mark Mitchell <mark@codesourcery.com>
6179
b1012f1b
MM
6180 * decl2.c (flag_vtable_thunks): Always set it to 1.
6181 (flag_new_abi): Likewise.
6182 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9c96f3f8 6183
8c310e3f
MM
6184 * Makefile.in (g++spec.o): Fix typo.
6185
3b635dfc
JM
61862001-02-09 Jason Merrill <jason@redhat.com>
6187
6188 * lang-specs.h: Restore definition of __EXCEPTIONS.
6189
bd0d5d4a
JM
61902001-02-08 Jason Merrill <jason@redhat.com>
6191
6192 * search.c (shared_member_p): New function.
6193 (lookup_field_r): Use it.
6194 * cp-tree.h (SHARED_MEMBER_P): Remove.
6195
6196 * method.c (process_overload_item): Handle template-dependent array
6197 bounds.
6198 * pt.c (type_unification_real): If we end up with undeduced nontype
6199 parms, try again.
6200
6201 * decl.c (lookup_name_real): Tweak warning to refer to decls, not
6202 types.
6203
6204 * typeck2.c (friendly_abort): Don't say anything if we have
6205 earlier errors or sorries.
6206
9c96f3f8 6207 * decl.c (check_tag_decl): Notice attempts to redefine bool and
bd0d5d4a
JM
6208 wchar_t. Ignore if in_system_header.
6209
6210 * decl.c (maybe_push_cleanup_level): New fn...
6211 (start_decl_1): ...split out from here.
6212 * cvt.c (build_up_reference): Use it.
6213 * cp-tree.h: Declare it.
6214
a9374841
MM
62152001-02-07 Mark Mitchell <mark@codesourcery.com>
6216
9c96f3f8 6217 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
a9374841
MM
6218 spec.
6219
a87b4257
NS
62202001-02-06 Nathan Sidwell <nathan@codesourcery.com>
6221
6222 * pt.c (lookup_template_class): Make sure it's a primary
6223 template or template_template_parm when called from the parser.
6224 (instantiate_template_class): Add assertion.
6225
518fed76
AO
62262001-02-05 Alexandre Oliva <aoliva@redhat.com>
6227
6228 * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
6229 from error_mark_node.
6230
9965d119
NS
62312001-02-05 Nathan Sidwell <nathan@codesourcery.com>
6232
6233 Fix specification and implementation bugs in V3 ABI
6234 construction vtables.
6235 * cp-tree.h (flag_dump_class_layout): New flag.
6236 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
6237 (BINFO_LOST_PRIMARY_P): New flag.
6238 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
6239 (BINFO_PRIMARY_MARKED_P): Rename to ...
6240 (BINFO_PRIMARY_P): ... here.
6241 (binfo_via_virtual): New prototype.
6242 * decl2.c (flag_dump_class_layout): New flag.
6243 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
6244 use `=' as a file name separator.
6245 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
6246 bases.
6247 (build_vtbl_address): If this is a virtual primary base, then
6248 get the vtbl of what it is ultimately primary for.
6249 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
6250 for BINFO_PRIMARY_P.
6251 (dfs_skip_nonprimary_vbases_markedp): Likewise.
6252 (get_shared_vbase_if_not_primary): Likewise.
6253 (dfs_get_pure_virtuals): Likewise.
6254 (expand_upcast_fixups): Likewise.
6255 (fixup_virtual_upcast_offsets): Likewise.
6256 (dfs_find_vbase_instance): Likewise.
6257 (find_vbase_instance): Likewise.
6258 (binfo_from_vbase): Adjust comment to reflect reality.
6259 (binfo_via_virtual): New function.
6260 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
6261 for binfo walking during VTT construction.
6262 (dfs_mark_primary_bases): Remove.
6263 (force_canonical_binfo_r): New function.
6264 (force_canonical_binfo): New function.
6265 (mark_primary_virtual_base): New function.
6266 (mark_primary_bases): Walk in inheritance graph order, use
6267 mark_primary_virtual_base.
6268 (determine_primary_base): Use some more intermediate variables.
6269 (dfs_find_final_overrider): Don't check for overriding along a
6270 virtual path.
6271 (dfs_modify_vtables): Walk into primary virtual bases too.
6272 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
6273 (build_base_fields): Likewise.
6274 (dfs_set_offset_for_unshared_vbases): Likewise.
6275 (layout_virtual_bases): Likewise.
6276 (end_of_class): Likewise.
6277 (finish_struct_1): Call dump_class_hierarchy, if requested.
6278 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
6279 (dump_class_hierarchy_r): Add stream parameter. Emit more information.
6280 (dump_class_hierarchy): Add file parameter. Append to file, if
6281 required.
6282 (finish_vtbls): Adjust accumulate_vtbl_inits call.
6283 Use canonical base for virtual bases.
6284 (build_vtt): Add more comments. Adjust build_vtt_inits call.
6285 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
6286 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
6287 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
6288 virtual VTTs.
6289 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
6290 from DATA. We want virtual primary bases and all bases via virtual.
6291 Only set BINFO_VPTR_INDEX for top level. Look up from a primary
6292 virtual base when not a construction vtable.
6293 (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
6294 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
6295 Use canonical bases when processing virtual bases.
6296 (accumulate_vtbl_inits): We're interested in any base via a
6297 virtual path.
6298 (dfs_accumulate_vtbl_inits): If this is a primary virtual base
6299 within a construction vtable, determine what is being overridden.
6300 (build_vtbl_initializer): Add more comments
6301 (add_vcall_offset_vtbl_entries_1): Adjust comment.
6302 (build_rtti_vtbl_entries): Check if the base has lost its
6303 primary.
6304
39d6f2e8
MM
63052001-02-05 Mark Mitchell <mark@codesourcery.com>
6306
6307 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
6308
400500c4
RK
6309Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6310
6311 * decl.c (pushdecl): Call abort instead of fatal.
6312 * except.c (decl_is_java_type): Call fatal_error instead of fatal.
6313 * init.c (build_new_1): Likewise.
6314 (build_java_class_ref): Call internal_error and fatal_error, not fatal.
6315 * decl.c (build_typename_type): hash_table_init now returns void.
6316 decl.c (init_decl_processing): Make an error non-fatal.
6317
97458258
MM
63182001-02-04 Mark Mitchell <mark@codesourcery.com>
6319
6320 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
6321 Document.
6322 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
6323 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
6324 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
6325 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
6326 * decl.c (maybe_commonize_var): Use the new name-mangling where
6327 appropriate.
6328 * decl2.c (comdat_linkage): Enhance comments. Make all
6329 compiler-generated things static, if COMDAT is not available.
6330 (get_tinfo_decl): Do not make typeinfo objects that belong in the
6331 library COMDAT.
6332 (tinfo_base_init): Use the correct mangled name for typeinfo
6333 strings, and push them into the global scope.
6334 (typeinfo_in_lib_p): New function.
6335 (synthesize_tinfo_var): Use it.
6336 (create_real_tinfo_var): Likewise.
9c96f3f8 6337
55de1b66
JJ
63382001-02-03 Jakub Jelinek <jakub@redhat.com>
6339
6340 * decl.c (push_class_binding): Use context_for_name_lookup instead
6341 of CP_DECL_CONTEXT.
6342 * search.c (context_for_name_lookup): Remove static. Check for NULL
6343 context in the loop.
6344 * cp-tree.h (context_for_name_lookup): Add prototype.
6345
e92730aa
JJ
63462001-02-02 Jakub Jelinek <jakub@redhat.com>
6347
6348 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
6349 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
6350 Remove.
6351 * call.c (convert_class_to_reference, build_user_type_conversion_1,
6352 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
6353
049f6ec9
MM
63542001-02-02 Mark Mitchell <mark@codesourcery.com>
6355
6356 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
6357 of macros used when compiling g++spec.c.
6358 * g++spec.c (lang_specific_driver): Link with the shared
6359 libgcc by default.
6360
718b8ea5
JM
63612001-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
6362
6363 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
6364 make_reference_declarator, make_call_declarator), method.c
6365 (implicitly_declare_fn), parse.y (namespace_using_decl,
6366 notype_unqualified_id, expr_or_declarator, new_type_id,
6367 after_type_declarator, direct_after_type_declarator,
6368 notype_declarator, complex_notype_declarator,
6369 complex_direct_notype_declarator, qualified_id,
6370 notype_qualified_id, overqualified_id, direct_new_declarator,
6371 absdcl, direct_abstract_declarator, conversion_declarator), pt.c
6372 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
6373 instead of build_parse_node.
6374
f2d1f0ba
KG
63752001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6376
6377 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
6378 (minus_one_node): Moved to top level gcc directory. Renamed
6379 to integer_minus_one_node.
6380
6381 * init.c (init_init_processing): Don't set minus_one_node.
6382 (build_vec_init): Use integer_minus_one_node.
6383
6384 * rtti.c (get_tinfo_decl_dynamic): Likewise.
6385
6001735e
JJ
63862001-01-28 Jakub Jelinek <jakub@redhat.com>
6387
6388 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
6389 identical and they would be replaced with constant, remove
6390 MODIFY_EXPR from the tree.
6391
c913b6f1
KG
63922001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6393
6394 * Make-lang.in: Remove all dependencies on defaults.h.
6395 * call.c: Don't include defaults.h.
6396 * decl.c: Likewise.
6397 * decl2.c: Likewise.
6398 * except.c: Likewise.
6399 * pt.c: Likewise.
6400 * rtti.c: Likewise.
6401 * tree.c: Likewise.
6402 * typeck.c: Likewise.
6403
324ffb8c
JJ
64042001-01-25 Jakub Jelinek <jakub@redhat.com>
6405
6406 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
6407 operators even in "C" linkage.
6408 * method.c (set_mangled_name_for_decl): Likewise.
6409 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
6410 overloaded operators in "C" linkage.
6411
4b2811e9
NS
64122001-01-24 Nathan Sidwell <nathan@codesourcery.com>
6413
6414 * pt.c (tsubst_decl): Remove IN_DECL parameter.
6415 (tsubst_arg_types): Check parameter is not void.
6416 (tsubst): Adjust tsubst_decl call.
6417
d8caf48e
NS
64182001-01-24 Nathan Sidwell <nathan@codesourcery.com>
6419
6420 * call.c (add_builtin_candidate): Quote std properly, from
6421 previous change.
6422
08511114
KL
64232001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6424
6425 * pt.c (check_explicit_specialization): Clone constructors and
6426 destructors.
6427
92ecdfb7
NS
64282001-01-23 Nathan Sidwell <nathan@codesourcery.com>
6429
6430 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
6431 indicates anything special about template depth. Make sure we
6432 only count the user visible template classes.
6433
4cff6abe
NS
64342001-01-23 Nathan Sidwell <nathan@codesourcery.com>
6435
6436 * call.c (build_conv): Typo in comment.
6437 (add_builtin_candidate): Add more explanation.
6438 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
6439 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
6440 when we have enumeral types.
6441 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
6442 candidates for relops and eqops.
6443 (joust): Simplify control flow. Allow a non-template user
6444 function to hide a builtin.
6445
62e4a758
NS
64462001-01-22 Nathan Sidwell <nathan@codesourcery.com>
6447
6448 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
6449 (more_specialized): Add deduction parameter.
6450 * call.c (joust): Adjust more_specialized call.
6451 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
6452 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
6453 (get_bindings_order): Remove.
6454 (get_bindings_real): Add DEDUCE parameter.
6455 (maybe_adjust_types_for_deduction): Return extra unify flags. Do
6456 REFERENCE_TYPE jig for DEDUCE_ORDER.
6457 (type_unification_real): Deal with DEDUCE_ORDER. Use result of
6458 maybe_adjust_types_for_deduction.
6459 (more_specialized): Add DEDUCE parameter. Call get_bindings_real
6460 directly.
6461 (try_one_overload): Use result of maybe_adjust_types_for_deduction.
6462 (check_cv_quals_for_unify): Use new unify qualifier flags.
6463 (unify): Clear new unify qualifier flags.
6464 (get_bindings_real): Add DEDUCE parameter.
6465 (get_bindings): Adjust call to get_bindings_real.
6466 (get_bindings_overload): Likewise.
6467 (most_specialized_instantiation): Adjust call to
6468 more_specialized.
6469
2a2a9e5a
JM
64702001-01-19 Jason Merrill <jason@redhat.com>
6471
6472 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
6473
6474 * decl.c (init_decl_processing): Just force -fvtable-thunks on if
6475 -fnew-abi.
6476
60696c53
JM
64772001-01-19 Ute Pelkmann <scope.muc@t-online.de>
6478
6479 * decl2.c (arg_assoc_class): Fix double iteration logic.
6480
64812001-01-19 Jason Merrill <jason@redhat.com>
6482
6483 * init.c (build_delete): Always call convert_force to strip cv-quals.
6484
6485 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
6486 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
6487 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
6488
1e00f18c
NS
64892001-01-19 Nathan Sidwell <nathan@codesourcery.com>
6490
6491 * search.c (get_vbase_1): Count only virtual bases.
6492
e13bced2
NS
64932001-01-19 Nathan Sidwell <nathan@codesourcery.com>
6494
6495 * class.c (duplicate_tag_error): Robustify flag clearing.
6496
f9c244b8
NS
64972001-01-19 Nathan Sidwell <nathan@codesourcery.com>
6498
6499 * cp-tree.h (lookup_template_class): Add complain parm.
6500 * decl.c (lookup_namespace_name): Adjust call to
6501 lookup_template_class.
6502 (make_typename_type): Likewise.
6503 * semantics.c (finish_template_type): Likewise.
6504 * pt.c (lookup_template_class): Add complain parm. Adjust.
6505 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
6506 (tsubst): Likewise.
6507
08c2df0f
NS
65082001-01-19 Nathan Sidwell <nathan@codesourcery.com>
6509
6510 * pt.c (copy_default_args_to_explicit_spec): Preserve
6511 object's CV quals. Reorganize.
6512
f5ceeec8
NS
65132001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6514
6515 * typeck.c (build_modify_expr): Say `initialization' for
6516 INIT_EXPRs.
6517 * init.c (build_default_init): Convert to enumeral type, if
6518 needed.
6519
a1cfa434
JJ
65202001-01-18 Jakub Jelinek <jakub@redhat.com>
6521
6522 * parse.y (nomods_initdcl0): Properly set things up for
6523 initdcl0_innards.
6524
028d1f20
NS
65252001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6526
6527 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
6528 (type_unification_real): Set it.
6529 (unify): Use it.
6530
9f724b6a
NS
65312001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6532
6533 * decl.c (finish_destructor_body): Convert to vbase pointer here.
6534
522d6614
NS
65352001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6536
6537 * semantics.c (begin_class_definition): Check we're not inside a
6538 template parm list.
6539
7f805b8f
NS
65402001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6541
6542 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
6543 BASELINK_P.
6544
dc3799c1
KL
65452001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6546
6547 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
6548 * call.c (build_over_call): Add comment.
6549
bb37c4a5
DB
65502001-01-16 Daniel Berlin <dberlin@redhat.com>
6551
826840d9
RH
6552 * cvt.c (ocp_convert): Handle vector type conversion
6553 * typeck2.c (digest_init): Handle vector type initializations
9c96f3f8 6554
a26e7fb5
PE
65552001-01-16 Phil Edwards <pme@sources.redhat.com>
6556
6557 * g++spec.c: Don't add libraries needlessly if -fsyntax-only
6558 was given.
6559
11b810f1
NS
65602001-01-15 Nathan Sidwell <nathan@codesourcery.com>
6561
6562 * pt.c (check_nontype_parm): Rename to ...
6563 (invalid_nontype_parm_type_p): ... here.
6564 (process_template_parm): Adjust.
6565 (convert_template_argument): Adjust.
6566
db3f4e4e
NS
65672001-01-15 Nathan Sidwell <nathan@codesourcery.com>
6568
6569 * pt.c (check_nontype_parm): New function.
6570 (process_template_parm): Use it.
6571 (convert_template_argument): Use it.
6572 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
6573 member.
6574
ea4f1fce
JO
65752001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
6576
6577 * tree.c: Add defaults.h
6578 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
6579 * Make-lang.in (cp/tree.o): Add defaults.h.
6580
1312c143
JM
65812001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
6582
6583 * Make-lang.in (CXX_C_OBJS): Add c-format.o.
6584
4bc1997b
JM
65852001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
6586
6587 * g++.1: Change to be ".so man1/gcc.1".
6588
23de1fbf
JM
65892001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
6590
6591 * Make-lang.in (c++.info, c++.install-info): Build and install g++
6592 internals info.
6593 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
6594 ($(srcdir)/cp/g++int.info): New target.
6595 * gxxint.texi: Add info directory entry. Use @@ in email address.
6596 * .cvsignore: Update.
6597
0949f723
NS
65982001-01-12 Nathan Sidwell <nathan@codesourcery.com>
6599
6600 * typeck.c (build_c_cast): Do template processing earlier.
6601 Always pedwarn on array casts.
6602
a8641661
NS
66032001-01-12 Nathan Sidwell <nathan@codesourcery.com>
6604
6605 * friend.c (make_friend_class): Make sure a templated class is
6606 actually a template.
6607
844511c8
NS
66082001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6609
6610 * decl2.c (get_guard): Set linkage from guarded decl.
6611
96a1e32d
NS
66122001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6613
6614 * call.c (convert_default_arg): Check for unprocessed
6615 DEFAULT_ARG.
6616 * cp-tree.h (replace_defarg): Move to spew.c.
6617 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
6618 spew.c, which is where they really are.
6619 (done_pending_defargs): Declare.
6620 (unprocessed_defarg_fn): Declare.
6621 * decl.c (replace_defarg): Move to spew.c
6622 * parse.y (structsp): Call done_pending_defargs.
6623 * spew.c (defarg_fns): Rearrange list structure.
6624 (defarg_fnsdone): New static variable.
6625 (defarg_depfns): New static variable.
6626 (init_spew): Adjust.
6627 (add_defarg_fn): Store the type in TREE_TYPE.
6628 (do_pending_defargs): Detect and deal with ordering constraints
6629 and circularity.
6630 (done_pending_defargs): New function.
6631 (unprocessed_defarg_fn): New function.
6632 (replace_defarg): Moved from decl.c. Robustify. Don't save
6633 if circularity detected.
6634
34e225a3
NS
66352001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6636
6637 * pt.c (unify): Check array has a domain, before checking
6638 whether it is variable sized.
6639
98979fe0
NS
66402001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6641
6642 * decl.c (grokparms): Unobfuscate and get correct diagnostic for
6643 parameters with pointers to arrays of unknown bound.
6644
b37bf5bd
NS
66452001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6646
6647 * parse.y (template_parm_header, template_spec_header): New
6648 reductions. Split out from ...
6649 (template_header): ... here. Use them.
6650 (template_template_parm): Use template_parm_header.
6651 * semantics.c (finish_template_template_parm): Add assert.
6652
6c418184
MM
66532001-01-10 Mark Mitchell <mark@codesourcery.com>
6654
792508b5
MM
6655 * mangle.c (write_builtin_type): Fix thinko.
6656
8afa707f
MM
6657 * pt.c (copy_default_args_to_explicit_spec_1): New function.
6658 (copy_default_args_to_explicit_spec): Likewise.
6659 (check_explicit_specialization): Use it.
6660
6c418184
MM
6661 * class.c (finish_struct_1): Remove last argument in call to
6662 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
6663 * decl.c (builtin_function): Likewise.
6664 (build_cp_library_fn): Likewise.
6665 (check_initializer): Likewise.
6666 (make_rtl_for_nonlocal_decl): Likewise.
6667 (cp_finish_decl): Likewise.
6668 (start_function): Likewise.
6669 * decl2.c (finish_anon_union): Likewise.
6670 * friend.c (do_friend): Likewise.
6671 * init.c (build_java_class_ref): Likewise.
6672 * method.c (make_thunk): Likewise.
6673 * pt.c (tsubst_friend_function): Likewise.
6674 * semantics.c (expand_body): Likewise.
6675
31d95fc6
MM
66762001-01-10 Mark Mitchell <mark@codesourcery.com>
6677
6678 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
6679 looking at DECL_CLONED_FUNCTION for non-functions.
6680
31bb3027
NS
66812001-01-10 Nathan Sidwell <nathan@codesourcery.com>
6682
6683 * error.c (dump_template_parameter): Use parm to determine how
6684 to print default value.
6685
fd3f43e7
NS
66862001-01-10 Nathan Sidwell <nathan@codesourcery.com>
6687
6688 * class.c (duplicate_tag_error): Clear more flags.
6689
042b4c4e
NS
66902001-01-10 Nathan Sidwell <nathan@codesourcery.com>
6691
6692 * call.c (build_new_method_call): Use binfo_for_vbase.
6693
a7537031
JM
66942001-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
6695
6696 * cp-tree.h (flag_cond_mismatch): Don't declare.
6697 * decl2.c (flag_cond_mismatch): Don't define.
6698 (lang_f_options): Remove cond-mismatch.
6699 (unsupported_options): Add cond-mismatch.
6700
186c0fbe
NS
67012001-01-09 Nathan Sidwell <nathan@codesourcery.com>
6702
6703 * class.c (handle_using_decl): Reject using of constructor name
6704 of sourcing class. Allow injecting of a method with same name as
6705 nested class. Fixup error messages.
6706
28ec8d6b
JM
67072001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
6708
6709 * decl2.c (lang_decode_option): Handle -Wformat=2.
6710
3febd123
NS
67112001-01-08 Nathan Sidwell <nathan@codesourcery.com>
6712
6713 * cp-tree.h (lang_decl_flags): Rename defined_in_class to
6714 initialized_in_class.
6715 (DECL_DEFINED_IN_CLASS_P): Rename to ...
6716 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
6717 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
6718 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
6719 * pt.c (check_default_tmpl_args): Adjust for
6720 DECL_INITIALIZED_IN_CLASS_P.
6721 (instantiate_class_template): Likewise.
6722 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9c96f3f8 6723
3febd123
NS
6724 * class.c (finish_struct): Constify saved_filename.
6725
1f0d71c5
NS
67262001-01-08 Nathan Sidwell <nathan@codesourcery.com>
6727
6728 * class.c (duplicate_tag_error): Adjust diagnostic.
6729 (finish_struct): Locally set location to start of struct.
6730 * decl.c (fixup_anonymous_aggr): Use cp_error_at.
6731
5bf15e84 67322001-01-08 Nathan Sidwell <nathan@codesourcery.com>
76191fdd
NS
6733
6734 * decl.c (struct binding_level): Adjust class_shadowed comments
6735 to reflect reality.
aba649ba 6736 (push_class_level_binding): Adjust comments to reflect reality.
76191fdd
NS
6737 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
6738 Don't set TREE_VALUE on the class_shadowed list.
6739
23d4e4cc 67402001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9c96f3f8
AJ
6741
6742 * decl2.c (acceptable_java_type): Allow references too.
23d4e4cc
APB
6743 * init.c (build_java_class_ref): When using the new ABI, search
6744 `class$' and have it mangled with `mangle_decl.'
6745 * mangle.c (write_java_integer_type_codes): New function.
6746 (write_builtin_type): Detect and mangle Java integer and real
6747 types.
9c96f3f8 6748
0c58da3e
MM
67492001-01-07 Mark Mitchell <mark@codesourcery.com>
6750
6751 * decl2.c (grokfield): Don't accept `asm' specifiers for
6752 non-static data members.
6753
45b8ddb4
KG
67542001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6755
6756 * expr.c (cplus_expand_expr): Don't reset `target'.
6757
96302433
NB
67582001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
6759
826840d9 6760 * cp/decl2.c (cxx_post_options): Call cpp_post_options.
96302433 6761
220bce48
NS
67622001-01-05 Nathan Sidwell <nathan@codesourcery.com>
6763
6764 * parse.y (template_datadef): Check for error_mark_node.
6765
bfa2cb33
NS
67662001-01-05 Nathan Sidwell <nathan@codesourcery.com>
6767
6768 * cp-tree.def (DEFAULT_ARG): Make `x' class.
6769
eaa7c03f
JM
67702001-01-04 Joseph S. Myers <jsm28@cam.ac.uk>
6771
6772 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
6773 (record_builtin_type): Make non-static.
6774 (flag_short_double): Don't declare.
6775 (init_decl_processing): Remove the creation of many tree nodes now
6776 in c_common_nodes_and_builtins.
6777 (build_void_list_node): New function.
6778 * decl2.c (flag_short_double, flag_short_wchar): Don't define.
6779 * cp-tree.h (flag_short_wchar): Don't declare.
6780
3af4c257
MM
67812001-01-04 Mark Mitchell <mark@codesourcery.com>
6782
6783 * call.c (build_conv): Don't use build1 for USER_CONV.
6784 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
6785
03dc0325
JM
67862001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
6787
6788 * lex.c (lang_init): Call c_common_lang_init.
6789
3c505507
NS
67902001-01-03 Nathan Sidwell <nathan@codesourcery.com>
6791
6792 * search.c (lookup_fnfields_here): Remove.
6793 (look_for_overrides_r): Use lookup_fnfields_1.
6794 Ignore functions from using declarations.
6795
03378143
NS
67962001-01-03 Nathan Sidwell <nathan@codesourcery.com>
6797
6798 Implement exceptions specifiers for implicit member functions.
6799 * cp-tree.h (merge_exceptions_specifiers): Declare new function.
6800 * method.c (synthesize_exception_spec): New function.
6801 (locate_dtor, locate_ctor, locate_copy): New functions.
6802 (implicitly_declare_fn): Generate the exception spec too.
6803 * search.c (check_final_overrider): Check artificial functions
6804 too.
9c96f3f8 6805 * typeck2.c (merge_exception_specifiers): New function.
03378143 6806
f30efcb7
JM
68072001-01-03 Jason Merrill <jason@redhat.com>
6808
6809 * init.c (build_default_init): New fn.
6810 (perform_member_init): Split out from here.
6811 (build_new_1): Use it. Simplify initialization logic.
6812 (build_vec_init): Take an array, rather than a pointer and maxindex.
6813 Speed up simple initializations. Don't clean up if we're assigning.
6814 * cp-tree.h: Adjust.
6815 * decl2.c (do_static_initialization): Remove TREE_VEC case.
6816 * parse.y (new_initializer): Return void_zero_node for ().
6817 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
6818 * typeck2.c (digest_init): Only complain about user-written
6819 CONSTRUCTORs.
6820
a412bf75
MS
68212000-12-22 Mike Stump <mrs@wrs.com>
6822
6823 * decl2.c: (max_tinst_depth): Increase to 50.
6824
4890c2f4
MM
68252001-01-02 Mark Mitchell <mark@codesourcery.com>
6826
6827 * class.c (invalidate_class_lookup_cache): Zero the
6828 previous_class_values.
6829 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
6830 TREE_INT_CST_HIGH.
6831 (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
6832 * decl.c (free_bindings): New variable.
6833 (push_binding): Don't create a new binding if we have one on the
6834 free list.
6835 (pop_binding): Put old bindings on the free list.
6836 (init_decl_processing): Use size_int, not build_int_2.
6837 Register free_bindings as a GC root.
6838 (cp_make_fname_decl): Use size_int, not build_int_2.
6839 (push_inline_template_parms_recursive): Likewise.
6840 (end_template_parm_list): Likewise.
6841 (for_each_tempalte_parm): Do not use walk_tree_without_duplicates.
6842 (tsubst_template_parms): Use size_int, not build_int_2.
6843 (tsubst): Likewise.
6844 * rtti.c (get_vmi_pseudo_type_info): Likewise.
9c96f3f8 6845
4f78b9a8
RH
68462001-01-02 Richard Henderson <rth@redhat.com>
6847
6848 * parse.y (asm): Set ASM_INPUT_P.
6849
3c8c2a0a
JM
68502001-01-02 Jason Merrill <jason@redhat.com>
6851
96d6c610
JM
6852 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
6853 for v3 ABI.
6854
6855 * typeck.c (cp_truthvalue_conversion): New fn.
6856 * cvt.c (ocp_convert): Use it.
6857
6858 * cp-tree.h: Lose c-common.c decls.
6859
6860 * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
6861 * cvt.c (convert_to_void): Use type_unknown_p.
6862
9c96f3f8 6863 * typeck.c (strip_all_pointer_quals): Also strip quals from
3c8c2a0a
JM
6864 pointer-to-member types.
6865
6866 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat
6867 parse.y as C.
6868
6869 * call.c (build_new_method_call): Do evaluate the object parameter
6870 when accessing a static member.
6871 * typeck.c (build_component_ref): Likewise.
6872
d363e7bf
AJ
68732001-01-02 Andreas Jaeger <aj@suse.de>
6874
6875 * decl.c (cp_missing_noreturn_ok_p): New.
6876 (init_decl_processing): Set lang_missing_noreturn_ok_p.
6877
77f5250d
JJ
68782000-12-29 Jakub Jelinek <jakub@redhat.com>
6879
6880 * decl.c (init_decl_processing): Fix sign of wchar_type_node.
6881
31a714f6
MM
68822000-12-29 Mark Mitchell <mark@codesourcery.com>
6883
6884 * class.c (pushclass): Remove #if 0'd code.
6885 * cp-tree.h (overload_template_name): Remove.
6886 * decl.c (store_bindings): Simplify.
6887 (pop_from_top_level): Likewise.
6888 * pt.c (overload_template_name): Remove.
d363e7bf 6889 (instantiate_decl): Don't call push_to_top_level if it's not
31a714f6
MM
6890 needed.
6891
414ea4aa
MM
68922000-12-28 Mark Mitchell <mark@codesourcery.com>
6893
6894 * pt.c (register_local_specialization): Don't return a value.
6895 (lookup_template_class): Use move-to-front heuristic when looking
6896 up template instantiations.
6897 (instantiate_decl): Only push_to_top_level when we're actually
6898 going to instantiate the template.
6899
6f18f7e9
HPN
69002000-12-29 Hans-Peter Nilsson <hp@bitrange.com>
6901
6902 * search.c (binfo_for_vtable): Return least derived class, not
6903 most. Handle secondary vtables.
6904
e5214479
JM
69052000-12-22 Jason Merrill <jason@redhat.com>
6906
3c8c2a0a
JM
6907 * pt.c (more_specialized): Don't optimize len==0.
6908 (fn_type_unification): If we're adding the return type, increase len.
6909
ebb1abc3
JM
6910 * typeck.c (build_binary_op): Fix pmf comparison logic.
6911
c939ca5f
JM
6912 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
6913 DECL_STATIC_FUNCTION_P.
6914
e6fe680d
JM
6915 * semantics.c (genrtl_finish_function): Don't try to jump to
6916 return_label unless it exists.
6917
e5214479
JM
6918 In partial ordering for a call, ignore parms for which we don't have
6919 a real argument.
6920 * call.c (joust): Pass len to more_specialized.
6921 (add_template_candidate_real): Strip 'this', pass len.
6922 * pt.c (more_specialized): Pass len down. Lose explicit_args parm.
6923 (get_bindings_order): New fn. Pass len down.
6924 (get_bindings_real): Strip 'this', pass len.
6925 (fn_type_unification): Likewise.
6926 (type_unification_real): Succeed after checking 'len' args.
6927 (most_specialized_instantiation): Lose explicit_args parm.
d363e7bf 6928 * class.c (resolve_address_of_overloaded_function): Strip 'this',
e5214479
JM
6929 pass len.
6930
69312000-12-21 Jason Merrill <jason@redhat.com>
477f6664
JM
6932
6933 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
6934 DECL_TEMPLATE_RESULT.
6935
6936 * search.c (lookup_field_r): Call lookup_fnfields_1, not
6937 lookup_fnfields_here.
6938
6939 * parse.y (typename_sub2): Return the TYPE_DECL, not the type.
6940
6941 * call.c (build_object_call): Also allow conversions that return
6942 reference to pointer to function.
6943 (add_conv_candidate): Handle totype being ref to ptr to fn.
6944 (build_field_call): Also allow members of type reference to function.
6945 Lose support for calling pointer to METHOD_TYPE fields.
6946
6947 * error.c (dump_expr): Handle *_CAST_EXPR.
6948
6949 * typeck2.c (build_scoped_ref): Always convert to the naming class.
6950
6951 * tree.c (break_out_cleanups): Lose.
6952 * cp-tree.h: Remove prototype.
6953 * typeck.c (build_component_ref): Don't break_out_cleanups.
6954 (build_compound_expr): Likewise.
6955 * semantics.c (finish_expr_stmt): Likewise.
6956
3e4d04a1
RH
69572000-12-20 Richard Henderson <rth@redhat.com>
6958
6959 * cp-tree.h: Update declarations.
6960 * decl.c (finish_case_label): Return the new stmt node.
6961 * semantics.c (finish_goto_stmt): Likewise.
6962 (finish_expr_stmt, finish_return_stmt): Likewise.
6963 (finish_break_stmt, finish_continue_stmt): Likewise.
6964 (finish_asm_stmt): Likewise.
6965 * parse.y (already_scoped_stmt): Set STMT_LINENO.
6966 (compstmt, implicitly_scoped_stmt, stmt): Likewise.
6967 (simple_if, simple_stmt): Return the new stmt node.
6968 (save_lineno): New.
6969
20d380b1
JM
69702000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
6971
6972 * cp-tree.h: Don't declare warn_long_long.
6973
221c7a7f
KL
69742000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6975
6976 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
6977 IS_AGGR_TYPE.
6978
b429fdf0
KL
69792000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6980
6981 * pt.c (unify): Handle when both ARG and PARM are
6982 BOUND_TEMPLATE_TEMPLATE_PARM.
6983
c2beae77
KL
69842000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6985
6986 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
6987 DECL_TEMPLATE_PARM_P.
6988
c3e899c1
JM
69892000-12-15 Jason Merrill <jason@redhat.com>
6990
96790071
JM
6991 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs!
6992
8d42565b
JM
6993 * init.c (build_new_1): Don't strip quals from type.
6994
fab09a24
JM
6995 * decl.c (pushdecl): Don't check for linkage on a non-decl.
6996
c3e899c1
JM
6997 * call.c (build_op_delete_call): See through ARRAY_TYPEs.
6998
6999 * call.c (build_new_function_call): Lose space before paren in
7000 error message.
7001 (build_new_method_call): Likewise.
7002
7003 * typeck2.c (build_m_component_ref): Propagate quals from datum.
7004
edac124d
KL
70052000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7006
7007 * pt.c (check_explicit_specialization): Propagate default
7008 function arguments to explicit specializations.
7009
31750649 70102000-12-13 DJ Delorie <dj@redhat.com>
8d3b081e
DD
7011
7012 * typeck.c (build_binary_op): Do signed/unsigned warnings for >?
7013 and <? operators.
7014
5e818b93
JM
70152000-12-08 Jason Merrill <jason@redhat.com>
7016
7017 * error.c (dump_function_name): Don't let the user see __comp_ctor.
7018
7019 Clean up copy-initialization in overloading code.
7020 * call.c (build_user_type_conversion_1): Die if we are asked to
7021 convert to the same or a base type.
7022 (implicit_conversion): Avoid doing so. Lose reference binding code.
7023 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
7024 direct-initialization. Also do direct-init part of copy-init.
7025 (build_user_type_conversion): Don't provide context to convert_like.
7026 * cvt.c (ocp_convert): build_user_type_conversion will now provide
7027 the constructor call for copy-init.
7028
7029 * pt.c (tsubst_decl): Call clone_function_decl here if this is an
7030 instantiation of a member template.
7031 (do_decl_instantiation): Not here.
7032
38da6039
NS
70332000-12-07 Nathan Sidwell <nathan@codesourcery.com>
7034
7035 * class.c (check_field_decls): Don't special case anonymous
7036 fields in error messages.
c9407e4c 7037 (note_name_declared_in_class): Use %D on diagnostic.
d363e7bf 7038
38da6039
NS
7039 * tree.c (pod_type_p): Use strip_array_types.
7040 (cp_valid_lang_attribute): Likewise.
7041 * typeck.c (cp_type_quals): Strip arrays separately, to avoid
7042 multiple evaluations.
d363e7bf 7043 (cp_has_mutable_p): Use strip_array_types.
38da6039 7044
a11d04b5
NS
70452000-12-07 Nathan Sidwell <nathan@codesourcery.com>
7046
7047 * cp-tree.h (sufficient_parms_p): Declare new function.
7048 * call.c (sufficient_parms_p): New function, broken out of ...
7049 (add_function_candidate): ... here. Use it.
7050 (add_conv_candidate): Use it.
7051 * decl.c (grok_ctor_properties): Use it.
7052
5eec2847
JJ
70532000-12-07 Jakub Jelinek <jakub@redhat.com>
7054
7055 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
7056
c907e684
JM
70572000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
7058
7059 * decl2.c (lang_decode_option): Handle -Wformat-security.
7060
74601d7c
KL
70612000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7062
7063 * pt.c (verify_class_unification): New function.
7064 (get_class_bindings): Use it.
7065 (try_class_unification): Tidy.
7066 (unify): Handle when argument of a template-id is not
7067 template parameter dependent.
7068 (template_args_equal): Handle when TREE_CODE's do not match.
7069
8954e858
AO
70702000-12-06 Alexandre Oliva <aoliva@redhat.com>
7071
7072 * lang-specs.h (c++): When invoking the stand-alone preprocessor
7073 for -save-temps, pass all relevant -Defines to it, and then don't
7074 pass them to cc1plus.
7075
3dc9aec6
WC
70762000-12-05 Will Cohen <wcohen@redhat.com>
7077
7078 * decl.c (finish_case_label): Cleared
7079 more_cleanups_ok in surrounding function scopes.
7080 (define_label): Likewise.
7081
cbb40945
NS
70822000-12-05 Nathan Sidwell <nathan@codesourcery.com>
7083
7084 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
7085 (get_matching_virtual): Remove.
7086 (look_for_overrides): Declare new function.
7087 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
7088 DECL_VINDEX here.
7089 * class.c (check_for_override): Move base class iteration code
7090 to look_for_overrides.
7091 * search.c (next_baselink): Remove.
7092 (get_virtuals_named_this): Remove.
7093 (get_virtual_destructor): Remove.
7094 (tree_has_any_destructors_p): Remove.
7095 (struct gvnt_info): Remove.
7096 (check_final_overrider): Remove `virtual' from error messages.
7097 (get_matching_virtuals): Remove. Move functionality to ...
7098 (look_for_overrides): ... here, and ...
7099 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
7100 to be overriding.
7101
61402b80
NS
71022000-12-05 Nathan Sidwell <nathan@codesourcery.com>
7103
7104 * typeck.c (get_delta_difference): If via a virtual base,
7105 return zero.
7106 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no
7107 adjustment.
7108
39abc9a6
RH
71092000-12-04 Richard Henderson <rth@redhat.com>
7110
7111 * error.c (dump_tree): Use output_add_string not OB_PUTS.
7112
c00996a3
JM
71132000-12-04 Jason Merrill <jason@redhat.com>
7114
7115 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
d363e7bf 7116 (write_builtin_type): Pass intSI_type_node and the like through
c00996a3
JM
7117 type_for_mode.
7118 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
7119 Pass intSI_type_node and the like through type_for_mode.
7120 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
7121 * pt.c (tsubst, unify): Likewise.
7122 * tree.c (walk_tree): Likewise.
7123 * error.c (dump_type): Likewise.
7124 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
d363e7bf 7125
c00996a3
JM
7126 * Make-lang.in: Tweak top comment for emacs.
7127 (cp/TAGS): Restore.
7128
7129 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
7130
c00996a3
JM
7131 * class.c (clone_function_decl): Robustify.
7132
71332000-12-04 Michael Matz <matzmich@cs.tu-berlin.de>
7134
7135 * decl.c (store_bindings): Only search in the non modified
7136 old_bindings for duplicates.
7137
00bb3dad
NS
71382000-12-04 Nathan Sidwell <nathan@codesourcery.com>
7139
7140 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
7141 TYPE_POLYMORPHIC_P.
d363e7bf 7142
00bb3dad
NS
7143 * typeck.c (build_static_cast): Remove unused variable.
7144
dc957d14
KL
71452000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7146
7147 * pt.c: Fix typo in comment.
7148
4d808927
JM
71492000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
7150
7151 * decl2.c (warn_format): Remove definition.
7152 (lang_decode_option): Handle -Wformat-nonliteral,
7153 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat.
7154
5fd8e536
JM
71552000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
7156
7157 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
7158 (init_decl_processing): Don't create string_type_node,
7159 const_string_type_node, wint_type_node, intmax_type_node,
7160 uintmax_type_node, default_function_type, ptrdiff_type_node and
7161 unsigned_ptrdiff_type_node. Adjust position of call to
7162 c_common_nodes_and_builtins.
7163 (identifier_global_value): New function.
7164
13f9714b
NS
71652000-12-01 Nathan Sidwell <nathan@codesourcery.com>
7166
7167 * call.c (standard_conversion): Reject pointer to member
7168 conversions from ambiguous, inaccessible or virtual bases.
7169 * typeck.c (build_static_cast): Don't check pointers to members
7170 specially.
7171
31b1b957
NS
71722000-11-30 Nathan Sidwell <nathan@codesourcery.com>
7173
7174 * method.c (do_build_copy_constructor): Preserve cv
7175 qualifications when accessing source object members.
7176 (do_build_assign_ref): Likewise. Remove separate diagnostics for
7177 unnamed fields.
7178
717e3f73
NS
71792000-11-30 Nathan Sidwell <nathan@codesourcery.com>
7180
7181 * method.c (do_build_assign_ref): Construct appropriately
7182 CV-qualified base reference. Don't allow const casts in base
7183 conversion.
7184
2c92b94d
NS
71852000-11-30 Nathan Sidwell <nathan@codesourcery.com>
7186
7187 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on
7188 incomplete return type.
7189
bb92901d
NS
71902000-11-28 Nathan Sidwell <nathan@codesourcery.com>
7191
7192 * parse.y (base_class.1): Produce a _TYPE not a _DECL.
7193 * semantics.c (finish_base_specifier): Accept a _TYPE not a
7194 _DECL.
7195
2f3608c3
NS
71962000-11-28 Nathan Sidwell <nathan@codesourcery.com>
7197
7198 * spew.c (yyerror): Cope if yylval.ttype is NULL.
7199
eeb75383
NS
72002000-11-28 Nathan Sidwell <nathan@codesourcery.com>
7201
7202 * decl.c (grokdeclarator): Diagnose undefined template contexts.
7203
5ee4cc26
NS
72042000-11-28 Nathan Sidwell <nathan@codesourcery.com>
7205
7206 * decl.c (grokdeclarator): Do type access control on friend
7207 class.
7208
76e57b45
NS
72092000-11-27 Nathan Sidwell <nathan@codesourcery.com>
7210
7211 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
7212 bison parser ickiness.
7213 * pt.c (tsubst_friend_function): Enter namespace scope when
7214 tsubsting the function name.
7215 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
7216
f9825168
NS
72172000-11-27 Nathan Sidwell <nathan@codesourcery.com>
7218
7219 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
7220 * cvt.c (cp_convert_to_pointer): Add force parameter.
7221 Allow conversions via virtual base if forced.
7222 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
7223 (ocp_convert): Likewise.
7224 * search.c (binfo_from_vbase): Return the virtual base's binfo.
7225 * typeck.c (get_delta_difference): Adjust handling of virtual
7226 bases.
7227
9ccb25d5
MM
72282000-11-26 Mark Mitchell <mark@codesourcery.com>
7229
7230 * tree.c (struct list_hash): Remove.
7231 (list_hash_table): Make it be an htab.
7232 (struct list_proxy): New type.
7233 (list_hash_eq): New function.
7234 (list_hash_pieces): Renamed from ...
7235 (list_hash): ... this.
7236 (list_hash_lookup): Remove.
7237 (list_hash_add): Remove.
7238 (hash_tree_cons): Use the generic hashtable.
7239 (mark_list_hash): Remove.
7240 (init_tree): Create the hashtable.
7241
9399bad3
JM
72422000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
7243
7244 * method.c (build_mangled_C9x_name): Rename to
7245 build_mangled_C99_name. Change C9X references in comments to
7246 refer to C99.
7247
2f401cc8
NS
72482000-11-24 Nathan Sidwell <nathan@codesourcery.com>
7249
7250 * parse.y (unary_expr): Move VA_ARG from here ...
7251 (primary): ... to here.
7252
3d7e9ba4
NS
72532000-11-24 Nathan Sidwell <nathan@codesourcery.com>
7254
7255 * semantics.c (finish_id_expr): If type is error_mark, return
7256 error_mark.
7257
ab097535
NS
72582000-11-23 Nathan Sidwell <nathan@codesourcery.com>
7259
7260 * pt.c (lookup_template_class): Simplify loop exit constructs.
7261 Cope when there is no partial instantiation of a template
7262 template member.
7263
9196ece5
R
7264Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com>
7265
7266 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
7267
cac78ea2
MM
72682000-11-22 Mark Mitchell <mark@codesourcery.com>
7269
6e1b44bc
MM
7270 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
7271 prefix.
7272
cac78ea2
MM
7273 * pt.c (do_decl_instantiate): Explicitly clone constructors and
7274 destructors that haven't already been cloned.
7275
3aac38d7
RH
72762000-11-20 Richard Henderson <rth@redhat.com>
7277
7278 * parse.y (yyparse_1): Rename the parser entry point.
7279
72802000-11-20 Alex Samuel <samuel@codesourcery.com>
beac9b93
AS
7281
7282 * mangle.c (write_name): Use <unscoped-name> for names directly in
7283 function scope.
7284 (write_unscoped_name): Accept names directly in function scope.
d363e7bf 7285
447306fa
NS
72862000-11-20 Nathan Sidwell <nathan@codesourcery.com>
7287
7288 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
7289 * parse.y (extdef): Add EXPORT reduction.
7290 * spew.c (yylex): Don't skip export here.
7291
2650255a
MM
72922000-11-19 Mark Mitchell <mark@codesourcery.com>
7293
7294 * decl.c (init_decl_processing): Correct name of pure virtual
7295 function under the new ABI.
7296 * rtti.c (throw_bad_cast): Likewise, for bad cast function.
7297 (throw_bad_typeid): Likewise for bad typeid function.
7298
0657c69c
MM
72992000-11-18 Mark Mitchell <mark@codesourcery.com>
7300
04f3dc2b
MM
7301 * decl.c (grokparms): Don't even function types of `void' type,
7302 either.
7303 * mangle.c (write_type): Don't crash when confronted with the
7304 error_mark_node.
7305
0657c69c
MM
7306 * decl.c (grokparms): Don't create parameters of `void' type.
7307
a8a05998
ZW
73082000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
7309
7310 * lex.c (mark_impl_file_chain): Delete.
7311 (init_parse): Remove call to ggc_add_string_root. No need to
7312 ggc_strdup a string constant. Do not add impl_file_chain to GC
7313 roots.
7314 (handle_pragma_implementation): No need to ggc_strdup main_filename.
7315
35728a80
NS
73162000-11-17 Nathan Sidwell <nathan@codesourcery.com>
7317
7318 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
7319
5cce22b6
NS
73202000-11-17 Nathan Sidwell <nathan@codesourcery.com>
7321
7322 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
7323 * decl.c (grokdeclarator): Don't reject void parms here.
7324 (require_complete_types_for_parms): Simplify, use
7325 complete_type_or_else.
7326 (grokparms): Remove bitrot. Remove funcdef parm.
7327 Deal with ellipsis parm lists here.
7328 * semantics.c (finish_parmlist): Don't append void_list_node
7329 here. Set PARMLIST_ELLIPSIS_P.
7330
146c8d60
NS
73312000-11-17 Nathan Sidwell <nathan@codesourcery.com>
7332
d30d6e7a 7333 * typeck2.c (incomplete_type_error): Reorganize to avoid
146c8d60
NS
7334 excessive diagnostics.
7335
520a57c8
ZW
73362000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
7337
7338 * lex.c (struct impl_files, internal_filename): Constify a char *.
7339
43048a06
MM
73402000-11-16 Mark Mitchell <mark@codesourcery.com>
7341
7342 * mangle.c (write_special_name_constructor): Don't generate
7343 assembler junk when confronted with an old-style constructor.
7344 (write_special_name_destructor): Likewise.
7345 (mangle_decl_string): Do it here instead.
7346
cdb71673
NS
73472000-11-16 Nathan Sidwell <nathan@codesourcery.com>
7348
7349 * call.c (op_error): Make error messages clearer.
7350
62136084
MM
73512000-11-15 Mark Mitchell <mark@codesourcery.com>
7352
7353 * decl.c (wrapup_globals_for_namespace): Don't mark things
7354 TREE_ASM_WRITTEN when they're not.
7355
ee3400e8
JM
73562000-11-15 Jason Merrill <jason@redhat.com>
7357
7358 * typeck2.c (friendly_abort): Uncount the error before handing
7359 off to fancy_abort.
7360
71631a1f
NS
73612000-11-15 Nathan Sidwell <nathan@codesourcery.com>
7362
7363 * typeck.c (lookup_anon_field): Cope with qv qualifiers.
7364
79cda2d1
MM
73652000-11-14 Mark Mitchell <mark@codesourcery.com>
7366
7367 * class.c (build_vtbl_initializer): Fix typo in comment.
7368 * typeck.c (expr_sizeof): Don't crash on errors.
7369
2567bc56
JW
73702000-11-14 Jim Wilson <wilson@redhat.com>
7371
7372 * lang-specs.h: Add %2 after %(cc1_options).
7373
8422942c
RH
73742000-11-14 Richard Henderson <rth@redhat.com>
7375
7376 * typeck.c (c_sizeof): Be strict about casting result value
7377 back to c_size_type_node.
7378 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
7379
19552aa5
JM
73802000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
7381
7382 * typeck.c (build_unary_op): Use boolean_increment from
7383 c-common.c, moving the relevant code there.
7384
d96a6d1a
JM
73852000-11-11 Jason Merrill <jason@redhat.com>
7386
7387 * typeck.c (mark_addressable): Don't call put_var_into_stack.
492cca24
JM
7388
7389 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
7390 in inlines.
7391
4e135bdd
KG
73922000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7393
7394 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
7395 * lex.c (copy_lang_decl): Likewise.
7396
0a7394bc
MM
73972000-11-09 Mark Mitchell <mark@codesourcery.com>
7398
13507bd8
MM
7399 * dump.c (cp_dump_tree): Don't dump function bodies here.
7400
0a7394bc
MM
7401 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
7402 (dump.o): Update dependency list.
7403 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
7404 (flag_dump_translation_unit): Likewise.
7405 (CP_TYPE_QUALS): Adjust definition.
7406 (DECL_C_BIT_FIELD): Remove.
7407 (SET_DECL_C_BIT_FIELD): Likewise.
7408 (CLEAR_DECL_C_BIT_FIELD): Likewise.
7409 (add_maybe_template): Likewise.
7410 (strip_array_types): Likewise.
7411 (dump_node_to_file): Likewise.
7412 (cp_dump_tree): New function.
7413 * decl.c (init_decl_processing): Set lang_dump_tree.
7414 * decl2.c (flag_dump_translation_unit): Remove.
7415 * dump.c: Move most of it to ../c-dump.c.
7416 (cp_dump_tree): New function.
7417 * pt.c (add_maybe_template): Remove.
7418 * typeck.c (strip_array_types): Likewise.
a8a05998 7419
5362b086
EC
74202000-11-07 Eric Christopher <echristo@redhat.com>
7421
492cca24
JM
7422 * decl.c (init_decl_processing): Change definition of
7423 __wchar_t to wchar_t. Remove artificial declaration of
7424 wchar_t.
7425 * lex.c: Change instances of __wchar_t to wchar_t.
5362b086 7426
5361cbb7
NS
74272000-11-09 Nathan Sidwell <nathan@codesourcery.com>
7428
7429 * lex.c (do_identifier): Don't lookup_name for operators.
7430 * parse.y (operator): Save looking_for_typename.
7431 (unoperator): Restore it.
7432 * spew.c (frob_opname): Use nth_token for lookahead.
7433
36791f1e
NS
74342000-11-08 Nathan Sidwell <nathan@codesourcery.com>
7435
7436 * decl.c (grok_op_properties): Always use coerce_new_type and
7437 coerce_delete_type.
7438 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve
7439 exception specification. Tidy up.
7440 (coerce_delete_type): Preserve exception specification. Tidy up.
7441
961192e1
JM
74422000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
7443
7444 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
7445 (push_binding_level), error.c (cp_tree_printer), pt.c
7446 (process_partial_specialization, tsubst_template_arg_vector),
7447 search.c (lookup_member): Use memset () instead of bzero ().
7448
d48ebde1
NS
74492000-11-07 Nathan Sidwell <nathan@codesourcery.com>
7450
7451 * decl.c (build_ptrmemfunc_type): Allow error_mark_node.
7452
436a88a6
JM
74532000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
7454
7455 * Make-lang.in (c++.distdir): Remove.
7456
7a4e5091
MM
74572000-11-04 Mark Mitchell <mark@codesourcery.com>
7458
7459 * decl2.c (do_nonmember_using_decl): Allow `extern "C"'
7460 declarations from different namespaces to be combined.
7461
0e9295cf
ZW
74622000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
7463
7464 * decl.c: Include tm_p.h.
7465
da61dec9
JM
74662000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
7467
7468 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
7469
9473c522
JM
74702000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
7471
7472 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
7473 (build_overload_value), repo.c (open_repo_file), xref.c
7474 (open_xref_file): Use strchr () and strrchr () instead of index ()
7475 and rindex ().
7476
b0b3afb2
BS
74772000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
7478
7479 * call.c (build_over_call): Call fold on the CALL_EXPR.
7480
faafaee6
GDR
74812000-11-01 Gabriel Dos Reis <gdr@codesourcery.com>
7482
7483 * error.c (dump_template_decl): Separate template hearders with
7484 space not comma.
7485
761f0855
GDR
74862000-10-31 Gabriel Dos Reis <gdr@codesourcery.com>
7487
7488 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace
7489 TS_* flags with corresponding TFF_*. Adjust prototypes of
7490 functions (which used to take a tree_string_flags) to take an int.
7491
7492 * cp-tree.h (enum tree_string_flags): Remove
7493 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
7494 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
7495 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
7496 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
7497 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
7498 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
7499 (type_as_string, decl_as_string, expr_as_string,
7500 context_as_string): Adjust prototype.
7501
7502 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
7503 instead of TS_PLAIN.
7504
7505 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
7506 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
7507 plain `0'.
7508
ad50e811
MM
75092000-10-30 Mark Mitchell <mark@codesourcery.com>
7510
7511 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
7512 (linkage_kind): New enumeration.
7513 (decl_linkage): New function.
7514 * decl2.c (comdat_linkage): Extend comment.
7515 * error.c (dump_function_decl): Print the arguments used to
7516 instantiate a template, even when not printing the type of the
7517 function.
7518 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
7519 not TREE_PUBLIC, to test for external linkage.
7520 * tree.c (decl_linkage): New function.
7521
930cd796
MM
75222000-10-28 Mark Mitchell <mark@codesourcery.com>
7523
7524 * pt.c (instantiate_decl): Always instantiate static data members
7525 initialized in-class.
7526
b8dad04b
ZW
75272000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
7528
7529 * Make-lang.in: Move all build rules here from Makefile.in,
7530 adapt to new context. Wrap all rules that change the current
7531 directory in parentheses. Expunge all references to $(P).
7532 When one command depends on another and they're run all at
7533 once, use && to separate them, not ;. Add OUTPUT_OPTION to
7534 all object-file generation rules. Delete obsolete variables.
7535
7536 * Makefile.in: Delete.
7537 * config-lang.in: Delete outputs= line.
7538
5f9cd837
GDR
75392000-10-26 Gabriel Dos Reis <gdr@codesourcery.com>
7540
7541 * error.c (dump_function_decl): Print no space between
7542 `ptr-operator' the `type-specifier' of the return type.
7543 (dump_type_prefix): Make sure we put space at the appropriate
5362b086 7544 place.
5f9cd837 7545
6c6ed0ef
JM
75462000-10-23 Jason Merrill <jason@redhat.com>
7547
7548 * call.c (equal_functions): Also call decls_match for extern "C" fns.
7549
75502000-10-22 Jason Merrill <jason@redhat.com>
7551
7552 * call.c (build_conditional_expr): Use ocp_convert to force
7553 rvalue conversion.
7554
e36308b0
MM
75552000-10-22 Mark Mitchell <mark@codesourcery.com>
7556
583ca5a0
MM
7557 * call.c (standard_conversion): Use RVALUE_CONVs for all
7558 expressions that satisfy lvalue_p, not just those that satisfy
7559 real_lvalue_p.
7560
f9808f81
MM
7561 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
7562
5362b086 7563 * typeck.c (c_sizeof): Return an expression of `size_t' type,
e36308b0
MM
7564 not one with TYPE_IS_SIZETYPE set.
7565 (dubious_conversion_warnings): Remove special-case code.
7566
3b9ae6f0
GK
75672000-10-21 Geoffrey Keating <geoffk@cygnus.com>
7568
7a0f14e5
GK
7569 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
7570 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
7571 (dump_type_prefix): Print vector-of-int as 'int vector'.
7572 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
7573 * tree.c (walk_tree): Handle VECTOR_TYPE.
7574
3b9ae6f0 7575 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
5362b086 7576
aca77bd1
JM
75772000-10-21 Jason Merrill <jason@redhat.com>
7578
7579 * parse.y (operator): Set got_object from got_scope.
7580 Set looking_for_typename.
7581 * decl.c (lookup_name_real): Clear val after setting from_obj.
7582 Reorganize diagnostic.
7583
ba523395
JM
75842000-10-20 Jason Merrill <jason@redhat.com>
7585
7586 * tree.c (walk_tree): Don't walk into default args.
7587
7588 * error.c (dump_expr): Use host_integerp.
7589
2e44948d
DE
75902000-10-20 David Edelsohn <edelsohn@gnu.org>
7591
7592 * typeck2.c (abstract_virtuals_error): Use "because" instead of
7593 "since" in error message.
7594
44475138
RK
7595Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7596
7597 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
7598
11306230
JO
75992000-10-20 Jeffrey Oldham <oldham@codesourcery.com>
7600
7601 * decl.c (revert_static_member_fn): Fixed typo.
7602
97ba1e3c
MM
76032000-10-19 Mark Mitchell <mark@codesourcery.com>
7604
c20118a8
MM
7605 * class.c (subobject_offset_fn): New type.
7606 (dfs_record_base_offsets): Remove.
7607 (record_base_offsets): Likewise.
7608 (dfs_search_base_offsets): Likewise.
7609 (record_subobject_offset): New function.
7610 (check_subobject_offset): Likewise.
7611 (walk_subobject_offsets): Likewise.
7612 (record_subobject_offsets): Likewise.
7613 (layout_conflict_p): Reimplement.
7614 (layout_nonempty_base_or_field): Correct handling of type
7615 conflicts during layout.
7616 (layout_empty_base): Likewise.
7617 (build_base_field): Adjust to handle new representation of empty
7618 base offset table.
7619 (build_base_fields): Likewise.
7620 (layout_virtual_bases): Likewise.
7621 (splay_tree_compare_integer_csts): New function.
7622 (layout_class_type): Use a splay_tree, rather than a varray, to
7623 represent the offsets of empty bases.
5362b086 7624
97ba1e3c
MM
7625 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
7626 * decl.c (select_decl): Don't return declarations that are
7627 DECL_ANTICIPATED.
7628
6bcedb4e
MM
76292000-10-18 Mark Mitchell <mark@codesourcery.com>
7630
7631 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
7632 (fake_std_node): New macro.
7633 * decl.c (in_std): Rename to ...
7634 (in_fake_std): ... this.
7635 (flag_no_builtin): Remove.
7636 (flag_no_nonansi_builtin): Likewise.
7637 (walk_namespaces_r): Use fake_std_node.
7638 (push_namespace): Use std_identifier.
7639 (pop_namespace): Use in_fake_std.
7640 (lookup_name_real): Use fake_std_node.
7641 (init_decl_processing): When -fhonor-std, create the `std'
7642 namespace. Don't create a dummy fake_std_node in that case.
7643 Adjust call to c_common_nodes_and_builtins. Use std_identifier.
7644 (builtin_function): Put builtins whose names don't begin
7645 with `_' in the std namespace.
7646 * decl2.c (flag_no_builtin): Remove.
7647 (flag_no_nonansi_builtin): Likewise.
7648 (set_decl_namespace): Use fake_std_node.
7649 (validate_nonmember_using_decl): Likewise.
7650 (do_using_directive): Likewise.
7651 (handle_class_head): Likewise.
7652 * dump.c (dequeue_and_dump): Likewise.
7653 * except.c (init_exception_processing): Use std_identifier.
7654 * init.c (build_member_call): Use fake_std_node.
7655 * rtti.c (init_rtti_processing): Use std_identifier.
5362b086 7656
67673f5c
MM
76572000-10-17 Mark Mitchell <mark@codesourcery.com>
7658
7659 * cp-tree.h (back_end_hook): Remove declaration.
7660 * decl2.c (back_end_hook): Remove definition.
7661
7662 * dump.c (dequeue_and_dump): Dump TREE_USED.
7663
8fef2e47
BL
7664Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu>
7665
7666 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
7667
652469d0
JM
76682000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
7669
7670 * decl.c (WINT_TYPE): Define.
7671 (init_decl_processing): Create types unsigned_ptrdiff_type_node,
7672 c_size_type_node, signed_size_type_node and wint_type_node.
7673
74ff4629
JM
76742000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
7675
7676 * decl2.c (warn_missing_format_attribute): New variable.
7677 (lang_decode_option): Decode -Wmissing-format-attribute.
7678
634790f4
MM
76792000-10-16 Mark Mitchell <mark@codesourcery.com>
7680
7681 * typeck.c (qualify_type): Remove.
7682 (composite_pointer_type): Fix handling of conversions to `cv void*'.
7683
bb12da9d
KG
76842000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7685
7686 * Makefile.in (parse.c, parse.h): Fix think-o in last patch.
7687
4b945402
KG
76882000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7689
7690 * Makefile.in (parse.c, parse.h): Create atomically.
7691
1f8f4a0b
MM
76922000-10-12 Mark Mitchell <mark@codesourcery.com>
7693
7694 * class.c (current_obstack): Remove.
7695 * decl.c (ggc_p): Remove.
7696 (start_decl): Don't use decl_tree_cons.
7697 (grokdeclarator): Don't use build_decl_list.
7698 (start_function): Don't use decl_tree_cons.
7699 (finish_function): Don't mess with obstacks.
7700 * decl2.c (grok_x_components): Don't use build_decl_list.
7701 * lex.c (make_call_declarator): Don't call decl_tree_cons.
7702 (implicitly_declare_fn): Don't call build_decl_list.
7703 * parse.y (frob_specs): Don't call build_decl_list or
7704 decl_tree_cons.
7705 (expr_or_declarator_intern): Don't call decl_tree_cons.
7706 (primary): Don't call build_decl_list.
7707 (fcast_or_absdcl): Likewise.
7708 (typed_declspecs): Don't call decl_tree_cons.
7709 (reserved_declspecs): Don't call build_decl_list.
7710 (declmods): Likewise.
7711 (reserved_typespecquals): Likewise.
7712 (aggr): Likewise.
7713 (new_type_id): Likewise.
7714 (cv_qualifiers): Likewise.
7715 (after_type_declarator_intern): Likewise.
7716 (notype_declarator_intern): Likewise.
7717 (absdcl_intern): Likewise.
7718 (named_parm): Likewise.
7719 * pt.c (most_specialized_class): Likewise.
7720 * repo.c (temporary_obstack): Make it a structure, not a pointer.
7721 (init_repo): Initialize it.
7722 * search.c (current_obstack): Remove.
7723 * typeck2.c (add_exception_specifier): Don't call build_decl_list.
5362b086 7724
8dc54971
RH
77252000-10-09 Richard Henderson <rth@cygnus.com>
7726
7727 * Make-lang.in (CXX_EXTRA_HEADERS): Remove.
7728 (c++ language support bits for libgcc): Remove.
7729 (c++.clean): Remove cplib2.txt cleanup.
7730 * config-lang.in (headers, lib2funcs): Remove.
7731
7732 * exception.cc, new.cc, new1.cc, new2.cc: Remove files.
7733 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
7734 * inc/cxxabi.h, inc/exception, inc/new: Remove files.
7735 * inc/new.h, inc/typeinfo: Remove files.
7736
b15ad712
JM
77372000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
7738
7739 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
7740 defined.
7741 (init_decl_processing): Initialize intmax_type_node and
7742 uintmax_type_node.
7743
156ce211
RH
77442000-10-06 Richard Henderson <rth@cygnus.com>
7745
7746 * cp-tree.h (struct cp_language_function): Remove x_result_rtx.
7747 (original_result_rtx): Remove.
7748 * decl.c (save_function_data): Don't clear x_result_rtx.
7749 (mark_lang_function): Don't mark it either.
7750 * expr.c (fixup_result_decl): Remove.
7751 * semantics.c (genrtl_named_return_value): Frob the return decl
7752 before calling emit_local_var.
7753 (genrtl_finish_function): Don't call fixup_result_decl.
7754 Always emit the jump to return_label.
7755
92777ce4
NS
77562000-10-06 Nathan Sidwell <nathan@codesourcery.com>
7757
7758 * pt.c (lookup_template_class): Set current access for enum.
7759 (tsubst_enum): Set file & line for enum decl.
5362b086 7760
92777ce4
NS
7761 * spew.c (yylex): Remove unused variable.
7762
63c16fc5
RH
77632000-10-05 Richard Henderson <rth@cygnus.com>
7764
7765 * semantics.c (genrtl_finish_function): Don't init or check
7766 can_reach_end; remove noreturn and return value checks.
7767
d1a458c4
TT
77682000-10-05 Tom Tromey <tromey@cygnus.com>
7769
7770 * init.c (build_java_class_ref): Use `build_static_name' with a
7771 suffix, not a prefix, to build the class object's name.
7772
509fc277
NS
77732000-10-05 Nathan Sidwell <nathan@codesourcery.com>
7774
7775 * cp-tree.h (access_kind): Fix comment typo.
7776 * decl2.c (grokfield): Fix diagnostic typo.
7777 * semantics.c (finish_template_type): Fix comment typo.
7778 (finish_qualified_object_call_expr): Likewise.
7779
ce2e5191
NS
77802000-10-05 Nathan Sidwell <nathan@codesourcery.com>
7781
7782 * pt.c (tsubst_expr, DECL_STMT case): Don't process if
5362b086 7783 tsubsting fails.
ce2e5191 7784
79cc5312
NS
77852000-10-05 Nathan Sidwell <nathan@codesourcery.com>
7786
7787 * spew.c (frob_id): New static function.
7788 (frob_opname): Use it.
7789 (yylex): Use it.
7790
f15b9af9
MM
77912000-10-01 Mark Mitchell <mark@codesourcery.com>
7792
7793 * decl.c (lang_mark_false_label_stack): Remove.
7794 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
5362b086 7795
28e6b1c2
JM
77962000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
7797
7798 * gxxint.texi: Use @email for formatting email addresses.
7799
99885b3f
GDR
78002000-09-29 Gabriel Dos Reis <gdr@codesourcery.com>
7801
7802 * error.c: Remove direct obstack manipulation. Replace with
7803 output_buffer-based formatting. Adjust calls to removed macros.
7804 (obstack_chunk_alloc, obstack_chunk_free): Remove.
7805 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
7806 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
7807
c06aa51e
MM
78082000-09-24 Mark Mitchell <mark@codesourcery.com>
7809
7810 * ir.texi: Move to ../c-tree.texi.
7811
99fada40
JM
78122000-09-20 Jason Merrill <jason@redhat.com>
7813
7814 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
7815
bb20cc46
AJ
78162000-09-21 Andreas Jaeger <aj@suse.de>
7817
7818 * errfn.c: Move declaration of cp_printer and cp_printers to ...
7819 * cp-tree.h: ... here.
7820
7821 * error.c: Remove declaration of cp_printer.
7822
fab701da
MM
78232000-09-20 Mark Mitchell <mark@codesourcery.com>
7824
7825 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
7826
0370fea1
HPN
78272000-09-20 Hans-Peter Nilsson <hp@axis.com>
7828
7829 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
7830 users.
7831
78c120b5
MM
78322000-09-18 Mark Mitchell <mark@codesourcery.com>
7833
7834 * decl.c (start_function): Robustify.
7835
3f80e6ac
KG
78362000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7837
7838 * cp-tree.h (check_function_format): Accept a `status' parameter.
bb20cc46 7839
3f80e6ac
KG
7840 * call.c, typeck.c: Updates calls to `check_function_format'.
7841
fc928afe
GK
78422000-09-17 Geoffrey Keating <geoffk@cygnus.com>
7843
7844 * decl2.c (handle_class_head): Always push some scope even
7845 in the error case.
7846
8f17b5c5
MM
78472000-09-16 Mark Mitchell <mark@codesourcery.com>
7848
7849 * cp-tree.h (struct cp_language_function): Remove
7850 x_scope_stmt_stack and name_declared.
7851 (current_scope_stmt_stack): Remove.
7852 (function_name_declared_p): New macro.
7853 (struct lang_decl_flags): Use c_lang_decl as a base class.
7854 (context): Remove.
7855 (struct lang_decl): Replace saved_tree with context.
7856 (DECL_FRIEND_CONTEXT): Adjust accordingly.
7857 (SET_DECL_FRIEND_CONTEXT): Likewise.
7858 (DECL_VIRTUAL_CONTEXT): Likewise.
7859 (DECL_SAVED_TREE): Remove.
7860 (C_DECLARED_LABEL_FLAG): Likewise.
7861 (cplus_expand_expr_stmt): Don't declare.
7862 (add_decl_stmt): Likewise.
7863 (add_scope_stmt): Likewise.
7864 * decl.c (mark_stmt_tree): Remove.
7865 (case_compare): Likewise.
7866 (finish_case_label): Use c_add_case_label.
7867 (init_decl_processing): Set more language-specific hooks.
7868 (build_enumerator): Fix typo in comment.
7869 (cplus_expand_expr_stmt): Remove.
7870 (mark_lang_function): Use mark_c_language_function.
7871 (lang_mark_tree): Use c_mark_lang_decl.
7872 * decl2.c: Change order of inclusion.
7873 * except.c: Likewise.
7874 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall
7875 back on c_expand_expr.
7876 * friend.c: Include expr.h.
7877 * init.c: Change order of inclusion.
7878 * Makefile.in: Update dependencies.
7879 * lex.h (free_lang_decl_chain): Remove.
7880 * optimize.c (maybe_clone_body): Use function_name_declared_p.
7881 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
7882 it doesn't exist.
7883 (instantiate_decl): Use function_name_declared_p.
7884 * semantics.c (lang_expand_expr_stmt): Remove.
7885 (set_current_function_name_declared): Likewise.
7886 (current_function_name_declared): Likewise.
7887 (begin_compound_stmt): Use function_name_declared_p.
7888 (add_decl_stmt): Remove.
7889 (setup_vtbl_ptr): Use function_name_declared_p.
7890 (add_scope_stmt): Remove.
7891 (current_scope_stmt_stack): New function.
7892 (cp_expand_stmt): Don't handle SCOPE_STMTs.
7893 (expand_body): Use function_name_declared_p.
7894 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
7895 * typeck.c: Change order of includes.
7896 (convert_sequence): Remove.
bb20cc46 7897
d9dbd9b1
JM
78982000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
7899
7900 * lex.c (reswords): Add _Complex.
7901
9985f210
RK
7902Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7903
7904 * Make-lang.in (cplib2.txt): Depend on cp/Makefile.
7905
f903ebb1
DA
79062000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
7907
7908 * init.c (begin_init_stmts): Don't use // comments.
7909
f2ae0c45
JM
79102000-09-12 Jason Merrill <jason@redhat.com>
7911
7912 * decl.c (maybe_deduce_size_from_array_init): Set do_default for
7913 all non-extern arrays.
7914
7915 * decl.c (grokdeclarator): Complain about 'friend T' for implicit
7916 typenames, too. Downgrade complaint to pedwarn.
7917 (xref_tag): Warn about surprising behavior of 'friend struct T'.
7918 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
7919 'class This::Inherited'.
7920
71ad4a16
MM
79212000-09-12 Mark Mitchell <mark@codesourcery.com>
7922
7923 * decl.c (finish_case_label): Given the LABEL_DECL a
7924 DECL_CONTEXT.
7925
c3e76028
GDR
79262000-09-12 Gabriel Dos Reis <gdr@codesourcery.com>
7927
7928 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
7929 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
7930 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
7931 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
7932 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
7933 New macros.
7934 (sorry_for_unsupported_tree, print_scope_operator,
7935 print_left_paren, print_right_paren, print_left_bracket,
7936 print_right_bracket, print_whitespace): Likewise.
7937 (aggr_variety): Rename to class_key_or_enum.
7938 (print_type): Rename to print_type_id.
7939 (print_type_specifier_seq, print_simple_type_specifier,
7940 print_elaborated_type_specifier,
7941 print_rest_of_abstract_declarator,
7942 print_parameter_declaration_clause, print_exception_specification,
7943 print_nested_name_specifier, print_template_id,
7944 typedef_original_name, print_template_argument_list_start,
7945 print_template_argument_list_end): New functions.
7946
eb50138b
GDR
79472000-09-11 Gabriel Dos Reis <gdr@codesourcery.com>
7948
a8a05998 7949 * ir.texi: Add more documentation.
eb50138b 7950
f444e36b
MM
79512000-09-11 Mark Mitchell <mark@codesourcery.com>
7952
7953 * cp-tree.h (struct saved_scope): Remove x_function_parms.
7954 (current_function_parms): Don't define.
7955 (struct cp_language_function): Remove parms_stored.
7956 (current_function_just_assigned_this): Don't define.
7957 (current_function_parms_stored): Likewise.
7958 (static_ctors): Declare.
7959 (static_dtors): Likewise.
7960 (SF_EXPAND): Don't define.
7961 (expand_start_early_try_stmts): Remove declaration.
7962 (store_parm_decls): Likewise.
7963 * decl.c (static_ctors): Don't declare.
7964 (static_dtors): Likewise.
7965 (struct binding_level): Remove this_block.
7966 (poplevel): Remove dead code.
7967 (set_block): Likewise.
7968 (mark_binding_level): Don't mark this_block.
7969 (mark_saved_scope): Don't mark x_function_parms.
7970 (init_decl_processing): Don't add current_function_parms as a GC
7971 root.
7972 (check_function_type): Change prototype.
7973 (start_function): Remove RTL-generation code.
7974 (expand_start_early_try_stmts): Remove.
7975 (store_parm_decls): Give it internal linkage. Remove
7976 RTL-generation code.
7977 (finish_function): Remove RTL-generation code.
7978 * decl2.c (static_ctors): Fix formatting.
7979 (static_dtors): Likewise.
7980 * method.c (use_thunk): Don't call store_parm_decls.
7981 (synthesize_method): Likewise.
7982 * optimize.c (maybe_clone_body): Likewise.
7983 * parse.y (fn.def2): Likewise.
7984 (.set_base_init): Likewise.
7985 (nodecls): Likewise.
7986 * pt.c (instantiate_decl): Likewise.
7987 * rtti.c (synthesize_tinfo_fn): Likewise.
7988 * semantics.c (genrtl_try_block): Simplify.
7989 (expand_body): Use genrtl_start_function and
7990 genrtl_finish_function.
7991 (genrtl_start_function): New function.
7992 (genrtl_finish_function): Likewise.
7993
181d2ba0
NS
79942000-09-11 Nathan Sidwell <nathan@codesourcery.com>
7995
7996 * error.c (cp_tree_printer, case 'P'): Append break.
7997
f2d71db6
NS
79982000-09-11 Nathan Sidwell <nathan@codesourcery.com>
7999
8000 * cp-tree.h (frob_opname): Declare.
8001 * parse.y (saved_scopes): New static variable.
8002 (cp_parse_init): Adjust.
8003 (do_id): If lastiddecl is NULL, do do_identifier.
8004 (operator): Save scope information.
aca77bd1 8005 (unoperator): New reduction. Restore scope information.
f2d71db6
NS
8006 (operator_name): Append unoperator. Call frob_opname.
8007 * spew.c (frob_opname): Define.
8008
d8ea8f28
ZW
80092000-09-10 Zack Weinberg <zack@wolery.cumb.org>
8010
8011 * decl.c, rtti.c: Include defaults.h if not already included.
8012 Don't define the *_TYPE_SIZE macros.
8013
56cb9733
MM
80142000-09-09 Mark Mitchell <mark@codesourcery.com>
8015
8016 * cp-tree.h (push_switch): Change prototype.
8017 (check_cp_case_value): Remove declaration.
8018 (decl_constant_value): Likewise.
8019 * decl.c (struct cp_switch): Add switch_stmt and cases.
8020 (case_compare): New function.
8021 (push_switch): Set switch_stmt. Initialize cases.
8022 (pop_switch): Clean up cases.
8023 (define_case_label): Rename to ...
8024 (finish_case_label): ... this. Do semantic analysis for case
8025 labels here.
8026 (start_function): Correct comment.
8027 * decl2.c (check_cp_case_value): Remove.
8028 * expr.c (do_case): Remove.
8029 * pt.c (tsubst_expr): Adjust call to finish_case_label.
8030 * semantics.c (genrtl_do_poplevel): Remove declaration.
8031 (RECHAIN_STMTS): Remove.
8032 (finish_break_stmt): Use build_break_stmt.
8033 (finish_continue_stmt): Use build_continue_stmt.
8034 (finish_switch_cond): Adjust condition here, rater than in
8035 c_expand_start_case.
8036 (finish_case_label): Remove.
8037 * typeck.c (c_expand_return): Remove.
8038 (c_expand_start_case): Likewise.
bb20cc46 8039
990a9693
GDR
80402000-09-07 Gabriel Dos Reis <gdr@codesourcery.com>
8041
8042 * ir.texi: Document type nodes.
8043
ae499cce
MM
80442000-09-06 Mark Mitchell <mark@codesourcery.com>
8045
54f7877c
MM
8046 * cp-tree.h (init_cp_semantics): Declare.
8047 (genrtl_try_block): Don't declare.
8048 (genrtl_handler): Likewise.
8049 (genrtl_catch_block): Likewise.
8050 (genrtl_ctor_stmt): Likewise.
8051 (genrtl_subobject): Likewise.
8052 (genrtl_do_poplevel): Likewise.
8053 (genrtl_named_return_value): Likewise.
8054 * lex.c (init_parse): Call init_cp_semantics.
8055 * semantics.c (genrtl_try_block): Give it internal linkage.
8056 (genrtl_handler): Likewise.
8057 (genrtl_catch_block): Likewise.
8058 (genrtl_ctor_stmt): Likewise.
8059 (genrtl_subobject): Likewise.
8060 (genrtl_do_poplevel): Likewise.
8061 (genrtl_named_return_value): Likewise.
8062 (lang_expand_stmt): Rename to ...
8063 (cp_expand_stmt): ... this. Only handle C++-specific nodes.
8064 (init_cp_semantics): Define.
8065
3a0d3e1e
MM
8066 * decl.c (initialize_local_var): Remove RTL-generating code.
8067 * semantics.c (genrtl_try_block): Fix formatting.
8068
ae499cce
MM
8069 Move statement-tree facilities from C++ to C front-end.
8070 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
8071 (void_zero_node): Remove.
8072 (stmt_tree): Likewise.
8073 (scope_chain): Adjust.
8074 (language_function): Rename to cp_language_function.
8075 (cp_function_chain): Adjust.
8076 (current_stmt_tree): Remove.
8077 (last_tree): Likewise.
8078 (last_expr_type): Likewise.
8079 (struct lang_decl): Adjust.
8080 (STMT_IS_FULL_EXPR_P): Remove.
8081 (add_tree): Remove.
8082 (begin_stmt_tree): Likewise.
8083 (finish_stmt_tree): Likewise.
8084 (walk_tree_fn): Likewise.
8085 (walk_stmt_tree): Likewise.
8086 * class.c (finish_struct): Replace use of add_tree with add_stmt.
8087 * decl.c (mark_stmt_tree): Adjust type.
8088 (init_decl_processing): Don't build void_zero_node.
8089 (initialize_local_var): Adjust usage of current_stmt_tree.
8090 (finish_enum): Use add_stmt, not add_tree.
8091 (save_function_data): Adjust use of language_function.
8092 (finish_constructor_body): Use add_stmt, not add_tree.
8093 (finish_destructor_body): Likewise.
8094 (push_cp_function_context): Adjust use of language_function.
8095 (pop_cp_function_context): Likewise.
8096 (mark_lang_function): Likewise.
8097 (mark_cp_function_context): Likewise.
8098 * init.c (build_aggr_init): Adjust use of current_stmt_tree.
8099 (build_vec_init): Likewise.
8100 * semantics.c (SET_LAST_STMT): Remove.
8101 (RECHAIN_STMTS): Don't use it.
8102 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
8103 (current_stmt_tree): Define.
8104 (add_tree): Remove.
8105 (finish_goto_stmt): Use add_stmt, not add_tree.
8106 (finish_expr_stmt): Likewise.
8107 (begin_if_stmt): Likewise.
8108 (finish_then_clause): Likewise.
8109 (begin_while_stmt): Likewise.
8110 (begin_do_stmt): Likewise.
8111 (finish_return_stmt): Likewise.
8112 (begin_for_stmt): Likewise.
8113 (finish_break_stmt): Likewise.
8114 (finish_continue_stmt): Likewise.
8115 (begin_switch_stmt): Likewise.
8116 (finish_case_label): Likewise.
8117 (begin_try_block): Likewise.
8118 (begin_function_try_block): Likewise.
8119 (begin_handler): Likewise.
8120 (begin_catch_block): Likewise.
8121 (begin_compound_stmt): Likewise.
8122 (begin_asm_stmt): Likewise.
8123 (finish_asm_stmt): Likewise.
8124 (finish_label_stmt): Likewise.
8125 (add_decl_stmt): Likewise.
8126 (finish_subobject): Likewise.
8127 (finish_decl_cleanup): Likewise.
8128 (finish_named_return_value): Likewise.
8129 (setup_vtbl_ptr): Likewise.
8130 (add_scope_stmt): Likewise.
8131 (finish_stmt_expr): Likewise.
8132 (prune_unused_decls): Remove.
8133 (begin_stmt_tree): Likewise.
8134 (finish_stmt_tree): Likewise.
8135 (prep_stmt): Adjust use of current_stmt_tree.
8136 (lang_expand_stmt): Likewise.
8137 * tree.c (statement_code_p): Remove.
8138 (cp_statement_code_p): New function.
8139 (walk_stmt_tree): Remove.
8140 (init_tree): Set lang_statement_code_p.
bb20cc46 8141
0e5921e8
ZW
81422000-09-06 Zack Weinberg <zack@wolery.cumb.org>
8143
8144 Integrated preprocessor.
8145
8146 * Make-lang.in, Makefile.in: Remove all references to input.c,
8147 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
8148 * gxx.gperf, hash.h, input.c: Delete.
8149 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
8150 initialized properly.
8151
8152 * class.c (fixup_pending_inline): Take a tree, not a
8153 struct pending_inline *. All callers changed.
8154 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
8155 RID_PROTECTED entries in ridpointers[] array here.
8156 * decl.c (duplicate_decls): Do not refer to struct
8157 pending_inline.
8158 (record_builtin_type, init_decl_processing): Use RID_MAX not
8159 CP_RID_MAX.
8160 (grokdeclarator): Use C_IS_RESERVED_WORD.
8161 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
8162 cpplib.
8163 (grok_x_components): Do not inspect pending_inlines chain.
8164
8165 * cp-tree.h (struct lang_identifier): Add rid_code entry.
8166 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
8167 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
8168 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
8169 TIME_IDENTIFIER_FILEINFO): Kill.
8170 Update prototypes.
8171 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
8172 single 32-bit word.
8173 * parse.y: Call do_pending_inlines unconditionally.
8174 reinit_parse_for_method is now snarf_method. fn.defpen is no
8175 longer necessary. Remove unnecessary <itype> annotation on
8176 SCOPE. Do not refer to end_of_file or struct pending_inline.
8177 * semantics.c (begin_inline_definitions): Call
8178 do_pending_inlines unconditionally.
8179
8180 * lex.c: Remove all code now shared with C front end.
8181 Initialize cpplib properly if USE_CPPLIB. Put reserved words
8182 into the get_identifier table. Rewrite pragma handling to
8183 work with the registry. Move code to save tokens for later
8184 processing to spew.c.
8185
8186 * spew.c: Rewrite everything in terms of token streams instead
8187 of text. Move routines here from lex.c / input.c as
8188 appropriate. GC-mark trees hanging off the pending inlines
8189 chain.
8190
44835fdd
MM
81912000-09-06 Mark Mitchell <mark@codesourcery.com>
8192
8193 * NEWS: Mention that the named return value extension has been
8194 deprecated.
8195 * cp-tree.h (original_result_rtx): Define.
8196 (TREE_REFERENCE_EXPR): Remove.
8197 (DECL_VPARENT): Likewise.
8198 (pushdecl_nonclass_level): Likewise.
8199 (store_return_init): Likewise.
8200 (reinit_lang_specific): Likewise.
8201 (genrtl_named_return_value): Change prototype.
8202 * decl.c (original_result_rtx): Remove.
8203 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
8204 Do not generate RTL for local variables here.
8205 (store_return_init): Remove.
8206 * semantics.c (genrtl_named_return_value): Simplify. Fold in
8207 store_return_init.
8208 (finish_named_return_value): Adjust accordingly. Warn that this
8209 extension is deprecated.
8210 (lang_expand_stmt): Adjust call to genrtl_named_return_value.
8211
d7c4edd0
NS
82122000-09-06 Nathan Sidwell <nathan@codesourcery.com>
8213
8214 * pt.c (type_unification_real): Replace switch with if.
8215 (unify): Tsubst non-type parms before comparing.
8216
46e2747c
NS
82172000-09-06 Nathan Sidwell <nathan@codesourcery.com>
8218
8219 * error.c (dump_typename): New function, broken out of ...
8220 (dump_type): ... here. Use it.
8221 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
8222
c833d2be
NS
82232000-09-06 Nathan Sidwell <nathan@codesourcery.com>
8224
8225 * init.c (build_offset_ref): Deal with namespace scoped
8226 TEMPLATE_ID_EXPRs.
8227
b1ce3eb2
NS
82282000-09-06 Nathan Sidwell <nathan@codesourcery.com>
8229
8230 * class.c (resolve_address_of_overloaded_function): Add
8231 explanation message.
8232 * decl.c (define_case_label): Reformat explanation.
8233 * decl2.c (finish_static_data_member_decl): Likewise.
8234 (grokfield): Likewise.
8235 * friend.c (do_friend): Likewise.
8236
11f53b6a
ZW
82372000-09-05 Zack Weinberg <zack@wolery.cumb.org>
8238
8239 * tree.c (walk_tree): Expose tail recursion.
8240 (walk_stmt_tree): New function.
8241 * cp-tree.h: Prototype walk_stmt_tree.
8242 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
8243 the BLOCKs directly. If a BLOCK has no variables after
8244 pruning, discard it.
8245 (finish_stmt_tree): Use walk_stmt_tree. No need to save and
8246 restore the line number.
8247
ee94fce6
MM
82482000-09-05 Mark Mitchell <mark@codesourcery.com>
8249
8250 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
8251 (pt.o): Remove dependency on HTAB_H.
8252 * cp-tree.h: Include hashtab.h.
8253 (walk_tree): Change prototype.
8254 (walk_tree_without_duplicates): New function.
8255 * decl.c (check_default_argument): Use it.
8256 * optimize.c (remap_decl): Adjust calls to walk_tree.
8257 (copy_body): Likewise.
8258 (expand_calls_inline): Likewise.
8259 (calls_setjmp_p): Use walk_tree_without_duplicates.
8260 * pt.c: Don't include hashtab.h.
8261 (for_each_template_parm): Use walk_tree_without_duplicates.
8262 * semantics.c (finish-stmt_tree): Likewise.
8263 (expand_body): Likewise.
8264 * tree.c (walk_tree): Add additional parameter.
8265 (walk_tree_without_duplicates): New function.
8266 (count_trees): Use it.
8267 (verify_stmt_tree): Adjust call to walk_tree.
8268 (find_tree): Use walk_tree_without_duplicates.
8269 (no_linkage_check): Likewise.
8270 (break_out_target_exprs): Adjust call to walk_tree.
8271 (cp_unsave): Likewise.
8272
a1281f45
KL
82732000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8274
8275 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
8276 (TEMPLATE_TEMPLATE_PARM): Adjust comment.
8277 * cp-tree.h (TYPE_BINFO): Adjust comment.
8278 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
8279 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
8280 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
8281 (TYPE_TEMPLATE_INFO): Likewise.
8282 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
8283 * class.c (push_nested_class): Likewise.
8284 * decl.c (lookup_name_real): Likewise.
8285 (grokdeclarator): Likewise.
8286 (grok_op_properties): Likewise.
8287 (xref_tag): Likewise.
8288 (xref_basetypes): Likewise.
8289 * decl2.c (constructor_name_full): Likewise.
8290 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
8291 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
8292 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
8293 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8294 (dump_type_suffix): Likewise.
8295 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
8296 instead.
8297 (get_aggr_from_typedef): Likewise.
8298 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
8299 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8300 (write_template_parm): Likewise.
8301 (write_template_template_parm): Check tree code instead of
8302 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
0e5921e8 8303 * method.c (build_overload_nested_name): Add
a1281f45
KL
8304 BOUND_TEMPLATE_TEMPLATE_PARM.
8305 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
8306 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8307 * pt.c (convert_template_argument): Check tree code instead of
8308 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
8309 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
8310 (for_each_template_parm): Adjust comment.
8311 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize.
8312 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8313 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use
8314 template_args_equal to compare template template parameter cases.
8315 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8316 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
8317 instead.
8318 * tree.c (copy_template_template_parm): Decide whether to create
8319 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
8320 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8321 (copy_tree_r): Likewise.
8322 * typeck.c (comptypes): Likewise. Check tree code instead of
8323 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
8324
c9672d45
ME
83252000-09-04 Mark Elbrecht <snowball3@bigfoot.com>
8326
8327 * decl.c (finish_function): Move the code for handling functions
8328 marked with the constructor and destructor attributes inside the
8329 expand_p block.
8330
67804825
NS
83312000-09-04 Nathan Sidwell <nathan@codesourcery.com>
8332
8333 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
8334
1bc0793e
NS
83352000-09-04 Nathan Sidwell <nathan@codesourcery.com>
8336
8337 * pt.c (lookup_template_class): Remove abort.
8338 * tree.c (get_type_decl): Allow error_mark_node.
8339
3338663b
NS
83402000-09-04 Nathan Sidwell <nathan@codesourcery.com>
8341
8342 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
8343 TEMPLATE_ID_EXPRs.
8344
1b84dc37
MM
83452000-09-03 Mark Mitchell <mark@codesourcery.com>
8346
8347 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
c9672d45 8348 new ABI mangling.
1b84dc37 8349
9687f8f4
NS
83502000-09-01 Nathan Sidwell <nathan@codesourcery.com>
8351
8352 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
c9672d45 8353 union tag mismatch error reporting.
9687f8f4 8354
4f8025eb
NS
83552000-09-01 Nathan Sidwell <nathan@codesourcery.com>
8356
c9672d45 8357 * call.c (build_scoped_method_call): Check it is not a namespace.
4f8025eb 8358
495d26d6
JM
83592000-08-30 Jason Merrill <jason@redhat.com>
8360
8361 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
8362
8363 * tree.c (bot_manip): Check TREE_CONSTANT rather than
8364 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and
8365 build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
8366
8367 * decl.c (start_function): Always call make_function_rtl.
8368
7efcf466
ZW
83692000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8370
495d26d6 8371 * semantics.c (prune_unused_decls): New function.
7efcf466
ZW
8372 (finish_stmt_tree): Call it via walk_tree.
8373
63ad61ed
ZW
83742000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8375
8376 * class.c (build_secondary_vtable): Constify a char *.
8377 * decl.c (init_decl_processing): Initialize function_id_node,
8378 pretty_function_id_node, and func_id_node.
8379 * input.c (struct input_source): Constify 'str'.
8380 (feed_input): Constify first argument.
8381 * mangle.c (write_identifier): Constify argument.
8382 * pt.c (mangle_class_name_for_template): Constify argument.
8383
4361b41d
MM
83842000-08-29 Mark Mitchell <mark@codesourcery.com>
8385
8386 * typeck.c (mark_addressable): Remove code that pokes around in
8387 RTL.
8388
881c6935
JM
83892000-08-28 Jason Merrill <jason@redhat.com>
8390
8391 * lex.c (file_name_nondirectory): Move to toplev.c.
8392
8393 * cp-tree.h (LOCAL_CLASS_P): New macro.
8394 * class.c (finish_struct_1): Use it.
8395
f0f33848
AS
83962000-08-27 Alex Samuel <samuel@codesourcery.com>
8397
8398 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
8399 (write_encoding): Pass another argument to write_name.
8400 (write_name): Add ignore_local_scope parameter. Fix handling of
8401 local names.
8402 (write_nested_name): Use write_unqualified_name.
8403 (write_prefix): Likewise. Skip out on FUNCTION_DECLs.
8404 (write_template_prefix): Use write_unqualified_name.
8405 (write_component): Remove.
8406 (write_local_name): Add parameter. Use direct local entity to
8407 discriminator calculation.
0e5921e8 8408 (write_class_enum_type): Pass another argument to write_name.
f0f33848
AS
8409 (write_template_template_arg): Likewise.
8410 (make_guard_variable): Likewise.
0e5921e8 8411
94dfccd1
JM
84122000-08-27 Jason Merrill <jason@redhat.com>
8413
8414 * decl.c (pushdecl): Matching decls for local externs are found in
8415 the current level. Propagate linkage information from previous
8416 declarations.
8417
14fdf4b6
GDR
84182000-08-26 Gabriel Dos Reis <gdr@codesourcery.com>
8419
8420 * ir.texi (Expressions): Fix typo.
8421
b5232c64
GM
84222000-08-25 Greg McGary <greg@mcgary.org>
8423
8424 * tree.c (init_tree): Use ARRAY_SIZE.
8425
22a4158c
GDR
84262000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
8427
8428 * error.c (cp_tree_printer): Rework.
8429
f22967f3
MM
84302000-08-25 Mark Mitchell <mark@codesourcery.com>
8431
a0c182fe
MM
8432 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
8433 dyn-string.o.
8434 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
8435 (cp-demangle.o): Remove target.
8436 (dyn-string.o): Likewise.
8437
f22967f3
MM
8438 * decl.c (grokfndecl): Require that `main' return an `int'.
8439 * mangle.c (write_encoding): Don't mangle return types for
8440 conversion functions.
8441
a1066c99
GDR
84422000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
8443
8444 * error.c (tree_formatting_info): New data type.
8445 (tree_being_formatted): New macro.
8446 (tree_formatting_flags): Likewise.
8447 (put_whitespace): Likewise.
8448 (print_tree_identifier): Likewise.
8449 (print_identifier): Likewise.
8450 (cp_tree_printer, print_function_argument_list, print_declaration,
8451 print_expression, print_function_declaration,
8452 print_function_parameter, print_type, print_cv_qualifier): New
0e5921e8 8453 functions.
a1066c99
GDR
8454 (init_error): Initialize lang_printer.
8455
3f2b640a
JM
84562000-08-24 Jason Merrill <jason@redhat.com>
8457
8458 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no
8459 adjustment necessary.
8460
7ec09bf7
GM
84612000-08-24 Greg McGary <greg@mcgary.org>
8462
8463 * cp-tree.h (MAIN_NAME_P): Remove macro.
8464
2ab99c46
GDR
84652000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
8466
8467 * error.c (print_instantiation_context): Don't forget to flush the
8468 buffer.
8469
7def1251
JM
84702000-08-23 Jason Merrill <jason@redhat.com>
8471
8472 * typeck.c (build_ptrmemfunc): Save the input pmf.
8473
8474 * method.c (process_modifiers): Use same_type_p.
8475
94350948
MM
84762000-08-23 Mark Mitchell <mark@codesourcery.com>
8477
8478 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
8479 * mangle.c (write_function_type): Change prototype.
8480 (write_encoding): Don't mangle return types for
8481 constructors or destructors.
8482 (write_type): Adjust call to write_function_type.
8483 * pt.c (instantiate_template): Instantiate alternate entry points
8484 when instantiating the main function.
0e5921e8 8485
a64e7329
GDR
84862000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
8487
8488 * error.c (cp_print_error_function): Don't use embedded '\n' in
0e5921e8 8489 output_printf.
a64e7329 8490
a72462a4
GDR
84912000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
8492
8493 * decl.c (init_decl_processing): Remove bogus initialization.
8494 * error.c (lang_print_error_function): Restore here.
0e5921e8
ZW
8495 (init_error): Initialize print_error_function.
8496
3add6264
TP
84972000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
8498
8499 * decl2.c (arg_assoc): Revert my 2000-08-11 change.
8500
cb753e49
GDR
85012000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
8502
8503 * Makefile.in (error.o): Depends on diagnostic.h
8504
8505 * cp-tree.h (problematic_instantiation_changed,
8506 record_last_problematic_instantiation, current_instantiation,
8507 print_instantiation_context): Declare.
8508 (maybe_print_template_context): Remove.
8509
8510 * decl.c (init_decl_processing): Set print_error_function to NULL.
8511 (lang_print_error_function): Remove, since we're using a new
8512 machinery.
8513
8514 * error.c: #include diagnostic.h
8515 (function_category): New function.
8516 (cp_diagnostic_starter): Likewise.
8517 (cp_diagnostic_finalizer): Likewise.
8518 (cp_print_error_function): Likewise.
8519 (maybe_print_instantiation_context): Likewise.
8520 (print_instantiation_full_context): Likewise.
8521 (print_instantiation_partial_context): Likewise.
8522 (print_instantiation_context): Define.
8523 (init_error): Initialize diagnostic pager and finalizer.
8524
8525 * pt.c (problematic_instantiation_changed): Define.
8526 (record_last_problematic_instantiation): Likewise.
8527 (current_instantiation): Likewise.
8528 (maybe_print_template_context): Remove.
8529 (print_template_context): Likewise.
8530 (current_tinst_level): Make static to reflect Brendan Kehoe's
8531 change of 1995-04-13.
0e5921e8
ZW
8532 (push_tinst_level): Call print_instantiation_context.
8533
05a3d06e 85342000-08-21 Nix <nix@esperi.demon.co.uk>
0e5921e8 8535
05a3d06e
N
8536 * lang-specs.h: Do not process -o or run the assembler if
8537 -fsyntax-only.
8538
93e2382f
JM
85392000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
8540
8541 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New
8542 variables.
8543 * decl2.c (lang_decode_option): Disable gettext attributes for
8544 -ansi.
8545
24805e80
GDR
85462000-08-21 Gabriel Dos Reis <gdr@codesourcery.com>
8547
8548 * lex.c (lang_init_options): Default diagnostic message maximum
8549 length to 80, when line-wrapping.
8550
b485e15b
MM
85512000-08-20 Mark Mitchell <mark@codesourcery.com>
8552
8553 * class.c (build_vtbl_initializer): Clear the entire
8554 vtbl_init_data. Start keeping track of the functions for which we
8555 have created vcall offsets here.
8556 (dfs_build_vcall_offset_vtbl_entries): Remove.
8557 (build_vcall_offset_vtbl_entries): Reimplement.
8558 (add_vcall_offset_vtbl_entries_r): New function.
8559 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for
8560 computing when vcall offsets are necessary.
8561
2ae7bada
NS
85622000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8563
8564 * decl.c (member_function_or_else): Use cp_error ... %T.
8565 (grokdeclarator): Likewise.
8566 (start_method): Likewise.
0e5921e8 8567 * friend.c (make_friend_class): Use cp_pedwarn ... %T.
2ae7bada 8568
7a8b1375
NS
85692000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8570
8571 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
0e5921e8 8572 TYPE_DECLs.
7a8b1375 8573
19420d00
NS
85742000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8575
8576 * cp-tree.h (PTRMEM_OK_P): New macro.
8577 (itf_ptrmem_ok): New enumeration value.
8578 * class.c (resolve_address_of_overloaded_function): Add PTRMEM
8579 argument. Diagnose implicit pointer to member.
8580 (instantiate_type): Don't diagnose implicit pointer to member
8581 here. Pass itf_ptrmem_ok if ok. Adjust calls to
8582 resolve_address_of_overloaded_function.
8583 * init.c (build_offset_ref): Set PTRMEM_OK_P.
8584 (resolve_offset_ref): Don't diagnose implicit pointer to member here.
8585 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
8586 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
8587 (build_unary_op): Deal with single non-static member in
8588 microsoft-land.
8589
66081283
NS
85902000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8591
8592 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
8593
fa40aa12
NS
85942000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8595
8596 * cp-tree.h (enum_name_string): Remove prototype.
8597 (report_case_error): Remove prototype.
8598 * cp/typeck2.c (enum_name_string): Remove.
8599 (report_case_error): Remove.
8600 * error.c (dump_expr): Deal with enum values directly.
8601 Correctly negate integer constant.
8602
d13b34e9
NS
86032000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8604
8605 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
8606 (__cxa_vec_delete2, __cxa_vec_delete3): Declare.
8607 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
8608 (__cxa_vec_delete2, __cxa_vec_delete3): Implement.
8609 (__cxa_vec_new): Use __cxa_vec_new2.
8610 (__cxa_vec_delete): Use __cxa_vec_delete2.
8611
2f1b80af
NS
86122000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8613
8614 * vec.cc (__cxa_vec_new): Set "C" linkage.
8615 (__cxa_vec_ctor): Likewise.
8616 (__cxa_vec_cctor): Likewise.
8617 (__cxa_vec_dtor): Likewise.
8618 (__cxa_vec_delete): Likewise.
8619 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
8620 (__cxa_vec_ctor): Likewise.
8621 (__cxa_vec_cctor): Likewise.
8622 (__cxa_vec_dtor): Likewise.
8623 (__cxa_vec_delete): Likewise.
8624
105d8e1f
NS
86252000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8626
8627 * class.c (instantiate_type): Reinstate local variable
8628 deleted in previous change.
0e5921e8 8629
f1819d9a
NS
8630 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not
8631 itf_no_attributes.
105d8e1f 8632
5e76004e
NS
86332000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8634
8635 * cp-tree.h (instantiate_type_flags): New enumeration.
8636 (instantiate_type): Change parameter.
8637 * class.c (instantiate_type): Adjust prototype. Adjust.
8638 * call.c (standard_conversion): Adjust instantiate_type call.
8639 (reference_binding): Likewise.
8640 (build_op_delete_call): Likewise.
8641 (convert_like_real): Likewise.
8642 * cvt.c (cp_convert_to_pointer): Likewise.
8643 (convert_to_reference): Likewise.
8644 * pt.c (convert_nontype_argument): Likewise.
8645 * typeck.c (build_binary_op): Likewise.
8646 (build_ptrmemfunc): Likewise.
8647 (convert_for_assignment): Likewise.
8648
4b054b80
NS
86492000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8650
8651 * cp-tree.h (CPTR_AGGR_TAG): New global tree node.
8652 (current_aggr): Define.
8653 * decl.c (grokdeclarator): Make sure a friend class is an
8654 elaborated type specifier.
8655 * parse.y (current_aggr): Remove static definition.
8656 (cp_parse_init): Adjust.
8657 (structsp): Clear and restore current_aggr.
8658 (component_decl_list): Clear current_aggr.
0e5921e8 8659
4b054b80
NS
8660 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the
8661 aggregate tag on the typename's context.
0e5921e8 8662
321cba97
NS
8663 * pt.c (tsubst_friend_class): Return error_mark_node, if
8664 parms becomes NULL.
8665 (instantiate_class_template): Ignore error_mark_node friend types.
4b054b80 8666
08aead78
NS
86672000-08-14 Nathan Sidwell <nathan@codesourcery.com>
8668
8669 * cvt.c (warn_ref_binding): New static function, broken out of ...
0e5921e8 8670 (convert_to_reference): ... here. Use it.
08aead78 8671
fa1f3ebc
KL
86722000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
8673
8674 * parse.y (template_arg): Add rule for template qualified with
8675 global scope.
8676
9845b52b
TP
86772000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
8678
8679 * decl2.c (add_function): Reorganize.
8680 (arg_assoc): Do not consider function template decls.
8681
e69c8072
JM
86822000-08-11 Jason Merrill <jason@redhat.com>
8683
8684 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
8685 looking inside.
8686
5c1e5476
NS
86872000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8688
8689 * cp-tree.h (resolve_scope_to_name): Remove unused prototype.
8690 (lookup_nested_tag): Likewise.
0e5921e8 8691
5c1e5476
NS
8692 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs
8693 can be produced.
8694
5426aa7f
NS
86952000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8696
8697 * parse.y (named_complex_class_head_sans_basetype): Remove
8698 always true if.
8699
fd037e0d
NS
87002000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8701
8702 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
8703 explicit TEMPLATE_ID_EXPR args.
8704 (build_expr_from_tree, case CALL_EXPR): Likewise.
8705
73ae5c34
NS
87062000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8707
8708 * decl.c (check_tag_decl): Diagnose typename's which don't
8709 declare anything.
8710
aa54df09
NS
87112000-08-10 Nathan Sidwell <nathan@codesourcery.com>
8712
8713 * init.c (build_aggr_init): Reject bogus array initializers
8714 early.
8715
7e8dad18
NS
87162000-08-09 Nathan Sidwell <nathan@codesourcery.com>
8717
8718 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
8719 runtime.
8720 * cp/tinfo.cc (__dynamic_cast): Likewise.
0e5921e8 8721 * cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7e8dad18 8722
0f586b9b
NS
87232000-08-09 Nathan Sidwell <nathan@codesourcery.com>
8724
8725 * cvt.c (convert_to_pointer_force): Fix error message when
0e5921e8 8726 attempting to cast from ambiguous base.
0f586b9b 8727
08e72a19
JM
87282000-08-08 Jason Merrill <jason@redhat.com>
8729
8730 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
8731 (tsubst_template_arg_vector): Likewise.
8732
8733 * decl2.c (build_anon_union_vars): Choose the largest field; don't
8734 assume that one will be as large as the union.
8735
0811ea8f
KH
87362000-08-07 Kazu Hirata <kazu@hxi.com>
8737
8738 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
8739 * decl.c (pop_labels): Likewise.
8740
f9fcf62b
JO
87412000-08-04 Jeffrey Oldham <oldham@codesourcery.com>
8742
8743 * inc/cxxabi.h (__pbase_type_info): Changed member names to match
8744 specifications.
8745 (__pointer_to_member_type_info): Likewise.
8746 (__base_class_info): Likewise.
8747 (__class_type_info): Likewise.
8748 (__si_class_type_info): Likewise.
8749 (__vmi_class_type_info): Likewise.
8750 * tinfo.cc (__si_class_type_info::__do_find_public_src):
8751 Changed member names to match specifications.
8752 (__vmi_class_type_info::__do_find_public_src): Likewise.
8753 (__si_class_type_info::__do_dyncast): Likewise.
8754 (__vmi_class_type_info::__do_dyncast): Likewise.
8755 (__si_class_type_info::__do_upcast): Likewise.
8756 (__vmi_class_type_info::__do_upcast): Likewise.
8757 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
8758 (__pbase_type_info::__pointer_catch): Likewise.
8759 (__pointer_type_info::__pointer_catch): Likewise.
8760 (__pointer_to_member_type_info::__pointer_catch): Likewise.
8761
a36556a8
ZW
87622000-08-04 Zack Weinberg <zack@wolery.cumb.org>
8763
0e5921e8
ZW
8764 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
8765 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
8766 (cc1plus): Link with $(BACKEND) and $(C_OBJS).
a36556a8 8767
452a394b
MM
87682000-08-04 Mark Mitchell <mark@codesourcery.com>
8769
8770 * cp-tree.h (add_method): Change prototype.
8771 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P.
8772 Don't double the size of the method vector in the error case.
8773 (handle_using_decl): Adjust call to add_method.
8774 (add_implicitly_declared_members): Likewise.
8775 (clone_function_decl): Likewise.
8776 * decl2.c (check_classfn): Likewise.
8777 * semantics.c (finish_member_declaration): Likewise.
0e5921e8 8778
b8458e3e
JM
87792000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
8780
8781 * decl.c (flag_isoc94): New variable.
8782
a1bcc528
JM
87832000-08-02 Jason Merrill <jason@redhat.com>
8784
8785 * pt.c (do_type_instantiation): Add complain parm; don't complain
8786 if called recursively.
8787 * cp-tree.h, parse.y: Adjust.
8788
50e60bc3
ZW
87892000-08-02 Zack Weinberg <zack@wolery.cumb.org>
8790
eae51189
ZW
8791 * decl2.c: Silently ignore -Wstrict-prototypes; warn about
8792 -Wno-strict-prototypes.
8793
37620334
ZW
8794 * g++spec.c: Adjust type of second argument to
8795 lang_specific_driver, and update code as necessary.
8796
50e60bc3
ZW
8797 * cp-tree.h: Don't prototype min_precision here.
8798 (my_friendly_assert): Cast expression to void.
8799 * semantics.c (do_poplevel): Initialize scope_stmts.
8800
3f954fc3
MM
88012000-08-02 Mark Mitchell <mark@codesourcery.com>
8802
8803 * cp-tree.h (DECL_NEEDED_P): Tweak.
8804
ab4fa7ed
JM
88052000-07-28 Jason Merrill <jason@redhat.com>
8806
8807 * lang-specs.h: Use %i in rule for .ii files.
8808
4871239e
ZW
88092000-07-31 Zack Weinberg <zack@wolery.cumb.org>
8810
8811 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
8812
911a71a7
MM
88132000-07-30 Mark Mitchell <mark@codesourcery.com>
8814
8815 Allow indirect primary bases.
8816 * cp-tree.h (struct lang_type): Remove vfield_parent. Add
8817 primary_base.
8818 (CLASSTYPE_VFIELD_PARENT): Remove.
8819 (CLASSTYPE_PRIMARY_BINFO): Reimplement.
8820 (BINFO_PRIMARY_BINFO): Remove.
8821 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
8822 (BINFO_VBASE_PRIMARY_P): Likewise.
8823 (BINFO_PRIMARY_BASE_OF): New macro.
8824 (BINFO_INDIRECT_PRIMARY_P): Likewise.
8825 (get_primary_binfo): New function.
8826 * decl.c (lang_mark_tree): Make lang_type::primary_base.
8827 * class.c (vcall_offset_data_s): Rename to ...
8828 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p,
8829 and add ctor_vtbl_p.
8830 (get_derived_offset): Use get_primary_binfo.
8831 (dfs_mark_primary_bases): Adjust handling of virtual primary
8832 bases.
8833 (mark_primary_bases): Likewise.
8834 (set_primary_base): Take a binfo, not an integer, as a
8835 representation of the primary base.
8836 (indirect_primary_base_p): Remove.
8837 (determine_primary_base): Adjust for indirect primary bases.
8838 (dfs_find_final_overrider): Fix typo in coment.
8839 (update_vtable_entry_for_fn): Use get_primary_binfo.
8840 (layout_nonempty_base_or_field): Tweak.
8841 (build_base_fields): Adjust for new primary base semantics.
8842 (dfs_propagate_binfo_offsets): Remove.
8843 (propagate_binfo_offsets): Rewrite.
8844 (dfs_set_offset_for_shared_vbases): Remove.
8845 (layout_virtual_bases): Don't use it.
8846 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new
8847 ABI.
8848 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
8849 CLASSTYPE_VFIELD_PARENT.
8850 (dfs_get_primary_binfo): New function.
8851 (get_primary_binfo): Likewise.
8852 (dump_class_hierarchy_r): Tweak printing of primary bases.
8853 (build_vtbl_initializer): Fix typo in comments. Use
8854 vtbl_init_data.
8855 (build_vcall_and_vbase_vtbl_entries): Likewise.
8856 (build_vbaes_offset_vtbl_entries): Likewise.
8857 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of
8858 BV_VCALL_INDEX to handle indirect primary bases.
8859 (build_vcall_offset_vtbl_entries): Use vtbl_init_data.
8860 (build_rtti_vtbl_entries): Likewise.
8861 * search.c (get_shared_vbase_if_not_primary): Tweak.
8862 (find_vbase_instance): Likewise.
8863 (binfo_for_vtable): Simplify.
8864 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
8865 (make_binfo): Make it have 11 entries.
0e5921e8 8866
722bed0f
AS
88672000-07-30 Alex Samuel <samuel@codesourcery.com>
8868
8869 * mangle.c (DECL_TEMPLATE_ID_P): Remove.
8870 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
8871 ascertaining primaryness.
8872 (G): Remove template_args.
8873 (decl_is_template_id): New function.
8874 (write_encoding): Use decl_is_template_id.
8875 (write_name): Likewise. Handle type_decls. Get main variant of
8876 type decls.
8877 (write_nested_name): Likewise.
8878 (write_prefix): Likewise.
8879 (write_template_prefix): Likewise.
8880 (write_special_name_constructor): Remove defunct production from
8881 comment.
8882 (write_bare_function_type): Remove comment about absent parameter.
8883 (write_template_template_arg): Add missing grammar production to
8884 comment.
8885
9076e292
JM
88862000-07-27 Jason Merrill <jason@redhat.com>
8887
8888 * decl.c (duplicate_decls): If common_type produces a non-typedef
8889 type for a typedef, just use the old type.
8890
b2244c65
MM
88912000-07-27 Mark Mitchell <mark@codesourcery.com>
8892
8893 * cp-tree.h (function_depth): Declare.
8894 (verify_stmt_tree): Likewise.
8895 (find_tree): Likewise.
8896 * decl.c (function_depth): Give it external linkage.
8897 * optimize.c (optimize_function): Increment and decrement it.
8898 * tree.c (verify_stmt_tree_r): New function.
8899 (verify_stmt_tree): Likewise.
8900 (find_tree_r): Likewise.
8901 (find_tree): Likewise.
8902
62e3bf54
JM
89032000-07-27 Jason Merrill <jason@redhat.com>
8904
9076e292
JM
8905 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
8906 TYPE_PTRMEMFUNC_P.
8907 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
62e3bf54 8908
5a728aca
MM
89092000-07-26 Mark Mitchell <mark@codesourcery.com>
8910
8911 * decl.c (start_cleanup_fn): Mark the function as `inline'.
8912 * decl2.c (get_guard): Call cp_finish_decl, not
8913 rest_of_decl_compilation, for local guards.
8914 * lex.c (do_identifier): Remove unused variable.
8915
6a1fa5f9
ME
8916Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
8917
8918 * parse.y: Add missing ';'.
8919
0c10a805
MM
89202000-07-26 Mark Mitchell <mark@codesourcery.com>
8921
8922 * parse.y (empty_parms): Use `()', not `(...)', when in the scope
8923 of `extern "C++"'.
8924
8b27e9ef
NS
89252000-07-25 Nathan Sidwell <nathan@codesourcery.com>
8926
8927 Kill strict_prototype. Backwards compatibility only for
8928 non NO_IMPLICIT_EXTERN_C systems.
8929 * cp-tree.h (flag_strict_prototype): Remove.
8930 (strict_prototype): Remove.
8931 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
8932 * decl.c (maybe_push_to_top_level): Adjust.
8933 (pop_from_top_level): Adjust.
8934 (decls_match): Only allow sloppy parm matching for ancient
8935 system headers.
8936 (init_decl_processing): Adjust.
8937 (grokdeclarator): Adjust.
8938 * decl2.c (flag_strict_prototype): Remove.
8939 (strict_prototype): Remove.
8940 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
8941 (lang_f_options): Remove "strict-prototype".
8942 (unsupported-options): Add "strict-prototype".
8943 * lex.c (do_identifier): Adjust.
8944 (do_scoped_id): Adjust.
8945 * parse.y (empty_parms): Adjust.
8946 * class.c (push_lang_context): Adjust.
8947 (pop_lang_context): Adjust.
8948 * typeck.c (comp_target_parms): Adjust.
8949
c3783399
NS
89502000-07-25 Nathan Sidwell <nathan@codesourcery.com>
8951
8952 * decl.c (poplevel): Deal with anonymous variables at for scope.
8953 (maybe_inject_for_scope_var): Likewise.
8954
a7023245
ZW
89552000-07-25 Zack Weinberg <zack@wolery.cumb.org>
8956
8957 * decl.c: Remove all signal handling code, now done in toplev.c.
8958
95ee998c
MM
89592000-07-23 Mark Mitchell <mark@codesourcery.com>
8960
8961 * decl.c (make_rtl_for_nonlocal_decl): Rework.
8962
8963 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
8964 correctly.
8965
1b493b81
ZW
89662000-07-20 Zack Weinberg <zack@wolery.cumb.org>
8967
8968 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
8969 Define my_friendly_assert and my_friendly_abort as macros
8970 which may call friendly_abort. Prototype friendly abort, not
8971 my_friendly_abort or my_friendly_assert.
8972 * decl.c (signal_catch): Report the signal caught in the error
8973 message. Call fatal directly.
8974 * typeck2.c (ack, my_friendly_assert): Delete.
8975 (my_friendly_abort): Rename to friendly_abort. Expect file,
8976 line, and function parameters. Report the abort code, then
8977 call fancy_abort. Do not mask an abort if errors have
8978 already occurred.
8979
a306451c
NS
89802000-07-18 Nathan Sidwell <nathan@codesourcery.com>
8981
8982 * typeck.c (comp_target_parms): Remove obsolete parameter.
8983 (comp_target_types): Adjust.
8984
f49fad00
JM
89852000-07-17 Jason Merrill <jason@redhat.com>
8986
8987 * typeck.c (mark_addressable): Never set TREE_USED.
8988 * call.c (build_call): Don't abort on calls to library functions
8989 that have been declared normally.
8990
8991 * typeck.c (build_binary_op): Fix grammar in warning.
8992
8993 * exception.cc (__eh_free): Fix prototype.
8994
8995 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
8996
0e5921e8 8997 * decl.c (pushdecl): Handle seeing an OVERLOAD in
f49fad00
JM
8998 IDENTIFIER_NAMESPACE_VALUE.
8999
69690d98
MM
90002000-07-16 Mark Mitchell <mark@codesourcery.com>
9001
9002 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
9003 * method.c (use_thunk): Correct handling of vcall offsets.
9004
bfbbc080
ZW
90052000-07-14 Zack Weinberg <zack@wolery.cumb.org>
9006
9007 * .cvsignore: parse.h and parse.c have no cp- prefix.
9008
83a90717
MM
90092000-07-13 Mark Mitchell <mark@codesourcery.com>
9010
9011 * .cvsignore: New file.
9012
ea414c97
ZW
90132000-07-13 Zack Weinberg <zack@wolery.cumb.org>
9014
9015 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
9016
792abd35
MM
90172000-07-12 Mark Mitchell <mark@codesourcery.com>
9018
9019 * Makefile.in ($(PARSE_H)): Depend directly on parse.y.
9020 * parse.c: Remove.
9021 * parse.h: Likewise.
9022
72a50ab0
MM
90232000-07-11 Mark Mitchell <mark@codesourcery.com>
9024
9025 * class.c (layout_class_type): Add pointers to virtual bases after
9026 base classes under the old ABI.
9027
0dfdeca6
BC
90282000-07-10 Benjamin Chelf <chelf@codesourcery.com>
9029
9030 * semantics.c (finish_for_stmt): Remove call to emit_line_note.
9031 (finish_continue_stmt): Likewise.
9032 (begin_for_stmt): Remove call to note_level_for_for.
9033 (finish_goto_stmt): Change call from build_min_nt
9034 to build_stmt.
9035 (finish_expr_stmt): Likewise.
9036 (begin_if_stmt): Likewise.
9037 (begin_while_stmt): Likewise.
9038 (finish_while_stmt): Likewise.
9039 (finish_return_stmt): Likewise.
9040 (begin_for_stmt): Likewise.
9041 (finish_for_stmt): Likewise.
9042 (finish_break_stmt): Likewise.
9043 (begin_switch_stmt): Likewise.
9044 (finish_case_label): Likewise.
9045 (genrtl_try_block): Likewise.
9046 (begin_try_block): Likewise.
9047 (begin_handler): Likewise.
9048 (begin_compound_stmt): Likewise.
9049 (finish_asm_stmt): Likewise.
9050 (finish_label_stmt): Likewise.
9051 (add_decl_stmt): Likewise.
9052 (finish_subobject): Likewise.
9053 (finish_decl_cleanup): Likewise.
9054 (finish_named_return_value): Likewise.
9055 (setup_vtbl_ptr): Likewise.
9056 (add_scope_stmt): Likewise.
9057 * decl.c (finish_constructor_body): Likewise.
9058 (finish_destructor_body): Likewise.
9059 * optimize.c (copy_body_r): Likewise.
9060 (initialize_inlined_parameters): Likewise.
9061 (declare_return_variable): Likewise.
9062 (expand_call_inline): Likewise.
0e5921e8 9063
f12eef58
JJ
90642000-07-10 Jakub Jelinek <jakub@redhat.com>
9065
9066 * semantics.c (expand_body): Sync interface information
9067 at the end of function body expansion.
9068
2bb5d995
JM
90692000-07-09 Jason Merrill <jason@redhat.com>
9070
9071 * init.c (build_new_1): Bail early if the call to new fails.
9072
0e5921e8 9073 * decl.c (compute_array_index_type): Check specifically for
2bb5d995
JM
9074 an INTEGER_CST, not just TREE_CONSTANT.
9075
0e5921e8 9076 * decl.c (duplicate_decls): Don't call duplicate_decls on
2bb5d995
JM
9077 the DECL_TEMPLATE_RESULT.
9078 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
9079 codes.
9080
9081 * error.c (dump_template_bindings): Don't crash if we had an
9082 invalid argument list.
9083
9084 * typeck.c (c_expand_start_case): Do narrowing here.
9085 * semantics.c (finish_switch_cond): Not here.
9086
90872000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com>
9088
9089 * parse.y (asm_clobbers): Do string concatenation.
9090
089acd57
MM
90912000-07-09 Mark Mitchell <mark@codesourcery.com>
9092
9093 * decl.c (pushtag): Don't put local classes in template functions
9094 on the local_classes list.
9095
90962000-07-04 Scott Snyder <snyder@fnal.gov>
9097
9098 * decl2.c (get_guard): Add missing return for old ABI local
9099 variable case.
9100
7b019c19
MM
91012000-07-09 Mark Mitchell <mark@codesourcery.com>
9102
9103 * cp-tree.h (char_type_p): New function.
9104 * decl.c (init_decl_processing): Don't initialize
9105 signed_wchar_type_node or unsigned_wchar_type_node.
9106 (complete_array_type): Handle brace-enclosed string-constants.
9107 * rtti.c (emit_support_tinfos): Remove #if 0'd code.
9108 * tree.c (char_type_p): New function.
9109 * typeck2.c (digest_init): Use char_type_p.
9110
a5f1c5f8
NS
91112000-07-06 Nathan Sidwell <nathan@codesourcery.com>
9112
9113 * pt.c (tsubst): Don't layout type, if it's error_mark.
9114
84e5ca0f
NS
91152000-07-06 Nathan Sidwell <nathan@codesourcery.com>
9116
9117 * pt.c (instantiate_pending_templates): Reset template level.
9118
ab785305
JM
91192000-07-05 Jason Merrill <jason@redhat.com>
9120
9121 * call.c (joust): Don't complain about `operator char *()' beating
9122 `operator const char *() const'.
9123
90418208
JM
91242000-07-04 scott snyder <snyder@fnal.gov>
9125 Jason Merrill <jason@redhat.com>
9126
0e5921e8 9127 * repo.c (repo_get_id): Handle the case where a class with virtual
90418208
JM
9128 bases has a null TYPE_BINFO_VTABLE.
9129
91302000-07-04 Kevin Buhr <buhr@stat.wisc.edu>
9131 Jason Merrill <jason@redhat.com>
9132
9133 * parse.y (member_init): Just pass in the type.
9134 * init.c (expand_member_init): Handle getting a type.
9135
9136