OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [cp/] [ChangeLog-2001] - Rev 826

Compare with Previous | Blame | View Log

2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (build_user_type_conversion_1): Use my_friendly_assert
        rather than if ... abort.
        * cvt.c (convert_to_reference): Likewise.
        * semantics.c (setup_vtbl_ptr): Likewise.
        * pt.c (lookup_template_class): Comment typo.

2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/5125
        * pt.c (push_template_decl_real): Make sure DECL has
        DECL_LANG_SPECIFIC.

2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/335
        * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
        for non-reference fields.
        * typeck.c (require_complete_type): Use resolve_offset_ref).

2001-12-26  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/196
        * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.

2001-12-24  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/160
        * typeck.c (build_modify_expr): Remove old unreachable code & tidy
        up. Don't stabilize_references when initializing a reference.

2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * decl2.c (lang_f_options): Const-ify.

2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>

        * config-lang.in (diff_excludes): Remove.

2001-12-19  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/90
        * typeck.c (build_function_call_real): Use original function
        expression for errors.

2001-12-18  Jason Merrill  <jason@redhat.com>

        PR c++/3242
        * class.c (add_method): Do compare 'this' quals when trying to match a
        used function.  Don't defer to another used function.

2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (instantiate_clone): Remove, fold into ...
        (instantiate_template): ... here. Simplify by removing mutual
        recursion.
        * typeck2.c (build_m_component_ref): Don't cv qualify the function
        pointed to by a pointer to function.
        * class.c (delete_duplicate_fields_1): Typo.

2001-12-18  Jason Merrill  <jason@redhat.com>

        C++ ABI change: destroy value arguments in caller.
        * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
        create an extra binding level for the parameters.
        * decl.c (store_parm_decls): Don't do parameter cleanups.

2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (build_new_method_call): Use '%#V'.
        * error.c (cv_to_string): Use V parameter to determine padding.

2001-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>

        * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
        spellings in messages.

2001-12-17  Zack Weinberg  <zack@codesourcery.com>

        * cp-tree.h: Delete #defines for cp_error, cp_warning,
        cp_pedwarn, and cp_compiler_error.
        * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
        except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
        rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
        typeck2.c: Change calls to the above macros to use their
        language-independent equivalents: error, warning, pedwarn, and
        internal_error respectively.

2001-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>

        * decl2.c (finish_file): Remove back_end_hook.

2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>

        * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
        cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
        pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.

2001-12-15  Joseph S. Myers  <jsm28@cam.ac.uk>

        * lang-options.h: Use American spelling in messages.

2001-12-13  Jason Merrill  <jason@redhat.com>

        * Make-lang.in (parse.h): Separate rule, just depend on parse.c.

        Use cleanups to run base and member destructors.
        * init.c (push_base_cleanups): New function, split out from...
        (build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
        * decl.c (finish_destructor_body): Move vbase destruction code to
        push_base_cleanups.
        (begin_function_body, finish_function_body): New fns.
        (finish_function): Move [cd]tor handling and call_poplevel to
        finish_function_body.
        (pushdecl): Skip the new level.
        * semantics.c (genrtl_try_block): Don't call end_protect_partials.
        (setup_vtbl_ptr): Call push_base_cleanups.
        * method.c (synthesize_method): Call {begin,end}_function_body.
        * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
        * cp-tree.h: Declare new fns.
        * parse.y (function_body, .begin_function_body): New nonterminals.
        (fndef, pending_inline, function_try_block): Use function_body.
        (ctor_initializer_opt, function_try_block): No longer has a value.
        (base_init): Remove .set_base_init token.
        (.set_base_init, compstmt_or_error): Remove.
        * Make-lang.in (parse.c): Expect two fewer s/r conflicts.

        * optimize.c (maybe_clone_body): Fix parameter updating.

2001-12-12  Jason Merrill  <jason@redhat.com>

        * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
        * semantics.c (genrtl_start_function): Don't pass
        parms_have_cleanups or push an extra binding level.
        (genrtl_finish_function): Lose cleanup_label cruft.

        * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
        (ctor_label): Remove.
        * semantics.c (finish_return_stmt): Lose ctor_label support.
        * decl.c (finish_constructor_body, mark_lang_function): Likewise.
        * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
        dtor_label.

        * call.c (build_new_method_call): Let resolves_to_fixed_type_p
        check for [cd]tors.
        * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.

        * decl.c (finish_function): Check VMS_TARGET, not VMS.

        * decl.c (start_cleanup_fn): Remove redundant pushlevel.
        (end_cleanup_fn): And poplevel.

        * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
        if we're in a template.

2001-12-12  Jakub Jelinek  <jakub@redhat.com>

        * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
        ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
        THIS_NAME_P): Delete.
        * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
        THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
        with internal naming scheme.
        * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.

2001-12-12  Nathan Sidwell  <nathan@codesourcery.com>

        * decl.c (grokdeclarator): Deprecated implicit typename use.

2001-12-11  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/51
        * parse.y (frob_specs): Indicate it is a language linkage which
        contained the extern.
        * decl.c (grokdeclarator): Allow extern language linkage with
        other specifiers.

2001-12-10  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/72
        * decl.c (add_binding): Don't reject duplicate typedefs involving
        template parameters.

2001-12-10  Neil Booth  <neil@daikokuya.demon.co.uk>

        * parse.y, semantics.c: Similarly.

2001-12-09  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/87
        * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
        (copy_args_p): Rename to ...
        (copy_fn_p): ... here.
        (grok_special_member_properties): New function.
        (grok_op_properties): Lose VIRTUALP parameter.
        (copy_assignment_arg_p): Remove.
        * call.c (build_over_call): Use copy_fn_p.
        * decl.c (grokfndecl): Reformat. Adjust call to
        grok_op_properties.
        (copy_args_p): Rename to ...
        (copy_fn_p): ... here. Reject template functions. Check for pass
        by value.
        (grok_special_member_properties): Remember special functions.
        (grok_ctor_properties): Don't remember them here, just check.
        (grok_op_properties): Likewise.
        (start_method): Call grok_special_member_properties.
        * decl2.c (grokfield): Likewise.
        (copy_assignment_arg_p): Remove.
        (grok_function_init): Don't remember abstract assignment here.
        * pt.c (instantiate_class_template): Call
        grok_special_member_properties.
        (tsubst_decl): Adjust grok_op_properties call.

2001-12-08  Aldy Hernandez  <aldyh@redhat.com>

        * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
        RID_TYPES_COMPATIBLE_P.

2001-12-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>

        * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
        call to build_aggr_init.
        * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.

2001-12-08  Neil Booth  <neil@daikokuya.demon.co.uk>

        * parse.y: Replace uses of the string non-terminal with STRING.
        Don't perform string concatentaion here.
        (string): Remove non-terminal.
        * semantics.c (finish_asm_stmt): Don't concatenate strings here.

