OSDN Git Service

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