OSDN Git Service

* builtins.c (expand_builtin_setjmp_receiver): Const-ify.
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 486533b..a7a008f 100644 (file)
@@ -1,3 +1,728 @@
+2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * class.c (build_vtable_entry_ref): Const-ify.
+       * decl.c (predefined_identifier,
+       initialize_predefined_identifiers): Likewise. 
+       * init.c (build_new_1): Likewise.
+       * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
+       Likewise.
+
+2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
+
+       * optimize.c (struct inline_data): Moved to ../tree-inline.c.
+       (INSNS_PER_STMT): Likewise.
+       (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
+       (copy_body, initialize_inlined_parameters): Likewise.
+       (declare_return_variable, inlinable_function_p): Likewise.
+       (expand_call_inline, expand_calls_inline): Likewise.
+       (optimize_inline_calls, clone_body): Likewise.
+       * tree.c (walk_tree): Moved to ../tree-inline.c.
+       (walk_tree_without_duplicates): Likewise.
+       (copy_tree_r, remap_save_expr): Likewise.
+
+2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
+
+       * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
+       (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
+       * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
+       (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
+       (flag_inline_trees): Moved declaration to ../tree-inline.h.
+       (walk_tree): Moved declaration to ../tree-inline.h.
+       (walk_tree_without_duplicates, copy_tree_r): Likewise.
+       (remap_save_expr): Likewise.
+       * decl.c: Include tree-inline.h.
+       (lang_mark_tree): Don't mark inlined_fns.
+       * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
+       * optimize.c: Include tree-inline.h.
+       (optimize_inline_calls): Move declaration to ../tree.h, as
+       non-static.
+       (remap_decl): Use language-independent constructs and hooks.
+       (remap_block, copy_body_r, declare_return_variable): Likewise.
+       (inlinable_function_p): Likewise.  Don't test for
+       DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
+       no longer language-specific.
+       (optimize_inline_calls): Likewise.  Make it non-static.  Moved
+       call of dump_function to...
+       (optimize_function): Here...
+       (clone_body): New function, extracted from...
+       (maybe_clone_body): ... here.  Build decl_map locally and pass
+       it on to clone_body.
+       * pt.c, semantics.c: Include tree-inline.h.
+       * tree.c: Likewise.
+       (cp_walk_subtrees): New language-specific hook for tree inlining.
+       (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
+       cp_is_overload_p, cp_auto_var_in_fn_p,
+       cp_copy_res_decl_for_inlining): Likewise.
+       (walk_tree): Move language-specific constructs into...
+       (cp_walk_subtrees): this new function.
+       (copy_tree_r): Use language-independent constructs and hooks.
+       (init_tree): Initialize tree inlining hooks.
+       (remap_save_expr): Adjust prototype so that the declaration
+       does not require the definition of splay_tree.
+
+2001-10-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
+       to build the declaration instead of the declaration itself.
+
+2001-10-02  Jason Merrill  <jason_merrill@redhat.com>
+
+       * spew.c (end_input): No longer static.
+       * cp-tree.h: Declare it.
+       * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
+
+2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * call.c (build_over_call), typeck.c (build_function_call_real):
+       Pass type attributes to check_function_format rather than name or
+       assembler name.  Don't require there to be a name or assembler
+       name to check formats.
+
+2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * decl.c (init_decl_processing): Don't call
+       init_function_format_info.  Initialize lang_attribute_table
+       earlier.
+       (builtin_function): Call decl_attributes.
+       (insert_default_attributes): New.
+
+2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
+
+       * decl.c (grokdeclarator): Copy array typedef handling from C
+       frontend.
+
+       * decl.c (grokdeclarator): Copy too-large array handling from C
+       frontend.
+
+2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config-lang.in (target_libs): Added target-gperf, so that we
+       don't try to build it if C++ is disabled.
+
+2001-09-23  Zack Weinberg  <zack@codesourcery.com>
+
+       * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
+       (cp/errfn.o): Delete rule.
+       (cp/error.o): Depend on flags.h.
+       * errfn.c: Delete file.
+       * cp-tree.h: Declare warn_deprecated.  Remove definitions of
+       TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
+       and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
+       cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
+       internal_error respectively.  Make cp_deprecated into a macro.
+       Don't define cp_printer typedef or declare cp_printers.
+       * error.c: Include flags.h.
+       Delete: struct tree_formatting_info, print_function_argument_list,
+       print_declaration, print_expression, print_function_declaration,
+       print_function_parameter, print_type_id, print_cv_qualifier_seq,
+       print_type_specifier_seq, print_simple_type_specifier,
+       print_elaborated_type_specifier, print_rest_of_abstract_declarator,
+       print_parameter_declaration_clause, print_exception_specification,
+       print_nested_name_specifier, and definition of cp_printers.
+       (locate_error): New function.
+       (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
+       rewritten in terms of locate_error and diagnostic.c.
+       (cp_tree_printer): Rename cp_printer; wire up to *_to_string
+       instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
+       (init_error): Adjust to match.
+
+Sat Sep 22 09:15:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * Make-lang.in (CXX_C_OBJS): Add attribs.o.
+
+2001-09-21  Richard Henderson  <rth@redhat.com>
+
+       * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
+       (build_vtbl_initializer): Likewise.
+       (build_vfn_ref): New.
+       * cp-tree.h: Declare it.
+       * call.c (build_over_call): Use it.
+       * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
+       * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
+
+Fri Sep 21 08:16:19 2001  J"orn Rennecke <amylaar@redhat.com>
+
+       * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
+
+2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       Table-driven attributes.
+       * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
+       * decl2.c (cplus_decl_attributes): Only take one attributes
+       parameter.
+       * cp-tree.c (cplus_decl_attributes): Update prototype.
+       * class.c (finish_struct), decl.c (start_decl, start_function),
+       decl2.c (grokfield), friend.c (do_friend), parse.y
+       (parse_bitfield): Update calls to cplus_decl_attributes.
+       * decl.c (grokdeclarator): Take a pointer to a single ordinary
+       attribute list.
+       * decl.h (grokdeclarator): Update prototype.
+       * decl2.c (grokfield): Take a single ordinary attribute list.
+       * friend.c (do_friend): Likewise.
+       * decl.c (shadow_tag, groktypename, start_decl,
+       start_handler_parms, grokdeclarator, grokparms, start_function,
+       start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
+       parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
+       (process_template_parm, do_decl_instantiation): Pass single
+       ordinary attribute lists around.
+       * decl.c (grokdeclarator): Correct handling of nested attributes.
+       Revert the patch
+       1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
+               * decl.c (grokdeclarator): Embedded attrs bind to the right,
+               not the left.
+       .
+       * cp-tree.h (cp_valid_lang_attribute): Remove declaration
+       (cp_attribute_table): Declare.
+       * decl.c (valid_lang_attribute): Don't define.
+       (lang_attribute_table): Define.
+       (init_decl_processing): Initialize lang_attribute_table instead of
+       valid_lang_attribute.
+       * tree.c (cp_valid_lang_attribute): Remove.
+       (handle_java_interface_attribute, handle_com_interface_attribute,
+       handle_init_priority_attribute): New functions.
+       (cp_attribute_table): New array.
+       * decl2.c (import_export_class): Don't use
+       targetm.valid_type_attribute.
+
+2001-09-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
+
+               * Make-lang.in (cp/error.o): Depend on real.h
+               * error.c: #include "real.h"
+
+2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
+       xmalloc/strcpy/strcat.
+
+2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
+       Const-ification.
+       * pt.c (tsubst_decl): Likewise.
+
+2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * decl2.c (lang_f_options): Const-ification.
+       * lex.c (cplus_tree_code_name): Likewise.
+       * spew.c (yyerror): Likewise.
+
+2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/3986
+       * class.c (force_canonical_binfo_r): Check & move an indirect
+       primary base first.
+       (force_canonical_binfo): Check that it's not already
+       canonical.
+       (mark_primary_virtual_base): Remove BINFO parameter.
+       (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
+
+2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
+
+       Remove TYPE_NONCOPIED_PARTS.
+       * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
+       CLASSTYPE_PURE_VIRTUALS.
+       (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
+       * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
+       (layout_class_type): Don't call fixup_inlin_methods here ...
+       (finish_struct_1): ... call it here.
+
+2001-09-04  Mark Mitchell  <mark@codesourcery.com>
+
+       * decl.c (duplicate_decls): Remove code deadling with
+       DECL_SAVED_INSNS.
+       * decl2.c (finish_file): Likewise.
+       * pt.c (instantiate_decl): Likewise.
+       * semantics.c (expand_body): Don't defer local functions if
+       they wouldn't be deferred for some other reason.  Don't
+       generate RTL for functions that will not be emitted.
+       (genrtl_start_function): Remove code deadling with
+       DECL_SAVED_INSNS.
+       (genrtl_finish_function): Likewise.
+
+2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/4203
+       * call.c (build_over_call): Do not optimize any empty base
+       construction.
+
+2001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       * error.c (dump_template_decl): Output template parameters
+       together with their specifiers.
+       Output `class' prefix for template template parameter.
+       (dump_decl): Fix formatting.
+
+2001-08-30  Kurt Garloff  <garloff@suse.de>
+
+       * optimize.c (inlinable_function_p): Allow only smaller single
+       functions. Halve inline limit after reaching recursive limit.
+
+2001-08-30  Joern Rennecke <amylaar@redhat.com>
+           Jason Merrill  <jason_merrill@redhat.com>
+
+       * class.c (build_vtable_entry_ref): Subtract in char*, not
+       ptrdiff_t.
+
+2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
+
+       * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
+       (build_cplus_array_type): Use cp_build_qualified_type, not
+       TYPE_MAIN_VARIANT, to get an unqualified version.
+
+       * decl2.c (grok_alignof): Lose.
+       (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
+       * typeck.c (c_alignof): Lose.
+       * semantics.c (finish_sizeof, finish_alignof): New.
+       * parse.y: Use them.
+       * cp-tree.h: Declare them.
+
+2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
+
+       * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
+       Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
+       * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
+
+2001-08-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * typeck2.c (add_exception_specifier): Only require complete type if
+       not in processing template declaration.
+
+2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
+       GNU_xref_start_scope and GNU_xref_end_scope.
+
+       * tree.c (TYPE_HASH): Moved to ../tree.h.
+
+2001-08-16  Mark Mitchell  <mark@codesourcery.com>
+
+       * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
+       on COMPOUND_EXPRs.
+
+2001-08-14  Richard Henderson  <rth@redhat.com>
+
+       * class.c, cp-tree.h (build_vfn_ref): Remove.
+       * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
+
+2001-08-13  Mark Mitchell  <mark@codesourcery.com>
+
+       * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
+       empty class assignment as having side-effects to avoid
+       spurious warnings.
+
+2001-08-13  Zack Weinberg  <zackw@panix.com>
+
+       * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
+       * except.c: Include libfuncs.h.
+
+2001-08-11  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
+
+       * decl.c (grokdeclarator): Clarify diagnostic message.
+
+2001-08-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       * decl2.c (do_nonmember_using_decl): Replace using directive
+       with using declaration in the error message.
+
+2001-08-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
+       criterion to avoid rebuilding expression tree instead of
+       processing_template_decl.
+
+2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
+
+       Support named return value optimization for inlines, too.
+       * decl.c (finish_function): Nullify returns here.
+       * semantics.c (genrtl_start_function): Not here.
+       (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
+       (nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
+       Also nullify the CLEANUP_STMT for the nrv.
+       * cp-tree.h: Declare it.
+       * optimize.c (declare_return_variable): Replace the nrv with the
+       return variable.
+       * typeck.c (check_return_expr): Be more flexible on alignment check.
+       Ignore cv-quals when checking for a matching type.
+
+2001-08-09  Richard Henderson  <rth@redhat.com>
+
+       * decl2.c (finish_objects): Use target hooks instead of
+       assemble_constructor and assemble_destructor.
+
+2001-08-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
+
+2001-08-07  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/3820
+       Stop using TYPE_NONCOPIED_PARTS.
+       * call.c (build_over_call): Be careful when copy constructing
+       or assigning to an empty class.
+       * class.c (check_bases_and_members): It has a
+       COMPLEX_ASSIGN_REF if it has a vptr.
+       (layout_class_type): Don't add empty class padding to
+       TYPE_NONCOPIED_PARTS.
+       (finish_struct_1): Don't add the VFIELD either.
+       * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
+       initialization.
+
+2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
+
+       * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
+
+2001-08-06  Richard Henderson  <rth@redhat.com>
+
+       * decl2.c (finish_objects): Pass a symbol_ref and priority to
+       assemble_{constructor,destructor}.  Remove priority handling.
+
+2001-08-05  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
+
+       Don't allow template-id in using-declaration.
+       * decl2.c (validate_nonmember_using_decl): Handle template-ids.
+       (do_class_using_decl): Likewise.
+
+2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
+
+       * cp/spew.c (read_token): No need to pop buffers.
+
+2001-08-02  Stan Shebs  <shebs@apple.com>
+
+       * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
+       (fnaddr_from_vtable_entry): Remove decl.
+       * method.c (use_thunk): Update comment.
+
+2001-08-01  Andrew Cagney  <ac131313@redhat.com>
+
+       * repo.c (get_base_filename): Change return value to const char
+       pointer.
+
+2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
+
+       Kill -fhonor-std.
+       * NEWS: Document.
+       * cp-tree.h (flag_honor_std): Remove.
+       (CPTI_FAKE_STD): Remove.
+       (std_node): Remove comment about it being NULL.
+       (fake_std_node): Remove.
+       * decl.c (in_fake_std): Remove.
+       (walk_namespaces_r): Remove fake_std_node check.
+       (push_namespace): Remove in_fake_std code.
+       (pop_namespace): Likewise.
+       (lookup_name_real): Remove fake_std_node check.
+       (init_decl_processing): Always create std_node. Always add
+       std:: things there.
+       (builtin_function): Always put non '_' fns in std.
+       * decl2.c (flag_honor_std): Remove.
+       (lang_f_options): Remove honor-std.
+       (unsupported_options): Add honor-std.
+       (set_decl_namespace): Remove fake_std_node check.
+       (validate_nonmember_using_decl): Likewise.
+       (do_using_directive): Likewise.
+       (handle_class_head): Likewise.
+       * dump.c (cp_dump_tree): Likewise.
+       * except.c (init_exception_processing): Adjust.
+       * init.c (build_member_call): Remove fake_std_node check.
+       (build_offset_ref): Likewise.
+       * lang-options.h: Remove -fhonor-std, -fno-honor-std.
+       * rtti.c (init_rtti_processing): Adjust.
+
+2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
+       operand while calling cp_tree_equal.
+
+2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
+
+       The 3.0 ABI no longer has vbase pointer fields.
+       * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
+       FORMAT_VBASE_NAME): Remove.
+       * method.c (do_build_copy_constructor): Adjust.
+       (do_build_assign_ref): Adjust.
+       * search.c (lookup_field_r): Adjust.
+       * typeck.c (build_component_ref): Adjust.
+
+       The 3.0 ABI always has a vtable pointer at the start of every
+       polymorphic class.
+       * rtti.c (build_headof_sub): Remove.
+       (build_headof): Adjust.
+       (get_tinfo_decl_dynamic): No need to check flag_rtti
+       here. Adjust.
+       (create_real_tinfo_var): Explain why we need a hidden name.
+
+2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/3631
+       * class.c (update_vtable_entry_for_fn): The fixed adjustment
+       of a virtual thunk should be from declaring base.
+
+2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
+       the shared virtual base, so preserving inheritance graph order.
+
+2001-07-30  Andreas Jaeger  <aj@suse.de>
+
+       * decl2.c: Remove unused var global_temp_name_counter.
+
+2001-07-28  Richard Henderson  <rth@redhat.com>
+
+       * method.c (pending_inlines): Remove.
+
+2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * class.c (mark_primary_virtual_base): Don't adjust base
+       offsets here.
+       (dfs_unshared_virtual_bases): Adjust them here.
+       (mark_primary_bases): Explain why we adjust at the end.
+
+2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * class.c (finish_struct_1): When copying the primary base's
+       VFIELD, make sure we find it is at offset zero.
+
+2001-07-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
+       tsubst_expr for default template arguments.
+
+2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/3621
+       * spew.c (yylex): Only copy the token's lineno, if it is
+       non-zero.
+
+2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/3624
+       * call.c (resolve_args): Simplify, call
+       convert_from_reference.
+       (build_new_op): Resolve and convert from reference ARG1
+       earlier. Adjust ARG2 & ARG3 resolve and conversion.
+
+2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * decl.c (last_function_parm_tags): Remove.
+       (current_function_parm_tags): Remove.
+       (init_decl_processing): Adjust.
+       (start_function): Adjust.
+       (store_parm_decls): Adjust.
+
+       PR c++/3152
+       * decl.c (grokdeclarator): Detect when a function typedef is
+       declaring a function, and create last_function_parms correctly.
+
+2001-07-25  Jason Merrill  <jason_merrill@redhat.com>
+
+       * call.c (joust): Only prefer a non-builtin candidate to a builtin
+       one if they have the same signature.
+
+       * cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
+       it rather than toplevel_bindings_p.  Give it a mangled name if static.
+       (convert_to_reference): Adjust.
+       * decl2.c (get_temp_name): Lose.
+       * mangle.c (mangle_ref_init_variable): New fn.
+       (mangle_guard_variable): Strip the ref-init header.
+       * cp-tree.h: Adjust.
+       * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
+       initializer.
+       (grok_reference_init): Always use DECL_INITIAL.
+
+2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/3416
+       * call.c (build_conditional_expr): Recheck args after
+       conversions.
+       * cp-tree.h (build_conditional_expr): Move to correct file.
+       * typeck.c (decay_conversion): Diagnose any unknown types
+       reaching here.
+       (build_binary_op): Don't do initial decay or default
+       conversions on overloaded functions.
+       (build_static_cast): Don't do a decay conversion here.
+
+2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/3543
+       * typeck.c (condition_conversion): Resolve an OFFSET_REF.
+       * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
+
+2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * class.c (build_vtbl_or_vbase_field): Remove, move into ...
+       (create_vtbl_ptr): ... here.
+
+2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * class.c (build_vbase_offset_vbtl_entries): Look for
+       non-primary base of which we are a sub vtable.
+
+2001-07-24  Phil Edwards  <pme@sources.redhat.com>
+
+       * semantics.c (finish_this_expr):  Remove unused code.
+
+2001-07-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       Simplify rtti, now we've only one ABI.
+       * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
+       CPTI_TINFO_VAR_ID.
+       (tinfo_decl_id, tinfo_var_id): Remove.
+       (get_typeid_1): Remove.
+       * rtti.c
+       (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
+       (typeid_ok_p): New function.
+       (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
+       (get_tinfo_decl): Remove old abi documentation.
+       (tinfo_from_decl): Remove.
+       (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
+       (get_typeid_1): Remove.
+       (get_base_offset): Remove.
+       (synthesize_tinfo_var): Absorb get_base_offset.
+       (create_real_tinfo_var): Don't use tinfo_decl_id.
+
+2001-07-23  Graham Stott  <grahams@redhat.com>
+
+       * cp/class.c (type_requires_array_cookie): Fix use of uninitialised
+       variable has_two_argument_delete_p.
+
+2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
+       * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
+       (CPTI_INDEX_IDENTIFIER): Remove.
+       (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
+       (delta2_identifier): Remove.
+       (index_identifier): Remove.
+       (pfn_or_delta2_identifier): Remove.
+       (flag_vtable_thunks): Remove.
+       (VTABLE_DELTA2_NAME): Remove.
+       (VTABLE_INDEX_NAME): Remove.
+       (FNADDR_FROM_VTABLE_ENTRY): Adjust.
+       (vfunc_ptr_type_node): Adjust.
+       (VTABLE_NAME_PREFIX): Adjust.
+       (build_vfn_ref): Lose first parameter.
+       (fixup_all_virtual_upcast_offsets): Remove.
+       * decl.c (initialize_predefined_identifiers): Remove
+       delta2_identifier, index_identifier, pfn_or_delta2_identifier.
+       (init_decl_processing): Remove no-vtable-thunk code.
+       * decl2.c (flag_vtable_thunks): Remove.
+       (mark_vtable_entries): Remove no-vtable-thunk code.
+       * error.c (dump_decl): Remove no-vtable-thunk code.
+       (dump_expr): Adjust ptr to member function code.
+       * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
+       code.
+       * rtti.c (build_headof): Remove no-vtable-thunk code.
+       (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
+       * search.c (get_base_distance): Remove expand_upcast_fixups case.
+       (virtual_context) Remove.
+       (expand_upcast_fixups): Remove.
+       (fixup_virtual_upcast_offsets): Remove.
+       (fixup_all_virtual_upcast_offsets): Remove.
+       * typeck.c (get_member_function_from_ptrfunc): Remove
+       no-vtable-thunk code.
+       * call.c (build_over_call): Adjust call to build_vfn_ref.
+       * class.c (build_vfn_ref): Lose first parameter. Remove
+       no-vtable-thunk code.
+       (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
+       (build_vtable_entry): Remove no-vtable-thunk code.
+
+2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
+
+       Remove old-abi remnants. Remove comments about old abi
+       behaviour. Remove refences to 'new-abi' in comments.
+       * cp-tree.h: Adjust comments.
+       (vbase_offsets_in_vtable_p): Delete.
+       (vcall_offsets_in_vtable_p): Delete.
+       (vptrs_present_everywhere_p): Delete.
+       (all_overridden_vfuns_in_vtables_p): Delete.
+       (merge_primary_and_secondary_vtables_p): Delete.
+       (TYPE_CONTAINS_VPTR_P): Adjust.
+       (VTT_NAME_PREFIX): Remove.
+       (CTOR_VTBL_NAME_PREFIX): Remove.
+       (init_vbase_pointers): Remove.
+       * class.c: Adjust coments.
+       (build_vbase_pointer_fields): Delete.
+       (build_vbase_pointer): Remove old-abi code.
+       (build_secondary_vtable): Likewise.
+       (modify_all_vtables): Likewise.
+       (create_vtable_ptr): Likewise.
+       (layout_class_type): Likewise.
+       (finish_struct_1): Likewise.
+       (finish_vtbls): Likewise.
+       (dfs_finish_vtbls): Delete.
+       (build_vbase_offset_vtbl_entries): Remove old-abi code.
+       * cvt.c: Adjust comments.
+       * decl.c: Adjust comments.
+       * decl2.c: Adjust comments.
+       * init.c: Adjust comments.
+       (construct_virtual_bases): Remove old-abi code.
+       * lang-specs.h: Remove -fno-new-abi.
+       * mangle.c: Adjust comments.
+       * rtti.c: Adjust comments.
+       (get_base_offset): Remove old-abi-code.
+       * search.c: Adjust comments.
+       (dfs_init_vbase_pointers): Remove.
+       (dfs_vtable_path_unmark): Remove.
+       (init_vbase_pointers): Remove.
+       * semantics.c: Adjust comments.
+       (emit_associated_thunks): Remove old-abi code.
+       * typeck.c: Adjust comments.
+
+2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
+
+       * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
+       params.h.
+
+2001-07-19  Mark Mitchell  <mark@codesourcery.com>
+
+       * class.c (finish_struct_anon): Forbid nested classes.
+
+2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * decl2.c: Don't include dwarfout.h and dwarf2out.h.
+       * optimize.c: Include debug.h.
+       (maybe_clone_body): Use debug hook.
+       * semantics.c: Include debug.h.
+       (expand_body): Use debug hook.
+
+2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
+
+2001-07-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * class.c (type_requires_array_cookie): New function.
+       (check_methods): Don't try to figure out whether the type needs a
+       cookie here.
+       (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
+       * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
+       (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
+       * pt.c (instantiate_class_template): Don't set
+       TYPE_VEC_DELETE_TAKES_SIZE.
+       * NEWS: Document ABI changes from GCC 3.0.
+
+2001-07-18  Xavier Delacour <xavier@fmaudio.net>,
+           Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+       * NEWS (Changes in GCC 3.0): Fix typo.
+
+2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * decl2.c (cplus_decl_attributes): Take a pointer to the node to
+       which attributes are to be attached, and a flags argument.  Update
+       call to decl_attributes.
+       (grokfield): Update call to decl_attributes.
+       * class.c (finish_struct): Update call to cplus_decl_attributes.
+       * cp-tree.h (cplus_decl_attributes): Update prototype.
+       * decl.c (start_decl, grokdeclarator, start_function): Update
+       calls to decl_attributes and cplus_decl_attributes.
+       * friend.c (do_friend): Update call to cplus_decl_attributes.
+       * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
+
+2001-07-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
+       for `register' variables with an asm-specification.
+
 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
 
        * semantics.c (finish_asm_stmt): Mark the output operands
 2001-05-14  Nick Clifton  <nickc@cambridge.redhat.com>
 
        * decl.c (duplicate_decls): Suppress warning about duplicate
-        decls if the first decl is a friend.
+       decls if the first decl is a friend.
 
 2001-05-12  Zack Weinberg  <zackw@stanford.edu>
 
 
 2001-04-30  Richard Henderson  <rth@redhat.com>
 
-        * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
+       * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
        * decl.c: Likewise.
 
 2001-04-30  Mark Mitchell  <mark@codesourcery.com>