OSDN Git Service

* ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog-2001
1 2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
2
3         * call.c (build_user_type_conversion_1): Use my_friendly_assert
4         rather than if ... abort.
5         * cvt.c (convert_to_reference): Likewise.
6         * semantics.c (setup_vtbl_ptr): Likewise.
7         * pt.c (lookup_template_class): Comment typo.
8
9 2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
10
11         PR c++/5125
12         * pt.c (push_template_decl_real): Make sure DECL has
13         DECL_LANG_SPECIFIC.
14
15 2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16
17         PR c++/335
18         * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
19         for non-reference fields.
20         * typeck.c (require_complete_type): Use resolve_offset_ref).
21
22 2001-12-26  Nathan Sidwell  <nathan@codesourcery.com>
23
24         PR c++/196
25         * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
26
27 2001-12-24  Nathan Sidwell  <nathan@codesourcery.com>
28
29         PR c++/160
30         * typeck.c (build_modify_expr): Remove old unreachable code & tidy
31         up. Don't stabilize_references when initializing a reference.
32
33 2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34
35         * decl2.c (lang_f_options): Const-ify.
36
37 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
38
39         * config-lang.in (diff_excludes): Remove.
40
41 2001-12-19  Nathan Sidwell  <nathan@codesourcery.com>
42
43         PR c++/90
44         * typeck.c (build_function_call_real): Use original function
45         expression for errors.
46
47 2001-12-18  Jason Merrill  <jason@redhat.com>
48
49         PR c++/3242
50         * class.c (add_method): Do compare 'this' quals when trying to match a
51         used function.  Don't defer to another used function.
52
53 2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
54
55         * pt.c (instantiate_clone): Remove, fold into ...
56         (instantiate_template): ... here. Simplify by removing mutual
57         recursion.
58         * typeck2.c (build_m_component_ref): Don't cv qualify the function
59         pointed to by a pointer to function.
60         * class.c (delete_duplicate_fields_1): Typo.
61
62 2001-12-18  Jason Merrill  <jason@redhat.com>
63
64         C++ ABI change: destroy value arguments in caller.
65         * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
66         create an extra binding level for the parameters.
67         * decl.c (store_parm_decls): Don't do parameter cleanups.
68
69 2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
70
71         * call.c (build_new_method_call): Use '%#V'.
72         * error.c (cv_to_string): Use V parameter to determine padding.
73
74 2001-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
75
76         * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
77         spellings in messages.
78
79 2001-12-17  Zack Weinberg  <zack@codesourcery.com>
80
81         * cp-tree.h: Delete #defines for cp_error, cp_warning,
82         cp_pedwarn, and cp_compiler_error.
83         * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
84         except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
85         rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
86         typeck2.c: Change calls to the above macros to use their
87         language-independent equivalents: error, warning, pedwarn, and
88         internal_error respectively.
89
90 2001-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
91
92         * decl2.c (finish_file): Remove back_end_hook.
93
94 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
95
96         * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
97         cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
98         pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
99
100 2001-12-15  Joseph S. Myers  <jsm28@cam.ac.uk>
101
102         * lang-options.h: Use American spelling in messages.
103
104 2001-12-13  Jason Merrill  <jason@redhat.com>
105
106         * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
107
108         Use cleanups to run base and member destructors.
109         * init.c (push_base_cleanups): New function, split out from...
110         (build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
111         * decl.c (finish_destructor_body): Move vbase destruction code to
112         push_base_cleanups.
113         (begin_function_body, finish_function_body): New fns.
114         (finish_function): Move [cd]tor handling and call_poplevel to
115         finish_function_body.
116         (pushdecl): Skip the new level.
117         * semantics.c (genrtl_try_block): Don't call end_protect_partials.
118         (setup_vtbl_ptr): Call push_base_cleanups.
119         * method.c (synthesize_method): Call {begin,end}_function_body.
120         * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
121         * cp-tree.h: Declare new fns.
122         * parse.y (function_body, .begin_function_body): New nonterminals.
123         (fndef, pending_inline, function_try_block): Use function_body.
124         (ctor_initializer_opt, function_try_block): No longer has a value.
125         (base_init): Remove .set_base_init token.
126         (.set_base_init, compstmt_or_error): Remove.
127         * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
128
129         * optimize.c (maybe_clone_body): Fix parameter updating.
130
131 2001-12-12  Jason Merrill  <jason@redhat.com>
132
133         * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
134         * semantics.c (genrtl_start_function): Don't pass
135         parms_have_cleanups or push an extra binding level.
136         (genrtl_finish_function): Lose cleanup_label cruft.
137
138         * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
139         (ctor_label): Remove.
140         * semantics.c (finish_return_stmt): Lose ctor_label support.
141         * decl.c (finish_constructor_body, mark_lang_function): Likewise.
142         * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
143         dtor_label.
144
145         * call.c (build_new_method_call): Let resolves_to_fixed_type_p
146         check for [cd]tors.
147         * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
148
149         * decl.c (finish_function): Check VMS_TARGET, not VMS.
150
151         * decl.c (start_cleanup_fn): Remove redundant pushlevel.
152         (end_cleanup_fn): And poplevel.
153
154         * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
155         if we're in a template.
156
157 2001-12-12  Jakub Jelinek  <jakub@redhat.com>
158
159         * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
160         ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
161         THIS_NAME_P): Delete.
162         * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
163         THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
164         with internal naming scheme.
165         * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
166
167 2001-12-12  Nathan Sidwell  <nathan@codesourcery.com>
168
169         * decl.c (grokdeclarator): Deprecated implicit typename use.
170
171 2001-12-11  Nathan Sidwell  <nathan@codesourcery.com>
172
173         PR g++/51
174         * parse.y (frob_specs): Indicate it is a language linkage which
175         contained the extern.
176         * decl.c (grokdeclarator): Allow extern language linkage with
177         other specifiers.
178
179 2001-12-10  Nathan Sidwell  <nathan@codesourcery.com>
180
181         PR g++/72
182         * decl.c (add_binding): Don't reject duplicate typedefs involving
183         template parameters.
184
185 2001-12-10  Neil Booth  <neil@daikokuya.demon.co.uk>
186
187         * parse.y, semantics.c: Similarly.
188
189 2001-12-09  Nathan Sidwell  <nathan@codesourcery.com>
190
191         PR g++/87
192         * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
193         (copy_args_p): Rename to ...
194         (copy_fn_p): ... here.
195         (grok_special_member_properties): New function.
196         (grok_op_properties): Lose VIRTUALP parameter.
197         (copy_assignment_arg_p): Remove.
198         * call.c (build_over_call): Use copy_fn_p.
199         * decl.c (grokfndecl): Reformat. Adjust call to
200         grok_op_properties.
201         (copy_args_p): Rename to ...
202         (copy_fn_p): ... here. Reject template functions. Check for pass
203         by value.
204         (grok_special_member_properties): Remember special functions.
205         (grok_ctor_properties): Don't remember them here, just check.
206         (grok_op_properties): Likewise.
207         (start_method): Call grok_special_member_properties.
208         * decl2.c (grokfield): Likewise.
209         (copy_assignment_arg_p): Remove.
210         (grok_function_init): Don't remember abstract assignment here.
211         * pt.c (instantiate_class_template): Call
212         grok_special_member_properties.
213         (tsubst_decl): Adjust grok_op_properties call.
214
215 2001-12-08  Aldy Hernandez  <aldyh@redhat.com>
216
217         * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
218         RID_TYPES_COMPATIBLE_P.
219
220 2001-12-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
221
222         * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
223         call to build_aggr_init.
224         * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
225
226 2001-12-08  Neil Booth  <neil@daikokuya.demon.co.uk>
227
228         * parse.y: Replace uses of the string non-terminal with STRING.
229         Don't perform string concatentaion here.
230         (string): Remove non-terminal.
231         * semantics.c (finish_asm_stmt): Don't concatenate strings here.
232
233 2001-12-05  Jason Merrill  <jason@redhat.com>
234
235         * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
236         (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
237         * tree.c (cp_start_inlining, cp_end_inlining): New fns.
238         * pt.c (push_tinst_level): No longer static.
239         * cp-tree.h: Declare them.
240
241         * init.c (resolve_offset_ref): Don't check access for the base
242         conversion to access a FIELD_DECL.
243
244         * cp-tree.h (TYPE_REFFN_P): New macro.
245         * decl.c (bad_specifiers): Check it, too.
246
247         * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
248         on the __*_type_info type if we haven't seen a definition.
249
250 2001-12-05  Neil Booth  <neil@daikokuya.demon.co.uk>
251
252         * decl.c: Include c-common.h.
253         (shadow_warning): Move to c-common.c.
254
255 2001-12-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
256
257         * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
258
259 2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
260
261         * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
262
263 2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
264
265         PR g++/164
266         * init.c (sort_base_init): Allow binfos to be directly specified.
267         * method.c (do_build_copy_constructor): Explicitly convert to the
268         base instance.
269         (do_build_assign_ref): Likewise.
270
271 2001-12-03  Hans-Peter Nilsson  <hp@bitrange.com>
272
273         * decl.c (xref_basetypes): Don't use C99 construct in tag_code
274         declaration and initialization.
275
276 2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
277
278         * typeck2.c: Remove leading capital from diagnostic messages, as
279         per GNU coding standards.
280
281 2001-12-03  Mumit Khan  <khan@nanotech.wisc.edu>
282
283         PR c++/3394
284         * decl.c (xref_basetypes): Handle attributes between
285         'class' and name.
286
287 2001-12-03  Nathan Sidwell  <nathan@codesourcery.com>
288
289         PR g++/3381
290         * parse.y (named_complex_class_head_sans_basetype): Add new
291         reduction.
292         * Make-lang.in (parse.c): Adjust expected conflict count.
293
294 2001-12-03  Jason Merrill  <jason@redhat.com>
295
296         * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
297         immediate binfos for our virtual bases.
298
299 2001-12-02  Neil Booth  <neil@daikokuya.demon.co.uk>
300
301         * call.c (build_java_interface_fn_ref): Similarly.
302         * except.c (is_admissible_throw_operand): Similarly.
303         * init.c (build_java_class_ref): Similarly.
304         * xref.c (open_xref_file): Similarly.
305
306 2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
307
308         * class.c (finish_struct): Remove trailing periods from messages.
309         * decl.c (check_tag_decl): Similarly.
310         * lex.c (cxx_set_yydebug): Similarly.
311         * typeck2.c (friendly_abort): Similarly.
312
313 2001-11-29  Mark Mitchell  <mark@codesourcery.com>
314
315         PR c++/3048
316         * cp-tree.h (ovl_member): Remove.
317         * decl2.c (merge_functions): Handle extern "C" functions
318         specially.
319         * tree.c (ovl_member): Remove.
320
321 2001-11-29  Mark Mitchell  <mark@codesourcery.com>
322
323         PR c++/4842
324         * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
325         FUNCTION_DECL, as input.
326         (mark_overriders): Remove.
327         (warn_hidden): Rework for the new ABI.
328
329 2001-11-29  Mark Mitchell  <mark@codesourcery.com>
330
331         PR c++/3471
332         * call.c (convert_like_real): Do not build additional temporaries
333         for rvalues of class type.
334
335 2001-11-28  Nathan Sidwell  <nathan@codesourcery.com>
336
337         * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
338         (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
339         (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
340         (DERIVED_FROM_P): Likewise.
341         (enum base_access): Renumber, add ba_quiet bit mask.
342         (get_binfo): Remove.
343         (get_base_distance): Remove.
344         (binfo_value): Remove.
345         (ACCESSIBLY_DERIVED_FROM_P): Remove.
346         * call.c (standard_conversion): Use lookup_base.
347         * class.c (strictly_overrides): Likewise.
348         (layout_virtual_bases): Likewise.
349         (warn_about_ambiguous_direct_bases): Likewise.
350         (is_base_of_enclosing_class): Likewise.
351         (add_vcall_offset_vtbl_entries_1): Likewise.
352         * cvt.c (build_up_reference): Adjust comment.
353         * init.c (build_member_call): Reformat.
354         * search.c (get_binfo): Remove.
355         (get_base_distance_recursive): Remove.
356         (get_base_distance): Remove.
357         (lookup_base_r): Tweak.
358         (lookup_base): Add ba_quiet control. Complete the types here.
359         (covariant_return_p): Use lookup_base.
360         * tree.c (binfo_value): Remove.
361         (maybe_dummy_object): Use lookup_base.
362         * typeck.c (build_static_cast): Use lookup_base.
363         (get_delta_difference): Likewise.
364         * typeck2.c (binfo_or_else): Use lookup_base.
365         (build_scoped_ref): Add back error_mark_check.
366         (build_m_component_ref): Use lookup_base.
367
368 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
369
370         * Make-lang.in (c++.generated-manpages): New dummy target.
371
372 2001-11-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
373
374         * Make-lang.in (cp-lang.o): Depends on c-common.h.
375         * cp-lang.c (c-common.h): Include.
376         (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
377         * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
378         * expr.c (init_cplus_expand): Don't set lang_expand_constant.
379
380 2001-11-26  Neil Booth  <neil@daikokuya.demon.co.uk>
381
382         * decl2.c (c_language): Move to c-common.c.
383         * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
384         functions.
385         (cxx_init): Update.
386
387 2001-11-26  Jason Merrill  <jason@redhat.com>
388
389         * call.c (joust): Remove COND_EXPR hack.
390
391 2001-11-25  Aldy Hernandez  <aldyh@redhat.com>
392
393         * search.c (lookup_base_r): Declare bk in variable declaration
394         space.
395
396 2001-11-25  Nathan Sidwell  <nathan@codesourcery.com>
397
398         PR g++/3145
399         * class.c (build_vbase_pointer): Remove.
400         (build_vbase_path): Remove.
401         (build_base_path): New function.
402         * cp-tree.h (base_access, base_kind): New enumerations.
403         (build_base_path): Declare.
404         (convert_pointer_to_real): Remove.
405         (convert_pointer_to): Remove.
406         (lookup_base): Declare.
407         (convert_pointer_to_vbase): Remove.
408         * call.c (build_scoped_method_call): Use lookup_base &
409         build_base_path instead of convert_pointer_to_real,
410         get_base_distance & get_binfo.
411         (build_over_call): Likewise.
412         * cvt.c (cp_convert_to_pointer): Likewise.
413         (convert_to_pointer_force): Likewise.
414         (build_up_reference): Likewise.
415         (convert_pointer_to_real): Remove.
416         (convert_pointer_to): Remove.
417         * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
418         instead of convert_pointer_to_vbase & build_vbase_path.
419         (emit_base_init): Use build_base_path instead of
420         convert_pointer_to_real.
421         (expand_virtual_init): Lose unrequired conversions.
422         (resolve_offset_ref): Use lookup_base and build_base_path
423         instead of convert_pointer_to.
424         * rtti.c (build_dynamic_cast_1): Use lookup_base &
425         build_base_path instead of get_base_distance & build_vbase_path.
426         * search.c (get_vbase_1): Remove.
427         (get_vbase): Remove.
428         (convert_pointer_to_vbase): Remove.
429         (lookup_base_r): New function.
430         (lookup_base): New function.
431         * typeck.c (require_complete_type): Use lookup_base &
432         build_base_path instead of convert_pointer_to.
433         (build_component_ref): Likewise.
434         (build_x_function_call): Likewise.
435         (get_member_function_from_ptrfunc): Likewise.
436         (build_component_addr): Likewise.
437         * typeck2.c (build_scoped_ref): Likewise.
438
439 2001-11-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
440
441         * cp-tree.h (CP_TYPE_QUALS): Removed.
442         * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
443         * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
444         LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
445         * dump.c (cp_dump_tree): Use void* dump_info argument to match
446         lang-hooks prototype.
447         * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
448         rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
449         CP_TYPE_QUALS changed to cp_type_quals.
450         * Make-lang.in: References to c-dump.h changed to tree-dump.h.
451         (CXX_C_OBJS): Remove c-dump.o.
452
453 2001-11-21  Mark Mitchell  <mark@codesourcery.com>
454
455         PR c++/3637
456         * pt.c (lookup_template_class): Ensure that all specializations
457         are registered on the list corresponding to the most general
458         template.
459
460 2001-11-20  Mark Mitchell  <mark@codesourcery.com>
461
462         * call.c (non_reference): Add documentation.
463         (convert_class_to_reference): Do not strip reference types
464         from conversion operators.
465         (maybe_handle_ref_bind): Simplify.
466         (compare_ics): Correct handling of references.
467
468 2001-11-19  John Wilkinson <johnw@research.att.com>
469
470         * dump.c (dump_op): New function.
471         (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
472         dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
473         DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
474
475 2001-11-19  Mark Mitchell  <mark@codesourcery.com>
476
477         PR4629
478         * semantics.c (finish_sizeof): Make sure that expression created
479         while processing a template do not have a type.
480         (finish_alignof): Likewise.
481         * typeck.c (c_sizeof): Likewise.
482         (expr_sizeof): Likewise.
483
484 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
485
486         * lex.c (cxx_finish): Call c_common_finish.
487         (finish_parse): Remove.
488
489 2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
490
491         * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
492         when displaying error message about missing array bounds.
493
494 2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
495
496         * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
497         CONST_CAST_EXPR.
498         * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
499
500 2001-11-16  Neil Booth  <neil@daikokuya.demon.co.uk>
501
502         * cp-tree.h (print_class_statistics): Restore.
503
504 2001-11-15  Jason Merrill  <jason@redhat.com>
505
506         * method.c (use_thunk): Don't emit debugging information for thunks.
507
508         * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
509         * decl.c (make_typename_type): Handle getting a class template.
510         * search.c (lookup_field_r): A class template is good enough for
511         want_type.
512
513         * call.c (convert_like_real): Only use cp_convert for the bad part.
514         (standard_conversion): Also allow bad int->enum.
515         * typeck.c (ptr_reasonably_similar): Also allow functions to
516         interconvert.  Pointers to same-size integers are reasonably
517         similar.
518
519         * cvt.c (convert_to_void): If we build a new COND_EXPR, always
520         give it void type.
521
522 2001-11-15  Nathan Sidwell  <nathan@codesourcery.com>
523
524         PR g++/3154
525         * init.c (sort_base_init): Remove unreachable code.
526         (expand_member_init): Adjust comment to reflect reality. Simplify
527         and remove unreachable code.
528
529 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
530
531         * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
532         (cxx_init): Update prototype.
533         * decl.c (init_decl_processing): Rename.  Move null node init
534         to its creation time.
535         * lex.c (cxx_init_options): Update.
536         (cxx_init): Combine with old init_parse; also call
537         cxx_init_decl_processing.
538
539 2001-11-14  Richard Sandiford  <rsandifo@redhat.com>
540
541         * decl.c (check_initializer): Try to complete the type of an
542         array element before checking whether it's complete.  Don't
543         complain about arrays with complete element types but an
544         unknown size.
545         (cp_finish_decl): Build the hierarchical constructor before
546         calling maybe_deduce_size_from_array_init.
547
548 2001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
549
550         * Make-lang.in: Change all uses of $(manext) to $(man1ext).
551
552 2001-11-13  Nathan Sidwell  <nathan@codesourcery.com>
553
554         PR g++/4206
555         * parse.y (already_scoped_stmt): Remove.
556         (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
557
558 2001-11-12  H.J. Lu <hjl@gnu.org>
559
560         * cvt.c (ocp_convert): Don't warn the address of a weak
561         function is always `true'.
562
563 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
564
565         * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
566         LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
567         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
568         * cp-tree.h (print_class_statistics): Remove.
569         (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
570         cxx_print_identifier, cxx_set_yydebug): New.
571         * lex.c (set_yydebug): Rename c_set_yydebug.
572         * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
573         lang_print_xnode): Rename.
574         * tree.c (print_lang_statistics): Rename.
575
576 2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
577
578         * class.c (dump_array): Fix format specifier warning.
579
580 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
581
582         * cp-lang.c (LANG_HOOKS_NAME): Override.
583         (struct lang_hooks): Constify.
584         * lex.c (cxx_init_options): Update.
585         (lang_identify): Remove.
586         * parse.y (language_string): Remove.
587
588 2001-11-08  Andreas Franck  <afranck@gmx.de>
589
590         * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
591         DEMANGLER_CROSS_NAME): Handle program_transform_name the way
592         suggested by autoconf.
593         (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
594         (c++.install-common): Use the transformed target alias names.
595
596 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
597
598         * Make-lang.in: Update.
599         * cp-lang.c: Include langhooks-def.h.
600
601 2001-11-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
602
603         * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
604
605 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
606
607         * lex.c (copy_lang_type): Add static prototype.
608
609 2001-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
610
611         * pt.c (unify): Handle SCOPE_REF.
612
613 2001-11-01  Jakub Jelinek  <jakub@redhat.com>
614
615         * tree.c (cp_copy_res_decl_for_inlining): Adjust
616         DECL_ABSTRACT_ORIGIN for the return variable.
617
618 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
619
620         *  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
621
622 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
623
624         * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
625         semantics.c, spew.c: Fix spelling errors.
626
627 2001-10-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
628
629         * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
630
631 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
632
633         * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
634         pop_everything.
635
636 2001-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
637
638         * cp-lang.c (cxx_get_alias_set): New function.
639         Point LANG_HOOKS_GET_ALIAS_SET to it.
640
641 2001-10-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
642
643         * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
644         * cp-tree.h (make_unbound_class_template): Prototype new function.
645         * decl.c (make_unbound_class_template): New function.
646         * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
647         * error.c (dump_type): Likewise.
648         * mangle.c (write_type): Likewise.
649         * parse.y (template_parm): Likewise.
650         (template_argument): Use make_unbound_class_template.
651         * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
652         (tsubst): Likewise.
653         (tsubst_copy): Likewise.
654         (unify): Likewise.
655         * tree.c (walk_tree): Likewise.
656         * typeck.c (comptypes): Likewise.
657
658 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
659
660         * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
661         extra calls into fewer ones.
662
663 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
664
665         * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
666         Warn when merging inline with attribute noinline.
667         (start_decl, start_function): Warn if inline and attribute
668         noinline appear in the same declaration.
669
670 2001-10-16  H.J. Lu <hjl@gnu.org>
671
672         * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
673         for tree checking disabled.
674
675 2001-10-16  Hans-Peter Nilsson  <hp@axis.com>
676
677         * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
678         NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
679
680 2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
681
682         * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
683         (unify): Only handle MINUS_EXPR specially if the above flag is set
684         and the subtracted constant is 1.  Clear the flag on recursive calls.
685         Set it when unifying the maximum value in an INTEGER_TYPE's range.
686
687 2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
688
689         * decl.c (bad_specifiers): Don't allow exception specifications
690         on any typedefs.
691
692 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
693
694         * cp/lex.c (init_cp_pragma): Similarly.
695
696 2001-10-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
697
698         * pt.c (lookup_template_class): Build complete template arguments
699         for BOUND_TEMPLATE_TEMPLATE_PARM.
700
701 2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
702
703         * cp-tree.h (TYPE_BINFO): Update comment.
704         (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
705         (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
706         (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
707         (copy_type): Prototype new function.
708         * lex.c (copy_lang_decl): Gather tree node statistics.
709         (copy_lang_type): New function.
710         (copy_type): Likewise.
711         (cp_make_lang_type): Create lang_type for
712         BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
713         and BOUND_TEMPLATE_TEMPLATE_PARM.
714         * pt.c (tsubst): Use copy_type instead of copy_node.
715         * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
716
717 2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
718
719         * pt.c (determine_specialization): Ignore functions without
720         DECL_TEMPLATE_INFO.
721
722 2001-10-12  Nathan Sidwell  <nathan@codesourcery.com>
723
724         PR g++/4476
725         * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
726
727 2001-10-11  Jason Merrill  <jason_merrill@redhat.com>
728
729         * typeck2.c (store_init_value): Don't re-digest a bracketed
730         initializer.
731
732         * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
733         ANON_AGGR_TYPE_P.
734
735 2001-10-11  Richard Henderson  <rth@redhat.com>
736
737         * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
738         of an asm statement.
739         (build_vtbl_ref_1): Split out from build_vtbl_ref.
740         (build_vfn_ref): Use it to handle vtable descriptors before
741         calling build_vtable_entry_ref.
742         * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
743
744 2001-10-10  Richard Henderson  <rth@redhat.com>
745
746         * parse.y (asm_operand): Allow named operands.
747         * semantics.c (finish_asm_stmt): Tweek for changed location
748         of the operand constraint.
749
750 2001-10-09  Jason Merrill  <jason_merrill@redhat.com>
751
752         * call.c (standard_conversion): Add bad conversion between
753         integers and pointers.
754         (convert_like_real): Don't use convert_for_initialization for bad
755         conversions; complain here and use cp_convert.
756         (build_over_call): Don't handle bad conversions specially.
757         (perform_implicit_conversion): Allow bad conversions.
758         (can_convert_arg_bad): New fn.
759         * cp-tree.h: Declare it.
760         * typeck.c (convert_for_assignment): Use it.
761         (ptr_reasonably_similar): Any target type is similar to void.
762
763 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
764
765         * Make-lang.in (CXX_OBJS): Added cp-lang.o.
766         (cp/cp-lang.o): New rule.
767         * cp-tree.h: Declare hooks.
768         * tree.c: Make hooks non-static.
769         (init_tree): Don't initialize hooks here.
770         * lex.c: Likewise.  Move definition of lang_hooks to...
771         * cp-lang.c: ... new file.
772
773 2001-10-08  Richard Henderson  <rth@redhat.com>
774
775         * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
776         (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
777
778 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
779
780         * class.c (build_vtable_entry_ref): Const-ify.
781         * decl.c (predefined_identifier,
782         initialize_predefined_identifiers): Likewise.
783         * init.c (build_new_1): Likewise.
784         * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
785         Likewise.
786
787 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
788
789         * optimize.c (struct inline_data): Moved to ../tree-inline.c.
790         (INSNS_PER_STMT): Likewise.
791         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
792         (copy_body, initialize_inlined_parameters): Likewise.
793         (declare_return_variable, inlinable_function_p): Likewise.
794         (expand_call_inline, expand_calls_inline): Likewise.
795         (optimize_inline_calls, clone_body): Likewise.
796         * tree.c (walk_tree): Moved to ../tree-inline.c.
797         (walk_tree_without_duplicates): Likewise.
798         (copy_tree_r, remap_save_expr): Likewise.
799
800 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
801
802         * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
803         (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
804         * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
805         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
806         (flag_inline_trees): Moved declaration to ../tree-inline.h.
807         (walk_tree): Moved declaration to ../tree-inline.h.
808         (walk_tree_without_duplicates, copy_tree_r): Likewise.
809         (remap_save_expr): Likewise.
810         * decl.c: Include tree-inline.h.
811         (lang_mark_tree): Don't mark inlined_fns.
812         * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
813         * optimize.c: Include tree-inline.h.
814         (optimize_inline_calls): Move declaration to ../tree.h, as
815         non-static.
816         (remap_decl): Use language-independent constructs and hooks.
817         (remap_block, copy_body_r, declare_return_variable): Likewise.
818         (inlinable_function_p): Likewise.  Don't test for
819         DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
820         no longer language-specific.
821         (optimize_inline_calls): Likewise.  Make it non-static.  Moved
822         call of dump_function to...
823         (optimize_function): Here...
824         (clone_body): New function, extracted from...
825         (maybe_clone_body): ... here.  Build decl_map locally and pass
826         it on to clone_body.
827         * pt.c, semantics.c: Include tree-inline.h.
828         * tree.c: Likewise.
829         (cp_walk_subtrees): New language-specific hook for tree inlining.
830         (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
831         cp_is_overload_p, cp_auto_var_in_fn_p,
832         cp_copy_res_decl_for_inlining): Likewise.
833         (walk_tree): Move language-specific constructs into...
834         (cp_walk_subtrees): this new function.
835         (copy_tree_r): Use language-independent constructs and hooks.
836         (init_tree): Initialize tree inlining hooks.
837         (remap_save_expr): Adjust prototype so that the declaration
838         does not require the definition of splay_tree.
839
840 2001-10-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
841
842         * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
843         to build the declaration instead of the declaration itself.
844
845 2001-10-02  Jason Merrill  <jason_merrill@redhat.com>
846
847         * decl2.c (cxx_decode_option): Add 'else'.
848
849         * spew.c (end_input): No longer static.
850         * cp-tree.h: Declare it.
851         * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
852
853 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
854
855         * call.c (build_over_call), typeck.c (build_function_call_real):
856         Pass type attributes to check_function_format rather than name or
857         assembler name.  Don't require there to be a name or assembler
858         name to check formats.
859
860 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
861
862         * decl.c (init_decl_processing): Don't call
863         init_function_format_info.  Initialize lang_attribute_table
864         earlier.
865         (builtin_function): Call decl_attributes.
866         (insert_default_attributes): New.
867
868 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
869
870         * decl.c (grokdeclarator): Copy array typedef handling from C
871         frontend.
872
873         * decl.c (grokdeclarator): Copy too-large array handling from C
874         frontend.
875
876 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
877
878         * config-lang.in (target_libs): Added target-gperf, so that we
879         don't try to build it if C++ is disabled.
880
881 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
882
883         * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
884         (cp/errfn.o): Delete rule.
885         (cp/error.o): Depend on flags.h.
886         * errfn.c: Delete file.
887         * cp-tree.h: Declare warn_deprecated.  Remove definitions of
888         TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
889         and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
890         cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
891         internal_error respectively.  Make cp_deprecated into a macro.
892         Don't define cp_printer typedef or declare cp_printers.
893         * error.c: Include flags.h.
894         Delete: struct tree_formatting_info, print_function_argument_list,
895         print_declaration, print_expression, print_function_declaration,
896         print_function_parameter, print_type_id, print_cv_qualifier_seq,
897         print_type_specifier_seq, print_simple_type_specifier,
898         print_elaborated_type_specifier, print_rest_of_abstract_declarator,
899         print_parameter_declaration_clause, print_exception_specification,
900         print_nested_name_specifier, and definition of cp_printers.
901         (locate_error): New function.
902         (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
903         rewritten in terms of locate_error and diagnostic.c.
904         (cp_tree_printer): Rename cp_printer; wire up to *_to_string
905         instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
906         (init_error): Adjust to match.
907
908 2001-09-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
909
910         * Make-lang.in (CXX_C_OBJS): Add attribs.o.
911
912 2001-09-21  Richard Henderson  <rth@redhat.com>
913
914         * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
915         (build_vtbl_initializer): Likewise.
916         (build_vfn_ref): New.
917         * cp-tree.h: Declare it.
918         * call.c (build_over_call): Use it.
919         * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
920         * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
921
922 2001-09-21  J"orn Rennecke <amylaar@redhat.com>
923
924         * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
925
926 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
927
928         Table-driven attributes.
929         * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
930         * decl2.c (cplus_decl_attributes): Only take one attributes
931         parameter.
932         * cp-tree.c (cplus_decl_attributes): Update prototype.
933         * class.c (finish_struct), decl.c (start_decl, start_function),
934         decl2.c (grokfield), friend.c (do_friend), parse.y
935         (parse_bitfield): Update calls to cplus_decl_attributes.
936         * decl.c (grokdeclarator): Take a pointer to a single ordinary
937         attribute list.
938         * decl.h (grokdeclarator): Update prototype.
939         * decl2.c (grokfield): Take a single ordinary attribute list.
940         * friend.c (do_friend): Likewise.
941         * decl.c (shadow_tag, groktypename, start_decl,
942         start_handler_parms, grokdeclarator, grokparms, start_function,
943         start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
944         parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
945         (process_template_parm, do_decl_instantiation): Pass single
946         ordinary attribute lists around.
947         * decl.c (grokdeclarator): Correct handling of nested attributes.
948         Revert the patch
949         1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
950                 * decl.c (grokdeclarator): Embedded attrs bind to the right,
951                 not the left.
952         .
953         * cp-tree.h (cp_valid_lang_attribute): Remove declaration
954         (cp_attribute_table): Declare.
955         * decl.c (valid_lang_attribute): Don't define.
956         (lang_attribute_table): Define.
957         (init_decl_processing): Initialize lang_attribute_table instead of
958         valid_lang_attribute.
959         * tree.c (cp_valid_lang_attribute): Remove.
960         (handle_java_interface_attribute, handle_com_interface_attribute,
961         handle_init_priority_attribute): New functions.
962         (cp_attribute_table): New array.
963         * decl2.c (import_export_class): Don't use
964         targetm.valid_type_attribute.
965
966 2001-09-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
967
968         * Make-lang.in (cp/error.o): Depend on real.h
969         * error.c: #include "real.h"
970
971 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
972
973         * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
974         xmalloc/strcpy/strcat.
975
976 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
977
978         * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
979         Const-ification.
980         * pt.c (tsubst_decl): Likewise.
981
982 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
983
984         * decl2.c (lang_f_options): Const-ification.
985         * lex.c (cplus_tree_code_name): Likewise.
986         * spew.c (yyerror): Likewise.
987
988 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
989
990         PR c++/3986
991         * class.c (force_canonical_binfo_r): Check & move an indirect
992         primary base first.
993         (force_canonical_binfo): Check that it's not already
994         canonical.
995         (mark_primary_virtual_base): Remove BINFO parameter.
996         (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
997
998 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
999
1000         Remove TYPE_NONCOPIED_PARTS.
1001         * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
1002         CLASSTYPE_PURE_VIRTUALS.
1003         (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
1004         * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
1005         (layout_class_type): Don't call fixup_inline_methods here ...
1006         (finish_struct_1): ... call it here.
1007
1008 2001-09-04  Mark Mitchell  <mark@codesourcery.com>
1009
1010         * decl.c (duplicate_decls): Remove code deadling with
1011         DECL_SAVED_INSNS.
1012         * decl2.c (finish_file): Likewise.
1013         * pt.c (instantiate_decl): Likewise.
1014         * semantics.c (expand_body): Don't defer local functions if
1015         they wouldn't be deferred for some other reason.  Don't
1016         generate RTL for functions that will not be emitted.
1017         (genrtl_start_function): Remove code deadling with
1018         DECL_SAVED_INSNS.
1019         (genrtl_finish_function): Likewise.
1020
1021 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
1022
1023         PR c++/4203
1024         * call.c (build_over_call): Do not optimize any empty base
1025         construction.
1026
1027 2001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1028
1029         * error.c (dump_template_decl): Output template parameters
1030         together with their specifiers.
1031         Output `class' prefix for template template parameter.
1032         (dump_decl): Fix formatting.
1033
1034 2001-08-30  Kurt Garloff  <garloff@suse.de>
1035
1036         * optimize.c (inlinable_function_p): Allow only smaller single
1037         functions. Halve inline limit after reaching recursive limit.
1038
1039 2001-08-30  Joern Rennecke <amylaar@redhat.com>
1040             Jason Merrill  <jason_merrill@redhat.com>
1041
1042         * class.c (build_vtable_entry_ref): Subtract in char*, not
1043         ptrdiff_t.
1044
1045 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
1046
1047         * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
1048         (build_cplus_array_type): Use cp_build_qualified_type, not
1049         TYPE_MAIN_VARIANT, to get an unqualified version.
1050
1051         * decl2.c (grok_alignof): Lose.
1052         (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
1053         * typeck.c (c_alignof): Lose.
1054         * semantics.c (finish_sizeof, finish_alignof): New.
1055         * parse.y: Use them.
1056         * cp-tree.h: Declare them.
1057
1058 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
1059
1060         * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
1061         Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
1062         * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
1063
1064 2001-08-19  Jakub Jelinek  <jakub@redhat.com>
1065
1066         * typeck2.c (add_exception_specifier): Only require complete type if
1067         not in processing template declaration.
1068
1069 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1070
1071         * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
1072         GNU_xref_start_scope and GNU_xref_end_scope.
1073
1074         * tree.c (TYPE_HASH): Moved to ../tree.h.
1075
1076 2001-08-16  Mark Mitchell  <mark@codesourcery.com>
1077
1078         * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
1079         on COMPOUND_EXPRs.
1080
1081 2001-08-14  Richard Henderson  <rth@redhat.com>
1082
1083         * class.c, cp-tree.h (build_vfn_ref): Remove.
1084         * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
1085
1086 2001-08-13  Mark Mitchell  <mark@codesourcery.com>
1087
1088         * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
1089         empty class assignment as having side-effects to avoid
1090         spurious warnings.
1091
1092 2001-08-13  Zack Weinberg  <zackw@panix.com>
1093
1094         * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
1095         * except.c: Include libfuncs.h.
1096
1097 2001-08-11  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1098
1099         * decl.c (grokdeclarator): Clarify diagnostic message.
1100
1101 2001-08-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1102
1103         * decl2.c (do_nonmember_using_decl): Replace using directive
1104         with using declaration in the error message.
1105
1106 2001-08-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1107
1108         * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
1109         criterion to avoid rebuilding expression tree instead of
1110         processing_template_decl.
1111
1112 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
1113
1114         Support named return value optimization for inlines, too.
1115         * decl.c (finish_function): Nullify returns here.
1116         * semantics.c (genrtl_start_function): Not here.
1117         (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
1118         (nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
1119         Also nullify the CLEANUP_STMT for the nrv.
1120         * cp-tree.h: Declare it.
1121         * optimize.c (declare_return_variable): Replace the nrv with the
1122         return variable.
1123         * typeck.c (check_return_expr): Be more flexible on alignment check.
1124         Ignore cv-quals when checking for a matching type.
1125
1126 2001-08-09  Richard Henderson  <rth@redhat.com>
1127
1128         * decl2.c (finish_objects): Use target hooks instead of
1129         assemble_constructor and assemble_destructor.
1130
1131 2001-08-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1132
1133         * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
1134
1135 2001-08-07  Nathan Sidwell  <nathan@codesourcery.com>
1136
1137         PR c++/3820
1138         Stop using TYPE_NONCOPIED_PARTS.
1139         * call.c (build_over_call): Be careful when copy constructing
1140         or assigning to an empty class.
1141         * class.c (check_bases_and_members): It has a
1142         COMPLEX_ASSIGN_REF if it has a vptr.
1143         (layout_class_type): Don't add empty class padding to
1144         TYPE_NONCOPIED_PARTS.
1145         (finish_struct_1): Don't add the VFIELD either.
1146         * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
1147         initialization.
1148
1149 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
1150
1151         * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
1152
1153 2001-08-06  Richard Henderson  <rth@redhat.com>
1154
1155         * decl2.c (finish_objects): Pass a symbol_ref and priority to
1156         assemble_{constructor,destructor}.  Remove priority handling.
1157
1158 2001-08-05  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1159
1160         Don't allow template-id in using-declaration.
1161         * decl2.c (validate_nonmember_using_decl): Handle template-ids.
1162         (do_class_using_decl): Likewise.
1163
1164 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1165
1166         * cp/spew.c (read_token): No need to pop buffers.
1167
1168 2001-08-02  Stan Shebs  <shebs@apple.com>
1169
1170         * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
1171         (fnaddr_from_vtable_entry): Remove decl.
1172         * method.c (use_thunk): Update comment.
1173
1174 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
1175
1176         * repo.c (get_base_filename): Change return value to const char
1177         pointer.
1178
1179 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
1180
1181         Kill -fhonor-std.
1182         * NEWS: Document.
1183         * cp-tree.h (flag_honor_std): Remove.
1184         (CPTI_FAKE_STD): Remove.
1185         (std_node): Remove comment about it being NULL.
1186         (fake_std_node): Remove.
1187         * decl.c (in_fake_std): Remove.
1188         (walk_namespaces_r): Remove fake_std_node check.
1189         (push_namespace): Remove in_fake_std code.
1190         (pop_namespace): Likewise.
1191         (lookup_name_real): Remove fake_std_node check.
1192         (init_decl_processing): Always create std_node. Always add
1193         std:: things there.
1194         (builtin_function): Always put non '_' fns in std.
1195         * decl2.c (flag_honor_std): Remove.
1196         (lang_f_options): Remove honor-std.
1197         (unsupported_options): Add honor-std.
1198         (set_decl_namespace): Remove fake_std_node check.
1199         (validate_nonmember_using_decl): Likewise.
1200         (do_using_directive): Likewise.
1201         (handle_class_head): Likewise.
1202         * dump.c (cp_dump_tree): Likewise.
1203         * except.c (init_exception_processing): Adjust.
1204         * init.c (build_member_call): Remove fake_std_node check.
1205         (build_offset_ref): Likewise.
1206         * lang-options.h: Remove -fhonor-std, -fno-honor-std.
1207         * rtti.c (init_rtti_processing): Adjust.
1208
1209 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
1210
1211         * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
1212         operand while calling cp_tree_equal.
1213
1214 2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
1215
1216         The 3.0 ABI no longer has vbase pointer fields.
1217         * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
1218         FORMAT_VBASE_NAME): Remove.
1219         * method.c (do_build_copy_constructor): Adjust.
1220         (do_build_assign_ref): Adjust.
1221         * search.c (lookup_field_r): Adjust.
1222         * typeck.c (build_component_ref): Adjust.
1223
1224         The 3.0 ABI always has a vtable pointer at the start of every
1225         polymorphic class.
1226         * rtti.c (build_headof_sub): Remove.
1227         (build_headof): Adjust.
1228         (get_tinfo_decl_dynamic): No need to check flag_rtti
1229         here. Adjust.
1230         (create_real_tinfo_var): Explain why we need a hidden name.
1231
1232 2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
1233
1234         PR c++/3631
1235         * class.c (update_vtable_entry_for_fn): The fixed adjustment
1236         of a virtual thunk should be from declaring base.
1237
1238 2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
1239
1240         * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
1241         the shared virtual base, so preserving inheritance graph order.
1242
1243 2001-07-30  Andreas Jaeger  <aj@suse.de>
1244
1245         * decl2.c: Remove unused var global_temp_name_counter.
1246
1247 2001-07-28  Richard Henderson  <rth@redhat.com>
1248
1249         * method.c (pending_inlines): Remove.
1250
1251 2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
1252
1253         * class.c (mark_primary_virtual_base): Don't adjust base
1254         offsets here.
1255         (dfs_unshared_virtual_bases): Adjust them here.
1256         (mark_primary_bases): Explain why we adjust at the end.
1257
1258 2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
1259
1260         * class.c (finish_struct_1): When copying the primary base's
1261         VFIELD, make sure we find it is at offset zero.
1262
1263 2001-07-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1264
1265         * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
1266         tsubst_expr for default template arguments.
1267
1268 2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
1269
1270         PR c++/3621
1271         * spew.c (yylex): Only copy the token's lineno, if it is
1272         nonzero.
1273
1274 2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
1275
1276         PR c++/3624
1277         * call.c (resolve_args): Simplify, call
1278         convert_from_reference.
1279         (build_new_op): Resolve and convert from reference ARG1
1280         earlier. Adjust ARG2 & ARG3 resolve and conversion.
1281
1282 2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
1283
1284         * decl.c (last_function_parm_tags): Remove.
1285         (current_function_parm_tags): Remove.
1286         (init_decl_processing): Adjust.
1287         (start_function): Adjust.
1288         (store_parm_decls): Adjust.
1289
1290         PR c++/3152
1291         * decl.c (grokdeclarator): Detect when a function typedef is
1292         declaring a function, and create last_function_parms correctly.
1293
1294 2001-07-25  Jason Merrill  <jason_merrill@redhat.com>
1295
1296         * call.c (joust): Only prefer a non-builtin candidate to a builtin
1297         one if they have the same signature.
1298
1299         * cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
1300         it rather than toplevel_bindings_p.  Give it a mangled name if static.
1301         (convert_to_reference): Adjust.
1302         * decl2.c (get_temp_name): Lose.
1303         * mangle.c (mangle_ref_init_variable): New fn.
1304         (mangle_guard_variable): Strip the ref-init header.
1305         * cp-tree.h: Adjust.
1306         * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
1307         initializer.
1308         (grok_reference_init): Always use DECL_INITIAL.
1309
1310 2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1311
1312         PR c++/3416
1313         * call.c (build_conditional_expr): Recheck args after
1314         conversions.
1315         * cp-tree.h (build_conditional_expr): Move to correct file.
1316         * typeck.c (decay_conversion): Diagnose any unknown types
1317         reaching here.
1318         (build_binary_op): Don't do initial decay or default
1319         conversions on overloaded functions.
1320         (build_static_cast): Don't do a decay conversion here.
1321
1322 2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1323
1324         PR c++/3543
1325         * typeck.c (condition_conversion): Resolve an OFFSET_REF.
1326         * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
1327
1328 2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1329
1330         * class.c (build_vtbl_or_vbase_field): Remove, move into ...
1331         (create_vtbl_ptr): ... here.
1332
1333 2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1334
1335         * class.c (build_vbase_offset_vbtl_entries): Look for
1336         non-primary base of which we are a sub vtable.
1337
1338 2001-07-24  Phil Edwards  <pme@sources.redhat.com>
1339
1340         * semantics.c (finish_this_expr):  Remove unused code.
1341
1342 2001-07-24  Nathan Sidwell  <nathan@codesourcery.com>
1343
1344         Simplify rtti, now we've only one ABI.
1345         * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
1346         CPTI_TINFO_VAR_ID.
1347         (tinfo_decl_id, tinfo_var_id): Remove.
1348         (get_typeid_1): Remove.
1349         * rtti.c
1350         (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
1351         (typeid_ok_p): New function.
1352         (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
1353         (get_tinfo_decl): Remove old abi documentation.
1354         (tinfo_from_decl): Remove.
1355         (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
1356         (get_typeid_1): Remove.
1357         (get_base_offset): Remove.
1358         (synthesize_tinfo_var): Absorb get_base_offset.
1359         (create_real_tinfo_var): Don't use tinfo_decl_id.
1360
1361 2001-07-23  Graham Stott  <grahams@redhat.com>
1362
1363         * cp/class.c (type_requires_array_cookie): Fix use of uninitialized
1364         variable has_two_argument_delete_p.
1365
1366 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
1367
1368         Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
1369         * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
1370         (CPTI_INDEX_IDENTIFIER): Remove.
1371         (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
1372         (delta2_identifier): Remove.
1373         (index_identifier): Remove.
1374         (pfn_or_delta2_identifier): Remove.
1375         (flag_vtable_thunks): Remove.
1376         (VTABLE_DELTA2_NAME): Remove.
1377         (VTABLE_INDEX_NAME): Remove.
1378         (FNADDR_FROM_VTABLE_ENTRY): Adjust.
1379         (vfunc_ptr_type_node): Adjust.
1380         (VTABLE_NAME_PREFIX): Adjust.
1381         (build_vfn_ref): Lose first parameter.
1382         (fixup_all_virtual_upcast_offsets): Remove.
1383         * decl.c (initialize_predefined_identifiers): Remove
1384         delta2_identifier, index_identifier, pfn_or_delta2_identifier.
1385         (init_decl_processing): Remove no-vtable-thunk code.
1386         * decl2.c (flag_vtable_thunks): Remove.
1387         (mark_vtable_entries): Remove no-vtable-thunk code.
1388         * error.c (dump_decl): Remove no-vtable-thunk code.
1389         (dump_expr): Adjust ptr to member function code.
1390         * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
1391         code.
1392         * rtti.c (build_headof): Remove no-vtable-thunk code.
1393         (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
1394         * search.c (get_base_distance): Remove expand_upcast_fixups case.
1395         (virtual_context) Remove.
1396         (expand_upcast_fixups): Remove.
1397         (fixup_virtual_upcast_offsets): Remove.
1398         (fixup_all_virtual_upcast_offsets): Remove.
1399         * typeck.c (get_member_function_from_ptrfunc): Remove
1400         no-vtable-thunk code.
1401         * call.c (build_over_call): Adjust call to build_vfn_ref.
1402         * class.c (build_vfn_ref): Lose first parameter. Remove
1403         no-vtable-thunk code.
1404         (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
1405         (build_vtable_entry): Remove no-vtable-thunk code.
1406
1407 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
1408
1409         Remove old-abi remnants. Remove comments about old abi
1410         behavior. Remove references to 'new-abi' in comments.
1411         * cp-tree.h: Adjust comments.
1412         (vbase_offsets_in_vtable_p): Delete.
1413         (vcall_offsets_in_vtable_p): Delete.
1414         (vptrs_present_everywhere_p): Delete.
1415         (all_overridden_vfuns_in_vtables_p): Delete.
1416         (merge_primary_and_secondary_vtables_p): Delete.
1417         (TYPE_CONTAINS_VPTR_P): Adjust.
1418         (VTT_NAME_PREFIX): Remove.
1419         (CTOR_VTBL_NAME_PREFIX): Remove.
1420         (init_vbase_pointers): Remove.
1421         * class.c: Adjust coments.
1422         (build_vbase_pointer_fields): Delete.
1423         (build_vbase_pointer): Remove old-abi code.
1424         (build_secondary_vtable): Likewise.
1425         (modify_all_vtables): Likewise.
1426         (create_vtable_ptr): Likewise.
1427         (layout_class_type): Likewise.
1428         (finish_struct_1): Likewise.
1429         (finish_vtbls): Likewise.
1430         (dfs_finish_vtbls): Delete.
1431         (build_vbase_offset_vtbl_entries): Remove old-abi code.
1432         * cvt.c: Adjust comments.
1433         * decl.c: Adjust comments.
1434         * decl2.c: Adjust comments.
1435         * init.c: Adjust comments.
1436         (construct_virtual_bases): Remove old-abi code.
1437         * lang-specs.h: Remove -fno-new-abi.
1438         * mangle.c: Adjust comments.
1439         * rtti.c: Adjust comments.
1440         (get_base_offset): Remove old-abi-code.
1441         * search.c: Adjust comments.
1442         (dfs_init_vbase_pointers): Remove.
1443         (dfs_vtable_path_unmark): Remove.
1444         (init_vbase_pointers): Remove.
1445         * semantics.c: Adjust comments.
1446         (emit_associated_thunks): Remove old-abi code.
1447         * typeck.c: Adjust comments.
1448
1449 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
1450
1451         * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
1452         params.h.
1453
1454 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
1455
1456         * class.c (finish_struct_anon): Forbid nested classes.
1457
1458 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1459
1460         * decl2.c: Don't include dwarfout.h and dwarf2out.h.
1461         * optimize.c: Include debug.h.
1462         (maybe_clone_body): Use debug hook.
1463         * semantics.c: Include debug.h.
1464         (expand_body): Use debug hook.
1465
1466 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1467
1468         * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
1469
1470 2001-07-18  Mark Mitchell  <mark@codesourcery.com>
1471
1472         * class.c (type_requires_array_cookie): New function.
1473         (check_methods): Don't try to figure out whether the type needs a
1474         cookie here.
1475         (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
1476         * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
1477         (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
1478         * pt.c (instantiate_class_template): Don't set
1479         TYPE_VEC_DELETE_TAKES_SIZE.
1480         * NEWS: Document ABI changes from GCC 3.0.
1481
1482 2001-07-18  Xavier Delacour <xavier@fmaudio.net>,
1483             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1484
1485         * NEWS (Changes in GCC 3.0): Fix typo.
1486
1487 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1488
1489         * decl2.c (cplus_decl_attributes): Take a pointer to the node to
1490         which attributes are to be attached, and a flags argument.  Update
1491         call to decl_attributes.
1492         (grokfield): Update call to decl_attributes.
1493         * class.c (finish_struct): Update call to cplus_decl_attributes.
1494         * cp-tree.h (cplus_decl_attributes): Update prototype.
1495         * decl.c (start_decl, grokdeclarator, start_function): Update
1496         calls to decl_attributes and cplus_decl_attributes.
1497         * friend.c (do_friend): Update call to cplus_decl_attributes.
1498         * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
1499
1500 2001-07-12  Mark Mitchell  <mark@codesourcery.com>
1501
1502         * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
1503         for `register' variables with an asm-specification.
1504
1505 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
1506
1507         * semantics.c (finish_asm_stmt): Mark the output operands
1508         to an asm addressable, if necessary.
1509
1510 2001-07-11  Ben Elliston  <bje@redhat.com>
1511
1512         * Revert this change -- there is a subtle bug.
1513
1514         PR c++/80
1515         * decl.c (finish_enum): New "attributes" argument; pass it to
1516         cplus_decl_attributes.  Use a narrower type if the enum is packed.
1517         * cp-tree.h (finish_enum): Adjust prototype.
1518         * parse.y (enum_head): New non-terminal.
1519         (structsp): Use it. Enums now may be preceded or followed by
1520         optional attributes -- pass their chained tree to finish_enum().
1521         * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
1522
1523 2001-07-10  Mark Mitchell  <mark@codesourcery.com>
1524
1525         * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
1526         variables.
1527
1528 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
1529
1530         * semantics.c (cp_expand_stmt): Fix for null
1531         current_function_return_value.
1532
1533 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
1534
1535         * call.c (build_op_delete_call): Initialize fn.
1536         (convert_like_real): Delete conditional.
1537         (joust): Initialize *w and *l.
1538         * class.c: Add prototype for binfo_ctor_vtable.
1539         (get_primary_binfo): Initialize result.
1540         * init.c (build_java_class_ref): Initialize name.
1541
1542 2001-07-09  Erik Rozendaal  <dlr@acm.org>
1543
1544         * typeck.c (unary_complex_lvalue): Do not duplicate the
1545         argument to modify, pre-, or post-increment when used as an
1546         lvalue and when the argument has side-effects.
1547
1548 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1549
1550         * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
1551         (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
1552         cplus_decl_attributes even if attrs is NULL.
1553         * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
1554
1555 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1556
1557         * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
1558         calls to decl_attributes.
1559
1560 2001-07-06  Ira Ruben   <ira@apple.com>
1561
1562         * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
1563         be DECL_TEMPLATE_RESULT.
1564
1565 2001-07-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1566
1567         * cp-tree.h (copy_template_template_parm): Rename to ...
1568         (bind_template_template_parm): ... here.
1569         * tree.c (copy_template_template_parm): Rename to ...
1570         (bind_template_template_parm): ... here.  Remove the case when
1571         NEWARGS is NULL_TREE.
1572         (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
1573         BOUND_TEMPLATE_TEMPLATE_PARM.
1574         * pt.c (lookup_template_class): Adjust.
1575
1576 2001-07-05  Jason Merrill  <jason_merrill@redhat.com>
1577
1578         * cvt.c (convert_lvalue): New fn.
1579         * cp-tree.h: Declare it.
1580         * method.c (do_build_assign_ref): Use it.
1581         (do_build_copy_constructor): Convert parm to base types
1582         before calling base constructors.
1583
1584         * typeck.c (check_return_expr): Check DECL_ALIGN instead of
1585         DECL_USER_ALIGN.  Check flag_elide_constructors instead of
1586         optimize.
1587         * semantics.c (cp_expand_stmt): Don't destroy the named return value.
1588
1589 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
1590
1591         * optimize.c (optimize_inline_calls): New function, broken out
1592         of ...
1593         (optimize_function): ... here. Call it. Don't inline if it is
1594         a thunk.
1595         (dump_function): Print name of dump flag causing this dump.
1596         * semantics.c (expand_body): Move thunk inline check to
1597         optimize_function.
1598
1599 2001-06-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1600
1601         * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
1602         (comptypes): Use target.comp_type_attributes.
1603
1604 2001-06-29  Nathan Sidwell  <nathan@codesourcery.com>
1605
1606         * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
1607
1608 2001-06-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1609
1610         * error.c (lang_print_error_function): Add a `diagnostic_context *'
1611         parameter. Tweak.
1612
1613 2001-06-27  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1614
1615         * decl2.c (import_export_class): Update.
1616
1617 2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
1618
1619         * error.c (init_error): Adjust settings.
1620
1621 2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
1622
1623         * error.c (init_error): Adjust settings.
1624
1625 2001-06-19  Richard Sandiford  <rsandifo@redhat.com>
1626
1627         * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
1628         return pointers to data members by reference rather than by value.
1629
1630 2001-06-18  Jason Merrill  <jason_merrill@redhat.com>
1631
1632         Implement the Named Return Value optimization.
1633         * cp-tree.h (struct cp_language_function): Add x_return_value.
1634         (current_function_return_value): Now a macro.
1635         * decl.c: Don't define it.
1636         (define_label, finish_case_label): Don't clear it.
1637         (init_decl_processing): Don't register it with GC.
1638         * semantics.c (genrtl_finish_function): Don't check it for
1639         no_return_label.  Copy the RTL from the return value to
1640         current_function_return_value and walk, calling...
1641         (nullify_returns_r): ...this new fn.
1642         * typeck.c (check_return_expr): Set current_function_return_value.
1643
1644 2001-06-15  Jason Merrill  <jason_merrill@redhat.com>
1645
1646         * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
1647         sharing a ctor vtable with.  Merge code for cases 1 and 2.
1648         (binfo_ctor_vtable): New fn.
1649         (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
1650
1651 2001-06-14  Jason Merrill  <jason_merrill@redhat.com>
1652
1653         * class.c (dfs_find_final_overrider): Fix logic.
1654
1655         * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
1656         virtual thunk instead of non-virtual.
1657         (get_matching_virtual): Uncomment.
1658
1659         * pt.c (unify): Don't recurse between the POINTER_TYPE and the
1660         OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
1661         PARM, not ARG.
1662
1663 2001-06-14  Nathan Sidwell  <nathan@codesourcery.com>
1664
1665         * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
1666         we've not emerged from the hierarchy of RTTI_BINFO on reaching
1667         a non-virtual base.
1668
1669 2001-06-13  Mark Mitchell  <mark@codesourcery.com>
1670
1671         * NEWS: Update release number.
1672
1673 2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
1674
1675         PR c++/3130, c++/3131, c++/3132
1676         * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
1677         * class.c (force_canonical_binfo_r): Move
1678         BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
1679         virtual bases unless they're primary and what they're primary
1680         too has been moved.
1681         (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
1682         with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
1683         BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
1684         derived binfo.
1685         (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
1686         (layout_nonempty_base_or_field): Add most derived type
1687         parameter. Adjust.
1688         (layout_empty_base): Likewise.
1689         (build_base_field): Likewise.
1690         (build_base_fields): Likewise.
1691         (propagate_binfo_offsets): Add most derived type
1692         parameter. Skip non canonical virtual bases too.
1693         (dfs_set_offset_for_unshared_vbases): Don't skip primary
1694         bases. Do skip canonical bases.
1695         (layout_virtual_bases): Adjust.
1696         (layout_class_type): Adjust.
1697         (dfs_get_primary_binfo): Build list of virtual primary base
1698         candidates.
1699         (get_primary_binfo): Check that the shared virtual primary
1700         base candidate was found first.
1701         (accumulate_vtbl_inits): Don't do anything for non-vptr
1702         containing binfos. For case 1 primary virtual bases, keep
1703         checking that we've not emerged from the hierarchy of RTTI_BINFO.
1704
1705 2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
1706
1707         PR c++/3089
1708         * class.c (dfs_accumulate_vtbl_inits): Always walk down the
1709         hierarchy looking for primary bases for a ctor
1710         vtable. Recursively call oneself, if we meet our primary via
1711         this route and haven't met it yet via inheritance graph order.
1712
1713 2001-06-11  Mark Mitchell  <mark@codesourcery.com>
1714
1715         * lang-options.h: Emit documentation for -fno-honor-std, not
1716         -fhonor-std.
1717
1718 2001-06-10  Alexandre Oliva  <aoliva@redhat.com>
1719
1720         * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
1721         Don't clobber delta.
1722         (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
1723
1724 2001-06-10  Mark Mitchell <mark@codesourcery.com>
1725             Gabriel Dos Reis  <gdr@codesourcery.com>
1726
1727         * Make-lang.in (cp/call.o): Depend on diagnostic.h
1728         (cp/typeck.o): Depend on diagnostic.h
1729         (cp/typeck2.o): Depend on diagnostic.h
1730         (cp/repo.o): Depend on dignostic.h
1731         * typeck.c: #include diagnostic.h
1732         (convert_for_initialization): Remove extern declaration for
1733         warningcount and errorcount.
1734
1735         * call.c: #include diagnostic.h
1736         (convert_like_real): Remove extern declaration for warnincount and
1737         errorcount.
1738
1739         * repo.c: #include diagnostic.h
1740         * typeck2.c: #include diagnostic.h
1741
1742 2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1743
1744         * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
1745         in previous change.
1746
1747 2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1748
1749         PR c++/2929
1750         * friend.c (do_friend): Use push_decl_namespace for classes at
1751         namespace scope.
1752
1753 2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1754             Jason Merrill <jason_merrill@redhat.com>
1755
1756         PR c++/3061
1757         * class.c (build_secondary_vtable): Use assert, rather than an error
1758         message.
1759         (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
1760         (dfs_accumulate_vtbl_inits): A lost primary virtual base may
1761         be between ORIG_BINFO and RTTI_BINFO, but neither of them.
1762         Don't set BINFO_VTABLE for a primary virtual base.
1763
1764 2001-06-07  Mark Mitchell  <mark@codesourcery.com>
1765
1766         * decl.c (duplicate_decls): Update source position information
1767         when a template function is defined.
1768
1769 2001-06-07  Phil Edwards  <pme@sources.redhat.com>
1770
1771         * lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.
1772
1773 2001-06-07  Nathan Sidwell  <nathan@codesourcery.com>
1774
1775         PR c++/2914
1776         * decl.c (pushtag): Don't push into a complete type's scope.
1777
1778 2001-06-06  Jason Merrill  <jason_merrill@redhat.com>
1779
1780         * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
1781         (struct lang_decl_flags): Lose generate_with_vtable_p.
1782         (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
1783         * class.c (copy_virtuals): Adjust.
1784         * decl2.c (mark_vtable_entries): Adjust.
1785         * method.c (make_thunk, build_vtable_entry): Adjust.
1786         * class.c (update_vtable_entry_for_fn): Only look as far as the
1787         first defining class.
1788         (build_vtbl_initializer): Put nothing in the slot for a function only
1789         defined in a lost primary virtual base.
1790         (add_vcall_offset_vtbl_entries_1): Use the same code for
1791         the lost primary case and the normal case.
1792         (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
1793         (get_vfield_offset, get_derived_offset): Lose.
1794         (dfs_find_final_overrider): Use look_for_overrides_here.
1795         (get_matching_virtual): New fn.
1796         * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
1797         not BV_VCALL_INDEX.
1798         * search.c (look_for_overrides_here): Split out from...
1799         (look_for_overrides_r): Here.
1800
1801         * class.c (find_final_overrider): Return error_mark_node on error.
1802
1803         * decl2.c (key_method): #if 0 accidental change.
1804
1805 2001-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1806
1807         * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
1808         (build_over_call): Likewise.
1809         * decl.c (grokparms): Likewise.
1810         * pt.c (tsubst_decl): Likewise.
1811         * typeck.c (convert_arguments): Likewise.
1812
1813 2001-06-05  Mark Mitchell  <mark@codesourcery.com>
1814
1815         * semantics.c (begin_class_definition): Robustify.
1816
1817         * pt.c (instantiate_decl): Tell the repository code about the
1818         clones, not the cloned functions.
1819         * repo.c (repo_template_used): Explicitly instantiate the cloned
1820         function, not the clones.
1821
1822 2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1823
1824         * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
1825         ICS_BAD_FLAG on created conversion.
1826         (compare_ics): Break out rank.
1827
1828 2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1829
1830         * decl.c (xref_tag): Remove extraneous %s on dependent name
1831         lookup warning.
1832
1833 2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1834
1835         * class.c (layout_vtable_decl): Fix off by one error on
1836         build_index_type.
1837         (build_vtt): Likewise.
1838         (build_ctor_vtbl_group): Likewise.
1839
1840 2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1841
1842         * class.c (maybe_indent_hierarchy): New function.
1843         (dump_class_hierarchy_r): Add flags. Dump extra binfo
1844         information, if enabled. Use maybe_indent_hierarchy. Adjust
1845         output format.
1846         (dump_class_hierarchy): Adjust prototype. Adjust output format.
1847         (dump_array, dump_vtable, dump_vtt): New functions.
1848         (finish_struct_1): Adjust hierarchy dumping.
1849         (initialize_vtable): Call dump_vtable.
1850         (build_vtt): Call dump_vtt.
1851         (build_ctor_vtbl_group): Call dump_vtable.
1852         * decl2.c (flag_dump_class_layout): Remove.
1853         (cxx_decode_option): Remove dump translation unit
1854         and dump class hierarchy check. Call dump_switch_p.
1855         (finish_file): Adjust dumping.
1856         (dump.c): Only dump base classes if not TDF_SLIM.
1857         Only dump namespace members if not TDF_SLIM.
1858         * optimize.c (dump_function): New function.
1859         (optimize_function): Call dump_function.
1860         * semantics.c (expand_body): Use dump_enabled_p.
1861
1862 2001-06-01  Nathan Sidwell  <nathan@codesourcery.com>
1863
1864         PR g++/2936
1865         Part missed from first commit
1866         * decl2.c (finish_anon_union): Copy context.
1867
1868 2001-05-30  Nathan Sidwell  <nathan@codesourcery.com>
1869
1870         PR g++/2936
1871         * optimize.c (remap_decl): Remap anonymous aggregate members too.
1872
1873 2001-05-26  Nathan Sidwell  <nathan@codesourcery.com>
1874
1875         PR g++/2823
1876         * semantics.c (expand_body): Don't optimize thunks.
1877
1878 2001-05-25  Sam TH  <sam@uchicago.edu>
1879
1880         * cp-tree.h lex.h: Fix header include guards.
1881
1882 2001-05-25  Mark Mitchell <mark@codesourcery.com>
1883
1884         * decl.c (init_decl_processing): Tweak.
1885
1886 2001-05-24  Mark Mitchell  <mark@codesourcery.com>
1887
1888         * decl.c (duplicate_decls): Tidy.
1889         (init_decl_processing): Always set flag_no_builtin.
1890
1891 2001-05-24  Nathan Sidwell  <nathan@codesourcery.com>
1892
1893         PR c++/2184
1894         * decl2.c (do_local_using_decl): Push the decls, even in a
1895         template.
1896
1897 2001-05-22  Mark Mitchell  <mark@codesourcery.com>
1898
1899         * optimize.c (initialize_inlined_parameters): Don't set
1900         TREE_READONLY for a VAR_DECL taking the place of an inlined
1901         PARM_DECL.
1902
1903 2001-05-22  Jason Merrill  <jason_merrill@redhat.com>
1904
1905         * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
1906         * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
1907         attribute.
1908
1909 2001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>
1910
1911         * parse.y: Refer to compound literals as such, not as
1912         constructor-expressions.
1913
1914 2001-05-21  Mark Mitchell  <mark@codesourcery.com>
1915
1916         * call.c (build_op_delete_call): Ignore exception-specifications
1917         when looking for matching delete operators.
1918         * init.c (build_new_1): Compute whether or not the allocation
1919         function used is a placement allocation function or not, and
1920         communicate this information to build_op_delete_call.
1921
1922 2001-05-21  Jason Merrill  <jason_merrill@redhat.com>
1923
1924         * class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
1925         (build_vtbl_ref): Adjust.
1926         (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
1927         * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
1928         Re-add vtable-gc.
1929         (unsupported_options): Correspondingly.
1930
1931         * decl2.c (maybe_make_one_only): Check flag_weak, not
1932         supports_one_only().
1933
1934         * cp-tree.def (START_CATCH_STMT): Lose.
1935         * dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
1936         * tree.c (cp_statement_code_p): Don't case it.
1937         * semantics.c (cp_expand_stmt): Likewise.
1938         * cp-tree.h (START_CATCH_TYPE): Lose.
1939         (HANDLER_TYPE): New.
1940         * except.c (expand_start_catch_block): Don't start any blocks.
1941         Return the type.
1942         (expand_end_catch_block): Don't end any blocks.
1943         * parse.y (handler): Don't pass anything from finish_handler_parms
1944         to finish_handler.
1945         * pt.c (tsubst_expr): Likewise.
1946         * semantics.c (begin_handler): Call note_level_for_catch here.
1947         (finish_handler_parms): Don't return anything.
1948         (genrtl_catch_block, begin_catch_block): Lose.
1949         (genrtl_handler): Call expand_start_catch here.
1950
1951 2001-05-18  Jason Merrill  <jason_merrill@redhat.com>
1952
1953         * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
1954         (get_vtable_decl, build_vtt): Not here.
1955
1956 2001-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1957
1958         PR c++/2781
1959         * optimize.c (update_cloned_parm): Copy addressability and other
1960         flags.
1961
1962 2001-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1963
1964         * pt.c (determine_specialization): Ignore artificial functions.
1965
1966 2001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1967
1968         * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
1969         (C_RID_CODE): Remove.
1970         * lex.c (cxx_init_options): Call set_identifier_size.  Update.
1971         (init_parse): Don't do it here.
1972
1973 2001-05-18  Diego Novillo  <dnovillo@redhat.com>
1974
1975         * decl2.c (finish_objects): Use the original SYMBOL_REF from the
1976         function declaration to avoid stripping the symbol's attributes.
1977
1978 2001-05-18  Nathan Sidwell  <nathan@codesourcery.com>
1979
1980         * decl.c (pushdecl): Adjust error string.
1981         (xref_tag): Adjust friend class injection warning. Remove the
1982         inherited name from the class shadowed scope.
1983
1984 2001-05-17  Mark Mitchell  <mark@codesourcery.com>
1985
1986         * except.c (cp_protect_cleanup_actions): New function.
1987         (init_exception_processing): Don't set protect_cleanup_actions
1988         here.  Do set lang_protect_cleanup_actions.
1989
1990 2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
1991
1992         * spew.c (read_token): Call yyerror on all unexpected tokens.
1993
1994 2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
1995
1996         * init.c (member_init_ok_or_else): Take a tree rather than
1997         string for name.
1998         (expand_member_init): Adjust.
1999
2000 2001-05-14  Nick Clifton  <nickc@cambridge.redhat.com>
2001
2002         * decl.c (duplicate_decls): Suppress warning about duplicate
2003         decls if the first decl is a friend.
2004
2005 2001-05-12  Zack Weinberg  <zackw@stanford.edu>
2006
2007         * except.c (choose_personality_routine): Export.  Add
2008         explanatory comment.  Take an enum languages, not a boolean.
2009         (initialize_handler_parm): Adjust to match.
2010         * cp-tree.h: Prototype choose_personality_routine.
2011         * lex.c (handle_pragma_java_exceptions): New function.
2012         (init_cp_pragma): Register #pragma GCC java_exceptions.
2013
2014 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
2015
2016         * method.c (build_mangled_C99_name): Remove unused prototype.
2017
2018 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
2019
2020         * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
2021         * typeck.c (get_member_function_from_ptrfunc,
2022         build_ptrmemfunc, expand_ptrmemfunc_cst): Take
2023         TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
2024
2025         Reverted Geoff Keating's 2001-05-03's patch.
2026
2027 2001-05-11  Ira Ruben   <ira@apple.com>
2028
2029         * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
2030
2031 2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2032
2033         * cp-tree.h (finish_label_expr, lookup_label): Delete.
2034         * parse.y: Update for '&&'; don't issue warning here.
2035         * semantics.c (finish_label_expr): Delete.
2036
2037 2001-05-07  Mark Mitchell  <mark@codesourcery.com>
2038
2039         * splay-tree.h (splay_tree_max): New function.
2040         (splay_tree_min): Likewise.
2041
2042 2001-05-03  Geoffrey Keating  <geoffk@redhat.com>
2043
2044         * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
2045         (pfn_vflag_identifier): Define.
2046         Update comment about layout of pointer functions.
2047         (build_ptrmemfunc1): Update prototype.
2048         (expand_ptrmemfunc_cst): Update prototype.
2049         * decl.c (initialize_predefined_identifiers): Initialize
2050         pfn_vflag_identifier.
2051         (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
2052         an extra field to the type.
2053         * expr.c (cplus_expand_constant): Pass 'flag' between
2054         expand_ptrmemfunc_cst and build_ptrmemfunc1.
2055         * typeck.c (get_member_function_from_ptrfunc): When
2056         FUNCTION_BOUNDARY < 16, look at additional field to determine
2057         if a pointer-to-member is a real pointer or a vtable offset.
2058         (build_ptrmemfunc1): Add new parameter to contain extra field.
2059         (build_ptrmemfunc): Pass the extra field around.
2060         (expand_ptrmemfunc_cst): Add new parameter to return extra field.
2061         (pfn_from_ptrmemfunc): Ignore the extra field.
2062
2063 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
2064
2065         * cp-tree.h (flag_inline_trees): Update documentation.
2066         * decl.c (init_decl_processing): Adjust handling of
2067         flag_inline_functions and flag_inline_trees to support -O3.
2068         (grokfndecl): Set DECL_INLINE on all functions if that's what
2069         the user requested.
2070         (save_function_data): Clear DECL_INLINE in
2071         current_function_cannot_inline is non-NULL.
2072         * decl2.c (flag_inline_trees): Update documentation.
2073
2074 2001-05-03  Nathan Sidwell  <nathan@codesourcery.com>
2075
2076         * dump.c (cp_dump_tree, USING_STMT case): New case.
2077         * tree.c (cp_statement_code_p): Add USING_STMT.
2078         * decl2.c (do_using_directive): Add the using directive statement.
2079
2080         * tree.c (walk_tree): Reformat an if block.
2081
2082 2001-05-02  Mark Mitchell  <mark@codesourcery.com>
2083
2084         * decl.c (compute_array_index_type): Don't try to do anything with
2085         the indices when processing a template.
2086
2087 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2088
2089         * call.c: NULL_PTR -> NULL.
2090         * class.c: Likewise.
2091         * cvt.c: Likewise.
2092         * decl.c: Likewise.
2093         * decl2.c: Likewise.
2094         * except.c: Likewise.
2095         * init.c: Likewise.
2096         * rtti.c: Likewise.
2097         * search.c: Likewise.
2098         * tree.c: Likewise.
2099         * typeck.c: Likewise.
2100         * typeck2.c: Likewise.
2101
2102 2001-05-02  Mark Mitchell  <mark@codesourcery.com>
2103
2104         * decl2.c (do_using_directive): Revert previous patch.
2105
2106 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2107
2108         * cp-tree.def (USING_STMT): New statement node.
2109         * cp-tree.h (USING_STMT_NAMESPACE): New macro.
2110         * decl2.c (do_using_directive): Add USING_STMT to statement
2111         tree. Don't emit errors when processing template decl.
2112         * pt.c (tsubst_expr, USING_STMT case): New case.
2113         * semantics.c (cp_expand_stmt, USING_STMT case): New case.
2114
2115 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2116
2117         * call.c (build_new_op): Convert args from reference here.
2118         (build_conditional_expr): Don't convert here.
2119
2120 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2121
2122         * spew.c (last_token_id): New static variable.
2123         (read_token): Set it here.
2124         (yyerror): Use it here.
2125
2126 2001-04-30  Richard Henderson  <rth@redhat.com>
2127
2128         * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
2129         * decl.c: Likewise.
2130
2131 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
2132
2133         * gxxint.texi: Remove.
2134         * Make-lang.in: Remove all traces of gxxint.texi.
2135
2136 2001-04-30  Mark P Mitchell  <mark@codesourcery.com>
2137
2138         * decl2.c (start_static_initialization_or_destruction): Correct
2139         logic to handle the -fno-use-cxa-atexit case.
2140
2141 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
2142
2143         * optimize.c (update_cloned_parm): New function.
2144         (maybe_clone_body): Use it.  Update the `this' parameter too.
2145
2146 2001-04-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2147
2148         * decl2.c (unsupported_options): Add new-abi.
2149         * lang-options.h: Remove no longer supported options.
2150
2151 2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2152
2153         * except.c (can_convert_eh): Don't check template parms,
2154         typename types etc.
2155
2156 2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2157
2158         * optimize.c (maybe_clone_body): Copy parameter names and locations.
2159
2160 2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2161
2162         * cp-tree.h (adjust_clone_args): Prototype new function.
2163         * class.c (adjust_clone_args): New function.
2164         * decl.c (start_function): Call it for in charge ctors.
2165
2166 2001-04-26  Mark Mitchell  <mark@codesourcery.com>
2167
2168         * method.c (use_thunk): Make sure that thunks really are emitted
2169         when requested.
2170
2171 2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
2172
2173         * mangle.c (write_chars): New macro.
2174         (hwint_to_ascii): New function
2175         (write_number): Use it.
2176         (write_integer_cst): Deal with really big numbers.
2177
2178 2001-04-25  Mark Mitchell  <mark@codesourcery.com>
2179
2180         * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
2181         the clone.
2182
2183 2001-04-25  Nathan Sidwell  <nathan@codesourcery.com>
2184
2185         * decl.c (grokdeclarator): Set context of namespace scope
2186         TYPE_DECLS.
2187
2188 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
2189
2190         * cp/optimize.c: Include hashtab.h.
2191         (struct inline_data): Add tree_pruner.
2192         (expand_call_inline, expand_calls_inline): Use it when calling
2193         walk_tree.
2194         (optimize_function): Initialize and free tree_pruner.
2195
2196 2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
2197
2198         Lazy __FUNCTION__ generation.
2199         * cp-tree.def (FUNCTION_NAME): Remove.
2200         * cp-tree.h (function_name_declared_p): Remove.
2201         (cp_fname_init): Prototype.
2202         * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
2203         don't call declare_function_name. Call start_fname_decls.
2204         (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
2205         clobber the line number.
2206         (cp_fname_init): New function.
2207         (start_function): Call start_fname_decls.
2208         (finish_function): Call finish_fname_decls.
2209         * lex.c (reswords): Add slots for __FUNCTION__ et al.
2210         (rid_to_yy): Add mappings for __FUNCTION__ et al.
2211         * optimize.c (maybe_clone_body): Remove function_name_declared_p.
2212         * parse.y (VAR_FUNC_NAME): New token.
2213         (primary): Add VAR_FUNC_NAME.
2214         * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
2215         generation.
2216         (tsubst, FUNCTION_NAME case): Remove.
2217         (tsubst_copy, FUNCTION_NAME case): Remove.
2218         (tsubst_expr, DECL_STMT case): Be careful with a
2219         DECL_PRETTY_FUNCTION_P.
2220         (instantiate_decl): Remove function_name_declared_p.
2221         * semantics.c (begin_compound_statement): Don't call
2222         declare_function_name here.
2223         (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
2224         (finish_translation_unit): Call finish_fname_decls.
2225         (expand_body): Remove function_name_declared_p.
2226         * typeck2.c (digest_init): Allow any ERROR_MARK.
2227
2228 2001-04-24  Nathan Sidwell  <nathan@codesourcery.com>
2229
2230         * pt.c (tsubst_decl): Use VOID_TYPE_P.
2231         * semantics.c: Fix some typos.
2232
2233 2001-04-23  Phil Edwards  <pme@sources.redhat.com>
2234
2235         * cp/decl2.c (flag_honor_std):  Always initialize to 1.
2236
2237 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2238
2239         * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
2240
2241 2001-04-23  Jason Merrill  <jason_merrill@redhat.com>
2242
2243         * except.c (build_throw): Wrap the initialization of the exception
2244         object in a MUST_NOT_THROW_EXPR.
2245         (do_free_exception): #if 0.
2246
2247 2001-04-20  Mark Mitchell  <mark@codesourcery.com>
2248
2249         * cp-tree.h (finish_enum): Change prototype.
2250         * decl.c (finish_enum): Reorganize.
2251         * parse.y (structsp): Adjust calls to finish_enum.
2252
2253 2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
2254
2255         * tree.c (cp_tree_equal): Adjust final switch formatting. Add
2256         't' case.
2257
2258 2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
2259
2260         * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
2261         (layout_empty_base): Return at end flag.
2262         (build_base_field): Likewise.
2263         (build_base_fields): Likewise.
2264         (layout_virtual_bases): Don't add 1 to eoc value.
2265         (end_of_class): Use full size for empty bases.
2266         (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
2267         empty bases. Don't add 1 to eoc value. Only add trailing padding
2268         if we're an empty class with no empty bases.
2269         (dump_class_hierarchy): Dump size and alignment.
2270
2271 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
2272
2273         * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
2274         ICS_BAD_FLAG.
2275
2276 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
2277
2278         * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
2279         is found, look first if name does not match the structure name.
2280
2281 2001-04-19  Mark Mitchell  <mark@codesourcery.com>
2282
2283         * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
2284         set.
2285         (SET_DECL_LANGUAGE): New macro.
2286         * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
2287         (pushdecl): Likewise.
2288         (build_library_fn_1): Likewise.
2289         (build_cp_library_fn): Likewise.
2290         (grokfndecl): Likewise.
2291         (grokvardecl): Mark `extern "C"' variables as having C linkage.
2292         * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
2293         * lex.c (retrofit_lang_decl): Likewise.
2294         * mangle.c (mangle_decl_string): Don't mangle the names of
2295         variables declared with C language linkage.
2296         * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
2297
2298 2001-04-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2299
2300         * semantics.c (simplify_aggr_init_exprs_r): Don't restore
2301         flag_access_control from uninitialized storage.
2302
2303 2001-04-15  Mark Mitchell  <mark@codesourcery.com>
2304
2305         * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
2306         * mangle.c (write_pointer_to_member_type): Fix mangling of
2307         pointers to cv-qualified member function types.
2308
2309         * init.c (build_delete): Create a SAVE_EXPR for the address if
2310         we're going to use it more than once.
2311
2312 2001-04-13  Mark Mitchell  <mark@codesourcery.com>
2313
2314         * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
2315         (expand_ptremfunc_cst): Change prototype.
2316         (delta2_from_ptrmemfunc): Remove.
2317         * expr.c (cplus_expand_constant): Adjust call to
2318         expand_ptrmemfunc_cst.
2319         * typeck.c (build_ptrmemfunc1): Simplify.
2320         (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
2321         results in a constant.
2322         (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
2323         (delta2_from_ptrmemfunc): Remove.
2324         (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
2325
2326 2001-04-12  Jason Merrill  <jason_merrill@redhat.com>
2327
2328         * cp-tree.h (decl_namespace_list): New macro.
2329         (struct saved_scope): Add decl_ns_list.
2330         * decl.c (mark_saved_scope): Mark it.
2331         * decl2.c: Lose static decl_namespace_list.
2332         (init_decl2): Don't save it.
2333
2334 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2335
2336         * cp-tree.h (warn_return_type, yylex): Delete redundant
2337         declarations.
2338
2339         * decl.c (current_class_depth, global_namespace): Likewise.
2340
2341         * decl2.c (current_class_depth, flag_gnu_xref): Likewise
2342
2343         * repo.c (flag_use_repository): Likewise.
2344
2345 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2346
2347         * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
2348         set_block, pushdecl, getdecls, gettags, init_decl_processing,
2349         maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
2350         lvalue_or_else, print_lang_statistics, comp_target_types,
2351         unsigned_type, signed_type, signed_or_unsigned_type,
2352         build_function_call, mark_addressable, incomplete_type_error):
2353         Delete redundant declarations.
2354
2355 2001-04-11  Jason Merrill  <jason_merrill@redhat.com>
2356
2357         * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
2358         (TYPE_ANONYMOUS_P): New macro.
2359         (TAGGED_TYPE_P): New macro.
2360         * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
2361         (grokfndecl, grokvardecl, grokdeclarator): Likewise.
2362         * tree.c (no_linkage_helper): Likewise.
2363         * semantics.c (begin_class_definition): Likewise.
2364         * pt.c (convert_template_argument): Likewise.
2365         * lex.c (check_for_missing_semicolon): Likewise.
2366
2367 2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
2368
2369         * class.c (dfs_unshared_virtual_bases): New function.
2370         (mark_primary_bases): Call it.
2371         (check_bases): Ignore virtual bases when determining
2372         nearly-emptiness.
2373
2374 2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
2375
2376         * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
2377
2378 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
2379
2380         * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
2381         cloned function to the clone.
2382
2383 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2384
2385         * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
2386
2387         * semantics.c: Include expr.h.
2388
2389 2001-04-11  Nathan Sidwell  <nathan@codesourcery.com>
2390
2391         * method.c (implicitly_declare_fn): Commonize code for copy ctor
2392         and assignment op. Set TREE_USED for parameter.
2393
2394 2001-04-10  Mark Mitchell  <mark@codesourcery.com>
2395
2396         * class.c (find_final_overrider_data): Add `candidates'.
2397         (dfs_find_final_overrider): Don't issue error messages
2398         prematurely.
2399         (find_final_overrider): Issue error messages here.
2400         (build_base_field): Don't warn about amgibuous direct bases here.
2401         (warn_about_ambiguous_direct_bases): New function.
2402         (layout_class_type): Use it.
2403
2404 2001-04-10  Richard Henderson  <rth@redhat.com>
2405
2406         * typeck.c (build_array_ref): Push the array reference inside
2407         COMPOUND_EXPR and COND_EXPR.
2408
2409 2001-04-05  Mark Mitchell  <mark@codesourcery.com>
2410
2411         * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
2412         * decl.c (duplicate_decls): Adjust accordingly.
2413         (maybe_commonize_var): Likewise.
2414         (grokfndecl): Likewise.
2415         (start_function): Likewise.
2416         (start_method): Likewise.
2417         * decl2.c (key_method): Likewise.
2418         (import_export_decl): Likewise.
2419         * method.c (implicitly_declare_fn): Likewise.
2420         * optimize.c (maybe_clone_body): Likewise.
2421
2422 2001-04-05  Benjamin Kosnik  <bkoz@redhat.com>
2423
2424         * lang-specs.h: Add __DEPRECATED.
2425
2426 2001-04-05  J"orn Rennecke <amylaar@redhat.com>
2427
2428         * search.c (get_dynamic_cast_base_type): When building a new
2429         constant, set its type to ssizetype.
2430
2431 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
2432
2433         * optimize.c (expand_call_inline): Only add newly inlined statements
2434         into inlined_stmts.
2435
2436 2001-04-03  Mark Mitchell  <mark@codesourcery.com>
2437
2438         * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
2439         (OPERATOR_FORMAT): Likewise.
2440         (OPERATOR_TYPENAME_FORMAT): Likewise.
2441         * operators.def: Remove old name-mangling information.
2442         * decl.c (grok_op_properties): Adjust accordingly.
2443         * lex.c (init_operators): Likewise.
2444         * rtti.c (get_tinfo_decl): Issue error messages about types that
2445         have variable size.
2446
2447 2001-04-03  Mark Mitchell  <mark@codesourcery.com>
2448
2449         * decl2.c (import_export_decl): Don't call import_export_class
2450         when processing an inline member function.
2451         * semantics.c (expand_body): Call import_export_decl before
2452         emitting inline functions.
2453
2454 2001-03-28  Richard Henderson  <rth@redhat.com>
2455
2456         IA-64 ABI Exception Handling:
2457         * cp-tree.def (EH_SPEC_BLOCK): New.
2458         (MUST_NOT_THROW_EXPR): New.
2459         * cp-tree.h: Update changed function declarations.
2460         (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
2461         (CPTI_CALL_UNEXPECTED): New.
2462         (struct cp_language_function): Rename x_eh_spec_try_block
2463         to x_eh_spec_block.
2464         (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
2465         * decl.c (current_binding_level): If no current function
2466         bindings, revert to scope_chain.
2467         (initialize_predefined_identifiers): Remove __cp_push_exception.
2468         (store_parm_decls): Use begin_eh_spec_block.
2469         (finish_function): Use finish_eh_spec_block.
2470         (mark_lang_function): Update for name changes.
2471         * decl2.c (finish_file): No mark_all_runtime_matches.
2472         * dump.c (cp_dump_tree): Handle new tree codes.
2473         * error.c (dump_expr) [BIND_EXPR]: Fix typo.
2474         * except.c (catch_language_init, catch_language): Remove.
2475         (init_exception_processing): Don't set language code.
2476         Initialize call_unexpected_node, protect_cleanup_actions,
2477         eh_personality_libfunc, lang_eh_runtime_type.
2478         (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
2479         (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
2480         (prepare_eh_type): Split out type canonicalizations ...
2481         (build_eh_type_type): ... from here.
2482         (build_eh_type_type_ref): Remove.
2483         (mark_all_runtime_matches): Remove.
2484         (build_exc_ptr): New.
2485         (do_begin_catch, do_end_catch): New.
2486         (do_pop_exception): Remove.
2487         (build_terminate_handler): Remove.
2488         (choose_personality_routine): Split out language choice from ...
2489         (initialize_handler_parm): ... here.
2490         Use MUST_NOT_THROW_EXPR.
2491         (expand_start_catch_block): Use do_begin_catch.  Simplify Java
2492         exception object handling.
2493         (expand_start_eh_spec, expand_end_eh_spec): Remove.
2494         (expand_exception_blocks, alloc_eh_object): Remove.
2495         (begin_eh_spec_block, finish_eh_spec_block): New.
2496         (do_allocate_exception, do_free_exception): New.
2497         (expand_throw): Merge into ...
2498         (build_throw): ... here.  Update for abi.
2499         * expr.c (cplus_expand_expr): No expand_internal_throw.
2500         Handle MUST_NOT_THROW_EXPR.
2501         * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
2502         * semantics.c (*) Update for except.h name changes.
2503         (genrtl_try_block): No protect_with_terminate.
2504         (genrtl_eh_spec_block): New.
2505         (genrtl_handler): Don't emit the goto here.
2506         (cp_expand_stmt): Handle EH_SPEC_BLOCK.
2507         (genrtl_finish_function): Don't expand_exception_blocks.
2508         * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
2509
2510 2001-03-28  Richard Henderson  <rth@redhat.com>
2511
2512         * decl.c (struct named_label_list): Rename eh_region to
2513         in_try_scope, add in_catch_scope.
2514         (struct binding_level): Rename eh_region to is_try_scope,
2515         add is_catch_scope.
2516         (note_level_for_try): Rename from note_level_for_eh.
2517         (note_level_for_catch): New.
2518         (poplevel): Copy both is_try_scope and is_catch_scope to
2519         the named_label_list struct.
2520         (check_previous_goto_1): Don't check for catch block via
2521         DECL_ARTIFICIAL; use in_try_scope instead.
2522         (check_goto): Likewise.
2523         * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
2524         * except.c (expand_start_catch_block): Call note_level_for_catch.
2525         * semantics.c (begin_compound_stmt): Update for note_level_for_try.
2526
2527 2001-03-27  Richard Henderson  <rth@redhat.com>
2528
2529         * except.c: Use USING_SJLJ_EXCEPTIONS instead of
2530         exceptions_via_longjmp.
2531
2532 2001-03-27  Phil Edwards  <pme@sources.redhat.com>
2533
2534         * pt.c (check_default_tmpl_args):  Make error messages clearer.
2535
2536 2001-03-26  Phil Edwards  <pme@sources.redhat.com>
2537
2538         * error.c:  Also undefine 'A' macro used for cp_printers definition.
2539
2540 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2541
2542         * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
2543
2544 2001-03-26  Mike Yang <yang@research.att.com>
2545             Mark Mitchell  <mark@codesourcery.com>
2546
2547         * dump.c (dump_access): New function.
2548         (cp_dump_tree): Use it.  Dump basetype information for class
2549         types.
2550
2551 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
2552
2553         * Makefile.in (optimize.o): Depend on params.h.
2554         (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
2555         (init_decl_processing): Set flag_no_inline when doing
2556         inlining-on-trees.
2557         * optimize.c: Include params.h.
2558         (struct inline_data): Improve documentation of FNS.  Add
2559         FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
2560         (INSNS_PER_STMT): New macro.
2561         (remap_block): Use CLONING_P.
2562         (inlinable_function_p): Don't inline big functions.
2563         (expand_call_inline): Keep track of how much inlining we've done.
2564         (optimize_function): Set FIRST_INLINED_FN.
2565         (maybe_clone_body): Set CLONING_P.
2566         * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
2567         tree nodes.
2568         (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
2569         rest_of_compilation.  Clear DECL_RTL for local variables
2570         afterwards.
2571         (clear_decl_rtl): New function.
2572
2573 2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>
2574
2575         Implement DR 209
2576         * cp-tree.h (skip_type_access_control,
2577         reset_type_access_control): Prototype.
2578         * decl.c (grokdeclarator): Access of friends is not checked.
2579         * parse.y (component_decl_list): Reset type access control.
2580         * semantics.c (decl_type_access_control): Clear
2581         current_type_lookups.
2582         (save_type_access_control): Don't save if not deferring.
2583         (skip_type_access_control, reset_type_access_control): New
2584         functions.
2585         (begin_class_definition): Do type access control for basetypes.
2586         Start deferred access control.
2587         (finish_class_definition): Resume immediate access control if
2588         this is a local class.
2589
2590 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2591
2592         * class.c (add_method): Use memcpy/memmove, not bcopy.
2593
2594         * decl.c (duplicate_decls): Likewise.
2595
2596 2001-03-23  Jakub Jelinek  <jakub@redhat.com>
2597
2598         * mangle.c (write_discriminator): Use `_0' for discriminator 1,
2599         not `_'.
2600
2601 2001-03-23  Jakub Jelinek  <jakub@redhat.com>
2602
2603         * decl.c (local_names): Define.
2604         (push_local_name): New.
2605         (grok_reference_init): Return init if initializing static reference
2606         variable with non-constant instead of emitting it.
2607         Move expand_static_init call to cp_finish_decl.
2608         (layout_var_decl): Call push_local_name.
2609         (maybe_commonize_var): Allow inlining functions even if they have
2610         static local variables, use comdat_linkage for them if flag_weak.
2611         (check_initializer): Call obscure_complex_init if
2612         grok_reference_init returned nonzero.
2613         (save_function_data): Clear x_local_names.
2614         (pop_cp_function_context): Free x_local_names.
2615         (mark_inlined_fns): Remove.
2616         (mark_lang_function): Mark x_local_names.
2617         (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
2618         Mark inlined_fns as tree, remove call to mark_inlined_fns.
2619         * class.c (alter_access): Ensure DECL_ACCESS is never set if
2620         DECL_DISCRIMINATOR_P.
2621         * cp-tree.h (cp_language_function): Add x_local_names.
2622         (lang_decl_flags): Add discriminator into u2.
2623         (lang_decl_inlined_fns): Remove.
2624         (lang_decl): inlined_fns is now a TREE_VEC.
2625         (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
2626         * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
2627         TREE_VEC, not a custom structure.
2628         (optimize_function): Likewise.
2629         * mangle.c (discriminator_for_local_entity): Discriminate among
2630         VAR_DECL local entities.
2631         * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
2632         is not valid.
2633
2634 2001-03-22  Bryce McKinlay  <bryce@albatross.co.nz>
2635
2636         Add support for Java interface method calls.
2637         * cp-tree.h (struct lang_type): Add java_interface flag.
2638         (TYPE_JAVA_INTERFACE): New macro.
2639         * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
2640         by setting TYPE_JAVA_INTERFACE.
2641         * call.c (java_iface_lookup_fn): New static.
2642         (build_over_call): If calling a method declared in a
2643         TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
2644         expression which resolves the function address.
2645         (build_java_interface_fn_ref): New function.
2646
2647 2001-03-22  Richard Henderson  <rth@redhat.com>
2648
2649         * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
2650         * except.c: Don't include it.
2651
2652 2001-03-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2653             based on an idea from Joe Buck <jbuck@synopsys.com>
2654
2655         * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
2656         New nonterminals.
2657         (data_def, component_decl): Add reductions to bad_decl.
2658
2659 2001-03-22  Jakub Jelinek  <jakub@redhat.com>
2660
2661         * method.c (do_build_assign_ref): Don't use build_modify_expr for
2662         anonymous aggregates, since they don't have assignment operator
2663         method.
2664         * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
2665         assignment operators for anonymous structure fields.
2666
2667 2001-03-21  Jason Merrill  <jason@redhat.com>
2668
2669         * pt.c (instantiate_decl): Abort if we see a member constant
2670         instantiation that doesn't already have its initializer.
2671         Downgrade explicit instantiation without definition to pedwarn.
2672
2673         * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
2674         * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
2675         (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
2676
2677         * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
2678         (pending_vtables): Remove.
2679         * decl2.c (pending_vtables): Remove.
2680         (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
2681         CLASSTYPE_VTABLE_NEEDS_WRITING.
2682         (import_export_class): Likewise.
2683         (init_decl2): Don't mark pending_vtables.
2684         * lex.c (handle_pragma_vtable): Just sorry.
2685         * pt.c (instantiate_class_template): Don't mess with
2686         CLASSTYPE_VTABLE_NEEDS_WRITING.
2687         (mark_class_instantiated): Likewise.
2688         * ptree.c (print_lang_type): Don't print it.
2689         * semantics.c (begin_class_definition): Don't set it.
2690
2691         * pt.c (template_tail): Replace with last_pending_template.
2692         (maybe_templates, maybe_template_tail): Remove.
2693         (add_pending_template): Adjust.
2694         (instantiate_pending_templates): Adjust.
2695
2696         * cp-tree.h (struct saved_scope): Remove lang_stack field.
2697         (current_lang_stack): Remove.
2698         * decl.c (maybe_push_to_top_level): Don't initialize it.
2699         (duplicate_decls): Use current_lang_depth.
2700         (xref_basetypes): Likewise.
2701         * class.c (current_lang_depth): New fn.
2702         (push_lang_context): Use more varray functionality.
2703         (pop_lang_context): Likewise.
2704
2705         * error.c (GLOBAL_THING): Always use '__'.
2706
2707 2001-03-21  Mark Mitchell  <mark@codesourcery.com>
2708
2709         * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
2710
2711         * mangle.c (mangle_decl_string): Mangle the names of overloaded
2712         operators, even when they have `extern "C"' linkage.
2713
2714 2001-03-19  Mark Mitchell  <mark@codesourcery.com>
2715
2716         * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
2717         COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2718         where it's not necessary.
2719         (add_method): Remove optimization involving comparison of
2720         DECL_ASSEMBLER_NAME.
2721         (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
2722         COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2723         where it's not necessary.
2724         (check_methods): Likewise.
2725         (build_clone): Likewise.
2726         (built_vtt): Likewise.
2727         * cp-tree.h (DECL_NEEDED_P): Likewise.
2728         * decl.c (pushtag): Likewise.
2729         (duplicate_decls): Likewise.
2730         (pushdecl): Likewise.
2731         (builtin_function): Likewise.
2732         (build_library_fn_1): Set DECL_LANGUAGE for library functions.
2733         (build_cp_library_fn): Likewise.
2734         (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
2735         COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2736         where it's not necessary.
2737         (make_rtl_for_nonlocal_decl): Likewise.
2738         (cp_finish_decl): Likewise.
2739         (grokfndecl): Likewise.
2740         (grokvardecl): Likewise.
2741         (grokdeclarator): Likewise.
2742         (start_function): Likewise.
2743         (cp_missing_return_ok_p): Likewise.
2744         * decl2.c (grokclassfn): Likewise.
2745         (check_classfn): Likewise.
2746         (finish_static_data_member_decl): Likewise.
2747         (grokfield): Likewise.
2748         * error.c (GLOBAL_IORD_P): Remove.
2749         (dump_global_iord): Improve output.
2750         (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
2751         * except.c (nothrow_libfn_p): Summarily reject any function not in
2752         namespace-scope.
2753         * init.c (build_java_class_ref): Don't explicitly set
2754         DECL_ASSEMBLER_NAME after calling mangle_decl.
2755         * mangle.c (mangle_decl_string): Handle extern "C" functions.
2756         (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
2757         * method.c (set_mangled_name_for_decl): Don't explicitly set
2758         DECL_ASSEMBLER_NAME after calling mangle_decl.
2759         (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
2760         IDENTIFIER_GLOBAL_VALUE for the thunk.
2761         * pt.c (set_mangled_name_for_template_decl): Remove.
2762         (check_explicit_specialization): Don't use it.
2763         (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
2764         (tsubst_friend_function): Likewise.
2765         (tsubst_decl): Likewise.
2766         (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
2767         * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
2768         COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2769         where it's not necessary.
2770         (tinfo_base_init): Likewise.
2771         (create_real_tinfo_var): Likewise.
2772         * search.c (looup_field_1): Likewise.
2773         * semantics.c (finish_named_return_value): Likewise.
2774         * tree.c (init_tree): Set lang_set_decl_assembler_name.
2775
2776 2001-03-15  Gabriel Dos Reis  <gdr@codesourcery.com>
2777
2778         Correct semantics restrictions checking in throw-expression.
2779         * except.c (is_admissible_throw_operand): New function.
2780         (build_throw): Use it.
2781
2782 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
2783
2784         * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
2785         and its ilk.
2786
2787 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
2788
2789         * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
2790         * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
2791         * decl.c (duplicate_decls): Likewise.
2792         (builtin_function): Likewise.
2793         (build_library_fn): Likewise.
2794         (build_cp_library_fn): Likewise.
2795         (check_initializer): Likewise.
2796         (cp_finish_decl): Likewise.
2797         * decl2.c (grokfield): Likewise.
2798         (grok_function_init): Remove #if 0'd code.
2799         (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
2800         * friend.c (do_friend): Likewise.
2801         * init.c (get_temp_regvar): Likewise.
2802         * method.c (make_thunk): Likewise.
2803         * pt.c (tsubst_friend_function): Likewise.
2804         (tsubst_decl): Likewise.
2805         (regenerate_decl_from_template): Likewise.
2806         * semantics.c (genrtl_named_return_value): Likewise.
2807         (expand_body): Likewise.
2808         (genrtl_finish_function): Likewise.
2809         * tree.c (cp_tree_equal): Likewise.
2810
2811 2001-03-12  Nathan Sidwell  <nathan@codesourcery.com>
2812
2813         * call.c (convert_like_real): Add extra semantics to INNER
2814         parameter. Don't convert to temporary if a user conversion
2815         gives us an lvalue that we're about to bind to a reference.
2816         Set INNER to indicate pending reference binding on recursive
2817         calls.
2818
2819 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2820
2821         * cp/lex.c: Delete duplicate pending_lang_change.
2822
2823 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2824
2825         * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
2826         Similarly.
2827         * cp/repo.c (get_base_filename, open_repo_file): Similarly.
2828         * cp/cp-tree.h: Remove file_name_nondirectory prototype.
2829
2830 2001-03-09  Zack Weinberg  <zackw@stanford.edu>
2831
2832         * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
2833
2834 2001-03-08  Stan Shebs  <shebs@apple.com>
2835
2836         * cp-tree.h (set_identifier_local_value): Remove unused decl.
2837
2838 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
2839
2840         * spew.c: Remove references to CPP_OSTRING.
2841
2842 2001-03-06  Andrew Haley  <aph@redhat.com>
2843
2844         * typeck.c (convert_arguments): Check that we have an fndecl.
2845
2846 2001-03-05  Andrew Haley  <aph@redhat.com>
2847
2848         * typeck.c (convert_arguments): Don't do ellipsis conversion for
2849         __built_in_constant_p.
2850
2851 2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
2852
2853         * typeck.c (build_static_cast): Allow enum to enum conversions
2854         as per DR 128.
2855
2856 2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
2857
2858         * class.c (check_field_decls): Pointers to member do not a
2859         non-pod struct make, as per DR 148.
2860
2861 2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
2862
2863         * call.c (joust): cp_pedwarn when using gnu extension concerning
2864         worst conversion sequences.
2865
2866 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
2867
2868         * decl.c: Replace all uses of 'boolean' with 'bool'.
2869
2870 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
2871
2872         * lang-specs.h: Add zero initializer for cpp_spec field to
2873         all array elements that need one.  Don't put an #ifdef inside
2874         the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
2875         use it.
2876
2877 2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
2878
2879         Implement using decls inside template functions.
2880         * decl2.c (validate_nonmember_using_decl): Don't special case
2881         fake_std_node in the global namespace. Don't reject early when
2882         processing a template.
2883         (do_local_using_decl): Add to statement tree. Don't do further
2884         processing when building a template.
2885         * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
2886
2887 2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
2888
2889         * decl2.c (do_nonmember_using_decl): Don't complain if we find
2890         same function. Do complain about ambiguating extern "C"
2891         declarations.
2892
2893 2001-02-28  Nathan Sidwell  <nathan@codesourcery.com>
2894
2895         Remove floating point and complex type template constant parms.
2896         * pt.c (convert_nontype_argument): Remove REAL_TYPE and
2897         COMPLEX_TYPE extensions.
2898         (invalid_nontype_parm_type_p): Likewise.
2899
2900 2001-02-27  Jeffrey Oldham  <oldham@codesourcery.com>
2901
2902         * except.c (call_eh_info): Revert "match_function"'s type.
2903
2904 2001-02-27  Nathan Sidwell  <nathan@codesourcery.com>
2905
2906         Fix ctor vtable vcall offsets.
2907         * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
2908         (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
2909         (get_matching_base): Remove.
2910         (get_original_base): New function.
2911         (build_vtbl_initializer): Initialize vid.rtti_binfo.
2912         Use a virtual thunk for a ctor vtable with an index
2913         (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
2914         primary base within a constructor vtable. Only set
2915         BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
2916         when primary base has been lost.
2917         * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
2918
2919 2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
2920
2921         * call.c (joust): Ensure more_specialized()'s argument length
2922         parameter has correct value for constructors.
2923
2924 2001-02-26  Nathan Sidwell  <nathan@codesourcery.com>
2925
2926         * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
2927
2928         * decl.c (mark_inlined_fns): Prototype.
2929
2930 2001-02-22  Mark Mitchell  <mark@codesourcery.com>
2931
2932         * spew.c (yylex): Correct handling of friends.
2933
2934 2001-02-22  Mark Mitchell  <mark@codesourcery.com>
2935
2936         * mangle.c (write_encoding): Pass write_function_type the
2937         FUNCTION_DECL for the function being encoded.
2938         (write_function_type): Pass it along to write_bare_function_type.
2939         (write_bare_function_type): Pass it along to write_method_parms.
2940         (write_method_parms): Don't mangle the compiler-generated
2941         parameters to a constructor or destructor.
2942
2943 2001-02-22  Andreas Jaeger  <aj@suse.de>
2944
2945         * optimize.c: Include toplev.h for
2946         note_deferral_of_defined_inline_function prototype.
2947
2948 2001-02-22  Jakub Jelinek  <jakub@redhat.com>
2949
2950         * cp-tree.h (struct lang_decl_inlined_fns): New.
2951         (struct lang_decls): Add inlined_fns.
2952         (DECL_INLINED_FNS): New macro.
2953         * optimize.c (struct inline_data): Add inlined_fns.
2954         (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
2955         (inlinable_function_p): Likewise, fix typo in comment,
2956         function is not inlinable if it already inlined function currently
2957         being optimized.
2958         (expand_call_inline): Add fn to inlined_fns if necessary.
2959         (optimize_function): Initialize inlined_fns.
2960         Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
2961         * decl.c (mark_inlined_fns): New function.
2962         (lang_mark_tree): Call it.
2963
2964 2001-02-21  Jason Merrill  <jason@redhat.com>
2965
2966         * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
2967         (DECL_UNINLINABLE): Move to middle-end.
2968
2969         * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
2970         * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
2971         * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
2972         * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
2973         parms and outer BLOCK.  note_deferral_of_defined_inline_function.
2974
2975         * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
2976         second parm of op=.
2977
2978 2001-02-19  Mark Mitchell  <mark@codesourcery.com>
2979
2980         * decl2.c (set_decl_namespace): Allow explicit instantiations in
2981         any namespace.
2982
2983 2001-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2984
2985         * optimize.c (expand_call_inline): Don't walk subtrees of type
2986         nodes.
2987
2988 2001-02-18  Mark Mitchell  <mark@codesourcery.com>
2989
2990         * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
2991         for a destructor.
2992
2993 2001-02-18  Jason Merrill  <jason@redhat.com>
2994
2995         Do put the VTT parameter in DECL_ARGUMENTS.
2996         * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
2997         (current_vtt_parm): New macro.
2998         (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
2999         (DECL_HAS_VTT_PARM_P): New macro.
3000         (DECL_VTT_PARM): Remove.
3001         (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
3002         * decl.c (duplicate_decls): Only copy the operator code if
3003         appropriate.
3004         (start_function): Set current_vtt_parm.
3005         (lang_mark_tree): Don't mark vtt_parm.
3006         * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
3007         DECL_ARGUMENTS.  Set DECL_HAS_VTT_PARM_P.
3008         * class.c (build_clone): Maybe remove the VTT parm.
3009         * optimize.c (maybe_clone_body): Set up the VTT parm.
3010         * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
3011         * call.c (build_over_call): Just allow the VTT arg.
3012         * method.c (make_thunk): Don't set DECL_VTT_PARM.
3013         (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
3014         (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
3015         * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
3016         * error.c (dump_function_decl): Likewise.
3017         * call.c (build_user_type_conversion_1, convert_like_real): Abort
3018         if we try to call a constructor with in-charge or VTT parms.
3019         * method.c (skip_artificial_parms_for): New fn.
3020         * call.c (add_function_candidate, build_over_call): Call it.
3021         * call.c (build_new_method_call): Use current_vtt_parm.
3022         * init.c (expand_virtual_init): Likewise.
3023         * class.c (same_signature_p): No longer static.
3024         * cp-tree.h: Declare it.
3025         * search.c (look_for_overrides_r): Use it.
3026
3027 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
3028
3029         * cp-tree.h (new_abi_rtti_p): Remove.
3030         (name_mangling_version): Likewise.
3031         (flag_do_squangling): Likewise.
3032         * class.c (build_rtti_vtbl_entries): Remove old ABI support.
3033         * decl.c (grokfndecl): Likewise.
3034         * decl2.c (name_mangling_version): Remove.
3035         (flag_do_squangling): Likewise.
3036         (lang_f_options): Remove `squangle'.
3037         (unsupported_options): Add `squangle'.
3038         (cxx_decode_option): Issue a warning about uses of
3039         -fname-mangling-version.
3040         (finish_file): Remove old ABI support.
3041         * pt.c (check_explicit_specialization): Likewise.
3042         (tsubst_decl): Likewise.
3043         * rtti.c (init_rtti_processing): Likewise.
3044         (build_headof): Likewise.
3045         (get_tinfo_decl_dynamic): Likewise.
3046         (tinfo_from_decl): Likewise.
3047         (build_dynamic_cast_1): Likewise.
3048         (synthesize_tinfo_var): Likewise.
3049         * init.c (build_new): Allow enumeration types for the array-bounds
3050         in a direct-new-declarator.
3051
3052         * semantics.c (finish_typeof): Resolve OFFSET_REFs.
3053
3054         * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
3055         TREE_PROTECTED from the template being specialized.
3056
3057 2001-02-17  Jason Merrill  <jason@redhat.com>
3058
3059         * decl2.c (build_artificial_parm): Set TREE_READONLY.
3060
3061         * decl.c (bad_specifiers): Allow throw specs on things with
3062         pointer-to-function or -member-function type.
3063         * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
3064         a pmf.
3065
3066 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
3067
3068         * call.c (check_dtor_name): Handle template names correctly.
3069
3070 2001-02-16  Jason Merrill  <jason@redhat.com>
3071
3072         * cp-tree.h (DECL_USE_VTT_PARM): Remove.
3073         * decl2.c (maybe_retrofit_in_chrg): Don't create it.
3074         * optimize.c (maybe_clone_body): Don't substitute it.
3075         * call.c (build_new_method_call): Check in_chrg instead.
3076         * init.c (expand_virtual_init): Likewise.
3077
3078 2001-02-16  Gabriel Dos Reis  <gdr@codesourcery.com>
3079
3080         * decl.c (check_tag_decl): Make sure a typedef for an anonymous
3081         class-type introduces at least a type-name.
3082
3083 2001-02-16  Jakub Jelinek  <jakub@redhat.com>
3084
3085         * call.c (convert_like_real): Create a temporary for non-lvalue.
3086
3087 2001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
3088
3089         * cp-tree.h: Fix typos in comments.
3090
3091 2001-02-16  Jason Merrill  <jason@redhat.com>
3092
3093         * optimize.c (remap_block): If we're compiling a clone, pass the
3094         new block to insert_block.
3095
3096 2001-02-16  Mark Mitchell  <mark@codesourcery.com>
3097
3098         * semantics.c (finish_asm_stmt): Robustify.
3099
3100 2001-02-15  Mark Mitchell  <mark@codesourcery.com>
3101
3102         * pt.c (push_template_decl_real): Don't remangle the name of a
3103         class template.
3104
3105 2001-02-15  Jim Meyering  <meyering@lucent.com>
3106
3107         * Make-lang.in (c++.install-common): Depend on installdirs.
3108         (c++.install-info): Likewise.
3109         (c++.install-man): Likewise.
3110
3111 2001-02-15  Mark Mitchell  <mark@codesourcery.com>
3112
3113         * typeck2.c (build_m_component_ref): Robustify.
3114
3115 2001-02-15  Alexandre Oliva  <aoliva@redhat.com>
3116
3117         * friend.c (do_friend): Don't take the nested [template] class
3118         into account when deciding whether to warn about the friend
3119         function not referring to a template function.
3120
3121 2001-02-14  Jakub Jelinek  <jakub@redhat.com>
3122
3123         * typeck.c (build_unary_op): Clarify error message.
3124
3125 2001-02-08  Aldy Hernandez  <aldyh@redhat.com>
3126
3127         * parse.y (component_constructor_declarator): allow optional
3128         parentheses around constructor class name.
3129
3130 2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3131
3132         * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
3133         section.
3134         * init.c (emit_base_init): Remove incorrect comment about
3135         virtual bases.
3136         * method.c (make_thunk): Fix comment alignment.
3137
3138 2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3139
3140         Kill remnants of this is variable.
3141         * cp-tree.h (flag_this_is_variable): Remove.
3142         * decl2.c (flag_this_is_variable): Remove.
3143         * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
3144         (build_vbase_path): The path is non-static, even in a cdtor.
3145         (resolves_to_fixed_type_p): Add additional return value.
3146         * search.c (init_vbase_pointers): Adjust.
3147         * tree.c (lvalue_p_1): Adjust.
3148         * typeck.c (mark_addressable): Adjust.
3149
3150 2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3151
3152         * pt.c (unify): Don't check cv quals of array types.
3153
3154 2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3155
3156         * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
3157         check whether we already have the type.
3158
3159 2001-02-13  Mark Mitchell  <mark@codesourcery.com>
3160
3161         * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
3162         * call.c (build_op_delete_call): Simplify to remove duplicate
3163         code.
3164         * class.c (clone_function_decl): Don't build the deleting variant
3165         of a non-virtual destructor.
3166         * decl.c (finish_destructor_body): Don't call delete if this is a
3167         non-virtual destructor.
3168         * init.c (build_delete): Explicitly call `operator delete' when
3169         deleting an object with a non-virtual destructor.
3170
3171 2001-02-13  Jason Merrill  <jason@redhat.com>
3172
3173         * lang-specs.h: Add more __EXCEPTIONS.
3174
3175 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3176
3177         * typeck2.c (process_init_constructor): Check
3178         TREE_HAS_CONSTRUCTOR before issuing missing init warning.
3179
3180 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3181
3182         * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
3183         Remove spurious information in comment. Allow further
3184         adjustments of REFERENCE_TYPE args.
3185
3186 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3187
3188         * errfn.c (cp_deprecated): Tweak diagnostic text.
3189         * parse.y (new_initializer): Deprecate initializer lists
3190         extension.
3191
3192 2001-02-12  Mark Mitchell  <mark@codesourcery.com>
3193
3194         Remove old ABI support.
3195
3196 2001-02-11  Mark Mitchell  <mark@codesourcery.com>
3197
3198         * decl2.c (flag_vtable_thunks): Always set it to 1.
3199         (flag_new_abi): Likewise.
3200         * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
3201
3202         * Makefile.in (g++spec.o): Fix typo.
3203
3204 2001-02-09  Jason Merrill  <jason@redhat.com>
3205
3206         * lang-specs.h: Restore definition of __EXCEPTIONS.
3207
3208 2001-02-08  Jason Merrill  <jason@redhat.com>
3209
3210         * search.c (shared_member_p): New function.
3211         (lookup_field_r): Use it.
3212         * cp-tree.h (SHARED_MEMBER_P): Remove.
3213
3214         * method.c (process_overload_item): Handle template-dependent array
3215         bounds.
3216         * pt.c (type_unification_real): If we end up with undeduced nontype
3217         parms, try again.
3218
3219         * decl.c (lookup_name_real): Tweak warning to refer to decls, not
3220         types.
3221
3222         * typeck2.c (friendly_abort): Don't say anything if we have
3223         earlier errors or sorries.
3224
3225         * decl.c (check_tag_decl): Notice attempts to redefine bool and
3226         wchar_t.  Ignore if in_system_header.
3227
3228         * decl.c (maybe_push_cleanup_level): New fn...
3229         (start_decl_1): ...split out from here.
3230         * cvt.c (build_up_reference): Use it.
3231         * cp-tree.h: Declare it.
3232
3233 2001-02-07  Mark Mitchell  <mark@codesourcery.com>
3234
3235         * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
3236         spec.
3237
3238 2001-02-06  Nathan Sidwell  <nathan@codesourcery.com>
3239
3240         * pt.c (lookup_template_class): Make sure it's a primary
3241         template or template_template_parm when called from the parser.
3242         (instantiate_template_class): Add assertion.
3243
3244 2001-02-05  Alexandre Oliva  <aoliva@redhat.com>
3245
3246         * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
3247         from error_mark_node.
3248
3249 2001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
3250
3251         Fix specification and implementation bugs in V3 ABI
3252         construction vtables.
3253         * cp-tree.h (flag_dump_class_layout): New flag.
3254         (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
3255         (BINFO_LOST_PRIMARY_P): New flag.
3256         (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
3257         (BINFO_PRIMARY_MARKED_P): Rename to ...
3258         (BINFO_PRIMARY_P): ... here.
3259         (binfo_via_virtual): New prototype.
3260         * decl2.c (flag_dump_class_layout): New flag.
3261         (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
3262         use `=' as a file name separator.
3263         * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
3264         bases.
3265         (build_vtbl_address): If this is a virtual primary base, then
3266         get the vtbl of what it is ultimately primary for.
3267         * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
3268         for BINFO_PRIMARY_P.
3269         (dfs_skip_nonprimary_vbases_markedp): Likewise.
3270         (get_shared_vbase_if_not_primary): Likewise.
3271         (dfs_get_pure_virtuals): Likewise.
3272         (expand_upcast_fixups): Likewise.
3273         (fixup_virtual_upcast_offsets): Likewise.
3274         (dfs_find_vbase_instance): Likewise.
3275         (find_vbase_instance): Likewise.
3276         (binfo_from_vbase): Adjust comment to reflect reality.
3277         (binfo_via_virtual): New function.
3278         * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
3279         for binfo walking during VTT construction.
3280         (dfs_mark_primary_bases): Remove.
3281         (force_canonical_binfo_r): New function.
3282         (force_canonical_binfo): New function.
3283         (mark_primary_virtual_base): New function.
3284         (mark_primary_bases): Walk in inheritance graph order, use
3285         mark_primary_virtual_base.
3286         (determine_primary_base): Use some more intermediate variables.
3287         (dfs_find_final_overrider): Don't check for overriding along a
3288         virtual path.
3289         (dfs_modify_vtables): Walk into primary virtual bases too.
3290         (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
3291         (build_base_fields): Likewise.
3292         (dfs_set_offset_for_unshared_vbases): Likewise.
3293         (layout_virtual_bases): Likewise.
3294         (end_of_class): Likewise.
3295         (finish_struct_1): Call dump_class_hierarchy, if requested.
3296         (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
3297         (dump_class_hierarchy_r): Add stream parameter. Emit more information.
3298         (dump_class_hierarchy): Add file parameter. Append to file, if
3299         required.
3300         (finish_vtbls): Adjust accumulate_vtbl_inits call.
3301         Use canonical base for virtual bases.
3302         (build_vtt): Add more comments. Adjust build_vtt_inits call.
3303         (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
3304         Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
3305         VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
3306         virtual VTTs.
3307         (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
3308         from DATA.  We want virtual primary bases and all bases via virtual.
3309         Only set BINFO_VPTR_INDEX for top level. Look up from a primary
3310         virtual base when not a construction vtable.
3311         (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
3312         (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
3313         Use canonical bases when processing virtual bases.
3314         (accumulate_vtbl_inits): We're interested in any base via a
3315         virtual path.
3316         (dfs_accumulate_vtbl_inits): If this is a primary virtual base
3317         within a construction vtable, determine what is being overridden.
3318         (build_vtbl_initializer): Add more comments
3319         (add_vcall_offset_vtbl_entries_1): Adjust comment.
3320         (build_rtti_vtbl_entries): Check if the base has lost its
3321         primary.
3322
3323 2001-02-05  Mark Mitchell  <mark@codesourcery.com>
3324
3325         * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
3326
3327 2001-02-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3328
3329         * decl.c (pushdecl): Call abort instead of fatal.
3330         * except.c (decl_is_java_type): Call fatal_error instead of fatal.
3331         * init.c (build_new_1): Likewise.
3332         (build_java_class_ref): Call internal_error and fatal_error, not fatal.
3333         * decl.c (build_typename_type): hash_table_init now returns void.
3334         decl.c (init_decl_processing): Make an error non-fatal.
3335
3336 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
3337
3338         * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
3339         Document.
3340         (CLASSTYPE_INTERFACE_KNOWN): Likewise.
3341         (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
3342         (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
3343         (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
3344         * decl.c (maybe_commonize_var): Use the new name-mangling where
3345         appropriate.
3346         * decl2.c (comdat_linkage): Enhance comments.  Make all
3347         compiler-generated things static, if COMDAT is not available.
3348         (get_tinfo_decl): Do not make typeinfo objects that belong in the
3349         library COMDAT.
3350         (tinfo_base_init): Use the correct mangled name for typeinfo
3351         strings, and push them into the global scope.
3352         (typeinfo_in_lib_p): New function.
3353         (synthesize_tinfo_var): Use it.
3354         (create_real_tinfo_var): Likewise.
3355
3356 2001-02-03  Jakub Jelinek  <jakub@redhat.com>
3357
3358         * decl.c (push_class_binding): Use context_for_name_lookup instead
3359         of CP_DECL_CONTEXT.
3360         * search.c (context_for_name_lookup): Remove static.  Check for NULL
3361         context in the loop.
3362         * cp-tree.h (context_for_name_lookup): Add prototype.
3363
3364 2001-02-02  Jakub Jelinek  <jakub@redhat.com>
3365
3366         * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
3367         * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
3368         Remove.
3369         * call.c (convert_class_to_reference, build_user_type_conversion_1,
3370         add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
3371
3372 2001-02-02  Mark Mitchell  <mark@codesourcery.com>
3373
3374         * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
3375         of macros used when compiling g++spec.c.
3376         * g++spec.c (lang_specific_driver): Link with the shared
3377         libgcc by default.
3378
3379 2001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
3380
3381         * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
3382         make_reference_declarator, make_call_declarator), method.c
3383         (implicitly_declare_fn), parse.y (namespace_using_decl,
3384         notype_unqualified_id, expr_or_declarator, new_type_id,
3385         after_type_declarator, direct_after_type_declarator,
3386         notype_declarator, complex_notype_declarator,
3387         complex_direct_notype_declarator, qualified_id,
3388         notype_qualified_id, overqualified_id, direct_new_declarator,
3389         absdcl, direct_abstract_declarator, conversion_declarator), pt.c
3390         (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
3391         instead of build_parse_node.
3392
3393 2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3394
3395         * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
3396         (minus_one_node): Moved to top level gcc directory.  Renamed
3397         to integer_minus_one_node.
3398
3399         * init.c (init_init_processing): Don't set minus_one_node.
3400         (build_vec_init): Use integer_minus_one_node.
3401
3402         * rtti.c (get_tinfo_decl_dynamic): Likewise.
3403
3404 2001-01-28  Jakub Jelinek  <jakub@redhat.com>
3405
3406         * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
3407         identical and they would be replaced with constant, remove
3408         MODIFY_EXPR from the tree.
3409
3410 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3411
3412         * Make-lang.in: Remove all dependencies on defaults.h.
3413         * call.c: Don't include defaults.h.
3414         * decl.c: Likewise.
3415         * decl2.c: Likewise.
3416         * except.c: Likewise.
3417         * pt.c: Likewise.
3418         * rtti.c: Likewise.
3419         * tree.c: Likewise.
3420         * typeck.c: Likewise.
3421
3422 2001-01-25  Jakub Jelinek  <jakub@redhat.com>
3423
3424         * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
3425         operators even in "C" linkage.
3426         * method.c (set_mangled_name_for_decl): Likewise.
3427         * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
3428         overloaded operators in "C" linkage.
3429
3430 2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
3431
3432         * pt.c (tsubst_decl): Remove IN_DECL parameter.
3433         (tsubst_arg_types): Check parameter is not void.
3434         (tsubst): Adjust tsubst_decl call.
3435
3436 2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
3437
3438         * call.c (add_builtin_candidate): Quote std properly, from
3439         previous change.
3440
3441 2001-01-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3442
3443         * pt.c (check_explicit_specialization): Clone constructors and
3444         destructors.
3445
3446 2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
3447
3448         * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
3449         indicates anything special about template depth. Make sure we
3450         only count the user visible template classes.
3451
3452 2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
3453
3454         * call.c (build_conv): Typo in comment.
3455         (add_builtin_candidate): Add more explanation.
3456         Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
3457         Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
3458         when we have enumeral types.
3459         (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
3460         candidates for relops and eqops.
3461         (joust): Simplify control flow. Allow a non-template user
3462         function to hide a builtin.
3463
3464 2001-01-22  Nathan Sidwell  <nathan@codesourcery.com>
3465
3466         * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
3467         (more_specialized): Add deduction parameter.
3468         * call.c (joust): Adjust more_specialized call.
3469         * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
3470         UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
3471         (get_bindings_order): Remove.
3472         (get_bindings_real): Add DEDUCE parameter.
3473         (maybe_adjust_types_for_deduction): Return extra unify flags. Do
3474         REFERENCE_TYPE jig for DEDUCE_ORDER.
3475         (type_unification_real): Deal with DEDUCE_ORDER. Use result of
3476         maybe_adjust_types_for_deduction.
3477         (more_specialized): Add DEDUCE parameter. Call get_bindings_real
3478         directly.
3479         (try_one_overload): Use result of maybe_adjust_types_for_deduction.
3480         (check_cv_quals_for_unify): Use new unify qualifier flags.
3481         (unify): Clear new unify qualifier flags.
3482         (get_bindings_real): Add DEDUCE parameter.
3483         (get_bindings): Adjust call to get_bindings_real.
3484         (get_bindings_overload): Likewise.
3485         (most_specialized_instantiation): Adjust call to
3486         more_specialized.
3487
3488 2001-01-19  Jason Merrill  <jason@redhat.com>
3489
3490         * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
3491
3492         * decl.c (init_decl_processing): Just force -fvtable-thunks on if
3493         -fnew-abi.
3494
3495 2001-01-19  Ute Pelkmann  <scope.muc@t-online.de>
3496
3497         * decl2.c (arg_assoc_class): Fix double iteration logic.
3498
3499 2001-01-19  Jason Merrill  <jason@redhat.com>
3500
3501         * init.c (build_delete): Always call convert_force to strip cv-quals.
3502
3503         * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
3504         * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
3505         * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
3506
3507 2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3508
3509         * search.c (get_vbase_1): Count only virtual bases.
3510
3511 2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3512
3513         * class.c (duplicate_tag_error): Robustify flag clearing.
3514
3515 2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3516
3517         * cp-tree.h (lookup_template_class): Add complain parm.
3518         * decl.c (lookup_namespace_name): Adjust call to
3519         lookup_template_class.
3520         (make_typename_type): Likewise.
3521         * semantics.c (finish_template_type): Likewise.
3522         * pt.c (lookup_template_class): Add complain parm. Adjust.
3523         (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
3524         (tsubst): Likewise.
3525
3526 2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3527
3528         * pt.c (copy_default_args_to_explicit_spec): Preserve
3529         object's CV quals. Reorganize.
3530
3531 2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3532
3533         * typeck.c (build_modify_expr): Say `initialization' for
3534         INIT_EXPRs.
3535         * init.c (build_default_init): Convert to enumeral type, if
3536         needed.
3537
3538 2001-01-18  Jakub Jelinek  <jakub@redhat.com>
3539
3540         * parse.y (nomods_initdcl0): Properly set things up for
3541         initdcl0_innards.
3542
3543 2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3544
3545         * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
3546         (type_unification_real): Set it.
3547         (unify): Use it.
3548
3549 2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3550
3551         * decl.c (finish_destructor_body): Convert to vbase pointer here.
3552
3553 2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3554
3555         * semantics.c (begin_class_definition): Check we're not inside a
3556         template parm list.
3557
3558 2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3559
3560         * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
3561         BASELINK_P.
3562
3563 2001-01-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3564
3565         * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
3566         * call.c (build_over_call): Add comment.
3567
3568 2001-01-16 Daniel Berlin <dberlin@redhat.com>
3569
3570         * cvt.c (ocp_convert): Handle vector type conversion
3571         * typeck2.c (digest_init): Handle vector type initializations
3572
3573 2001-01-16  Phil Edwards  <pme@sources.redhat.com>
3574
3575         * g++spec.c:  Don't add libraries needlessly if -fsyntax-only
3576           was given.
3577
3578 2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
3579
3580         * pt.c (check_nontype_parm): Rename to ...
3581         (invalid_nontype_parm_type_p): ... here.
3582         (process_template_parm): Adjust.
3583         (convert_template_argument): Adjust.
3584
3585 2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
3586
3587         * pt.c (check_nontype_parm): New function.
3588         (process_template_parm): Use it.
3589         (convert_template_argument): Use it.
3590         (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
3591         member.
3592
3593 2001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
3594
3595         * tree.c: Add defaults.h
3596         (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
3597         * Make-lang.in (cp/tree.o): Add defaults.h.
3598
3599 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3600
3601         * Make-lang.in (CXX_C_OBJS): Add c-format.o.
3602
3603 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3604
3605         * g++.1: Change to be ".so man1/gcc.1".
3606
3607 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3608
3609         * Make-lang.in (c++.info, c++.install-info): Build and install g++
3610         internals info.
3611         (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
3612         ($(srcdir)/cp/g++int.info): New target.
3613         * gxxint.texi: Add info directory entry.  Use @@ in email address.
3614         * .cvsignore: Update.
3615
3616 2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
3617
3618         * typeck.c (build_c_cast): Do template processing earlier.
3619         Always pedwarn on array casts.
3620
3621 2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
3622
3623         * friend.c (make_friend_class): Make sure a templated class is
3624         actually a template.
3625
3626 2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3627
3628         * decl2.c (get_guard): Set linkage from guarded decl.
3629
3630 2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3631
3632         * call.c (convert_default_arg): Check for unprocessed
3633         DEFAULT_ARG.
3634         * cp-tree.h (replace_defarg): Move to spew.c.
3635         (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
3636         spew.c, which is where they really are.
3637         (done_pending_defargs): Declare.
3638         (unprocessed_defarg_fn): Declare.
3639         * decl.c (replace_defarg): Move to spew.c
3640         * parse.y (structsp): Call done_pending_defargs.
3641         * spew.c (defarg_fns): Rearrange list structure.
3642         (defarg_fnsdone): New static variable.
3643         (defarg_depfns): New static variable.
3644         (init_spew): Adjust.
3645         (add_defarg_fn): Store the type in TREE_TYPE.
3646         (do_pending_defargs): Detect and deal with ordering constraints
3647         and circularity.
3648         (done_pending_defargs): New function.
3649         (unprocessed_defarg_fn): New function.
3650         (replace_defarg): Moved from decl.c. Robustify. Don't save
3651         if circularity detected.
3652
3653 2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3654
3655         * pt.c (unify): Check array has a domain, before checking
3656         whether it is variable sized.
3657
3658 2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3659
3660         * decl.c (grokparms): Unobfuscate and get correct diagnostic for
3661         parameters with pointers to arrays of unknown bound.
3662
3663 2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3664
3665         * parse.y (template_parm_header, template_spec_header): New
3666         reductions. Split out from ...
3667         (template_header): ... here. Use them.
3668         (template_template_parm): Use template_parm_header.
3669         * semantics.c (finish_template_template_parm): Add assert.
3670
3671 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
3672
3673         * mangle.c (write_builtin_type): Fix thinko.
3674
3675         * pt.c (copy_default_args_to_explicit_spec_1): New function.
3676         (copy_default_args_to_explicit_spec): Likewise.
3677         (check_explicit_specialization): Use it.
3678
3679         * class.c (finish_struct_1):  Remove last argument in call to
3680         make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
3681         * decl.c (builtin_function): Likewise.
3682         (build_cp_library_fn): Likewise.
3683         (check_initializer): Likewise.
3684         (make_rtl_for_nonlocal_decl): Likewise.
3685         (cp_finish_decl): Likewise.
3686         (start_function): Likewise.
3687         * decl2.c (finish_anon_union): Likewise.
3688         * friend.c (do_friend): Likewise.
3689         * init.c (build_java_class_ref): Likewise.
3690         * method.c (make_thunk): Likewise.
3691         * pt.c (tsubst_friend_function): Likewise.
3692         * semantics.c (expand_body): Likewise.
3693
3694 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
3695
3696         * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
3697         looking at DECL_CLONED_FUNCTION for non-functions.
3698
3699 2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
3700
3701         * error.c (dump_template_parameter): Use parm to determine how
3702         to print default value.
3703
3704 2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
3705
3706         * class.c (duplicate_tag_error): Clear more flags.
3707
3708 2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
3709
3710         * call.c (build_new_method_call): Use binfo_for_vbase.
3711
3712 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3713
3714         * cp-tree.h (flag_cond_mismatch): Don't declare.
3715         * decl2.c (flag_cond_mismatch): Don't define.
3716         (lang_f_options): Remove cond-mismatch.
3717         (unsupported_options): Add cond-mismatch.
3718
3719 2001-01-09  Nathan Sidwell  <nathan@codesourcery.com>
3720
3721         * class.c (handle_using_decl): Reject using of constructor name
3722         of sourcing class. Allow injecting of a method with same name as
3723         nested class. Fixup error messages.
3724
3725 2001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
3726
3727         * decl2.c (lang_decode_option): Handle -Wformat=2.
3728
3729 2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
3730
3731         * cp-tree.h (lang_decl_flags): Rename defined_in_class to
3732         initialized_in_class.
3733         (DECL_DEFINED_IN_CLASS_P): Rename to ...
3734         (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
3735         * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
3736         (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
3737         * pt.c (check_default_tmpl_args): Adjust for
3738         DECL_INITIALIZED_IN_CLASS_P.
3739         (instantiate_class_template): Likewise.
3740         (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
3741
3742         * class.c (finish_struct): Constify saved_filename.
3743
3744 2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
3745
3746         * class.c (duplicate_tag_error): Adjust diagnostic.
3747         (finish_struct): Locally set location to start of struct.
3748         * decl.c (fixup_anonymous_aggr): Use cp_error_at.
3749
3750 2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
3751
3752         * decl.c (struct binding_level): Adjust class_shadowed comments
3753         to reflect reality.
3754         (push_class_level_binding): Adjust comments to reflect reality.
3755         Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
3756         Don't set TREE_VALUE on the class_shadowed list.
3757
3758 2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3759
3760         * decl2.c (acceptable_java_type): Allow references too.
3761         * init.c (build_java_class_ref): When using the new ABI, search
3762         `class$' and have it mangled with `mangle_decl.'
3763         * mangle.c (write_java_integer_type_codes): New function.
3764         (write_builtin_type): Detect and mangle Java integer and real
3765         types.
3766
3767 2001-01-07  Mark Mitchell  <mark@codesourcery.com>
3768
3769         * decl2.c (grokfield): Don't accept `asm' specifiers for
3770         non-static data members.
3771
3772 2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3773
3774         * expr.c (cplus_expand_expr): Don't reset `target'.
3775
3776 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3777
3778         * cp/decl2.c (cxx_post_options): Call cpp_post_options.
3779
3780 2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
3781
3782         * parse.y (template_datadef): Check for error_mark_node.
3783
3784 2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
3785
3786         * cp-tree.def (DEFAULT_ARG): Make `x' class.
3787
3788 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
3789
3790         * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
3791         (record_builtin_type): Make non-static.
3792         (flag_short_double): Don't declare.
3793         (init_decl_processing): Remove the creation of many tree nodes now
3794         in c_common_nodes_and_builtins.
3795         (build_void_list_node): New function.
3796         * decl2.c (flag_short_double, flag_short_wchar): Don't define.
3797         * cp-tree.h (flag_short_wchar): Don't declare.
3798
3799 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
3800
3801         * call.c (build_conv): Don't use build1 for USER_CONV.
3802         * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
3803
3804 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
3805
3806         * lex.c (lang_init): Call c_common_lang_init.
3807
3808 2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
3809
3810         * search.c (lookup_fnfields_here): Remove.
3811         (look_for_overrides_r): Use lookup_fnfields_1.
3812         Ignore functions from using declarations.
3813
3814 2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
3815
3816         Implement exceptions specifiers for implicit member functions.
3817         * cp-tree.h (merge_exceptions_specifiers): Declare new function.
3818         * method.c (synthesize_exception_spec): New function.
3819         (locate_dtor, locate_ctor, locate_copy): New functions.
3820         (implicitly_declare_fn): Generate the exception spec too.
3821         * search.c (check_final_overrider): Check artificial functions
3822         too.
3823         * typeck2.c (merge_exception_specifiers): New function.
3824
3825 2001-01-03  Jason Merrill  <jason@redhat.com>
3826
3827         * init.c (build_default_init): New fn.
3828         (perform_member_init): Split out from here.
3829         (build_new_1): Use it.  Simplify initialization logic.
3830         (build_vec_init): Take an array, rather than a pointer and maxindex.
3831         Speed up simple initializations.  Don't clean up if we're assigning.
3832         * cp-tree.h: Adjust.
3833         * decl2.c (do_static_initialization): Remove TREE_VEC case.
3834         * parse.y (new_initializer): Return void_zero_node for ().
3835         * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
3836         * typeck2.c (digest_init): Only complain about user-written
3837         CONSTRUCTORs.
3838
3839 2000-12-22  Mike Stump  <mrs@wrs.com>
3840
3841         * decl2.c: (max_tinst_depth): Increase to 50.
3842
3843 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
3844
3845         * class.c (invalidate_class_lookup_cache): Zero the
3846         previous_class_values.
3847         * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
3848         TREE_INT_CST_HIGH.
3849         (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
3850         * decl.c (free_bindings): New variable.
3851         (push_binding): Don't create a new binding if we have one on the
3852         free list.
3853         (pop_binding): Put old bindings on the free list.
3854         (init_decl_processing): Use size_int, not build_int_2.
3855         Register free_bindings as a GC root.
3856         (cp_make_fname_decl): Use size_int, not build_int_2.
3857         (push_inline_template_parms_recursive): Likewise.
3858         (end_template_parm_list): Likewise.
3859         (for_each_template_parm): Do not use walk_tree_without_duplicates.
3860         (tsubst_template_parms): Use size_int, not build_int_2.
3861         (tsubst): Likewise.
3862         * rtti.c (get_vmi_pseudo_type_info): Likewise.
3863
3864 2001-01-02  Richard Henderson  <rth@redhat.com>
3865
3866         * parse.y (asm): Set ASM_INPUT_P.
3867
3868 2001-01-02  Jason Merrill  <jason@redhat.com>
3869
3870         * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
3871         for v3 ABI.
3872
3873         * typeck.c (cp_truthvalue_conversion): New fn.
3874         * cvt.c (ocp_convert): Use it.
3875
3876         * cp-tree.h: Lose c-common.c decls.
3877
3878         * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
3879         * cvt.c (convert_to_void): Use type_unknown_p.
3880
3881         * typeck.c (strip_all_pointer_quals): Also strip quals from
3882         pointer-to-member types.
3883
3884         * Make-lang.in (cp/TAGS): Use --no-globals.  Ignore parse.c, and treat
3885         parse.y as C.
3886
3887         * call.c (build_new_method_call): Do evaluate the object parameter
3888         when accessing a static member.
3889         * typeck.c (build_component_ref): Likewise.
3890
3891 2001-01-02  Andreas Jaeger  <aj@suse.de>
3892
3893         * decl.c (cp_missing_noreturn_ok_p): New.
3894         (init_decl_processing): Set lang_missing_noreturn_ok_p.
3895
3896 \f
3897 Copyright (C) 2001 Free Software Foundation, Inc.
3898
3899 Copying and distribution of this file, with or without modification,
3900 are permitted in any medium without royalty provided the copyright
3901 notice and this notice are preserved.