2001-12-05  Jason Merrill  <jason@redhat.com>

        * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
        (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
        * tree.c (cp_start_inlining, cp_end_inlining): New fns.
        * pt.c (push_tinst_level): No longer static.
        * cp-tree.h: Declare them.

        * init.c (resolve_offset_ref): Don't check access for the base
        conversion to access a FIELD_DECL.

        * cp-tree.h (TYPE_REFFN_P): New macro.
        * decl.c (bad_specifiers): Check it, too.

        * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
        on the __*_type_info type if we haven't seen a definition.

2001-12-05  Neil Booth  <neil@daikokuya.demon.co.uk>

        * decl.c: Include c-common.h.
        (shadow_warning): Move to c-common.c.

2001-12-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.

2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.

2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/164
        * init.c (sort_base_init): Allow binfos to be directly specified.
        * method.c (do_build_copy_constructor): Explicitly convert to the
        base instance.
        (do_build_assign_ref): Likewise.

2001-12-03  Hans-Peter Nilsson  <hp@bitrange.com>

        * decl.c (xref_basetypes): Don't use C99 construct in tag_code
        declaration and initialization.

2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>

        * typeck2.c: Remove leading capital from diagnostic messages, as
        per GNU coding standards.

2001-12-03  Mumit Khan  <khan@nanotech.wisc.edu>

        PR c++/3394
        * decl.c (xref_basetypes): Handle attributes between
        'class' and name.

2001-12-03  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/3381
        * parse.y (named_complex_class_head_sans_basetype): Add new
        reduction.
        * Make-lang.in (parse.c): Adjust expected conflict count.

2001-12-03  Jason Merrill  <jason@redhat.com>

        * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
        immediate binfos for our virtual bases.

2001-12-02  Neil Booth  <neil@daikokuya.demon.co.uk>

        * call.c (build_java_interface_fn_ref): Similarly.
        * except.c (is_admissible_throw_operand): Similarly.
        * init.c (build_java_class_ref): Similarly.
        * xref.c (open_xref_file): Similarly.

2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>

        * class.c (finish_struct): Remove trailing periods from messages.
        * decl.c (check_tag_decl): Similarly.
        * lex.c (cxx_set_yydebug): Similarly.
        * typeck2.c (friendly_abort): Similarly.

2001-11-29  Mark Mitchell  <mark@codesourcery.com>

        PR c++/3048
        * cp-tree.h (ovl_member): Remove.
        * decl2.c (merge_functions): Handle extern "C" functions
        specially.
        * tree.c (ovl_member): Remove.

2001-11-29  Mark Mitchell  <mark@codesourcery.com>

        PR c++/4842
        * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
        FUNCTION_DECL, as input.
        (mark_overriders): Remove.
        (warn_hidden): Rework for the new ABI.

2001-11-29  Mark Mitchell  <mark@codesourcery.com>

        PR c++/3471
        * call.c (convert_like_real): Do not build additional temporaries
        for rvalues of class type.

2001-11-28  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
        (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
        (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
        (DERIVED_FROM_P): Likewise.
        (enum base_access): Renumber, add ba_quiet bit mask.
        (get_binfo): Remove.
        (get_base_distance): Remove.
        (binfo_value): Remove.
        (ACCESSIBLY_DERIVED_FROM_P): Remove.
        * call.c (standard_conversion): Use lookup_base.
        * class.c (strictly_overrides): Likewise.
        (layout_virtual_bases): Likewise.
        (warn_about_ambiguous_direct_bases): Likewise.
        (is_base_of_enclosing_class): Likewise.
        (add_vcall_offset_vtbl_entries_1): Likewise.
        * cvt.c (build_up_reference): Adjust comment.
        * init.c (build_member_call): Reformat.
        * search.c (get_binfo): Remove.
        (get_base_distance_recursive): Remove.
        (get_base_distance): Remove.
        (lookup_base_r): Tweak.
        (lookup_base): Add ba_quiet control. Complete the types here.
        (covariant_return_p): Use lookup_base.
        * tree.c (binfo_value): Remove.
        (maybe_dummy_object): Use lookup_base.
        * typeck.c (build_static_cast): Use lookup_base.
        (get_delta_difference): Likewise.
        * typeck2.c (binfo_or_else): Use lookup_base.
        (build_scoped_ref): Add back error_mark_check.
        (build_m_component_ref): Use lookup_base.

2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>

        * Make-lang.in (c++.generated-manpages): New dummy target.

2001-11-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * Make-lang.in (cp-lang.o): Depends on c-common.h.
        * cp-lang.c (c-common.h): Include.
        (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
        * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
        * expr.c (init_cplus_expand): Don't set lang_expand_constant.

2001-11-26  Neil Booth  <neil@daikokuya.demon.co.uk>

        * decl2.c (c_language): Move to c-common.c.
        * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
        functions.
        (cxx_init): Update.

2001-11-26  Jason Merrill  <jason@redhat.com>

        * call.c (joust): Remove COND_EXPR hack.

2001-11-25  Aldy Hernandez  <aldyh@redhat.com>

        * search.c (lookup_base_r): Declare bk in variable declaration
        space.

2001-11-25  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/3145
        * class.c (build_vbase_pointer): Remove.
        (build_vbase_path): Remove.
        (build_base_path): New function.
        * cp-tree.h (base_access, base_kind): New enumerations.
        (build_base_path): Declare.
        (convert_pointer_to_real): Remove.
        (convert_pointer_to): Remove.
        (lookup_base): Declare.
        (convert_pointer_to_vbase): Remove.
        * call.c (build_scoped_method_call): Use lookup_base &
        build_base_path instead of convert_pointer_to_real,
        get_base_distance & get_binfo.
        (build_over_call): Likewise.
        * cvt.c (cp_convert_to_pointer): Likewise.
        (convert_to_pointer_force): Likewise.
        (build_up_reference): Likewise.
        (convert_pointer_to_real): Remove.
        (convert_pointer_to): Remove.
        * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
        instead of convert_pointer_to_vbase & build_vbase_path.
        (emit_base_init): Use build_base_path instead of
        convert_pointer_to_real.
        (expand_virtual_init): Lose unrequired conversions.
        (resolve_offset_ref): Use lookup_base and build_base_path
        instead of convert_pointer_to.
        * rtti.c (build_dynamic_cast_1): Use lookup_base &
        build_base_path instead of get_base_distance & build_vbase_path.
        * search.c (get_vbase_1): Remove.
        (get_vbase): Remove.
        (convert_pointer_to_vbase): Remove.
        (lookup_base_r): New function.
        (lookup_base): New function.
        * typeck.c (require_complete_type): Use lookup_base &
        build_base_path instead of convert_pointer_to.
        (build_component_ref): Likewise.
        (build_x_function_call): Likewise.
        (get_member_function_from_ptrfunc): Likewise.
        (build_component_addr): Likewise.
        * typeck2.c (build_scoped_ref): Likewise.

2001-11-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

        * cp-tree.h (CP_TYPE_QUALS): Removed.
        * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
        * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
        LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
        * dump.c (cp_dump_tree): Use void* dump_info argument to match
        lang-hooks prototype.
        * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
        rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
        CP_TYPE_QUALS changed to cp_type_quals.
        * Make-lang.in: References to c-dump.h changed to tree-dump.h.
        (CXX_C_OBJS): Remove c-dump.o.

2001-11-21  Mark Mitchell  <mark@codesourcery.com>

        PR c++/3637
        * pt.c (lookup_template_class): Ensure that all specializations
        are registered on the list corresponding to the most general
        template.

2001-11-20  Mark Mitchell  <mark@codesourcery.com>

        * call.c (non_reference): Add documentation.
        (convert_class_to_reference): Do not strip reference types
        from conversion operators.
        (maybe_handle_ref_bind): Simplify.
        (compare_ics): Correct handling of references.

2001-11-19  John Wilkinson <johnw@research.att.com>

        * dump.c (dump_op): New function.
        (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
        dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
        DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,

2001-11-19  Mark Mitchell  <mark@codesourcery.com>

        PR4629
        * semantics.c (finish_sizeof): Make sure that expression created
        while processing a template do not have a type.
        (finish_alignof): Likewise.
        * typeck.c (c_sizeof): Likewise.
        (expr_sizeof): Likewise.

2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>

        * lex.c (cxx_finish): Call c_common_finish.
        (finish_parse): Remove.

2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
        when displaying error message about missing array bounds.

2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
        CONST_CAST_EXPR.
        * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.

2001-11-16  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp-tree.h (print_class_statistics): Restore.

2001-11-15  Jason Merrill  <jason@redhat.com>

        * method.c (use_thunk): Don't emit debugging information for thunks.

        * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
        * decl.c (make_typename_type): Handle getting a class template.
        * search.c (lookup_field_r): A class template is good enough for
        want_type.

        * call.c (convert_like_real): Only use cp_convert for the bad part.
        (standard_conversion): Also allow bad int->enum.
        * typeck.c (ptr_reasonably_similar): Also allow functions to
        interconvert.  Pointers to same-size integers are reasonably
        similar.

        * cvt.c (convert_to_void): If we build a new COND_EXPR, always
        give it void type.

2001-11-15  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/3154
        * init.c (sort_base_init): Remove unreachable code.
        (expand_member_init): Adjust comment to reflect reality. Simplify
        and remove unreachable code.

2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
        (cxx_init): Update prototype.
        * decl.c (init_decl_processing): Rename.  Move null node init
        to its creation time.
        * lex.c (cxx_init_options): Update.
        (cxx_init): Combine with old init_parse; also call
        cxx_init_decl_processing.

2001-11-14  Richard Sandiford  <rsandifo@redhat.com>

        * decl.c (check_initializer): Try to complete the type of an
        array element before checking whether it's complete.  Don't
        complain about arrays with complete element types but an
        unknown size.
        (cp_finish_decl): Build the hierarchical constructor before
        calling maybe_deduce_size_from_array_init.

2001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>

        * Make-lang.in: Change all uses of $(manext) to $(man1ext).

2001-11-13  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/4206
        * parse.y (already_scoped_stmt): Remove.
        (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.

2001-11-12  H.J. Lu <hjl@gnu.org>

        * cvt.c (ocp_convert): Don't warn the address of a weak
        function is always `true'.

2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
        LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
        LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
        * cp-tree.h (print_class_statistics): Remove.
        (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
        cxx_print_identifier, cxx_set_yydebug): New.
        * lex.c (set_yydebug): Rename c_set_yydebug.
        * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
        lang_print_xnode): Rename.
        * tree.c (print_lang_statistics): Rename.

2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * class.c (dump_array): Fix format specifier warning.

2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp-lang.c (LANG_HOOKS_NAME): Override.
        (struct lang_hooks): Constify.
        * lex.c (cxx_init_options): Update.
        (lang_identify): Remove.
        * parse.y (language_string): Remove.

2001-11-08  Andreas Franck  <afranck@gmx.de>

        * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
        DEMANGLER_CROSS_NAME): Handle program_transform_name the way
        suggested by autoconf.
        (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
        (c++.install-common): Use the transformed target alias names.

2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>

        * Make-lang.in: Update.
        * cp-lang.c: Include langhooks-def.h.

2001-11-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.

2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * lex.c (copy_lang_type): Add static prototype.

2001-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * pt.c (unify): Handle SCOPE_REF.

2001-11-01  Jakub Jelinek  <jakub@redhat.com>

        * tree.c (cp_copy_res_decl_for_inlining): Adjust
        DECL_ABSTRACT_ORIGIN for the return variable.

2001-10-31  Zack Weinberg  <zack@codesourcery.com>

        *  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.

2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>

        * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
        semantics.c, spew.c: Fix spelling errors.

2001-10-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.

2001-10-25  Zack Weinberg  <zack@codesourcery.com>

        * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
        pop_everything.

2001-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * cp-lang.c (cxx_get_alias_set): New function.
        Point LANG_HOOKS_GET_ALIAS_SET to it.

2001-10-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
        * cp-tree.h (make_unbound_class_template): Prototype new function.
        * decl.c (make_unbound_class_template): New function.
        * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
        * error.c (dump_type): Likewise.
        * mangle.c (write_type): Likewise.
        * parse.y (template_parm): Likewise.
        (template_argument): Use make_unbound_class_template.
        * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
        (tsubst): Likewise.
        (tsubst_copy): Likewise.
        (unify): Likewise.
        * tree.c (walk_tree): Likewise.
        * typeck.c (comptypes): Likewise.

2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
        extra calls into fewer ones.

2001-10-18  Alexandre Oliva  <aoliva@redhat.com>

        * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
        Warn when merging inline with attribute noinline.
        (start_decl, start_function): Warn if inline and attribute
        noinline appear in the same declaration.

2001-10-16  H.J. Lu <hjl@gnu.org>

        * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
        for tree checking disabled.

2001-10-16  Hans-Peter Nilsson  <hp@axis.com>

        * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
        NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.

2001-10-15  Richard Sandiford  <rsandifo@redhat.com>

        * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
        (unify): Only handle MINUS_EXPR specially if the above flag is set
        and the subtracted constant is 1.  Clear the flag on recursive calls.
        Set it when unifying the maximum value in an INTEGER_TYPE's range.

2001-10-15  Richard Sandiford  <rsandifo@redhat.com>

        * decl.c (bad_specifiers): Don't allow exception specifications
        on any typedefs.

2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp/lex.c (init_cp_pragma): Similarly.

2001-10-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * pt.c (lookup_template_class): Build complete template arguments
        for BOUND_TEMPLATE_TEMPLATE_PARM.

2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * cp-tree.h (TYPE_BINFO): Update comment.
        (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
        (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
        (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
        (copy_type): Prototype new function.
        * lex.c (copy_lang_decl): Gather tree node statistics.
        (copy_lang_type): New function.
        (copy_type): Likewise.
        (cp_make_lang_type): Create lang_type for
        BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
        and BOUND_TEMPLATE_TEMPLATE_PARM.
        * pt.c (tsubst): Use copy_type instead of copy_node.
        * search.c (lookup_field_1): Ignore TYPENAME_TYPE.

2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * pt.c (determine_specialization): Ignore functions without
        DECL_TEMPLATE_INFO.

2001-10-12  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/4476
        * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.

2001-10-11  Jason Merrill  <jason_merrill@redhat.com>

        * typeck2.c (store_init_value): Don't re-digest a bracketed
        initializer.

        * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
        ANON_AGGR_TYPE_P.

2001-10-11  Richard Henderson  <rth@redhat.com>

        * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
        of an asm statement.
        (build_vtbl_ref_1): Split out from build_vtbl_ref.
        (build_vfn_ref): Use it to handle vtable descriptors before
        calling build_vtable_entry_ref.
        * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.

2001-10-10  Richard Henderson  <rth@redhat.com>

        * parse.y (asm_operand): Allow named operands.
        * semantics.c (finish_asm_stmt): Tweek for changed location
        of the operand constraint.

2001-10-09  Jason Merrill  <jason_merrill@redhat.com>

        * call.c (standard_conversion): Add bad conversion between
        integers and pointers.
        (convert_like_real): Don't use convert_for_initialization for bad
        conversions; complain here and use cp_convert.
        (build_over_call): Don't handle bad conversions specially.
        (perform_implicit_conversion): Allow bad conversions.
        (can_convert_arg_bad): New fn.
        * cp-tree.h: Declare it.
        * typeck.c (convert_for_assignment): Use it.
        (ptr_reasonably_similar): Any target type is similar to void.

2001-10-08  Alexandre Oliva  <aoliva@redhat.com>

        * Make-lang.in (CXX_OBJS): Added cp-lang.o.
        (cp/cp-lang.o): New rule.
        * cp-tree.h: Declare hooks.
        * tree.c: Make hooks non-static.
        (init_tree): Don't initialize hooks here.
        * lex.c: Likewise.  Move definition of lang_hooks to...
        * cp-lang.c: ... new file.

2001-10-08  Richard Henderson  <rth@redhat.com>

        * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
        (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.

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>

        * decl2.c (cxx_decode_option): Add 'else'.

        * 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.

2001-09-22  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.

2001-09-21  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_inline_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
        nonzero.

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 uninitialized
        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
        behavior. Remove references 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
        to an asm addressable, if necessary.

2001-07-11  Ben Elliston  <bje@redhat.com>

        * Revert this change -- there is a subtle bug.

        PR c++/80
        * decl.c (finish_enum): New "attributes" argument; pass it to
        cplus_decl_attributes.  Use a narrower type if the enum is packed.
        * cp-tree.h (finish_enum): Adjust prototype.
        * parse.y (enum_head): New non-terminal.
        (structsp): Use it. Enums now may be preceded or followed by
        optional attributes -- pass their chained tree to finish_enum().
        * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.

2001-07-10  Mark Mitchell  <mark@codesourcery.com>

        * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
        variables.

2001-07-10  Jason Merrill  <jason_merrill@redhat.com>

        * semantics.c (cp_expand_stmt): Fix for null
        current_function_return_value.

2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>

        * call.c (build_op_delete_call): Initialize fn.
        (convert_like_real): Delete conditional.
        (joust): Initialize *w and *l.
        * class.c: Add prototype for binfo_ctor_vtable.
        (get_primary_binfo): Initialize result.
        * init.c (build_java_class_ref): Initialize name.

2001-07-09  Erik Rozendaal  <dlr@acm.org>

        * typeck.c (unary_complex_lvalue): Do not duplicate the
        argument to modify, pre-, or post-increment when used as an
        lvalue and when the argument has side-effects.

2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>

        * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
        (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
        cplus_decl_attributes even if attrs is NULL.
        * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.

2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>

        * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
        calls to decl_attributes.

2001-07-06  Ira Ruben   <ira@apple.com>

        * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
        be DECL_TEMPLATE_RESULT.

2001-07-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * cp-tree.h (copy_template_template_parm): Rename to ...
        (bind_template_template_parm): ... here.
        * tree.c (copy_template_template_parm): Rename to ...
        (bind_template_template_parm): ... here.  Remove the case when
        NEWARGS is NULL_TREE.
        (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
        BOUND_TEMPLATE_TEMPLATE_PARM.
        * pt.c (lookup_template_class): Adjust.

2001-07-05  Jason Merrill  <jason_merrill@redhat.com>

        * cvt.c (convert_lvalue): New fn.
        * cp-tree.h: Declare it.
        * method.c (do_build_assign_ref): Use it.
        (do_build_copy_constructor): Convert parm to base types
        before calling base constructors.

        * typeck.c (check_return_expr): Check DECL_ALIGN instead of
        DECL_USER_ALIGN.  Check flag_elide_constructors instead of
        optimize.
        * semantics.c (cp_expand_stmt): Don't destroy the named return value.

2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>

        * optimize.c (optimize_inline_calls): New function, broken out
        of ...
        (optimize_function): ... here. Call it. Don't inline if it is
        a thunk.
        (dump_function): Print name of dump flag causing this dump.
        * semantics.c (expand_body): Move thunk inline check to
        optimize_function.

2001-06-29  Joseph S. Myers  <jsm28@cam.ac.uk>

        * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
        (comptypes): Use target.comp_type_attributes.

2001-06-29  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.

2001-06-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>

        * error.c (lang_print_error_function): Add a `diagnostic_context *'
        parameter. Tweak.

2001-06-27  Neil Booth  <neil@cat.daikokuya.demon.co.uk>

        * decl2.c (import_export_class): Update.

2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>

        * error.c (init_error): Adjust settings.

2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>

        * error.c (init_error): Adjust settings.

2001-06-19  Richard Sandiford  <rsandifo@redhat.com>

        * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
        return pointers to data members by reference rather than by value.

2001-06-18  Jason Merrill  <jason_merrill@redhat.com>

        Implement the Named Return Value optimization.
        * cp-tree.h (struct cp_language_function): Add x_return_value.
        (current_function_return_value): Now a macro.
        * decl.c: Don't define it.
        (define_label, finish_case_label): Don't clear it.
        (init_decl_processing): Don't register it with GC.
        * semantics.c (genrtl_finish_function): Don't check it for
        no_return_label.  Copy the RTL from the return value to
        current_function_return_value and walk, calling...
        (nullify_returns_r): ...this new fn.
        * typeck.c (check_return_expr): Set current_function_return_value.

2001-06-15  Jason Merrill  <jason_merrill@redhat.com>

        * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
        sharing a ctor vtable with.  Merge code for cases 1 and 2.
        (binfo_ctor_vtable): New fn.
        (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.

2001-06-14  Jason Merrill  <jason_merrill@redhat.com>

        * class.c (dfs_find_final_overrider): Fix logic.

        * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
        virtual thunk instead of non-virtual.
        (get_matching_virtual): Uncomment.

        * pt.c (unify): Don't recurse between the POINTER_TYPE and the
        OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
        PARM, not ARG.

2001-06-14  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
        we've not emerged from the hierarchy of RTTI_BINFO on reaching
        a non-virtual base.

2001-06-13  Mark Mitchell  <mark@codesourcery.com>

        * NEWS: Update release number.

2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/3130, c++/3131, c++/3132
        * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
        * class.c (force_canonical_binfo_r): Move
        BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
        virtual bases unless they're primary and what they're primary
        too has been moved.
        (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
        with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
        BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
        derived binfo.
        (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
        (layout_nonempty_base_or_field): Add most derived type
        parameter. Adjust.
        (layout_empty_base): Likewise.
        (build_base_field): Likewise.
        (build_base_fields): Likewise.
        (propagate_binfo_offsets): Add most derived type
        parameter. Skip non canonical virtual bases too.
        (dfs_set_offset_for_unshared_vbases): Don't skip primary
        bases. Do skip canonical bases.
        (layout_virtual_bases): Adjust.
        (layout_class_type): Adjust.
        (dfs_get_primary_binfo): Build list of virtual primary base
        candidates.
        (get_primary_binfo): Check that the shared virtual primary
        base candidate was found first.
        (accumulate_vtbl_inits): Don't do anything for non-vptr
        containing binfos. For case 1 primary virtual bases, keep
        checking that we've not emerged from the hierarchy of RTTI_BINFO.

2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/3089
        * class.c (dfs_accumulate_vtbl_inits): Always walk down the
        hierarchy looking for primary bases for a ctor
        vtable. Recursively call oneself, if we meet our primary via
        this route and haven't met it yet via inheritance graph order.

2001-06-11  Mark Mitchell  <mark@codesourcery.com>

        * lang-options.h: Emit documentation for -fno-honor-std, not
        -fhonor-std.

2001-06-10  Alexandre Oliva  <aoliva@redhat.com>

        * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
        Don't clobber delta.
        (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.

2001-06-10  Mark Mitchell <mark@codesourcery.com>
            Gabriel Dos Reis  <gdr@codesourcery.com>

        * Make-lang.in (cp/call.o): Depend on diagnostic.h
        (cp/typeck.o): Depend on diagnostic.h
        (cp/typeck2.o): Depend on diagnostic.h
        (cp/repo.o): Depend on dignostic.h
        * typeck.c: #include diagnostic.h
        (convert_for_initialization): Remove extern declaration for
        warningcount and errorcount.

        * call.c: #include diagnostic.h
        (convert_like_real): Remove extern declaration for warnincount and
        errorcount.

        * repo.c: #include diagnostic.h
        * typeck2.c: #include diagnostic.h

2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>

        * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
        in previous change.

2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/2929
        * friend.c (do_friend): Use push_decl_namespace for classes at
        namespace scope.

2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
            Jason Merrill <jason_merrill@redhat.com>

        PR c++/3061
        * class.c (build_secondary_vtable): Use assert, rather than an error
        message.
        (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
        (dfs_accumulate_vtbl_inits): A lost primary virtual base may
        be between ORIG_BINFO and RTTI_BINFO, but neither of them.
        Don't set BINFO_VTABLE for a primary virtual base.

2001-06-07  Mark Mitchell  <mark@codesourcery.com>

        * decl.c (duplicate_decls): Update source position information
        when a template function is defined.

2001-06-07  Phil Edwards  <pme@sources.redhat.com>

        * lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.

2001-06-07  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/2914
        * decl.c (pushtag): Don't push into a complete type's scope.

2001-06-06  Jason Merrill  <jason_merrill@redhat.com>

        * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
        (struct lang_decl_flags): Lose generate_with_vtable_p.
        (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
        * class.c (copy_virtuals): Adjust.
        * decl2.c (mark_vtable_entries): Adjust.
        * method.c (make_thunk, build_vtable_entry): Adjust.
        * class.c (update_vtable_entry_for_fn): Only look as far as the
        first defining class.
        (build_vtbl_initializer): Put nothing in the slot for a function only
        defined in a lost primary virtual base.
        (add_vcall_offset_vtbl_entries_1): Use the same code for
        the lost primary case and the normal case.
        (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
        (get_vfield_offset, get_derived_offset): Lose.
        (dfs_find_final_overrider): Use look_for_overrides_here.
        (get_matching_virtual): New fn.
        * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
        not BV_VCALL_INDEX.
        * search.c (look_for_overrides_here): Split out from...
        (look_for_overrides_r): Here.

        * class.c (find_final_overrider): Return error_mark_node on error.

        * decl2.c (key_method): #if 0 accidental change.

2001-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>

        * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
        (build_over_call): Likewise.
        * decl.c (grokparms): Likewise.
        * pt.c (tsubst_decl): Likewise.
        * typeck.c (convert_arguments): Likewise.

2001-06-05  Mark Mitchell  <mark@codesourcery.com>

        * semantics.c (begin_class_definition): Robustify.

        * pt.c (instantiate_decl): Tell the repository code about the
        clones, not the cloned functions.
        * repo.c (repo_template_used): Explicitly instantiate the cloned
        function, not the clones.

2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
        ICS_BAD_FLAG on created conversion.
        (compare_ics): Break out rank.

2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>

        * decl.c (xref_tag): Remove extraneous %s on dependent name
        lookup warning.

2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (layout_vtable_decl): Fix off by one error on
        build_index_type.
        (build_vtt): Likewise.
        (build_ctor_vtbl_group): Likewise.

2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (maybe_indent_hierarchy): New function.
        (dump_class_hierarchy_r): Add flags. Dump extra binfo
        information, if enabled. Use maybe_indent_hierarchy. Adjust
        output format.
        (dump_class_hierarchy): Adjust prototype. Adjust output format.
        (dump_array, dump_vtable, dump_vtt): New functions.
        (finish_struct_1): Adjust hierarchy dumping.
        (initialize_vtable): Call dump_vtable.
        (build_vtt): Call dump_vtt.
        (build_ctor_vtbl_group): Call dump_vtable.
        * decl2.c (flag_dump_class_layout): Remove.
        (cxx_decode_option): Remove dump translation unit
        and dump class hierarchy check. Call dump_switch_p.
        (finish_file): Adjust dumping.
        (dump.c): Only dump base classes if not TDF_SLIM.
        Only dump namespace members if not TDF_SLIM.
        * optimize.c (dump_function): New function.
        (optimize_function): Call dump_function.
        * semantics.c (expand_body): Use dump_enabled_p.

2001-06-01  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/2936
        Part missed from first commit
        * decl2.c (finish_anon_union): Copy context.

2001-05-30  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/2936
        * optimize.c (remap_decl): Remap anonymous aggregate members too.

2001-05-26  Nathan Sidwell  <nathan@codesourcery.com>

        PR g++/2823
        * semantics.c (expand_body): Don't optimize thunks.

2001-05-25  Sam TH  <sam@uchicago.edu>

        * cp-tree.h lex.h: Fix header include guards.

2001-05-25  Mark Mitchell <mark@codesourcery.com>

        * decl.c (init_decl_processing): Tweak.

2001-05-24  Mark Mitchell  <mark@codesourcery.com>

        * decl.c (duplicate_decls): Tidy.
        (init_decl_processing): Always set flag_no_builtin.

2001-05-24  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/2184
        * decl2.c (do_local_using_decl): Push the decls, even in a
        template.

2001-05-22  Mark Mitchell  <mark@codesourcery.com>

        * optimize.c (initialize_inlined_parameters): Don't set
        TREE_READONLY for a VAR_DECL taking the place of an inlined
        PARM_DECL.

2001-05-22  Jason Merrill  <jason_merrill@redhat.com>

        * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
        * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
        attribute.

2001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>

        * parse.y: Refer to compound literals as such, not as
        constructor-expressions.

2001-05-21  Mark Mitchell  <mark@codesourcery.com>

        * call.c (build_op_delete_call): Ignore exception-specifications
        when looking for matching delete operators.
        * init.c (build_new_1): Compute whether or not the allocation
        function used is a placement allocation function or not, and
        communicate this information to build_op_delete_call.

2001-05-21  Jason Merrill  <jason_merrill@redhat.com>

        * class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
        (build_vtbl_ref): Adjust.
        (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
        * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
        Re-add vtable-gc.
        (unsupported_options): Correspondingly.

        * decl2.c (maybe_make_one_only): Check flag_weak, not
        supports_one_only().

        * cp-tree.def (START_CATCH_STMT): Lose.
        * dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
        * tree.c (cp_statement_code_p): Don't case it.
        * semantics.c (cp_expand_stmt): Likewise.
        * cp-tree.h (START_CATCH_TYPE): Lose.
        (HANDLER_TYPE): New.
        * except.c (expand_start_catch_block): Don't start any blocks.
        Return the type.
        (expand_end_catch_block): Don't end any blocks.
        * parse.y (handler): Don't pass anything from finish_handler_parms
        to finish_handler.
        * pt.c (tsubst_expr): Likewise.
        * semantics.c (begin_handler): Call note_level_for_catch here.
        (finish_handler_parms): Don't return anything.
        (genrtl_catch_block, begin_catch_block): Lose.
        (genrtl_handler): Call expand_start_catch here.

2001-05-18  Jason Merrill  <jason_merrill@redhat.com>

        * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
        (get_vtable_decl, build_vtt): Not here.

2001-05-20  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/2781
        * optimize.c (update_cloned_parm): Copy addressability and other
        flags.

2001-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * pt.c (determine_specialization): Ignore artificial functions.

2001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
        (C_RID_CODE): Remove.
        * lex.c (cxx_init_options): Call set_identifier_size.  Update.
        (init_parse): Don't do it here.

2001-05-18  Diego Novillo  <dnovillo@redhat.com>

        * decl2.c (finish_objects): Use the original SYMBOL_REF from the
        function declaration to avoid stripping the symbol's attributes.

2001-05-18  Nathan Sidwell  <nathan@codesourcery.com>

        * decl.c (pushdecl): Adjust error string.
        (xref_tag): Adjust friend class injection warning. Remove the
        inherited name from the class shadowed scope.

2001-05-17  Mark Mitchell  <mark@codesourcery.com>

        * except.c (cp_protect_cleanup_actions): New function.
        (init_exception_processing): Don't set protect_cleanup_actions
        here.  Do set lang_protect_cleanup_actions.

2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>

        * spew.c (read_token): Call yyerror on all unexpected tokens.

2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>

        * init.c (member_init_ok_or_else): Take a tree rather than
        string for name.
        (expand_member_init): Adjust.

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.

2001-05-12  Zack Weinberg  <zackw@stanford.edu>

        * except.c (choose_personality_routine): Export.  Add
        explanatory comment.  Take an enum languages, not a boolean.
        (initialize_handler_parm): Adjust to match.
        * cp-tree.h: Prototype choose_personality_routine.
        * lex.c (handle_pragma_java_exceptions): New function.
        (init_cp_pragma): Register #pragma GCC java_exceptions.

2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>

        * method.c (build_mangled_C99_name): Remove unused prototype.

2001-05-12  Alexandre Oliva  <aoliva@redhat.com>

        * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
        * typeck.c (get_member_function_from_ptrfunc,
        build_ptrmemfunc, expand_ptrmemfunc_cst): Take
        TARGET_PTRMEMFUNC_VBIT_LOCATION into account.

        Reverted Geoff Keating's 2001-05-03's patch.

2001-05-11  Ira Ruben   <ira@apple.com>

        * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.

2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp-tree.h (finish_label_expr, lookup_label): Delete.
        * parse.y: Update for '&&'; don't issue warning here.
        * semantics.c (finish_label_expr): Delete.

2001-05-07  Mark Mitchell  <mark@codesourcery.com>

        * splay-tree.h (splay_tree_max): New function.
        (splay_tree_min): Likewise.

2001-05-03  Geoffrey Keating  <geoffk@redhat.com>

        * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
        (pfn_vflag_identifier): Define.
        Update comment about layout of pointer functions.
        (build_ptrmemfunc1): Update prototype.
        (expand_ptrmemfunc_cst): Update prototype.
        * decl.c (initialize_predefined_identifiers): Initialize
        pfn_vflag_identifier.
        (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
        an extra field to the type.
        * expr.c (cplus_expand_constant): Pass 'flag' between
        expand_ptrmemfunc_cst and build_ptrmemfunc1.
        * typeck.c (get_member_function_from_ptrfunc): When
        FUNCTION_BOUNDARY < 16, look at additional field to determine
        if a pointer-to-member is a real pointer or a vtable offset.
        (build_ptrmemfunc1): Add new parameter to contain extra field.
        (build_ptrmemfunc): Pass the extra field around.
        (expand_ptrmemfunc_cst): Add new parameter to return extra field.
        (pfn_from_ptrmemfunc): Ignore the extra field.

2001-05-03  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (flag_inline_trees): Update documentation.
        * decl.c (init_decl_processing): Adjust handling of
        flag_inline_functions and flag_inline_trees to support -O3.
        (grokfndecl): Set DECL_INLINE on all functions if that's what
        the user requested.
        (save_function_data): Clear DECL_INLINE in
        current_function_cannot_inline is non-NULL.
        * decl2.c (flag_inline_trees): Update documentation.

2001-05-03  Nathan Sidwell  <nathan@codesourcery.com>

        * dump.c (cp_dump_tree, USING_STMT case): New case.
        * tree.c (cp_statement_code_p): Add USING_STMT.
        * decl2.c (do_using_directive): Add the using directive statement.

        * tree.c (walk_tree): Reformat an if block.

2001-05-02  Mark Mitchell  <mark@codesourcery.com>

        * decl.c (compute_array_index_type): Don't try to do anything with
        the indices when processing a template.

2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * call.c: NULL_PTR -> NULL.
        * class.c: Likewise.
        * cvt.c: Likewise.
        * decl.c: Likewise.
        * decl2.c: Likewise.
        * except.c: Likewise.
        * init.c: Likewise.
        * rtti.c: Likewise.
        * search.c: Likewise.
        * tree.c: Likewise.
        * typeck.c: Likewise.
        * typeck2.c: Likewise.

2001-05-02  Mark Mitchell  <mark@codesourcery.com>

        * decl2.c (do_using_directive): Revert previous patch.

2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.def (USING_STMT): New statement node.
        * cp-tree.h (USING_STMT_NAMESPACE): New macro.
        * decl2.c (do_using_directive): Add USING_STMT to statement
        tree. Don't emit errors when processing template decl.
        * pt.c (tsubst_expr, USING_STMT case): New case.
        * semantics.c (cp_expand_stmt, USING_STMT case): New case.

2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (build_new_op): Convert args from reference here.
        (build_conditional_expr): Don't convert here.

2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>

        * spew.c (last_token_id): New static variable.
        (read_token): Set it here.
        (yyerror): Use it here.

2001-04-30  Richard Henderson  <rth@redhat.com>

        * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
        * decl.c: Likewise.

2001-04-30  Mark Mitchell  <mark@codesourcery.com>

        * gxxint.texi: Remove.
        * Make-lang.in: Remove all traces of gxxint.texi.

2001-04-30  Mark P Mitchell  <mark@codesourcery.com>

        * decl2.c (start_static_initialization_or_destruction): Correct
        logic to handle the -fno-use-cxa-atexit case.

2001-04-30  Mark Mitchell  <mark@codesourcery.com>

        * optimize.c (update_cloned_parm): New function.
        (maybe_clone_body): Use it.  Update the `this' parameter too.

2001-04-29  Joseph S. Myers  <jsm28@cam.ac.uk>

        * decl2.c (unsupported_options): Add new-abi.
        * lang-options.h: Remove no longer supported options.

2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>

        * except.c (can_convert_eh): Don't check template parms,
        typename types etc.

2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>

        * optimize.c (maybe_clone_body): Copy parameter names and locations.

2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.h (adjust_clone_args): Prototype new function.
        * class.c (adjust_clone_args): New function.
        * decl.c (start_function): Call it for in charge ctors.

2001-04-26  Mark Mitchell  <mark@codesourcery.com>

        * method.c (use_thunk): Make sure that thunks really are emitted
        when requested.

2001-04-26  Nathan Sidwell <nathan@codesourcery.com>

        * mangle.c (write_chars): New macro.
        (hwint_to_ascii): New function
        (write_number): Use it.
        (write_integer_cst): Deal with really big numbers.

2001-04-25  Mark Mitchell  <mark@codesourcery.com>

        * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
        the clone.

2001-04-25  Nathan Sidwell  <nathan@codesourcery.com>

        * decl.c (grokdeclarator): Set context of namespace scope
        TYPE_DECLS.

2001-04-24  Zack Weinberg  <zackw@stanford.edu>

        * cp/optimize.c: Include hashtab.h.
        (struct inline_data): Add tree_pruner.
        (expand_call_inline, expand_calls_inline): Use it when calling
        walk_tree.
        (optimize_function): Initialize and free tree_pruner.

2001-04-24  Nathan Sidwell <nathan@codesourcery.com>

        Lazy __FUNCTION__ generation.
        * cp-tree.def (FUNCTION_NAME): Remove.
        * cp-tree.h (function_name_declared_p): Remove.
        (cp_fname_init): Prototype.
        * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
        don't call declare_function_name. Call start_fname_decls.
        (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
        clobber the line number.
        (cp_fname_init): New function.
        (start_function): Call start_fname_decls.
        (finish_function): Call finish_fname_decls.
        * lex.c (reswords): Add slots for __FUNCTION__ et al.
        (rid_to_yy): Add mappings for __FUNCTION__ et al.
        * optimize.c (maybe_clone_body): Remove function_name_declared_p.
        * parse.y (VAR_FUNC_NAME): New token.
        (primary): Add VAR_FUNC_NAME.
        * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
        generation.
        (tsubst, FUNCTION_NAME case): Remove.
        (tsubst_copy, FUNCTION_NAME case): Remove.
        (tsubst_expr, DECL_STMT case): Be careful with a
        DECL_PRETTY_FUNCTION_P.
        (instantiate_decl): Remove function_name_declared_p.
        * semantics.c (begin_compound_statement): Don't call
        declare_function_name here.
        (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
        (finish_translation_unit): Call finish_fname_decls.
        (expand_body): Remove function_name_declared_p.
        * typeck2.c (digest_init): Allow any ERROR_MARK.

2001-04-24  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (tsubst_decl): Use VOID_TYPE_P.
        * semantics.c: Fix some typos.

2001-04-23  Phil Edwards  <pme@sources.redhat.com>

        * cp/decl2.c (flag_honor_std):  Always initialize to 1.

2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.

2001-04-23  Jason Merrill  <jason_merrill@redhat.com>

        * except.c (build_throw): Wrap the initialization of the exception
        object in a MUST_NOT_THROW_EXPR.
        (do_free_exception): #if 0.

2001-04-20  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (finish_enum): Change prototype.
        * decl.c (finish_enum): Reorganize.
        * parse.y (structsp): Adjust calls to finish_enum.

2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>

        * tree.c (cp_tree_equal): Adjust final switch formatting. Add
        't' case.

2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
        (layout_empty_base): Return at end flag.
        (build_base_field): Likewise.
        (build_base_fields): Likewise.
        (layout_virtual_bases): Don't add 1 to eoc value.
        (end_of_class): Use full size for empty bases.
        (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
        empty bases. Don't add 1 to eoc value. Only add trailing padding
        if we're an empty class with no empty bases.
        (dump_class_hierarchy): Dump size and alignment.

2001-04-20  Jakub Jelinek  <jakub@redhat.com>

        * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
        ICS_BAD_FLAG.

2001-04-20  Jakub Jelinek  <jakub@redhat.com>

        * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
        is found, look first if name does not match the structure name.

2001-04-19  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
        set.
        (SET_DECL_LANGUAGE): New macro.
        * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
        (pushdecl): Likewise.
        (build_library_fn_1): Likewise.
        (build_cp_library_fn): Likewise.
        (grokfndecl): Likewise.
        (grokvardecl): Mark `extern "C"' variables as having C linkage.
        * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
        * lex.c (retrofit_lang_decl): Likewise.
        * mangle.c (mangle_decl_string): Don't mangle the names of
        variables declared with C language linkage.
        * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.

2001-04-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>

        * semantics.c (simplify_aggr_init_exprs_r): Don't restore
        flag_access_control from uninitialized storage.

2001-04-15  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
        * mangle.c (write_pointer_to_member_type): Fix mangling of
        pointers to cv-qualified member function types.

        * init.c (build_delete): Create a SAVE_EXPR for the address if
        we're going to use it more than once.

2001-04-13  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
        (expand_ptremfunc_cst): Change prototype.
        (delta2_from_ptrmemfunc): Remove.
        * expr.c (cplus_expand_constant): Adjust call to
        expand_ptrmemfunc_cst.
        * typeck.c (build_ptrmemfunc1): Simplify.
        (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
        results in a constant.
        (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
        (delta2_from_ptrmemfunc): Remove.
        (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.

2001-04-12  Jason Merrill  <jason_merrill@redhat.com>

        * cp-tree.h (decl_namespace_list): New macro.
        (struct saved_scope): Add decl_ns_list.
        * decl.c (mark_saved_scope): Mark it.
        * decl2.c: Lose static decl_namespace_list.
        (init_decl2): Don't save it.

2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * cp-tree.h (warn_return_type, yylex): Delete redundant
        declarations.

        * decl.c (current_class_depth, global_namespace): Likewise.

        * decl2.c (current_class_depth, flag_gnu_xref): Likewise

        * repo.c (flag_use_repository): Likewise.

2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
        set_block, pushdecl, getdecls, gettags, init_decl_processing,
        maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
        lvalue_or_else, print_lang_statistics, comp_target_types,
        unsigned_type, signed_type, signed_or_unsigned_type,
        build_function_call, mark_addressable, incomplete_type_error):
        Delete redundant declarations.

2001-04-11  Jason Merrill  <jason_merrill@redhat.com>

        * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
        (TYPE_ANONYMOUS_P): New macro.
        (TAGGED_TYPE_P): New macro.
        * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
        (grokfndecl, grokvardecl, grokdeclarator): Likewise.
        * tree.c (no_linkage_helper): Likewise.
        * semantics.c (begin_class_definition): Likewise.
        * pt.c (convert_template_argument): Likewise.
        * lex.c (check_for_missing_semicolon): Likewise.

2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (dfs_unshared_virtual_bases): New function.
        (mark_primary_bases): Call it.
        (check_bases): Ignore virtual bases when determining
        nearly-emptiness.

2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>

        * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.

2001-04-11  Mark Mitchell  <mark@codesourcery.com>

        * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
        cloned function to the clone.

2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).

        * semantics.c: Include expr.h.

2001-04-11  Nathan Sidwell  <nathan@codesourcery.com>

        * method.c (implicitly_declare_fn): Commonize code for copy ctor
        and assignment op. Set TREE_USED for parameter.

2001-04-10  Mark Mitchell  <mark@codesourcery.com>

        * class.c (find_final_overrider_data): Add `candidates'.
        (dfs_find_final_overrider): Don't issue error messages
        prematurely.
        (find_final_overrider): Issue error messages here.
        (build_base_field): Don't warn about amgibuous direct bases here.
        (warn_about_ambiguous_direct_bases): New function.
        (layout_class_type): Use it.

2001-04-10  Richard Henderson  <rth@redhat.com>

        * typeck.c (build_array_ref): Push the array reference inside
        COMPOUND_EXPR and COND_EXPR.

2001-04-05  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
        * decl.c (duplicate_decls): Adjust accordingly.
        (maybe_commonize_var): Likewise.
        (grokfndecl): Likewise.
        (start_function): Likewise.
        (start_method): Likewise.
        * decl2.c (key_method): Likewise.
        (import_export_decl): Likewise.
        * method.c (implicitly_declare_fn): Likewise.
        * optimize.c (maybe_clone_body): Likewise.

2001-04-05  Benjamin Kosnik  <bkoz@redhat.com>

        * lang-specs.h: Add __DEPRECATED.

2001-04-05  J"orn Rennecke <amylaar@redhat.com>

        * search.c (get_dynamic_cast_base_type): When building a new
        constant, set its type to ssizetype.

2001-04-04  Jakub Jelinek  <jakub@redhat.com>

        * optimize.c (expand_call_inline): Only add newly inlined statements
        into inlined_stmts.

2001-04-03  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
        (OPERATOR_FORMAT): Likewise.
        (OPERATOR_TYPENAME_FORMAT): Likewise.
        * operators.def: Remove old name-mangling information.
        * decl.c (grok_op_properties): Adjust accordingly.
        * lex.c (init_operators): Likewise.
        * rtti.c (get_tinfo_decl): Issue error messages about types that
        have variable size.

2001-04-03  Mark Mitchell  <mark@codesourcery.com>

        * decl2.c (import_export_decl): Don't call import_export_class
        when processing an inline member function.
        * semantics.c (expand_body): Call import_export_decl before
        emitting inline functions.

2001-03-28  Richard Henderson  <rth@redhat.com>

        IA-64 ABI Exception Handling:
        * cp-tree.def (EH_SPEC_BLOCK): New.
        (MUST_NOT_THROW_EXPR): New.
        * cp-tree.h: Update changed function declarations.
        (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
        (CPTI_CALL_UNEXPECTED): New.
        (struct cp_language_function): Rename x_eh_spec_try_block
        to x_eh_spec_block.
        (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
        * decl.c (current_binding_level): If no current function
        bindings, revert to scope_chain.
        (initialize_predefined_identifiers): Remove __cp_push_exception.
        (store_parm_decls): Use begin_eh_spec_block.
        (finish_function): Use finish_eh_spec_block.
        (mark_lang_function): Update for name changes.
        * decl2.c (finish_file): No mark_all_runtime_matches.
        * dump.c (cp_dump_tree): Handle new tree codes.
        * error.c (dump_expr) [BIND_EXPR]: Fix typo.
        * except.c (catch_language_init, catch_language): Remove.
        (init_exception_processing): Don't set language code.
        Initialize call_unexpected_node, protect_cleanup_actions,
        eh_personality_libfunc, lang_eh_runtime_type.
        (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
        (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
        (prepare_eh_type): Split out type canonicalizations ...
        (build_eh_type_type): ... from here.
        (build_eh_type_type_ref): Remove.
        (mark_all_runtime_matches): Remove.
        (build_exc_ptr): New.
        (do_begin_catch, do_end_catch): New.
        (do_pop_exception): Remove.
        (build_terminate_handler): Remove.
        (choose_personality_routine): Split out language choice from ...
        (initialize_handler_parm): ... here.
        Use MUST_NOT_THROW_EXPR.
        (expand_start_catch_block): Use do_begin_catch.  Simplify Java
        exception object handling.
        (expand_start_eh_spec, expand_end_eh_spec): Remove.
        (expand_exception_blocks, alloc_eh_object): Remove.
        (begin_eh_spec_block, finish_eh_spec_block): New.
        (do_allocate_exception, do_free_exception): New.
        (expand_throw): Merge into ...
        (build_throw): ... here.  Update for abi.
        * expr.c (cplus_expand_expr): No expand_internal_throw.
        Handle MUST_NOT_THROW_EXPR.
        * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
        * semantics.c (*) Update for except.h name changes.
        (genrtl_try_block): No protect_with_terminate.
        (genrtl_eh_spec_block): New.
        (genrtl_handler): Don't emit the goto here.
        (cp_expand_stmt): Handle EH_SPEC_BLOCK.
        (genrtl_finish_function): Don't expand_exception_blocks.
        * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.

2001-03-28  Richard Henderson  <rth@redhat.com>

        * decl.c (struct named_label_list): Rename eh_region to
        in_try_scope, add in_catch_scope.
        (struct binding_level): Rename eh_region to is_try_scope,
        add is_catch_scope.
        (note_level_for_try): Rename from note_level_for_eh.
        (note_level_for_catch): New.
        (poplevel): Copy both is_try_scope and is_catch_scope to
        the named_label_list struct.
        (check_previous_goto_1): Don't check for catch block via
        DECL_ARTIFICIAL; use in_try_scope instead.
        (check_goto): Likewise.
        * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
        * except.c (expand_start_catch_block): Call note_level_for_catch.
        * semantics.c (begin_compound_stmt): Update for note_level_for_try.

2001-03-27  Richard Henderson  <rth@redhat.com>

        * except.c: Use USING_SJLJ_EXCEPTIONS instead of
        exceptions_via_longjmp.

2001-03-27  Phil Edwards  <pme@sources.redhat.com>

        * pt.c (check_default_tmpl_args):  Make error messages clearer.

2001-03-26  Phil Edwards  <pme@sources.redhat.com>

        * error.c:  Also undefine 'A' macro used for cp_printers definition.

2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * Make-lang.in: Depend on $(SYSTEM_H), not system.h.

2001-03-26  Mike Yang <yang@research.att.com>
            Mark Mitchell  <mark@codesourcery.com>

        * dump.c (dump_access): New function.
        (cp_dump_tree): Use it.  Dump basetype information for class
        types.

2001-03-26  Mark Mitchell  <mark@codesourcery.com>

        * Makefile.in (optimize.o): Depend on params.h.
        (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
        (init_decl_processing): Set flag_no_inline when doing
        inlining-on-trees.
        * optimize.c: Include params.h.
        (struct inline_data): Improve documentation of FNS.  Add
        FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
        (INSNS_PER_STMT): New macro.
        (remap_block): Use CLONING_P.
        (inlinable_function_p): Don't inline big functions.
        (expand_call_inline): Keep track of how much inlining we've done.
        (optimize_function): Set FIRST_INLINED_FN.
        (maybe_clone_body): Set CLONING_P.
        * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
        tree nodes.
        (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
        rest_of_compilation.  Clear DECL_RTL for local variables
        afterwards.
        (clear_decl_rtl): New function.

2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>

        Implement DR 209
        * cp-tree.h (skip_type_access_control,
        reset_type_access_control): Prototype.
        * decl.c (grokdeclarator): Access of friends is not checked.
        * parse.y (component_decl_list): Reset type access control.
        * semantics.c (decl_type_access_control): Clear
        current_type_lookups.
        (save_type_access_control): Don't save if not deferring.
        (skip_type_access_control, reset_type_access_control): New
        functions.
        (begin_class_definition): Do type access control for basetypes.
        Start deferred access control.
        (finish_class_definition): Resume immediate access control if
        this is a local class.

2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * class.c (add_method): Use memcpy/memmove, not bcopy.

        * decl.c (duplicate_decls): Likewise.

2001-03-23  Jakub Jelinek  <jakub@redhat.com>

        * mangle.c (write_discriminator): Use `_0' for discriminator 1,
        not `_'.

2001-03-23  Jakub Jelinek  <jakub@redhat.com>

        * decl.c (local_names): Define.
        (push_local_name): New.
        (grok_reference_init): Return init if initializing static reference
        variable with non-constant instead of emitting it.
        Move expand_static_init call to cp_finish_decl.
        (layout_var_decl): Call push_local_name.
        (maybe_commonize_var): Allow inlining functions even if they have
        static local variables, use comdat_linkage for them if flag_weak.
        (check_initializer): Call obscure_complex_init if
        grok_reference_init returned nonzero.
        (save_function_data): Clear x_local_names.
        (pop_cp_function_context): Free x_local_names.
        (mark_inlined_fns): Remove.
        (mark_lang_function): Mark x_local_names.
        (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
        Mark inlined_fns as tree, remove call to mark_inlined_fns.
        * class.c (alter_access): Ensure DECL_ACCESS is never set if
        DECL_DISCRIMINATOR_P.
        * cp-tree.h (cp_language_function): Add x_local_names.
        (lang_decl_flags): Add discriminator into u2.
        (lang_decl_inlined_fns): Remove.
        (lang_decl): inlined_fns is now a TREE_VEC.
        (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
        * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
        TREE_VEC, not a custom structure.
        (optimize_function): Likewise.
        * mangle.c (discriminator_for_local_entity): Discriminate among
        VAR_DECL local entities.
        * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
        is not valid.

2001-03-22  Bryce McKinlay  <bryce@albatross.co.nz>

        Add support for Java interface method calls.
        * cp-tree.h (struct lang_type): Add java_interface flag.
        (TYPE_JAVA_INTERFACE): New macro.
        * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
        by setting TYPE_JAVA_INTERFACE.
        * call.c (java_iface_lookup_fn): New static.
        (build_over_call): If calling a method declared in a
        TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
        expression which resolves the function address.
        (build_java_interface_fn_ref): New function.

2001-03-22  Richard Henderson  <rth@redhat.com>

        * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
        * except.c: Don't include it.

2001-03-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
            based on an idea from Joe Buck <jbuck@synopsys.com>

        * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
        New nonterminals.
        (data_def, component_decl): Add reductions to bad_decl.

2001-03-22  Jakub Jelinek  <jakub@redhat.com>

        * method.c (do_build_assign_ref): Don't use build_modify_expr for
        anonymous aggregates, since they don't have assignment operator
        method.
        * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
        assignment operators for anonymous structure fields.

2001-03-21  Jason Merrill  <jason@redhat.com>

        * pt.c (instantiate_decl): Abort if we see a member constant
        instantiation that doesn't already have its initializer.
        Downgrade explicit instantiation without definition to pedwarn.

        * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
        * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
        (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.

        * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
        (pending_vtables): Remove.
        * decl2.c (pending_vtables): Remove.
        (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
        CLASSTYPE_VTABLE_NEEDS_WRITING.
        (import_export_class): Likewise.
        (init_decl2): Don't mark pending_vtables.
        * lex.c (handle_pragma_vtable): Just sorry.
        * pt.c (instantiate_class_template): Don't mess with
        CLASSTYPE_VTABLE_NEEDS_WRITING.
        (mark_class_instantiated): Likewise.
        * ptree.c (print_lang_type): Don't print it.
        * semantics.c (begin_class_definition): Don't set it.

        * pt.c (template_tail): Replace with last_pending_template.
        (maybe_templates, maybe_template_tail): Remove.
        (add_pending_template): Adjust.
        (instantiate_pending_templates): Adjust.

        * cp-tree.h (struct saved_scope): Remove lang_stack field.
        (current_lang_stack): Remove.
        * decl.c (maybe_push_to_top_level): Don't initialize it.
        (duplicate_decls): Use current_lang_depth.
        (xref_basetypes): Likewise.
        * class.c (current_lang_depth): New fn.
        (push_lang_context): Use more varray functionality.
        (pop_lang_context): Likewise.

        * error.c (GLOBAL_THING): Always use '__'.

2001-03-21  Mark Mitchell  <mark@codesourcery.com>

        * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.

        * mangle.c (mangle_decl_string): Mangle the names of overloaded
        operators, even when they have `extern "C"' linkage.

2001-03-19  Mark Mitchell  <mark@codesourcery.com>

        * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
        COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
        where it's not necessary.
        (add_method): Remove optimization involving comparison of
        DECL_ASSEMBLER_NAME.
        (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
        COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
        where it's not necessary.
        (check_methods): Likewise.
        (build_clone): Likewise.
        (built_vtt): Likewise.
        * cp-tree.h (DECL_NEEDED_P): Likewise.
        * decl.c (pushtag): Likewise.
        (duplicate_decls): Likewise.
        (pushdecl): Likewise.
        (builtin_function): Likewise.
        (build_library_fn_1): Set DECL_LANGUAGE for library functions.
        (build_cp_library_fn): Likewise.
        (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
        COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
        where it's not necessary.
        (make_rtl_for_nonlocal_decl): Likewise.
        (cp_finish_decl): Likewise.
        (grokfndecl): Likewise.
        (grokvardecl): Likewise.
        (grokdeclarator): Likewise.
        (start_function): Likewise.
        (cp_missing_return_ok_p): Likewise.
        * decl2.c (grokclassfn): Likewise.
        (check_classfn): Likewise.
        (finish_static_data_member_decl): Likewise.
        (grokfield): Likewise.
        * error.c (GLOBAL_IORD_P): Remove.
        (dump_global_iord): Improve output.
        (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
        * except.c (nothrow_libfn_p): Summarily reject any function not in
        namespace-scope.
        * init.c (build_java_class_ref): Don't explicitly set
        DECL_ASSEMBLER_NAME after calling mangle_decl.
        * mangle.c (mangle_decl_string): Handle extern "C" functions.
        (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
        * method.c (set_mangled_name_for_decl): Don't explicitly set
        DECL_ASSEMBLER_NAME after calling mangle_decl.
        (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
        IDENTIFIER_GLOBAL_VALUE for the thunk.
        * pt.c (set_mangled_name_for_template_decl): Remove.
        (check_explicit_specialization): Don't use it.
        (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
        (tsubst_friend_function): Likewise.
        (tsubst_decl): Likewise.
        (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
        * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
        COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
        where it's not necessary.
        (tinfo_base_init): Likewise.
        (create_real_tinfo_var): Likewise.
        * search.c (looup_field_1): Likewise.
        * semantics.c (finish_named_return_value): Likewise.
        * tree.c (init_tree): Set lang_set_decl_assembler_name.

2001-03-15  Gabriel Dos Reis  <gdr@codesourcery.com>

        Correct semantics restrictions checking in throw-expression.
        * except.c (is_admissible_throw_operand): New function.
        (build_throw): Use it.

2001-03-14  Mark Mitchell  <mark@codesourcery.com>

        * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
        and its ilk.

2001-03-14  Mark Mitchell  <mark@codesourcery.com>

        * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
        * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
        * decl.c (duplicate_decls): Likewise.
        (builtin_function): Likewise.
        (build_library_fn): Likewise.
        (build_cp_library_fn): Likewise.
        (check_initializer): Likewise.
        (cp_finish_decl): Likewise.
        * decl2.c (grokfield): Likewise.
        (grok_function_init): Remove #if 0'd code.
        (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
        * friend.c (do_friend): Likewise.
        * init.c (get_temp_regvar): Likewise.
        * method.c (make_thunk): Likewise.
        * pt.c (tsubst_friend_function): Likewise.
        (tsubst_decl): Likewise.
        (regenerate_decl_from_template): Likewise.
        * semantics.c (genrtl_named_return_value): Likewise.
        (expand_body): Likewise.
        (genrtl_finish_function): Likewise.
        * tree.c (cp_tree_equal): Likewise.

2001-03-12  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (convert_like_real): Add extra semantics to INNER
        parameter. Don't convert to temporary if a user conversion
        gives us an lvalue that we're about to bind to a reference.
        Set INNER to indicate pending reference binding on recursive
        calls.

2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp/lex.c: Delete duplicate pending_lang_change.

2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
        Similarly.
        * cp/repo.c (get_base_filename, open_repo_file): Similarly.
        * cp/cp-tree.h: Remove file_name_nondirectory prototype.

2001-03-09  Zack Weinberg  <zackw@stanford.edu>

        * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.

2001-03-08  Stan Shebs  <shebs@apple.com>

        * cp-tree.h (set_identifier_local_value): Remove unused decl.

2001-03-06  Zack Weinberg  <zackw@stanford.edu>

        * spew.c: Remove references to CPP_OSTRING.

2001-03-06  Andrew Haley  <aph@redhat.com>

        * typeck.c (convert_arguments): Check that we have an fndecl.

2001-03-05  Andrew Haley  <aph@redhat.com>

        * typeck.c (convert_arguments): Don't do ellipsis conversion for
        __built_in_constant_p.

2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>

        * typeck.c (build_static_cast): Allow enum to enum conversions
        as per DR 128.

2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (check_field_decls): Pointers to member do not a
        non-pod struct make, as per DR 148.

2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (joust): cp_pedwarn when using gnu extension concerning
        worst conversion sequences.

2001-03-01  Zack Weinberg  <zackw@stanford.edu>

        * decl.c: Replace all uses of 'boolean' with 'bool'.

2001-03-01  Zack Weinberg  <zackw@stanford.edu>

        * lang-specs.h: Add zero initializer for cpp_spec field to
        all array elements that need one.  Don't put an #ifdef inside
        the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
        use it.

2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>

        Implement using decls inside template functions.
        * decl2.c (validate_nonmember_using_decl): Don't special case
        fake_std_node in the global namespace. Don't reject early when
        processing a template.
        (do_local_using_decl): Add to statement tree. Don't do further
        processing when building a template.
        * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.

2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>

        * decl2.c (do_nonmember_using_decl): Don't complain if we find
        same function. Do complain about ambiguating extern "C"
        declarations.

2001-02-28  Nathan Sidwell  <nathan@codesourcery.com>

        Remove floating point and complex type template constant parms.
        * pt.c (convert_nontype_argument): Remove REAL_TYPE and
        COMPLEX_TYPE extensions.
        (invalid_nontype_parm_type_p): Likewise.

2001-02-27  Jeffrey Oldham  <oldham@codesourcery.com>

        * except.c (call_eh_info): Revert "match_function"'s type.

2001-02-27  Nathan Sidwell  <nathan@codesourcery.com>

        Fix ctor vtable vcall offsets.
        * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
        (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
        (get_matching_base): Remove.
        (get_original_base): New function.
        (build_vtbl_initializer): Initialize vid.rtti_binfo.
        Use a virtual thunk for a ctor vtable with an index
        (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
        primary base within a constructor vtable. Only set
        BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
        when primary base has been lost.
        * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.

2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>

        * call.c (joust): Ensure more_specialized()'s argument length
        parameter has correct value for constructors.

2001-02-26  Nathan Sidwell  <nathan@codesourcery.com>

        * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.

        * decl.c (mark_inlined_fns): Prototype.

2001-02-22  Mark Mitchell  <mark@codesourcery.com>

        * spew.c (yylex): Correct handling of friends.

2001-02-22  Mark Mitchell  <mark@codesourcery.com>

        * mangle.c (write_encoding): Pass write_function_type the
        FUNCTION_DECL for the function being encoded.
        (write_function_type): Pass it along to write_bare_function_type.
        (write_bare_function_type): Pass it along to write_method_parms.
        (write_method_parms): Don't mangle the compiler-generated
        parameters to a constructor or destructor.

2001-02-22  Andreas Jaeger  <aj@suse.de>

        * optimize.c: Include toplev.h for
        note_deferral_of_defined_inline_function prototype.

2001-02-22  Jakub Jelinek  <jakub@redhat.com>

        * cp-tree.h (struct lang_decl_inlined_fns): New.
        (struct lang_decls): Add inlined_fns.
        (DECL_INLINED_FNS): New macro.
        * optimize.c (struct inline_data): Add inlined_fns.
        (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
        (inlinable_function_p): Likewise, fix typo in comment,
        function is not inlinable if it already inlined function currently
        being optimized.
        (expand_call_inline): Add fn to inlined_fns if necessary.
        (optimize_function): Initialize inlined_fns.
        Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
        * decl.c (mark_inlined_fns): New function.
        (lang_mark_tree): Call it.

2001-02-21  Jason Merrill  <jason@redhat.com>

        * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
        (DECL_UNINLINABLE): Move to middle-end.

        * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
        * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
        * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
        * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
        parms and outer BLOCK.  note_deferral_of_defined_inline_function.

        * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
        second parm of op=.

2001-02-19  Mark Mitchell  <mark@codesourcery.com>

        * decl2.c (set_decl_namespace): Allow explicit instantiations in
        any namespace.

2001-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * optimize.c (expand_call_inline): Don't walk subtrees of type
        nodes.

2001-02-18  Mark Mitchell  <mark@codesourcery.com>

        * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
        for a destructor.

2001-02-18  Jason Merrill  <jason@redhat.com>

        Do put the VTT parameter in DECL_ARGUMENTS.
        * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
        (current_vtt_parm): New macro.
        (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
        (DECL_HAS_VTT_PARM_P): New macro.
        (DECL_VTT_PARM): Remove.
        (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
        * decl.c (duplicate_decls): Only copy the operator code if
        appropriate.
        (start_function): Set current_vtt_parm.
        (lang_mark_tree): Don't mark vtt_parm.
        * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
        DECL_ARGUMENTS.  Set DECL_HAS_VTT_PARM_P.
        * class.c (build_clone): Maybe remove the VTT parm.
        * optimize.c (maybe_clone_body): Set up the VTT parm.
        * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
        * call.c (build_over_call): Just allow the VTT arg.
        * method.c (make_thunk): Don't set DECL_VTT_PARM.
        (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
        (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
        * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
        * error.c (dump_function_decl): Likewise.
        * call.c (build_user_type_conversion_1, convert_like_real): Abort
        if we try to call a constructor with in-charge or VTT parms.
        * method.c (skip_artificial_parms_for): New fn.
        * call.c (add_function_candidate, build_over_call): Call it.
        * call.c (build_new_method_call): Use current_vtt_parm.
        * init.c (expand_virtual_init): Likewise.
        * class.c (same_signature_p): No longer static.
        * cp-tree.h: Declare it.
        * search.c (look_for_overrides_r): Use it.

2001-02-17  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (new_abi_rtti_p): Remove.
        (name_mangling_version): Likewise.
        (flag_do_squangling): Likewise.
        * class.c (build_rtti_vtbl_entries): Remove old ABI support.
        * decl.c (grokfndecl): Likewise.
        * decl2.c (name_mangling_version): Remove.
        (flag_do_squangling): Likewise.
        (lang_f_options): Remove `squangle'.
        (unsupported_options): Add `squangle'.
        (cxx_decode_option): Issue a warning about uses of
        -fname-mangling-version.
        (finish_file): Remove old ABI support.
        * pt.c (check_explicit_specialization): Likewise.
        (tsubst_decl): Likewise.
        * rtti.c (init_rtti_processing): Likewise.
        (build_headof): Likewise.
        (get_tinfo_decl_dynamic): Likewise.
        (tinfo_from_decl): Likewise.
        (build_dynamic_cast_1): Likewise.
        (synthesize_tinfo_var): Likewise.
        * init.c (build_new): Allow enumeration types for the array-bounds
        in a direct-new-declarator.

        * semantics.c (finish_typeof): Resolve OFFSET_REFs.

        * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
        TREE_PROTECTED from the template being specialized.

2001-02-17  Jason Merrill  <jason@redhat.com>

        * decl2.c (build_artificial_parm): Set TREE_READONLY.

        * decl.c (bad_specifiers): Allow throw specs on things with
        pointer-to-function or -member-function type.
        * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
        a pmf.

2001-02-17  Mark Mitchell  <mark@codesourcery.com>

        * call.c (check_dtor_name): Handle template names correctly.

2001-02-16  Jason Merrill  <jason@redhat.com>

        * cp-tree.h (DECL_USE_VTT_PARM): Remove.
        * decl2.c (maybe_retrofit_in_chrg): Don't create it.
        * optimize.c (maybe_clone_body): Don't substitute it.
        * call.c (build_new_method_call): Check in_chrg instead.
        * init.c (expand_virtual_init): Likewise.

2001-02-16  Gabriel Dos Reis  <gdr@codesourcery.com>

        * decl.c (check_tag_decl): Make sure a typedef for an anonymous
        class-type introduces at least a type-name.

2001-02-16  Jakub Jelinek  <jakub@redhat.com>

        * call.c (convert_like_real): Create a temporary for non-lvalue.

2001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>

        * cp-tree.h: Fix typos in comments.

2001-02-16  Jason Merrill  <jason@redhat.com>

        * optimize.c (remap_block): If we're compiling a clone, pass the
        new block to insert_block.

2001-02-16  Mark Mitchell  <mark@codesourcery.com>

        * semantics.c (finish_asm_stmt): Robustify.

2001-02-15  Mark Mitchell  <mark@codesourcery.com>

        * pt.c (push_template_decl_real): Don't remangle the name of a
        class template.

2001-02-15  Jim Meyering  <meyering@lucent.com>

        * Make-lang.in (c++.install-common): Depend on installdirs.
        (c++.install-info): Likewise.
        (c++.install-man): Likewise.

2001-02-15  Mark Mitchell  <mark@codesourcery.com>

        * typeck2.c (build_m_component_ref): Robustify.

2001-02-15  Alexandre Oliva  <aoliva@redhat.com>

        * friend.c (do_friend): Don't take the nested [template] class
        into account when deciding whether to warn about the friend
        function not referring to a template function.

2001-02-14  Jakub Jelinek  <jakub@redhat.com>

        * typeck.c (build_unary_op): Clarify error message.

2001-02-08  Aldy Hernandez  <aldyh@redhat.com>

        * parse.y (component_constructor_declarator): allow optional
        parentheses around constructor class name.

2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
        section.
        * init.c (emit_base_init): Remove incorrect comment about
        virtual bases.
        * method.c (make_thunk): Fix comment alignment.

2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>

        Kill remnants of this is variable.
        * cp-tree.h (flag_this_is_variable): Remove.
        * decl2.c (flag_this_is_variable): Remove.
        * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
        (build_vbase_path): The path is non-static, even in a cdtor.
        (resolves_to_fixed_type_p): Add additional return value.
        * search.c (init_vbase_pointers): Adjust.
        * tree.c (lvalue_p_1): Adjust.
        * typeck.c (mark_addressable): Adjust.

2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (unify): Don't check cv quals of array types.

2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>

        * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
        check whether we already have the type.

2001-02-13  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
        * call.c (build_op_delete_call): Simplify to remove duplicate
        code.
        * class.c (clone_function_decl): Don't build the deleting variant
        of a non-virtual destructor.
        * decl.c (finish_destructor_body): Don't call delete if this is a
        non-virtual destructor.
        * init.c (build_delete): Explicitly call `operator delete' when
        deleting an object with a non-virtual destructor.

2001-02-13  Jason Merrill  <jason@redhat.com>

        * lang-specs.h: Add more __EXCEPTIONS.

2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>

        * typeck2.c (process_init_constructor): Check
        TREE_HAS_CONSTRUCTOR before issuing missing init warning.

2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
        Remove spurious information in comment. Allow further
        adjustments of REFERENCE_TYPE args.

2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>

        * errfn.c (cp_deprecated): Tweak diagnostic text.
        * parse.y (new_initializer): Deprecate initializer lists
        extension.

2001-02-12  Mark Mitchell  <mark@codesourcery.com>

        Remove old ABI support.

2001-02-11  Mark Mitchell  <mark@codesourcery.com>

        * decl2.c (flag_vtable_thunks): Always set it to 1.
        (flag_new_abi): Likewise.
        * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.

        * Makefile.in (g++spec.o): Fix typo.

2001-02-09  Jason Merrill  <jason@redhat.com>

        * lang-specs.h: Restore definition of __EXCEPTIONS.

2001-02-08  Jason Merrill  <jason@redhat.com>

        * search.c (shared_member_p): New function.
        (lookup_field_r): Use it.
        * cp-tree.h (SHARED_MEMBER_P): Remove.

        * method.c (process_overload_item): Handle template-dependent array
        bounds.
        * pt.c (type_unification_real): If we end up with undeduced nontype
        parms, try again.

        * decl.c (lookup_name_real): Tweak warning to refer to decls, not
        types.

        * typeck2.c (friendly_abort): Don't say anything if we have
        earlier errors or sorries.

        * decl.c (check_tag_decl): Notice attempts to redefine bool and
        wchar_t.  Ignore if in_system_header.

        * decl.c (maybe_push_cleanup_level): New fn...
        (start_decl_1): ...split out from here.
        * cvt.c (build_up_reference): Use it.
        * cp-tree.h: Declare it.

2001-02-07  Mark Mitchell  <mark@codesourcery.com>

        * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
        spec.

2001-02-06  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (lookup_template_class): Make sure it's a primary
        template or template_template_parm when called from the parser.
        (instantiate_template_class): Add assertion.

2001-02-05  Alexandre Oliva  <aoliva@redhat.com>

        * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
        from error_mark_node.

2001-02-05  Nathan Sidwell  <nathan@codesourcery.com>

        Fix specification and implementation bugs in V3 ABI
        construction vtables.
        * cp-tree.h (flag_dump_class_layout): New flag.
        (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
        (BINFO_LOST_PRIMARY_P): New flag.
        (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
        (BINFO_PRIMARY_MARKED_P): Rename to ...
        (BINFO_PRIMARY_P): ... here.
        (binfo_via_virtual): New prototype.
        * decl2.c (flag_dump_class_layout): New flag.
        (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
        use `=' as a file name separator.
        * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
        bases.
        (build_vtbl_address): If this is a virtual primary base, then
        get the vtbl of what it is ultimately primary for.
        * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
        for BINFO_PRIMARY_P.
        (dfs_skip_nonprimary_vbases_markedp): Likewise.
        (get_shared_vbase_if_not_primary): Likewise.
        (dfs_get_pure_virtuals): Likewise.
        (expand_upcast_fixups): Likewise.
        (fixup_virtual_upcast_offsets): Likewise.
        (dfs_find_vbase_instance): Likewise.
        (find_vbase_instance): Likewise.
        (binfo_from_vbase): Adjust comment to reflect reality.
        (binfo_via_virtual): New function.
        * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
        for binfo walking during VTT construction.
        (dfs_mark_primary_bases): Remove.
        (force_canonical_binfo_r): New function.
        (force_canonical_binfo): New function.
        (mark_primary_virtual_base): New function.
        (mark_primary_bases): Walk in inheritance graph order, use
        mark_primary_virtual_base.
        (determine_primary_base): Use some more intermediate variables.
        (dfs_find_final_overrider): Don't check for overriding along a
        virtual path.
        (dfs_modify_vtables): Walk into primary virtual bases too.
        (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
        (build_base_fields): Likewise.
        (dfs_set_offset_for_unshared_vbases): Likewise.
        (layout_virtual_bases): Likewise.
        (end_of_class): Likewise.
        (finish_struct_1): Call dump_class_hierarchy, if requested.
        (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
        (dump_class_hierarchy_r): Add stream parameter. Emit more information.
        (dump_class_hierarchy): Add file parameter. Append to file, if
        required.
        (finish_vtbls): Adjust accumulate_vtbl_inits call.
        Use canonical base for virtual bases.
        (build_vtt): Add more comments. Adjust build_vtt_inits call.
        (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
        Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
        VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
        virtual VTTs.
        (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
        from DATA.  We want virtual primary bases and all bases via virtual.
        Only set BINFO_VPTR_INDEX for top level. Look up from a primary
        virtual base when not a construction vtable.
        (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
        (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
        Use canonical bases when processing virtual bases.
        (accumulate_vtbl_inits): We're interested in any base via a
        virtual path.
        (dfs_accumulate_vtbl_inits): If this is a primary virtual base
        within a construction vtable, determine what is being overridden.
        (build_vtbl_initializer): Add more comments
        (add_vcall_offset_vtbl_entries_1): Adjust comment.
        (build_rtti_vtbl_entries): Check if the base has lost its
        primary.

2001-02-05  Mark Mitchell  <mark@codesourcery.com>

        * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.

2001-02-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * decl.c (pushdecl): Call abort instead of fatal.
        * except.c (decl_is_java_type): Call fatal_error instead of fatal.
        * init.c (build_new_1): Likewise.
        (build_java_class_ref): Call internal_error and fatal_error, not fatal.
        * decl.c (build_typename_type): hash_table_init now returns void.
        decl.c (init_decl_processing): Make an error non-fatal.

2001-02-04  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
        Document.
        (CLASSTYPE_INTERFACE_KNOWN): Likewise.
        (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
        (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
        (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
        * decl.c (maybe_commonize_var): Use the new name-mangling where
        appropriate.
        * decl2.c (comdat_linkage): Enhance comments.  Make all
        compiler-generated things static, if COMDAT is not available.
        (get_tinfo_decl): Do not make typeinfo objects that belong in the
        library COMDAT.
        (tinfo_base_init): Use the correct mangled name for typeinfo
        strings, and push them into the global scope.
        (typeinfo_in_lib_p): New function.
        (synthesize_tinfo_var): Use it.
        (create_real_tinfo_var): Likewise.

2001-02-03  Jakub Jelinek  <jakub@redhat.com>

        * decl.c (push_class_binding): Use context_for_name_lookup instead
        of CP_DECL_CONTEXT.
        * search.c (context_for_name_lookup): Remove static.  Check for NULL
        context in the loop.
        * cp-tree.h (context_for_name_lookup): Add prototype.

2001-02-02  Jakub Jelinek  <jakub@redhat.com>

        * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
        * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
        Remove.
        * call.c (convert_class_to_reference, build_user_type_conversion_1,
        add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.

2001-02-02  Mark Mitchell  <mark@codesourcery.com>

        * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
        of macros used when compiling g++spec.c.
        * g++spec.c (lang_specific_driver): Link with the shared
        libgcc by default.

2001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>

        * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
        make_reference_declarator, make_call_declarator), method.c
        (implicitly_declare_fn), parse.y (namespace_using_decl,
        notype_unqualified_id, expr_or_declarator, new_type_id,
        after_type_declarator, direct_after_type_declarator,
        notype_declarator, complex_notype_declarator,
        complex_direct_notype_declarator, qualified_id,
        notype_qualified_id, overqualified_id, direct_new_declarator,
        absdcl, direct_abstract_declarator, conversion_declarator), pt.c
        (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
        instead of build_parse_node.

2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
        (minus_one_node): Moved to top level gcc directory.  Renamed
        to integer_minus_one_node.

        * init.c (init_init_processing): Don't set minus_one_node.
        (build_vec_init): Use integer_minus_one_node.

        * rtti.c (get_tinfo_decl_dynamic): Likewise.

2001-01-28  Jakub Jelinek  <jakub@redhat.com>

        * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
        identical and they would be replaced with constant, remove
        MODIFY_EXPR from the tree.

2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * Make-lang.in: Remove all dependencies on defaults.h.
        * call.c: Don't include defaults.h.
        * decl.c: Likewise.
        * decl2.c: Likewise.
        * except.c: Likewise.
        * pt.c: Likewise.
        * rtti.c: Likewise.
        * tree.c: Likewise.
        * typeck.c: Likewise.

2001-01-25  Jakub Jelinek  <jakub@redhat.com>

        * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
        operators even in "C" linkage.
        * method.c (set_mangled_name_for_decl): Likewise.
        * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
        overloaded operators in "C" linkage.

2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (tsubst_decl): Remove IN_DECL parameter.
        (tsubst_arg_types): Check parameter is not void.
        (tsubst): Adjust tsubst_decl call.

2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (add_builtin_candidate): Quote std properly, from
        previous change.

2001-01-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * pt.c (check_explicit_specialization): Clone constructors and
        destructors.

2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>

        * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
        indicates anything special about template depth. Make sure we
        only count the user visible template classes.

2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (build_conv): Typo in comment.
        (add_builtin_candidate): Add more explanation.
        Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
        Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
        when we have enumeral types.
        (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
        candidates for relops and eqops.
        (joust): Simplify control flow. Allow a non-template user
        function to hide a builtin.

2001-01-22  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
        (more_specialized): Add deduction parameter.
        * call.c (joust): Adjust more_specialized call.
        * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
        UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
        (get_bindings_order): Remove.
        (get_bindings_real): Add DEDUCE parameter.
        (maybe_adjust_types_for_deduction): Return extra unify flags. Do
        REFERENCE_TYPE jig for DEDUCE_ORDER.
        (type_unification_real): Deal with DEDUCE_ORDER. Use result of
        maybe_adjust_types_for_deduction.
        (more_specialized): Add DEDUCE parameter. Call get_bindings_real
        directly.
        (try_one_overload): Use result of maybe_adjust_types_for_deduction.
        (check_cv_quals_for_unify): Use new unify qualifier flags.
        (unify): Clear new unify qualifier flags.
        (get_bindings_real): Add DEDUCE parameter.
        (get_bindings): Adjust call to get_bindings_real.
        (get_bindings_overload): Likewise.
        (most_specialized_instantiation): Adjust call to
        more_specialized.

2001-01-19  Jason Merrill  <jason@redhat.com>

        * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.

        * decl.c (init_decl_processing): Just force -fvtable-thunks on if
        -fnew-abi.

2001-01-19  Ute Pelkmann  <scope.muc@t-online.de>

        * decl2.c (arg_assoc_class): Fix double iteration logic.

2001-01-19  Jason Merrill  <jason@redhat.com>

        * init.c (build_delete): Always call convert_force to strip cv-quals.

        * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
        * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
        * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.

2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>

        * search.c (get_vbase_1): Count only virtual bases.

2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (duplicate_tag_error): Robustify flag clearing.

2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.h (lookup_template_class): Add complain parm.
        * decl.c (lookup_namespace_name): Adjust call to
        lookup_template_class.
        (make_typename_type): Likewise.
        * semantics.c (finish_template_type): Likewise.
        * pt.c (lookup_template_class): Add complain parm. Adjust.
        (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
        (tsubst): Likewise.

2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (copy_default_args_to_explicit_spec): Preserve
        object's CV quals. Reorganize.

2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>

        * typeck.c (build_modify_expr): Say `initialization' for
        INIT_EXPRs.
        * init.c (build_default_init): Convert to enumeral type, if
        needed.

2001-01-18  Jakub Jelinek  <jakub@redhat.com>

        * parse.y (nomods_initdcl0): Properly set things up for
        initdcl0_innards.

2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
        (type_unification_real): Set it.
        (unify): Use it.

2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>

        * decl.c (finish_destructor_body): Convert to vbase pointer here.

2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>

        * semantics.c (begin_class_definition): Check we're not inside a
        template parm list.

2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>

        * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
        BASELINK_P.

2001-01-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
        * call.c (build_over_call): Add comment.

2001-01-16 Daniel Berlin <dberlin@redhat.com>

        * cvt.c (ocp_convert): Handle vector type conversion
        * typeck2.c (digest_init): Handle vector type initializations

2001-01-16  Phil Edwards  <pme@sources.redhat.com>

        * g++spec.c:  Don't add libraries needlessly if -fsyntax-only
          was given.

2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (check_nontype_parm): Rename to ...
        (invalid_nontype_parm_type_p): ... here.
        (process_template_parm): Adjust.
        (convert_template_argument): Adjust.

2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (check_nontype_parm): New function.
        (process_template_parm): Use it.
        (convert_template_argument): Use it.
        (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
        member.

2001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>

        * tree.c: Add defaults.h
        (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
        * Make-lang.in (cp/tree.o): Add defaults.h.

2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>

        * Make-lang.in (CXX_C_OBJS): Add c-format.o.

2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>

        * g++.1: Change to be ".so man1/gcc.1".

2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>

        * Make-lang.in (c++.info, c++.install-info): Build and install g++
        internals info.
        (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
        ($(srcdir)/cp/g++int.info): New target.
        * gxxint.texi: Add info directory entry.  Use @@ in email address.
        * .cvsignore: Update.

2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>

        * typeck.c (build_c_cast): Do template processing earlier.
        Always pedwarn on array casts.

2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>

        * friend.c (make_friend_class): Make sure a templated class is
        actually a template.

2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>

        * decl2.c (get_guard): Set linkage from guarded decl.

2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (convert_default_arg): Check for unprocessed
        DEFAULT_ARG.
        * cp-tree.h (replace_defarg): Move to spew.c.
        (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
        spew.c, which is where they really are.
        (done_pending_defargs): Declare.
        (unprocessed_defarg_fn): Declare.
        * decl.c (replace_defarg): Move to spew.c
        * parse.y (structsp): Call done_pending_defargs.
        * spew.c (defarg_fns): Rearrange list structure.
        (defarg_fnsdone): New static variable.
        (defarg_depfns): New static variable.
        (init_spew): Adjust.
        (add_defarg_fn): Store the type in TREE_TYPE.
        (do_pending_defargs): Detect and deal with ordering constraints
        and circularity.
        (done_pending_defargs): New function.
        (unprocessed_defarg_fn): New function.
        (replace_defarg): Moved from decl.c. Robustify. Don't save
        if circularity detected.

2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (unify): Check array has a domain, before checking
        whether it is variable sized.

2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>

        * decl.c (grokparms): Unobfuscate and get correct diagnostic for
        parameters with pointers to arrays of unknown bound.

2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>

        * parse.y (template_parm_header, template_spec_header): New
        reductions. Split out from ...
        (template_header): ... here. Use them.
        (template_template_parm): Use template_parm_header.
        * semantics.c (finish_template_template_parm): Add assert.

2001-01-10  Mark Mitchell  <mark@codesourcery.com>

        * mangle.c (write_builtin_type): Fix thinko.

        * pt.c (copy_default_args_to_explicit_spec_1): New function.
        (copy_default_args_to_explicit_spec): Likewise.
        (check_explicit_specialization): Use it.

        * class.c (finish_struct_1):  Remove last argument in call to
        make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
        * decl.c (builtin_function): Likewise.
        (build_cp_library_fn): Likewise.
        (check_initializer): Likewise.
        (make_rtl_for_nonlocal_decl): Likewise.
        (cp_finish_decl): Likewise.
        (start_function): Likewise.
        * decl2.c (finish_anon_union): Likewise.
        * friend.c (do_friend): Likewise.
        * init.c (build_java_class_ref): Likewise.
        * method.c (make_thunk): Likewise.
        * pt.c (tsubst_friend_function): Likewise.
        * semantics.c (expand_body): Likewise.

2001-01-10  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
        looking at DECL_CLONED_FUNCTION for non-functions.

2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>

        * error.c (dump_template_parameter): Use parm to determine how
        to print default value.

2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (duplicate_tag_error): Clear more flags.

2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (build_new_method_call): Use binfo_for_vbase.

2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>

        * cp-tree.h (flag_cond_mismatch): Don't declare.
        * decl2.c (flag_cond_mismatch): Don't define.
        (lang_f_options): Remove cond-mismatch.
        (unsupported_options): Add cond-mismatch.

2001-01-09  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (handle_using_decl): Reject using of constructor name
        of sourcing class. Allow injecting of a method with same name as
        nested class. Fixup error messages.

2001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>

        * decl2.c (lang_decode_option): Handle -Wformat=2.

2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.h (lang_decl_flags): Rename defined_in_class to
        initialized_in_class.
        (DECL_DEFINED_IN_CLASS_P): Rename to ...
        (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
        * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
        (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
        * pt.c (check_default_tmpl_args): Adjust for
        DECL_INITIALIZED_IN_CLASS_P.
        (instantiate_class_template): Likewise.
        (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.

        * class.c (finish_struct): Constify saved_filename.

2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>

        * class.c (duplicate_tag_error): Adjust diagnostic.
        (finish_struct): Locally set location to start of struct.
        * decl.c (fixup_anonymous_aggr): Use cp_error_at.

2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>

        * decl.c (struct binding_level): Adjust class_shadowed comments
        to reflect reality.
        (push_class_level_binding): Adjust comments to reflect reality.
        Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
        Don't set TREE_VALUE on the class_shadowed list.

2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * decl2.c (acceptable_java_type): Allow references too.
        * init.c (build_java_class_ref): When using the new ABI, search
        `class$' and have it mangled with `mangle_decl.'
        * mangle.c (write_java_integer_type_codes): New function.
        (write_builtin_type): Detect and mangle Java integer and real
        types.

2001-01-07  Mark Mitchell  <mark@codesourcery.com>

        * decl2.c (grokfield): Don't accept `asm' specifiers for
        non-static data members.

2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * expr.c (cplus_expand_expr): Don't reset `target'.

2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>

        * cp/decl2.c (cxx_post_options): Call cpp_post_options.

2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>

        * parse.y (template_datadef): Check for error_mark_node.

2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.def (DEFAULT_ARG): Make `x' class.

2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>

        * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
        (record_builtin_type): Make non-static.
        (flag_short_double): Don't declare.
        (init_decl_processing): Remove the creation of many tree nodes now
        in c_common_nodes_and_builtins.
        (build_void_list_node): New function.
        * decl2.c (flag_short_double, flag_short_wchar): Don't define.
        * cp-tree.h (flag_short_wchar): Don't declare.

2001-01-04  Mark Mitchell  <mark@codesourcery.com>

        * call.c (build_conv): Don't use build1 for USER_CONV.
        * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.

2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>

        * lex.c (lang_init): Call c_common_lang_init.

2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>

        * search.c (lookup_fnfields_here): Remove.
        (look_for_overrides_r): Use lookup_fnfields_1.
        Ignore functions from using declarations.

2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>

        Implement exceptions specifiers for implicit member functions.
        * cp-tree.h (merge_exceptions_specifiers): Declare new function.
        * method.c (synthesize_exception_spec): New function.
        (locate_dtor, locate_ctor, locate_copy): New functions.
        (implicitly_declare_fn): Generate the exception spec too.
        * search.c (check_final_overrider): Check artificial functions
        too.
        * typeck2.c (merge_exception_specifiers): New function.

2001-01-03  Jason Merrill  <jason@redhat.com>

        * init.c (build_default_init): New fn.
        (perform_member_init): Split out from here.
        (build_new_1): Use it.  Simplify initialization logic.
        (build_vec_init): Take an array, rather than a pointer and maxindex.
        Speed up simple initializations.  Don't clean up if we're assigning.
        * cp-tree.h: Adjust.
        * decl2.c (do_static_initialization): Remove TREE_VEC case.
        * parse.y (new_initializer): Return void_zero_node for ().
        * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
        * typeck2.c (digest_init): Only complain about user-written
        CONSTRUCTORs.

2000-12-22  Mike Stump  <mrs@wrs.com>

        * decl2.c: (max_tinst_depth): Increase to 50.

2001-01-02  Mark Mitchell  <mark@codesourcery.com>

        * class.c (invalidate_class_lookup_cache): Zero the
        previous_class_values.
        * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
        TREE_INT_CST_HIGH.
        (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
        * decl.c (free_bindings): New variable.
        (push_binding): Don't create a new binding if we have one on the
        free list.
        (pop_binding): Put old bindings on the free list.
        (init_decl_processing): Use size_int, not build_int_2.
        Register free_bindings as a GC root.
        (cp_make_fname_decl): Use size_int, not build_int_2.
        (push_inline_template_parms_recursive): Likewise.
        (end_template_parm_list): Likewise.
        (for_each_template_parm): Do not use walk_tree_without_duplicates.
        (tsubst_template_parms): Use size_int, not build_int_2.
        (tsubst): Likewise.
        * rtti.c (get_vmi_pseudo_type_info): Likewise.

2001-01-02  Richard Henderson  <rth@redhat.com>

        * parse.y (asm): Set ASM_INPUT_P.

2001-01-02  Jason Merrill  <jason@redhat.com>

        * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
        for v3 ABI.

        * typeck.c (cp_truthvalue_conversion): New fn.
        * cvt.c (ocp_convert): Use it.

        * cp-tree.h: Lose c-common.c decls.

        * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
        * cvt.c (convert_to_void): Use type_unknown_p.

        * typeck.c (strip_all_pointer_quals): Also strip quals from
        pointer-to-member types.

        * Make-lang.in (cp/TAGS): Use --no-globals.  Ignore parse.c, and treat
        parse.y as C.

        * call.c (build_new_method_call): Do evaluate the object parameter
        when accessing a static member.
        * typeck.c (build_component_ref): Likewise.

2001-01-02  Andreas Jaeger  <aj@suse.de>

        * decl.c (cp_missing_noreturn_ok_p): New.
        (init_decl_processing): Set lang_missing_noreturn_ok_p.


Copyright (C) 2001 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.