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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [cp/] [ChangeLog-2005] - Rev 859

Go to most recent revision | Compare with Previous | Blame | View Log

2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * cxx-pretty-print.c (pp_cxx_constant): New.  Print
        string-literal in parens if input program says so.
        (pp_cxx_primary_expression): Hand off constant printing to
        pp_cxx_constant.
        (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
        (pp_cxx_expression): Use pp_cxx_constant for literals.
        * error.c (dump_expr): Use pp_constant for literals.

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

        * method.c (make_thunk): Don't set comdat_linkage here.
        (use_thunk): Make thunk one only here, if thunk target is
        DECL_ONE_ONLY.

2005-12-26  Mark Mitchell  <mark@codesourcery.com>

        PR c++/25439
        * decl.c (grokdeclarator): Remove dead code.
        * ptree.c (cxx_print_xnode): Handle BASELINK.
        * parser.c (make_id_declarator): Add sfk parameter.
        (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
        make_id_declarator.
        (cp_parser_declarator_id): Simplify BASELINKs here.
        (cp_parser_member_declaration): Adjust calls to
        make_id_declarator.

2005-12-26  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23171, c++/23172, c++/25417.
        * typeck.c (build_unary_op): Create temporary variables for
        compound literals whose addresses are taken.
        * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
        * decl.c (reshape_init_vector): Likewise.
        (reshape_init): Give it external linkage.
        (check_initializer): Use COMPOUND_LITERAL_P.
        (initialize_artificial_var): Allow the initializer to be a
        CONSTRUCTOR.
        * call.c (make_temporary_var_for_ref_to_temp): Use
        create_temporary_var.
        * cp-tree.h (COMPOUND_LITERAL_P): New macro.
        (rehape_init): Declare.
        * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
        * semantics.c (finish_compound_literal): Use reshape_init.

2005-12-23  Mark Mitchell  <mark@codesourcery.com>

        PR c++/24671
        * pt.c (instantiate_template): Handle SFINAE.

2005-12-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * decl.c (grokdeclarator): Improve diagnostic for friend
        declarations of class members.

2005-12-22  Mark Mitchell  <mark@codesourcery.com>

        PR c++/25369
        * tree.c (really_overloaded_fn): Tweak comment.
        * pt.c (tsubst_call_declarator_parms): Remove.
        (tsubst_copy): Call mark_used on the member referenced by an
        OFFSET_REF.
        * semantics.c (finish_qualified_id_expr): Simplify.
        * decl2.c (mark_used): Accept BASELINKs.

        PR c++/25364
        * typeck.c (build_unary_op): Pass DECLs not names to
        build_offset_refs.
        * init.c (build_offset_ref): Do not do name lookup.  Do not call
        mark_used.
        * call.c (build_call): Simplify and tidy.
        * semantics.c (finish_qualified_id_expr): Call mark_used.

2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/23333
        * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
        identify a single '0'.

2005-12-20  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21228
        * decl.c (use_eh_spec_block): New function.
        (store_parm_decls): Use it.
        (finish_function): Likewise.

2005-12-19  Mark Mitchell  <mark@codesourcery.com>

        PR c++/24278
        * init.c (expand_member_init): Print messages about baseclasses
        using %T rather than %D.

        PR c++/24915
        * class.c (add_method): Do not treat templates as identical unless
        their return types are the same.

2005-12-12  Mark Mitchell  <mark@codesourcery.com>

        PR c++/25300
        * tree.c (build_qualified_name): Return error_mark_node for
        erroneous input.

2005-12-10  Mark Mitchell  <mark@codesourcery.com>

        PR c++/25337
        * pt.c (tsubst_copy_and_build): Permit dependent types for the
        object in a class member access expression.

2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>

        PR java/9861
        * mangle.c (write_bare_function_type): Mangle return type for
        methods of Java classes

2005-12-08  Théodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

        * call.c (build_conditional_expr): Print types in error messages.

2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.

2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.

2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>

        * Make-lang.in (c++.all.build, c++.install-normal): Remove.

2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>

        * Make-lang.in: Remove all dependencies on s-gtype.

2005-12-06  Aldy Hernandez  <aldyh@redhat.com>

        PR C++/24138
        * decl.c (reshape_init_array_1): Handle max_index of -1.

2005-12-06  Roger Sayle  <roger@eyesopen.com>

        * typeck.c (build_binary_op): Issue warning if either operand of a
        comparison operator is a string literal, except for testing equality
        or inequality against NULL.

2005-12-06  Roger Sayle  <roger@eyesopen.com>

        PR c++/25263
        * decl.c (compute_array_index_type): Check that itype is an
        INTEGER_CST node before testing/clearing TREE_OVERFLOW.

2005-12-05  Daniel Berlin  <dberlin@dberlin.org>

        * ptree.c (cxx_print_decl): Update to check for decl_common
        structure.

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

        PR c++/24173
        * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
        clobbering newdecl.

2005-12-02  Richard Guenther  <rguenther@suse.de>

        * semantics.c (simplify_aggr_init_expr): Use buildN instead
        of build.

2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
        ggc_realloc.
        (cp_parser_template_argument_list): Use XRESIZEVEC instead of
        xrealloc.
        * class.c (pushclass): Likewise.

2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * decl2.c (get_priority_info): Use XNEW, not xmalloc.
        * decl.c (push_switch): Likewise.
        * lex.c (handle_pragma_implementation): Likewise.
        * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
        not ggc_alloc.
        (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
        * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
        * g++spec.c (lang_specific_driver): Likewise.
        * mangle.c (save_partially_mangled_name): Likewise.
        * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
        (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
        (cp_parser_sizeof_operand): Likewise.
        * repo.c (open_repo_file, open_repo_file): Likewise.

2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * parser.c (cp_parser_make_typename_type): Call make_typename_type
        with tf_none instead of magic value 0.
        (cp_parser_explicit_instantiation): Call do_type_instantiation
        with tf_error instead of magic value 1.
        (cp_parser_elaborated_type_specifier): Call make_typename_type
        with tf_error instead of magic value 1.
        (cp_parser_class_name): Likewise.
        (cp_parser_lookup_name): Likewise.

2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
        not RID_MAX.

2005-11-30  Jason Merrill  <jason@redhat.com>

        PR c++/21123
        * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
        parms in a thunk.

2005-11-30  Ben Elliston  <bje@au.ibm.com>

        * typeck.c (build_x_unary_op): Correct spelling in error message.

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

        PR c++/21166
        * class.c (check_field_decls): Only set DECL_PACKED on a field
        when its natural alignment is > BITS_PER_UNIT.

2005-11-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/24979
        * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.

2005-11-26  Richard Henderson  <rth@redhat.com>

        * lex.c: Update for pragma_lex rename.
        * parser.c: Likewise.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/9278
        * decl.c (grokparms): Do not allow typedef-names in a '(void)'
        parmlist.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * typeck2.c (process_init_constructor_union): Remove check for
        unnamed union members.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * name-lookup.c (lookup_name_real): Merge two if's.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * pt.c (instantiate_class_template): Clean-up.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * pt.c (template_class_depth_real): Remove. Move functionality to ...
        (template_class_depth): ... here, replacing count_specializations
        with 0.  Adjust comment.

2005-11-24  Richard Guenther  <rguenther@suse.de>
        Dirk Mueller <dmueller@suse.de>

        PR c++/14024
        * typeck.c (build_reinterpret_cast_1): Use
        strict_aliasing_warning.

2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        PR c++/24235
        * pt.c (check_instantiated_args): Reword diagnostic message about
        template argument involving local types.

2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        PR c++/21667
        * typeck.c (build_array_ref): Avoid code duplicate.  Use common
        C/C++ diagnostic function warn_array_subscript_with_type_char.

2005-11-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        PR c++/22238
        * error.c (resolve_virtual_fun_from_obj_type_ref): New.
        (dump_expr): Use it in <case CALL_EXPR>.

2005-11-21  Richard Henderson  <rth@redhat.com>

        * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.

        * name-lookup.c (lookup_name): Remove prefer_type argument.
        (lookup_name_prefer_type): New.
        * decl.c (lookup_and_check_tag): Use them.
        * pt.c (tsubst_friend_class): Likewise.
        (lookup_template_class): Likewise.
        (tsubst_copy_and_build): Likewise.
        * name-lookup.h (lookup_name_prefer_type): New.
        (lookup_name): Remove declaration.

2005-11-18  Mark Mitchell  <mark@codesourcery.com>

        PR c++/8355
        * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
        set_decl_namespace.
        * name-lookup.c (set_decl_namespace):

2005-11-18  Mike Stump  <mrs@apple.com>

        * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
        * name-lookup.c (lookup_name_two): Remove.
        (lookup_name_one): Add.
        * name-lookup.h (lookup_name_two): Remove.
        (lookup_name_one): Add.

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

        PR c++/24580
        * method.c (locate_copy): Also use skip_artificial_parms here.
        (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
        for RECORD_TYPE.
        (locate_ctor): Abort if we fail to find a default constructor.

2005-11-15  Mike Stump  <mrs@apple.com>

        * name-lookup.c (lookup_name_two): Add.
        * name-lookup.h: Likewise.

2005-11-15  Mark Mitchell  <mark@codesourcery.com>

        PR c++/24667
        * typeck.c (check_for_casting_away_constness): Use the diag_fn.
        (build_const_cast_1): Call it, for C-style casts.

2005-11-14  Mark Mitchell  <mark@codesourcery.com>

        PR c++/24687
        * pt.c (check_explicit_specialization): Don't check for C linkage.
        (push_template_decl_real): Likewise.
        * parser.c (cp_parser_explicit_specialization): Check here.
        (cp_parser_template_declaration_after_export): And here.

        * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
        field.

2005-11-14  Jason Merrill  <jason@redhat.com>

        PR c++/24580
        * method.c (locate_ctor): Skip all artificial parms, not just
        'this'.

2005-11-14  Mark Mitchell  <mark@codesourcery.com>

        * parser.c (eof_token): Add initializer for ambiguous_p.

2005-11-13  Mark Mitchell  <mark@codesourcery.com>

        PR c++/24817
        * decl.c (check_redeclaration_exception_specification): New
        function.
        (duplicate_decls): Use it.
        * error.c (fndecl_to_string): Print the template parameter list.

        PR c++/20293
        * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
        for namespaces.
        (pp_cxx_original_namespace_definition): Likewise.
        * name-lookup.c (ambiguous_decl): Don't issue error messages;
        instead return lists of ambiguous candidates.
        (select_decl): Handle ambiguous namespace lookups.
        * parser.c (cp_token): Add ambiguous_p.
        (cp_lexer_get_preprocessor_token): Set it.
        (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
        when a qualified name uses an invalid scope.
        (cp_parser_primary_expression): Print ambiguous candidates.
        (cp_parser_type_parameter): Adjust comment to reflect new
        parameter name for cp_parser_lookup_name.
        (cp_parser_template_argument): Likewise.
        (cp_parser_elaborated_type_specifier): Likewise.
        (cp_parser_namespace_name): Likewise.
        (cp_parser_class_name): Print ambiguous candidates.
        (cp_parser_lookup_name): Rename ambiguous_p parameter to
        ambiguous_decls.  Use it to return a list of ambiguous candiates
        when a lookup is ambiguous.
        (cp_parser_lookup_name_simple): Adjust comment to reflect new
        parameter name for cp_parser_lookup_name.

2005-11-12  Jakub Jelinek  <jakub@redhat.com>

        PR c++/24780
        * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
        and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
        of array type.

        PR c++/24761
        * pt.c (tsubst_copy_asm_operands): New function.
        (tsubst_expr) <case ASM_EXPR>: Use it.

2005-11-08  Jakub Jelinek  <jakub@redhat.com>

        PR c++/19450
        * decl.c (redeclaration_error_message): Issue diagnostics about
        olddecl and newdecl disagreement on __thread property.
        (grokdeclarator): Set DECL_TLS_MODEL on class static variables.

2005-11-08  Jason Merrill  <jason@redhat.com>

        PR c++/21123
        * method.c (use_thunk): Use build_cplus_new instead of
        force_target_expr.

2005-11-06  Jason Merrill  <jason@redhat.com>
            James A. Morrison <phython@gcc.gnu.org>

        PR c++/17256
        * decl2.c (cp_finish_file): Fix conditions for undefined warning.
        Set TREE_NO_WARNING instead of TREE_PUBLIC.
        * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
        a warning on a function we didn't instantiate because of excessive
        recursion.

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

        * class.c (record_subobject_offsets): Don't record offsets past
        biggest empty class for non-empty base classes.
        (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
        keeping track of the size of emptyclasses.

        PR c++/21308
        * class.c (sizeof_biggest_empty_class): New variable.
        (record_subobject_offsets): Don't record offsets past biggest
        empty class for data members.  Replace vbases_p parameter with
        is_data_member parameter.
        (build_base_field): Adjust call.
        (layout_class_type): Likewise.  Maintain
        sizeof_biggest_empty_class.

2005-11-05  Kazu Hirata  <kazu@codesourcery.com>

        * decl2.c, init.c, typeck.c: Fix comment typos.

2005-11-04  Richard Guenther  <rguenther@suse.de>

        PR c++/22487
        * init.c (build_vec_init): Build comparison of matching
        types.

2005-11-03  Josh Conner  <jconner@apple.com>

        PR c++/19989
        pt.c (tsubst): Accept zero-length array if tf_error is set
        in complain flags.  Change error message for negative-
        length array.

2005-11-04  Joseph S. Myers  <joseph@codesourcery.com>

        * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
        parameter.

2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>

        PR c++/17964
        * error.c (cp_cpp_error): New function.
        * cp-tree.h (cp_cpp_error): Declare.
        * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
        and error callback after lexing.

2005-11-03  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21627
        * pt.c (register_specialization): Update inline flags on clones.y

2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c++/24582
        * decl.c (declare_local_label): Return 0 for variables
        with error_mark_node as their types.

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

        PR c++/22434
        * call.c (build_conditional_expr): Do bad conversions, if there's
        no other choice.

        PR c++/24560
        * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
        message for use of overloaded functions on LHS of "." operator.

        PR c++/19253
        * parser.c (cp_parser_postfix_expression): Use
        cp_parser_elaborated_type_specifier to handle typename-types in
        functional casts.
        (cp_parser_enclosed_argument_list): Skip ahead to the end of the
        template argument list if the closing ">" is not found.

        PR c++/24569
        * pt.c (instantiate_decl): Use cp_finish_decl, not
        finish_static_data_member_decl.

2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>

        * decl.c (grokfndecl): Remove the setting
        of the return type of the function type
        of main after erroring about must returning
        int.

2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>

        PR C++/23229
        * decl.c (grokfndecl): Create a new function type
        after erroring out about main not returning int.

2005-10-28  Josh Conner  <jconner@apple.com>

        PR c++/22153
        * parser.c (cp_parser_member_declaration): Detect and handle
        a template specialization.

2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>

        PR C++/23426
        * decl.c (start_decl): Check that the decl is an
        error_mark_node before getting the type.
        Remove the check for the decl's type being an
        error_mark_node.

2005-10-21  Mark Mitchell  <mark@codesourcery.com>

        PR c++/24260
        * parser.c (cp_parser_init_declarator): Pass attributes to
        grokfield.

2005-10-20  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22618
        * search.c (accessible_p): Check access in the outermost set of
        template parameters.

2005-10-20  Richard Guenther  <rguenther@suse.de>

        * decl.c (grokdeclarator): Fix ambiguous pedwarn message.

2005-10-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/22293
        * decl.c (grokdeclarator): Reject unqualified destructors in
        friend declarations.

2005-10-18  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23293
        * pt.c (convert_template_argument): Use canonical type variants in
        template specializations.

2005-10-18  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/21383
        * name-lookup.c (arg_assoc): Template args can be null in a
        template-id-expr.

        PR c++/22604
        * class.c (update_vtable_entry_for_fn): Don't process invalid
        covariant overriders.

        PR c++/23118
        * cp-tree.h (add_method): Add return value.
        * class.c (add_method): Return success indicator.
        * semantics.c (finish_member_declaration): Don't add an invalid
        method to the method list.

2005-10-17  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21908
        * call.c (build_new_method_call): Do not show VTT parameters to
        the user.

2005-10-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/23440
        * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
        only complain about missing statement.

2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/24386
        * cp-tree.h (BASELINK_QUALIFIED_P): New.
        * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
        * typeck.c (finish_class_member_access_expr): Set it.

        PR c++/21353
        * decl.c (check_default_argument): Don't check
        processing_template_decl or uses_template_parms here.
        (grokparms): Only call check_default_argument when not processing
        a template decl.
        * parser.c (cp_parser_late_parsing_default_arg): Call
        check_default_argument when not processing a template decl.

2005-10-16  Mark Mitchell  <mark@codesourcery.com>

        PR c++/24389
        * decl2.c (mark_used): Use uses_template_parms instead of
        dependent_type_p.
        * init.c (constant_value_1): Handle uninstantiated templates
        specially.
        * pt.c (instantiate_decl): Add sanity check.

2005-10-16  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22173
        * typeck.c (check_template_keyword): Fix thinko.

2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c++/23959
        * decl.c (pop_switch): Only call c_do_switch_warnings
        when not processing templates.

2005-10-16  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22173
        * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
        (check_template_keyword): New function.
        (finish_id_expression): Change prototoype.
        (finish_qualified_id_expr): Change prototype.
        (build_qualified_name): New function.
        (finish_class_member_access_expr): Change prototype.
        * init.c (build_offset_ref): Use build_qualified_name.
        * mangle.c (write_expression): Likewise.
        * parser.c (cp_parser_primary_expression): Remove qualifying_class
        parameter.  Add address_p and template_arg_p.  Use
        build_qualified_name.
        (cp_parser_id_expression): Default *template_p to
        template_keyword_p.  Check for invalid uses of the template
        keyword.
        (cp_parser_postfix_expression): Eliminate special handling for
        qualified names.  Adjust call to cp_parser_primary_expression.
        (cp_parser_postfix_dot_deref_expression): Adjust call to
        cp_parser_id_expression and finish_class_member_access_expr.
        (cp_parser_template_argument_list): Add comment.
        (cp_parser_template_argument): Adjust use of
        cp_parser_primary_expression.  Remove call to
        finish_qualified_id_expr.
        (cp_parser_lookup_name): Use build_qualified_name.
        * pt.c (tsubst): Use build_qualified_name.
        (tsubst_qualified_id): Likewise.  Adjust call to
        finish_qualified_id_expr.
        (tsubst_copy): Use build_qualified_name.
        (tsubst_copy_and_build): Adjusts call to finish_id_expression and
        finish_class_member_access_expr.
        * semantics.c (finish_non_static_data_member): Use
        build_qualified_name.
        (finish_qualified_id_expr): Add template_p and template_arg_p
        parameters.
        (finish_id_expression): Remove qualifiying_class parameter.  Add
        template_p, done, address_p, and template_arg_p.  Use
        build_qualified_name.  Adjust calls to
        finish_class_member_acess_expr.
        * tree.c (build_qualified_name): New function.
        * typeck.c (check_template_keyword): New function.
        (finish_class_member_access_expr): Add template_p argument.  Check
        for invalid uses of the template keyword.

2005-10-15  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21347
        * class.c (maybe_warn_about_overly_private_class): Lazy
        constructors are public.

2005-10-14  Mark Mitchell  <mark@codesourcery.com>

        PR c++/19565
        * call.c (convert_like_real): Rely on convert_and_check to issue
        warnings about overflow and conversion to unsigned.
        * decl.c (finish_enum): Use the location of the enumerators, not
        the closing brace of the enumeration, when reporting warnings
        about conversions.
        (build_enumerator): Use error_mark_node for erroneous values.
        * typeck2.c (digest_init): Remove reference to "signature pointer"
        from comment.

2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/17796
        * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
        (maybe_clone_body): Track the first clone.

2005-10-13  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/23984
        * class.c (build_base_path): The vtable is always the first thing
        in the vtt.

2005-10-13  Mark Mitchell  <mark@codesourcery.com>

        PR c++/20721
        * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
        * decl.c (duplicate_decls): Merge it into new declarations.
        (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
        (cp_finish_decl): Set it, when appropriate.

        PR c++/22180
        * call.c (build_new_method_call): Correct pretty-printing of
        destructor names.
        * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
        identifier.

        PR c++/23694
        * decl.c (start_method): Return error_mark_node for errors.

        PR c++/23307
        * pt.c (push_template_decl_real): Complain about attempts to
        declare template variables.

        PR c++/22352
        * pt.c (tsubst_template_parms): Set processing_template_decl while
        processing the parameters.
        (tsubst_decl): Set processing_template_decl when substituting into
        a TEMPLATE_DECL.

        PR c++/22405
        * pt.c (most_specialized_instantiation): Robustify.

        PR c++/22464
        * semantics.c (finish_id_expression): Issue errors about uses of
        local variables in containing functions even in templates.

2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>

        PR target/21801
        PR target/23589
        * class.c (finish_struct_1): Call
        targetm.cxx.adjust_class_at_definition.


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

        PR c++/21592
        * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
        with already looked up member functions.  Assert we're not
        returning a NON_DEPENDENT_EXPR with unknown type.
        * typeck.c (finish_class_member_access_expr):  We can get
        non-template-id-expr baselinks.  If the lookup finds a baselink,
        remember it even inside templates.

        PR c++/23797
        * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
        TYPE_DECL.  Use dependent_type_p to check type.
        * pt.c (uses_template_parms_p): Use dependent_type_p for a
        TYPE_DECL.
        (type_dependent_expression_p): Assert we've not been given a
        TYPE_DECL.

        PR c++/21117
        * decl.c (check_function_type): Correctly overwrite incomplete
        return type with void type.
        * typeck.c (check_return_expr): If the function's return type is
        void, don't try and convert a return expr.

2005-10-12  David Edelsohn  <edelsohn@gnu.org>

        PR c++/23730
        * call.c (build_object_call): If BINFO is NULL, bypass
        lookup_fnfields and set fns to NULL_TREE.

2005-10-12  Paolo Bonzini  <bonzini@gnu.org>

        PR c++/24052
        * error.c (dump_expr): Pass LABEL_DECL to dump_decl.  Print
        an ADDR_EXPR of a LABEL_DECL as &&.

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

        PR c++/19964
        * class.c (walk_subobject_offsets): Don't walk error_mark_node.

2005-10-11  Ian Lance Taylor  <ian@airs.com>

        PR c++/8057
        * cvt.c (convert_to_void): Don't warn about unused values when
        processing a template declaration.

2005-10-11  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21089
        * call.c (convert_like_real): Use decl_constant_value, not
        integral_constant_value.
        * init.c (constant_value_1): New function.
        (integral_constant_value): Use it.
        (decl_constant_value): Likewise.
        * typeck.c (decay_conversion): Use decl_constant_value, not
        integral_constant_value.

        PR c++/21369
        * parser.c (cp_parser_elaborated_type_specifier): Don't treat
        class types as templates if the type is not appearing as part of a
        type definition or declaration.

2005-10-10  Mark Mitchell  <mark@codesourcery.com>

        PR c++/24277
        * pt.c (instantiate_decl): Call finish_static_data_member_decl for
        static data members.

2005-10-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
            Mark Mitchell  <mark@codesourcery.com>

        PR c++/23437
        * parser.c (cp_parser_template_argument_list): Do not treat
        contents of argument list as part of a constant expression.

2005-10-10  Mark Mitchell  <mark@codesourcery.com>

        PR c++/24139
        * decl.c (grokdeclarator): Do not require template parameter lists
        for explicitly specialized class.
        * error.c (dump_aggr_type): Do not dump template arguments for
        non-primary specializations.
        (dump_function_name): Likewise.

        PR c++/24275
        * pt.c (instantiate_decl): Instantiate the initializer of
        a static data member in the namespace containing the class
        containing the static data member.

2005-10-08  James A. Morrison  <phython@gcc.gnu.org>

        PR c++/22172
        * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
        scopes as nondependent.

2005-10-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * call.c (resolve_args): Remove redundant test.

2005-10-05  Paolo Bonzini  <bonzini@gnu.org>

        PR tree-optimization/21419
        PR tree-optimization/24146
        PR tree-optimization/24151

        * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
        read-only.  Set ASM_VOLATILE_P for asms without outputs.

2005-10-05  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/23513
        * call.c (joust): Adjust length count to more_specialized_fn.
        * pt.c (more_specialized_fn): Cope with non-static member vs
        non-member.

2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/23125
        * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
        instead of change_decl_assembler_name.

2005-10-03  Alexandre Oliva  <aoliva@redhat.com>

        * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.

2005-10-03  Mark Mitchell  <mark@codesourcery.com>

        PR c++/17775
        * repo.c: Include flags.h.
        (finish_repo): Add -frandom-seed to the arguments.

2005-10-02  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22621
        * parser.c (cp_parser_template_argument): Don't turn "T::f" into
        "(*this).T::f".
        * pt.c (convert_nontype_argument): Remove ??? comment.

        PR c++/23840
        * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
        when class rvalues are lvalues.

2005-09-28  Mark Mitchell  <mark@codesourcery.com>

        PR c++/16782
        * decl.c (grokdeclarator): Always pedwarn about overqualified
        member names.

2005-09-27  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22147
        * name-lookup.c (maybe_process_template_type_declaration): Don't
        treat forward declarations of classes as templates just because
        we're processing_template_decl.
        * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
        functions.

2005-09-26  Jason Merrill  <jason@redhat.com>

        PR c++/13764
        * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
        * name-lookup.c (pushdecl_maybe_friend): Check it.
        * decl.c (begin_function_body): Do nothing if it's false.
        (finish_function_body): Ditto.
        (outer_curly_brace_block): New fn.
        (finish_function): Use it.

2005-09-26  Richard Guenther  <rguenther@suse.de>

        PR middle-end/15855
        * decl2.c (do_static_destruction): Remove.
        (finish_static_initialization_or_destruction): Likewise.
        (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
        (NEEDS_GUARD_P): Likewise.
        (do_static_initialization): Rename to
        do_static_initialization_or_destruction.  Process all
        initializers/destructors and handle common conditionalizing.
        (start_static_initialization_or_destruction): Rename to
        one_static_initialization_or_destruction.  Handle only
        decl-specific conditionalizing.
        (cp_finish_file): Call do_static_initialization_or_destruction.

2005-09-22  Jakub Jelinek  <jakub@redhat.com>

        PR c++/21983
        * class.c (find_final_overrider): Move diagnostic about no unique final
        overrider to...
        (update_vtable_entry_for_fn): ... here.

2005-09-21  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23993
        * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.

2005-09-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/23965
        * call.c (resolve_args): Return error_mark_node on arguments
        whose TREE_TYPE is error_mark_node.

2005-09-20  Jakub Jelinek  <jakub@redhat.com>

        PR c++/23947
        * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
        get_tinfo_ptr calls.

2005-09-16  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23914
        * parser.c (cp_parser_enclosed_template_argument_list): Make sure
        skip_evaluation is false when processing template arguments.

        PR c++/21514
        * pt.c (check_instantiated_args): Treat uses of anonymous types as
        causing type-deduction failure.

2005-09-15  Jason Merrill  <jason@redhat.com>

        PR c++/23357
        * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
        tcc_expression.

2005-09-15  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23896
        * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
        processing template arguments.

        * pt.c (check_explicit_instantiation_namespace): Fix typo.

        PR c++/13140
        * decl.c (check_class_member_definition_namespace): New function.
        (grokfndecl): Use it.
        (grokvardecl): Likewise.
        (grokdecl): Improve documentation.
        * pt.c (check_explicit_instantiation_namespace): New function.
        (register_specialization): Call check_specialization_namespace
        when replacing an implicitly instantiated function.
        (check_explicit_specialization): Ensure that DECL_CONTEXT is set
        correctly for namespace-scope specializations.
        (do_decl_instantiation): Use
        check_explicit_instantiation_namespace.
        (do_type_instantiation): Likewise.

2005-09-15  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/23725
        * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.

2005-09-13  Bastian Blank <waldi@debian.org>

        PR c++/16171
        * mangle.c (find_substitution): Do not use special substitutions
        for identifiers not in std::.

2005-09-13  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23839
        * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
        for VAR_DECLs.

2005-09-13  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23842
        * pt.c (tsubst_default_argument): Do treat default argument
        expressions as occurring in the context of the function called.

2005-09-12  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23841
        * parser.c (cp_parser_primary_expression): Recognize the closing
        ">" of a template-argument-list after a floating-point literal as
        the end of a cast expression.

2005-09-12  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23789
        * cvt.c (perform_qualification_conversions): Don't create
        unnecessary NOP_EXPRs.
        * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.

2005-09-12  Ian Lance Taylor  <ian@airs.com>

        PR g++/7874
        * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
        bitfield.  Make dummy bitfield one bit smaller.
        (DECL_HIDDEN_FRIEND_P): Define.
        (pushdecl_maybe_friend): Declare.
        (pushdecl_top_level_maybe_friend): Declare.
        * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
        Change prototype and all callers.  Add assertion that a
        DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P.  Set
        DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
        appropriate.
        * name-lookup.c (supplement_binding): Don't ignore a
        DECL_HIDDEN_FRIEND_P.
        (pushdecl_maybe_friend): Break out contents of pushdecl.  Add
        is_friend parameter.  Set DECL_ANTICIPATED and
        DECL_HIDDEN_FRIEND_P for a friend function.
        (pushdecl): Just call pushdecl_maybe_friend.
        (pushdecl_with_scope): Add is_friend parameter.  Change prototype
        and all callers.
        (pushdecl_namespace_level): Likewise.
        (push_overloaded_decl): Likewise.  Check DECL_HIDDEN_FRIEND_P as
        well as DECL_ANTICIPATED when checking for a builtin.
        (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
        DECL_ANTICIPATED when checking for a builtin.
        (do_nonmember_using_decl): Likewise.
        (pushdecl_top_level_1): Add is_friend parameter.  Change all
        callers.
        (pushdecl_top_level_maybe_friend): New function.
        (remove_hidden_names): New function.
        (struct arg_lookup): Add args field.
        (friend_of_associated_class_p): New static function.
        (arg_assoc_namespace): Ignore hidden functions which are not
        friends of an associated class of some argument.
        (lookup_arg_dependent): Remove hidden functions from list passed
        in.  Initialize k.args.
        * name-lookup.h (remove_hidden_names): Declare.
        * friend.c (do_friend): Call pushdecl_maybe_friend instead of
        pushdecl.
        * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
        an assertion, with a check for DECL_HIDDEN_FRIEND_P.
        (build_new_function_call): Add koenig_p parameter.  Change
        prototype and callers.
        * pt.c (register_specialization): Add is_friend parameter.  Change
        all callers.
        (push_template_decl_real): Change is_friend parameter to bool.
        Change prototype and all callers.
        (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
        instead of pushdecl_top_level.

2005-09-11  Richard Henderson  <rth@redhat.com>

        * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
        * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.

2005-09-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * parser.c (cp_parser_translation_unit): Simplify.  The while-block
        was actually executed at most once.

2005-09-09  Richard Henderson  <rth@redhat.com>

        PR debug/20998
        * cp-tree.def (ALIAS_DECL): Remove.
        * cp-lang.c (cp_init_ts): Remove support for it.
        * error.c (dump_decl): Likewise.
        * name-lookup.c (pushdecl): Likewise.
        * semantics.c (finish_id_expression): Likewise.
        * decl2.c (build_anon_union_vars): Use a VAR_DECL with
        DECL_VALUE_EXPR instead.

2005-09-09  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22252
        * decl.c (start_preparsed_function): Do not pay attention to
        #pragma interface for implicitly-defined methods.
        * decl2.c (cp_finish_file): Do not complain about uses of inline
        functions that have bodies, even if we decided not to emit the
        body in this translation unit.
        * semantics.c (note_decl_for_pch): Do not mess with linkage.
        (expand_or_defer_fn): Make inline, non-template functions COMDAT
        at this point.

2005-09-08  Richard Henderson  <rth@redhat.com>

        PR debug/23190
        * decl.c (wrapup_globals_for_namespace): Call
        emit_debug_global_declarations.
        * decl2.c (cp_finish_file): Likewise.

2005-09-08  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23691
        * decl2.c (mark_used): Instantiate static data members initialized
        by constants, even in a template.

2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>

        PR obj-c++/16816
        * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
        two CPP_COLON.

2005-09-07  Richard Guenther  <rguenther@suse.de>

        * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
        for EMPTY_CLASS_EXPR.

2005-09-06  Jakub Jelinek  <jakub@redhat.com>

        PR c/23075
        * typeck.c (check_return_expr): Add no_warning argument.  Set
        *no_warning to true if "return-statement with no value, in function
        returning" warning has been issued.
        * cp-tree.h (check_return_expr): Adjust prototype.
        * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
        check_return_expr set *no_warning to true.

2005-09-06  Mark Mitchell  <mark@codesourcery.com>

        * cp-tree.h (rvalue): New function.
        * call.c (build_conditional_expr): Use it.
        * init.c (build_new_1): Likewise.
        * rtti.c (build_dynamic_cast_1): Likewise.
        * tree.c (rvalue): New function.
        * typeck.c (build_unary_op): Use it.
        (build_static_cast_1): Likewise.

        PR c++/9782
        * init.c (build_new_1): Make sure the entire array type is
        complete, not just its element types.

2005-09-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * decl.c (check_elaborated_type_specifier): Remove redundant check.

2005-09-06  Jakub Jelinek  <jakub@redhat.com>

        PR c++/23056
        * typeck.c (ignore_overflows): New helper function.
        (build_static_cast_1): Use it.

2005-09-06  Kazu Hirata  <kazu@codesourcery.com>

        * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
        Follow spelling conventions.

2005-09-05  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23667
        * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
        copying a VAR_DECL.

2005-09-05  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21440
        * semantics.c (finish_stmt_expr_expr): Add an explicit
        initialization to the last statement in the statement-expression.
        * (finish_stmt_expr): Adjust accordingly.

2005-09-03  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23699
        * decl2.c (mark_used): Always instantiate static data members
        initialized by constant expressions.
        * pt.c (instantiate_decl): Instantiate the initializers for static
        data members initialized by constant expressions.

        PR c++/21687
        * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
        finishing processing for a template function in a local class.
        Revert:
        2005-09-02  Mark Mitchell  <mark@codesourcery.com>
        * parser.c (cp_parser_class_specifier): Push/pop GC contexts
        around functions in local classes.

2005-09-02  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21687
        * parser.c (cp_parser_class_specifier): Push/pop GC contexts
        around functions in local classes.

2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>

        PR obj-c++/23640
        * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
        init, call generate_ctor_or_dtor_function.

2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/13377
        * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
        lookup_name_real on final parse.

2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/23639
        * semantics.c (qualified_name_lookup_error): Do not complain again
        on invalid scope.

2005-08-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/23586
        * parser.c (cp_parser_namespace_name): Move diagnostic for
        invalid namespace-name to here from ...
        * name-lookup.c (do_namespace_alias): ... here and ...
        (do_using_directive): ... here.  Remove dead code.

2005-08-28  Mark Mitchell  <mark@codesourcery.com>

        PR c++/23099
        * cp-tree.h (saved_scope): Add skip_evaluation.
        * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
        DECL_INITIAL, to determine whether or not a static data member was
        initialized in the class-specifier.
        (cp_finish_decl): Add comment.
        * init.c (integral_constant_value): Subtitute into the
        initializers for static data members in templates.
        * name-lookup.c (push_to_top_level): Save skip_evaluation.
        (pop_from_top_level): Restore it.
        * pt.c (instantiate_class_template): Do not substitute into the
        intializers of static data members when instantiating a class.
        (regenerate_decl_from_template): Simplify.
        (instantiate_decl): Tidy.  Substitute into the initializer for a
        static data member even when the definition of the data member is
        not available.

2005-08-26  Mark Mitchell  <mark@codesourcery.com>

        PR c++/19004
        * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
        (type_dependent_expression_p): Allow BASELINKs whose associated
        functions are simply a FUNCTION_DECL.

        PR c++/23491
        * cp-tree.h (build_vec_init): Adjust prototype.
        * init.c (perform_member_init): Adjust call to build_vec_init.
        (build_aggr_init): Likewise.
        (build_new_1): Do not call build_default_init for array types.
        (build_vec_init): Add explicit_default_init_p parameter.  Perform
        default initialization of vector elements when set.
        * typeck.c (build_modify_expr): Adjust call to build_vec_init.

2005-08-25  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/20817
        * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
        ->*.

2005-08-24  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/22454
        * parser.c (cp_lexer_peek_nth_token): Relax assert.

2005-08-23  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/23044
        * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.

2005-08-22  James E Wilson  <wilson@specifix.com>

        PR tree-optimization/23426
        * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
        array size check.

2005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/22233
        * pt.c (push_template_decl_real): Return error_mark_node if the
        number of template parameters does not match previous definition.

2005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/23089
        * decl.c (require_complete_types_for_parms): Mark incomplete types
        as invalid.

2005-08-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
        Fix typo in leading comment.

2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.

2005-08-15 Fariborz Jahanian <fjahanian@apple.com>

        * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
        * call.c (add_template_candidate_real): Pass down 'flags' to
        fn_type_unification.
        (can_convert_arg): New 'flags' argument. Pass it to call to
        implicit_conversion instead of LOOKUP_NORMAL.
        (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
        * class.c (resolve_address_of_overloaded_function): Ditto.
        (resolve_address_of_overloaded_function): Ditto.
        * decl.c (reshape_init, check_default_argument): Ditto.
        * typeck.c (build_ptrmemfunc): Ditto.
        * pt.c (type_unification_real): Add 'flags' argument.
        (fn_type_unification): Pass 'flags' to type_unification_real.
        (type_unification_real): Pass new 'flags' argument to call to
        can_convert_arg.

2005-08-12  Giovanni Bajo  <giovannibajo@libero.it>
            Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/21799
        PR c++/8271
        * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
        explicitly.

2005-08-12  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/21799
        Revert my 2005-07-08 patch
        * pt.c (type_unification_real): Remove is_method_argument and
        assoicated checks.
        (fn_type_unification, unify): Adjust type_unification_real calls.

2005-08-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/23266
        * decl2.c (grokfield): Check that method is not static before
        marking it as pure.

2005-08-11  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/23219
        * name-lookup.c (pushtag): Process the template type before
        altering the identifier lookup fields.  Remove unreachable code
        creating an empty stub decl.

2005-08-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/20646
        * decl.c (grokdeclarator): Reset storage_class after error.

2005-08-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/22508
        * init.c (build_new_1): Check for empty candidate list.

2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/23191
        * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
        before calling build_exception_variant.

2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/19498
        * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
        if substitution of template args did not succeed.

2005-08-06  Michael Matz  <matz@suse.de>

        * method.c (use_thunk): Call init_insn_lengths.

2005-08-05  James A. Morrison  <phython@gcc.gnu.org>

        PR c++/22514
        * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
        sorrycount or errorcount are nonzero.

2005-08-05  Mark Mitchell  <mark@codesourcery.com>

        * name-lookup.c (pushtag): Remove accidental commit from:
        2004-12-21  Mark Mitchell  <mark@codesourcery.com>
        PR c++/19063
        * decl.c (grokdeclarator): Return error_mark_node, not
        void_type_node, to indicate errors.
        * parser.c (cp_parser_template_parameter_list): Robustify.
        (cp_parser_template_parameter): Likewise.

2005-08-01  Kazu Hirata  <kazu@codesourcery.com>

        * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
        Fix comment typos.

2005-07-29  Kazu Hirata  <kazu@codesourcery.com>

        * method.c: Fix a comment typo.

2005-07-28  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22545
        * call.c (add_builtin_candidate): Adjust for changes in
        representation of pointer-to-member types.

2005-07-28  Mike Stump  <mrs@apple.com>

        * pt.c (check_explicit_specialization): Add visibility logic.
        (lookup_template_class): Likewise.
        (instantiate_class_template): Likewise.

2005-07-27  Devang Patel  <dpatel@apple.com>

        * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.

2005-07-25  Ian Lance Taylor  <ian@airs.com>

        * ptree.c (cxx_print_identifier): Print a leading space if the
        indent level is 0.

2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * call.c (convert_for_arg_passing): Check function pointers when
        -Wmissing-format-attribute is activated.
        * typeck.c (convert_for_assignment): Likewise.

2005-07-22  Manfred Hollstein  <mh@suse.com>

        * parser.c (cp_parser_declaration): Fix unitialised warnings.

2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

        * class.c (build_base_path): Fix typo.

2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

        PR C++/22358
        * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.

2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * call.c: Fix comment typo(s).
        * cxx-pretty-print.h: Likewise.
        * name-lookup.c: Likewise.
        * parser.c: Likewise.

2005-07-20  Douglas Gregor <doug.gregor@gmail.com>

        PR c++/2922
        * semantics.c (perform_koenig_lookup): For dependent calls, just
        return the set of functions we've found so far. Later, it will be
        augmented by those found through argument-dependent lookup.
        * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
        the optimization that skips namespaces where the functions were
        originally found.

2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>

        Make CONSTRUCTOR use VEC to store initializers.
        * call.c (convert_default_arg): Update call to digest_init.
        * class.c (dump_class_hierarchy, dump_array): Update to cope with
        VEC in CONSTRUCTOR_ELTS.
        * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
        (finish_compound_literal, digest_init): Update declaration.
        * decl.c (struct reshape_iter): New data type.
        (reshape_init_array): Rename to...
        (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
        (reshape_init): Rewrite from scratch. Split parts into...
        (reshape_init_array, reshape_init_vector, reshape_init_class,
        reshape_init_r): New functions.
        (check_initializer): Update call to reshape_init. Remove obsolete
        code.
        (initialize_artificial_var, cp_complete_array_type): Update to cope
        with VEC in CONSTRUCTOR_ELTS.
        * decl2.c (grokfield): Update calls to digest_init.
        (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
        * error.c (dump_expr_init_vec): New function.
        (dump_expr): Use dump_expr_init_vec.
        * init.c (build_zero_init, build_vec_init): Update to cope with VEC
        in CONSTRUCTOR_ELTS.
        (expand_default_init): Update call to digest_init.
        * parser.c  (cp_parser_postfix_expression): Use a VEC for the
        initializers.
        (cp_parser_initializer_list): Build a VEC of initializers.
        * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
        in CONSTRUCTOR_ELTS.
        * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
        ptm_initializer, class_initializer, get_pseudo_ti_init): Use
        build_constructor_from_list instead of build_constructor.
        * semantics.c (finish_compound_literal): Update call to digest_init.
        * tree.c (stabilize_init): Update to cope with VEC in
        CONSTRUCTOR_ELTS.
        * typeck.c (build_ptrmemfunc1): Likewise.
        * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
        Likewise.
        (store_init_value): Use build_constructor_from_list and update call
        to digest_init.
        (digest_init): Rewrite.
        (process_init_constructor): Rewrite from scratch. Split into...
        (process_init_constructor_array, picflag_from_initializer,
        process_init_constructor_record, process_init_constructor_union):
        New functions.
        (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
        New macros.
        (build_functional_cast): Use build_constructor_from_list instead of
        build_constructor.

2005-07-18  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22263
        * cp-tree.h (instantiate_decl): Change prototype.
        * decl2.c (mark_used): Adjust accordingly.
        * pt.c (do_decl_instantiation): Likewise.
        (instantiate_class_member): Likewise.
        (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
        Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
        that has no definition available.
        (instantiate_pending_templates): Adjust call to instantiate_decl.

2005-07-17  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22139
        * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
        * decl.c (duplicate_decls): Re-register template specializations
        for functions that have DECL_TEMLPLATE_INFO, even if they do not
        have DECL_TEMPLATE_INSTANTIATION set.

2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * call.c (diagnostic_fn_t): New.
        (build_temp, convert_like_real): Use diagnostic_fn_t.

2005-07-15  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22204
        * repo.c (repo_emit_p): Robustify.

2005-07-14  Daniel Berlin  <dberlin@dberlin.org>

        Fix PR c++/22452
        * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.

2005-07-15  Mark Mitchell  <mark@codesourcery.com>

        PR c++/22132
        * call.c (implicit_conversion): Add c_cast_p parameter.
        (standard_conversion): Likewise.  Allow conversions between
        differently-qualified pointer types when performing a C-style
        cast.
        (add_function_candidate): Adjust callee.
        (build_builtin_candidate): Likewise.
        (build_user_type_conversion_1): Likewise.
        (conditional_conversion): Likewise.
        (can_convert_arg): Likewise.
        (can_convert_arg_bad): Likewise.
        (perform_implicit_conversion): Likewise.
        * cp-tree.h (comp_ptr_ttypes_const): Declare.
        * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
        Return bool.

2005-07-12  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
            Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/20172
        * pt.c (tsubst_template_parms): Check for invalid non-type
        parameters.

2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>

        * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
        decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
        (cp_init_ts): Call init_shadowed_var_for_decl.
        Remove include of gt-cp-cp-lang.h.
        * cp-objcp-common.c (shadowed_var_for_decl,
        decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
        cp-lang.c.
        (init_shadowed_var_for_decl): New function to initialize
        shadowed_var_for_decl.
        Include gt-cp-cp-objcp-common.h.
        * Make-lang.in (gt-cp-lang.h): Remove.
        (gt-cp-cp-objcp-common.h): Add.
        (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
        (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
        * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
        * cp-tree (init_shadowed_var_for_decl): Add prototype.

2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

        * Make-lang.in: Add gt-cp-lang.h.
        (cp-lang.o): Ditto.
        * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
        the field.
        * config-lang.in: Add cp-lang.c to gtfiles.
        * cp-lang.c: Include hashtab.h.
        (cp_init_ts): New function.
        (LANG_HOOK_INIT_TS): Use macro.
        (decl_shadowed_for_var_lookup): New function.
        (decl_shadowed_for_var_insert): Ditto.
        * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
        (NON_THUNK_FUNCTION_CHECK): Ditto.
        (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
        (DECL_INIT_PRIORITY): Ditto.
        (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
        (DECL_SHADOWED_FOR_VAR): Use hashtable.
        (SET_DECL_SHADOWED_FOR_VAR): Ditto.
        * decl.c (duplicate_decls): Update for new/updated structures.
        (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
        * decl2.c (start_static_initialization_or_destruction): Deal with
        priority.
        * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
        SET_DECL_RTL.
        * tree.c (handle_init_priority_attribute): Handle priority.

2005-07-08  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/21799
        * pt.c (type_unification_real): Add is_method argument.  Use it
        for this pointer unification.
        (fn_type_unification): Adjust type_unification_real call.
        (unify): Likewise.

2005-07-07  Nathan Sidwell  <nathan@codesourcery.com>

        * pt.c (type_unification_real): Remove allow_incomplete argument.
        Remove unreachable code.
        (fn_type_unification): Adjust call to type_unification_real.
        (unify): Likewise.

2005-07-05  Paolo Bonzini  <bonzini@gnu.org>

        * Makefile.in (class.o, decl2.o): Adjust dependencies.
        * class.c: Include tree-dump.h.
        * decl2.c: Include tree-dump.h.

2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * dump.c: Use dump_string_field.

2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>

        * cp-tree.h (GCC_DIAG_STYLE): #undef before defining.  Change
        minimum GCC version for format checking to 4.1.

2005-07-02  Kazu Hirata  <kazu@codesourcery.com>

        * Make-lang.in (cc1plus-checksum.c): Use
        build/genchecksum$(build_exeext), not build/genchecksum$(exeext).

2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>

        * name-lookup.c, parser.c: Use %q, %< and %> to quote in
        diagnostics.

2005-07-02  Zack Weinberg  <zack@codesourcery.com>
            Joseph S. Myers  <joseph@codesourcery.com>

        * error.c (location_of): Add comment.
        (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
        * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
        * call.c, class.c, decl.c, decl2.c, friend.c, init.c,
        name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
        typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
        or cp_pedwarn_at.  Mark up some diagnostic strings with N_.

2005-06-30  Daniel Berlin  <dberlin@dberlin.org>

        * decl.c (require_complete_types_for_parms): Call relayout_decl
        instead of layout_decl.

2005-06-30  Zack Weinberg  <zack@codesourcery.com>
            Jakub Jelinek  <jakub@redhat.com>

        * cp-lang.c: No need to include cxx-pretty-print.h.
        * error.c (cp_printer): Update signature.  No need to process
        flags.
        (print_instantiation_partial_context): Output last newline
        with pp_base_newline.
        * Make-lang.in: Update dependencies.

2005-06-30  Steven Bosscher  <stevenb@suse.de>

        * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
        DECL_THREAD_LOCAL_P.
        (cp_finish_decl): Likewise.
        (grokvardecl): Set the default DECL_TLS_MODEL here.

2005-06-28  Joseph S. Myers  <joseph@codesourcery.com>

        * cvt.c (ocp_convert): Use invalid_conversion hook.
        * typeck.c (build_binary_op): Use invalid_binary_op hook.
        (build_unary_op): Use invalid_unary_op hook.

2005-06-28  Paul Brook  <paul@codesourcery.com>

        * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
        * except.c: Include target.h.
        (init_exception_processing): Initialize unwind_resume_libfunc.
        * doc/tm.texi: Document TARGET_ASM_TTYPE

2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * call.c (build_over_call): Pass in named argument list to
        `check_function_arguments'.
        * typeck.c (build_function_call): Likewise.

2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * cp-tree.h (lang_check_failed): Add noreturn attribute.

2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>

        * all files: Update FSF address in copyright headers.

2005-06-23  Jason Merrill  <jason@redhat.com>

        PR c++/19317
        * semantics.c (simplify_aggr_init_expr): Use
        CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.

2005-06-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * pt.c (register_specialization): Remove superfluous assertion.

2005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * call.c (convert_like_real): Add format attribute.
        * typeck.c (check_for_casting_away_constness,
        build_static_cast_1): Likewise.
        * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
        Likewise.

2005-06-17  Geoffrey Keating  <geoffk@apple.com>

        PR c++/17413
        * pt.c (type_unification_real): Apply template type deduction even
        to procedure parameters that are not dependent on a template
        parameter.

2005-06-16  Nathan Sidwell  <nathan@codesourcery.com>

        * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
        change.
        (create_pseudo_type_info): First parameter is an int.

2005-06-15  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/20678
        * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
        null.

        * Make-lang.in: Reformat some long lines.
        (gt-cp-rtti.h): New target.
        (cp/rtti.o): Add dependency.
        * config-lang.in (gtfiles): Add cp/rtti.c.
        * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
        CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
        CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
        CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
        CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
        (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
        ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
        class_desc_type_node, si_class_desc_type_node,
        vmi_class_desc_type_node, ptm_desc_type_node,
        base_desc_type_node): Remove.
        * decl.c: Adjust documentation of global trees.
        * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
        TINFO_REAL_NAME): Remove.
        (struct tinfo_s): New.
        (enum tinfo_kind): New.
        (tinfo_descs): New.
        (get_tinfo_decl): Adjust use of tinfo descriptor.
        (tinfo_base_init, generic_initializer, ptr_initializer,
        ptm_initializer, class_initializer): Likewise.
        (get_pseudo_ti_init): Take descriptor index. Adjust.
        (create_pseudo_type_info): Likewise.
        (get_pseudo_ti_desc): Return descriptor index. Adjust.
        (create_tinfo_types): Adjust use of create_pseudo_type_info.
        (emit_tinfo_decl): Adjust use of tinfo descriptor.

2005-06-14  Roger Sayle  <roger@eyesopen.com>

        * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.

2005-06-13  Geoffrey Keating  <geoffk@apple.com>

        * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
        (rule for installing g++.1 manpage): Does depend on installdirs.

2005-06-13  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/20789
        * decl.c (cp_finish_decl): Clear runtime runtime initialization if
        in-class decl's initializer is bad.

        PR c++/21929
        * parser.c (struct cp_parser): Document that scope could be
        error_mark.
        (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
        scope.
        (cp_parser_nested_name_specifier): Return NULL_TREE on error.
        (cp_parser_postfix_expression): Deal with null or error_mark
        scope.
        (cp_parser_elaborated_type_specifier): Adjust
        cp_parser_nested_name_specifier call.

        * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.

2005-06-12  Roger Sayle  <roger@eyesopen.com>

        PR c++/21930
        * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
        Treat CONVERT_EXPR identically to NOP_EXPR.

2005-06-10  Aldy Hernandez  <aldyh@redhat.com>

        PR c++/10611
        * cvt.c (build_expr_type_conversion): Same.
        * typeck.c (build_binary_op): Handle vectors.
        (common_type): Same.
        (type_after_usual_arithmetic_conversions): Same.

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

        PR c++/19497
        * cp-tree.def (USING_DECL): Update documentation.
        * cp-tree.h (DECL_DEPENDENT_P): New.
        (USING_DECL_DECLS, USING_DECL_SCOPE): New.
        * class.c (handle_using_decl): Move most of the processing to ...
        * name-lookup.c (do_class_using_decl): ... here.  Make stricter.
        (push_using_decl): Use USING_DECL_SCOPE.
        (cp_emit_debug_info_for_using): Make extern.
        * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
        * name-lookup.h (cp_emit_debug_info_for_using): Declare.
        * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
        when tsubsting.
        (tsubst_expr): Use USING_DECL_SCOPE.
        * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
        * semantics.c (finish_member_declaration): Likewise.

2005-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/19894
        * pt.c (tsubst): Reject pointer-to-member of type void.

        PR c++/20563
        * parser.c (cp_parser_label_declaration): Deal with invalid/missing
        identifiers.

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

        * cp-tree.def (DEFAULT_ARG): Adjust documentation.
        * cp-tree.h (DEFARG_INSTANTIATIONS): New.
        (struct tree_default_arg): Add instantiations member.
        * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
        VEC.
        * pt.c (tsubst_arg_types): Likewise.

        * parser.c (cp_parser_late_parsing_default_args): Fix overeager
        assert in previous patch.

2005-06-06  Jakub Jelinek  <jakub@redhat.com>

        * error.c (locate_error): Use gmsgid instead of msgid for argument
        name.
        (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.

2005-06-06  Nathan Sidwell  <nathan@codesourcery.com>

        PR 21903
        * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
        * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
        argument to any early instantiations.
        * pt.c (tsubst_arg_types): Chain early instantiation of default arg.

        PR c++/20637
        * cp-tree.h (add_method): Add using_decl parameter.
        * class.c (add_method): Add using_decl parameter.  Adjust error
        messages.
        (handle_using_decl): Pass the using decl to add_method.
        (clone_function_decl): Adjust add_member calls.
        * decl2.c (check_classfn): Likewise.
        * method.c (lazily_declare_fn): Likewise.
        * semantics.c (finish_member_declaration): Likewise.

        * method.c (synthesize_method): Use inform, not warning.

2005-06-06  Hans-Peter Nilsson  <hp@axis.se>

        * config-lang.in (target_libs): Remove target-gperf.

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

        PR c++/21619
        * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
        * parser.c (cp_parser_postfix_expression): Allow non-constant
        expressions as arguments to __builtin_constant_p.
        * tree.c (builtin_valid_in_constant_expr_p): Use
        DECL_IS_BUILTIN_CONSTANT_P.

2005-06-03  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21853
        * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
        the pointed-to type for a pointer-to-member.

        PR c++/21336
        * cp-tree.h (grok_op_properties): Remove friendp parameter.
        * decl.c (grokfndecl): Adjust call.
        (grok_op_properties): Determine the class of which the function is
        a member by looking at its DECL_CONTEXT, not current_class_type.
        * pt.c (tsubst_decl): Adjust call to grok_op_properties.

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

        * method.c (synthesize_method): Add addtional arg to warning call.

        PR c++/21280
        * Make-lang.in (method.o): Add diagnostic.h
        * decl.c (start_preparsed_function): Use decl's location for file
        info.
        * decl2.c (cp_finish_file): Set input_location before synthesizing
        a function.
        (mark_used): When deferring a synthesized function, save current
        location.  Do not set function's location when actually
        synthesizing it.
        * method.c: #include diagnostic.h.
        (synthesize_method): Set the functions source location.  Show
        needed location if errors are emitted.

        * decl.c (start_decl): Simplify specialization handling. Remove
        unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
        * mangle.c (discriminator_for_local_entity): Use VEC_index.

        PR c++/20350
        * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.

        PR c++/21151
        * name-lookup.c (pushtag): Push local class even in a template.

2005-05-31  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/21165
        * init.c (integral_constant_value): Check the type of the
        initializer, not the decl.

2005-05-30  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21784
        * name-lookup.c (do_nonmember_using_decl): Ignore builtin
        functions, even when the used name is not a function.

2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>

        * operators.def, optimize.c: Update copyright.

2005-05-28  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21210
        * call.c (standard_conversion): Permit conversions to complex
        types if conversion to the corresponding scalar type would be
        permitted.

        PR c++/21340
        * method.c (implicitly_declare_fn): Clear processing_template_decl
        when generating implicit declaration.

2005-05-27  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21614
        * typeck.c (get_member_function_from_ptrfunc): Do not attempt
        conversions to base classes of incomplete types.

2005-05-27  Ian Lance Taylor  <ian@airs.com>

        * semantics.c (add_stmt): Add C++ frontend specific version.
        * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
        (stmts_are_full_exprs_p): Declare.

2005-05-27  Roger Sayle  <roger@eyesopen.com>
            Giovanni Bajo  <giovannibajo@gcc.gnu.org>

        * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
        * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
        of CONVERT_EXPR.
        (cp_parser_unary_expression): Likewise.
        * typeck.c (build_unary_op): Likewise.
        * call.c (add_builtin_candidate, build_new_op): Likewise.
        * error.c (dump_expr): Likewise.
        * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
        * decl.c (ambi_op_p, grok_op_properties): Likewise.
        * dump.c (dump_op): Likewise.
        * lex.c (init_operators): Likewise.
        * operators.def ("+"): Likewise.
        * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
        conversion, if the result and argument types differ.
        * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
        like a NOP_EXPR when !processing_template_decl.

        * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
        (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.

2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/21455
        * typeck.c (get_delta_difference): Cope with incomplete but equal
        classes.  Reorder if.

        PR c++/21681
        * parser.c (cp_parser_late_parsing_for_member): Disable access
        checking for template functions.

2005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/21768
        * pt.c (redeclare_class_template): Change error message according
        to coding conventions.

2005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * call.c (build_op_delete_call): Fix quoting in error message.

2005-05-25  Richard Henderson  <rth@redhat.com>

        PR libgcj/21692
        * cp-tree.h (make_alias_for): Declare.
        * decl2.c (build_java_method_aliases): New.
        (cp_finish_file): Call it.
        * method.c (make_alias_for): Split out from ...
        (make_alias_for_thunk): ... here.

2005-05-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/21686
        * semantics.c (finish_id_expression): Fix quoting in error message.

2005-05-25  DJ Delorie  <dj@redhat.com>

        * decl.c (duplicate_decls): Move warning control from if() to
        warning(OPT_*).
        * name-lookup.c (parse_using_directive): Likewise.
        * parser.c (cp_parser_elaborated_type_specifier): Likewise.
        (cp_parser_init_declarator): Likewise.
        * tree.c (handle_com_interface_attribute): Likewise.

2005-05-24  Ziemowit Laski  <zlaski@apple.com>

        * class.c (layout_class_type): Do not issue C++ ABI warnings
        for ObjC structs.
        * decl.c (objc_mark_locals_volatile): Streamline by calling
        objc_volatilize_decl().
        * parser.c (cp_parser_objc_message_expression): Allow simple
        type specifiers (instead of merely type names) as message
        receivers.
        * pt.c (template_args_equal): Do not call objc_comptypes().
        * typeck.c (composite_pointer_type): If both pointers are
        ObjC-esque, arbitrarily choose the first; do not call
        objc_comptypes().
        (comptypes): Do not call objc_comptypes().
        (convert_for_assignment): Call objc_compare_types().
        (comp_ptr_ttypes_real): Call objc_type_quals_match() before
        concluding that types do not match.

2005-05-24  Andrew Pinski  <pinskia@physics.uc.edu>

        PR C++/21645
        * optimize.c (update_cloned_parm): Copy the TYPE also from the
        original one.

2005-05-19  Jakub Jelinek  <jakub@redhat.com>

        PR c++/21495
        * decl.c (grokdeclarator): Fix "storage class specified for"
        error reporting.

2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>

        * parser.c: Fix comment typos.

2005-05-18  Geoffrey Keating  <geoffk@apple.com>

        * Make-lang.in (cc1plus-dummy): New.
        (cc1plus-checksum.c): New.
        (cc1plus-checksum.o): New.
        (cc1plus): Add cc1plus-checksum.o.

2005-05-17  H.J. Lu  <hongjiu.lu@intel.com>

        PR C++/19664
        * decl2.c (determine_visibility): Don't set visibility to
        hidden if it has been set explicitly by user.

2005-05-17  Ziemowit Laski  <zlaski@apple.com>
            Mike Stump  <mrs@apple.com>

        Yet more Objective-C++...

        * cp-objcp-common.h (cxx_get_alias_set): Move from
        here...
        (cxx_warn_unused_global_decl): Likewise.
        (cp_expr_size): Likewise.
        (cp_tree_size): Likewise.
        (cp_var_mod_type_p): Likewise.
        (cxx_initialize_diagnostics): Likewise.
        (cxx_types_compatible_p): Likewise.
        * cp-tree.h: to here.
        (do_poplevel): Add.
        * lex.c (D_OBJC): Add.
        (init_reswords): Add.
        * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
        * parser.c: Add c-common.h include.
        * pt.c: Add c-common.h and cp-objcp-common.h includes.
        (template_args_equal): Use objc_comptypes as well.
        (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
        * semantics.c (do_poplevel): Remove static.

        * decl.c (objc_mark_locals_volatile): Don't change decls that are
        already ok.
        * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
        Objective C++ early enough.
        * lex.c (struct resword reswords): Add Objective-C++ support.
        * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
        (cp_parser_objc_message_receiver): Add.
        (cp_parser_objc_message_args): Likewise.
        (cp_parser_objc_message_expression): Likewise.
        (cp_parser_objc_encode_expression): Likewise.
        (cp_parser_objc_defs_expression): Likewise.
        (cp_parser_objc_protocol_expression): Likewise.
        (cp_parser_objc_selector_expression): Likewise.
        (cp_parser_objc_expression): Likewise.
        (cp_parser_objc_visibility_spec): Likewise.
        (cp_parser_objc_method_type): Likewise.
        (cp_parser_objc_protocol_qualifiers): Likewise.
        (cp_parser_objc_typename): Likewise.
        (cp_parser_objc_selector_p): Likewise.
        (cp_parser_objc_selector): Likewise.
        (cp_parser_objc_method_keyword_params): Likewise.
        (cp_parser_objc_method_tail_params_opt): Likewise.
        (cp_parser_objc_interstitial_code): Likewise.
        (cp_parser_objc_method_signature): Likewise.
        (cp_parser_objc_method_prototype_list): Likewise.
        (cp_parser_objc_method_definition_list): Likewise.
        (cp_parser_objc_class_ivars): Likewise.
        (cp_parser_objc_identifier_list): Likewise.
        (cp_parser_objc_alias_declaration): Likewise.
        (cp_parser_objc_class_declaration): Likewise.
        (cp_parser_objc_protocol_declaration): Likewise.
        (cp_parser_objc_protocol_refs_opt): Likewise.
        (cp_parser_objc_superclass_or_category): Likewise.
        (cp_parser_objc_class_interface): Likewise.
        (cp_parser_objc_class_implementation): Likewise.
        (cp_parser_objc_end_implementation): Likewise.
        (cp_parser_objc_declaration): Likewise.
        (cp_parser_objc_try_catch_finally_statement): Likewise.
        (cp_parser_objc_synchronized_statement): Likewise.
        (cp_parser_objc_throw_statement): Likewise.
        (cp_parser_objc_statement): Likewise.
        (cp_parser_primary_expression): Add Objective-C++.
        (cp_parser_statement): Likewise.
        (cp_parser_declaration): Likewise.
        (cp_parser_simple_type_specifier): Likewise.
        (cp_parser_type_name): Likewise.
        (cp_parser_parameter_declaration_list): Likewise.
        (cp_parser_member_declaration) Likewise.
        * tree.c: Include debug.h.
        * typeck.c (composite_pointer_type): Add Objective-C++ support.
        (finish_class_member_access_expr): Likewise.
        (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
        (build_modify_expr): Allow objc to generate write barriers.

        * Make-lang.in (cp/tree.o): Add debug.h.
        * tree.c (lvalue_p_1, case CONST_DECL): Add.

2005-05-18  Jan Hubicka  <jh@suse.cz>

        * method.c: Include tree-pass.h
        (use_thunk): Lower body before expanding.

2005-05-17  Jakub Jelinek  <jakub@redhat.com>

        PR c++/21454
        * decl.c (maybe_deduce_size_from_array_init): Call
        cp_apply_type_quals_to_decl after completing array type.

2005-05-16  Richard Henderson  <rth@redhat.com>

        * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
        (build_library_fn): ... here.

2005-05-12  Ian Lance Taylor  <ian@airs.com>

        * cp-tree.h (cp_stmt_codes): Don't define.
        (statement_code_p): Declare.
        (STATEMENT_CODE_P): Define.
        * lex.c (statement_code_p): Define.
        (cxx_init): Use actual codes in stmt_codes initializer, not
        cp_stmt_codes macro.  Initialize statement_code_p directly, rather
        than using INIT_STATEMENT_CODES.

2005-05-09  Mark Mitchell  <mark@codesourcery.com>

        * typeck.c (build_unary_op): Do not resort to address arithmetic
        when taking the address of a COMPONENT_REF.

2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>

        * class.c (vtbl_init_data_s): Change the type of fns to
        VEC(tree,gc)*.
        (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
        Use VEC instead of VARRAY.

2005-05-07  Richard Sandiford  <rsandifo@redhat.com>

        * mangle.c: Remove a reference to the MIPS -mint64 option.

2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>

        * decl.c (wrapup_globals_for_namespace): Use VEC instead of
        VARRAY.
        * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
        * name-lookup.h (cp_binding_level): Change the type of
        static_decls to VEC(tree,gc)*.

        * mangle.c (globals): Change the type of substitutions to
        VEC(tree,gc)*.
        (dump_substitution_candidates, add_substitution,
        find_substitution, finish_mangling, init_mangle): Use VEC
        instead of VARRAY.

2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>

        * decl2.c (spew_debug): Remove.

        * decl2.c (ssdf_decls, start_static_storage_duration_function,
        generate_ctor_or_dtor_function): Use VEC instead of VARRAY.

        * decl2.c (pending_statics, note_vague_linkage_var,
        cp_finish_file): Use VEC instead of VARRAY.
        (pending_statics_used): Remove.

2005-05-05  Kazu Hirata  <kazu@cs.umass.edu>

        * decl2.c (deferred_fns, note_vague_linkage_fn,
        cp_finish_file): Use VEC instead of VARRAY.

2005-05-05  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21352
        * pt.c (build_non_dependent_expr): Use is_overloaded_fn.

2005-05-05  Kazu Hirata  <kazu@cs.umass.edu>

        * pt.c: Fix a comment typo.

2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-tree.h (language_function): Change the type of
        x_local_names to VEC.
        * decl.c (push_local_name): Adjust uses of local_names.

2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>

        * friend.c, lex.c, mangle.c, repo.c: Update copyright.

2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>

        * class.c (local_classes, init_class_processing): Use VEC
        instead of VARRAY.
        * cp-tree.h (local_classes): Likewise.
        * mangle.c (discriminator_for_local_entity): Likewise.
        * name-lookup.c (pushtag): Likewise.

        * class.c (current_lang_depth, push_lang_context,
        pop_lang_context): Use VEC instead of VARRAY.
        * cp-tree.h (saved_scope): Use VEC for lang_base instead of
        VARRAY.
        * name-lookup.c (push_to_top_level): Use VEC instead of
        VARRAY.

2005-05-02  Paolo Bonzini  <bonzini@gnu.org>

        * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
        for BUILT_IN_MD built-ins.

2005-05-02  Michael Matz  <matz@suse.de>

        PR c++/19542
        * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
        common frontend.
        (null_node): Remove.
        * lex.c (cxx_init): Move null_node initialisation to C common frontend.

2005-04-25  Ian Lance Taylor  <ian@airs.com>

        * cp-tree.def: Add EXPR_STMT.
        * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
        (EXPR_STMT_EXPR): Define.
        * cp-gimplify.c: Include "flags.h".
        (gimplify_expr_stmt): New static function.
        (cp_gimplify_expr): Handle EXPR_STMT.
        * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
        rather than pp_expression.
        (pp_cxx_statement): Handle EXPR_STMT.
        * dump.c (cp_dump_tree): Handle EXPR_STMT.
        * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
        initializer.

2005-04-25  Andrew Pinski  <pinskia@physics.uc.edu>

        PR C++/21188
        * rtti.c (ifnonnull): Cast the zero comparison operand
        to the correct type.

2005-04-24  Jakub Jelinek  <jakub@redhat.com>

        PR middle-end/20991
        * class.c: Include cgraph.h.
        (cp_fold_obj_type_ref): Set node->local.vtable_method.
        * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).

2005-04-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>

        * mangle.c (write_builtin_type): Handle integer types which are
        not one of the shared integer type nodes and emit a "vendor
        extended builtin type" with an encoding in the form of "u5int96".

2005-04-24  Ian Lance Taylor  <ian@airs.com>

        * cp-tree.def (USING_STMT): Change class to tcc_statement.
        (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
        (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
        (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.

2005-04-23  DJ Delorie  <dj@redhat.com>

        * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
        init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
        repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
        callers.

2005-04-22  Per Bothner  <per@bothner.com>

        * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
        input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.

2005-04-22  Alexandre Oliva  <aoliva@redhat.com>

        PR c++/21087
        * name-lookup.c (push_overloaded_decl): Do not overload with
        non-duplicate anticipated built-in.

2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
        VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.

2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>

        * cp-tree.h: Adjust for new VEC API.
        Define VEC(tree_pair_s,gc).
        (struct save_scope): Adjust.
        (struct lang_type_class): Adjust.
        (unemitted_tinfo_decls): Adjust.
        * class.c (add_method, resort_type_method_vec,
        finish_struct_methods, struct find_final_overrider_data,
        dfs_find_final_overrider_pre, find_final_overrider,
        get_vcall_index, warn_hidden, walk_subobject_offsets,
        check_methods, fixup_inline_methods, end_of_class,
        warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
        add_vcall_offset): Adjust.
        * decl.c (xref_basetypes, finish_method): Adjust.
        * decl2.c (check_classfn): Adjust.
        * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
        * method.c (do_build_copy_constructor): Adjust.
        * name-lookup.c (new_class_binding, store_binding,
        store_bindings, store_class_bindings): Adjust.
        * name-lookup.h: Define VEC(cxx_saved_binding,gc),
        VEC(cp_class_binding,gc).
        (struct cp_binding_level): Adjust.
        * parser.c: Define VEC(cp_token_position,heap).
        (struct cp_lexer): Adjust.
        (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
        cp_lexer_save_tokens): Adjust.
        * pt.c (retrieve_specialization,
        check_explicit_specialization): Adjust.
        * rtti.c (unemitted_tinfo_decls): Adjust.
        (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
        get_pseudo_ti_desc): Adjust.
        * search.c (dfs_access_in_type, lookup_conversion_operator,
        lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
        dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
        * semantics.c: Define VEC(deferred_access,gc).
        (push_deferring_access_checks): Adjust.
        * typeck2.c (abstract_virtuals_error): Adjust.

2005-04-20  Ian Lance Taylor  <ian@airs.com>

        * cp-tree.def: Add STMT_EXPR.
        * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
        (STMT_EXPR_STMT): Define.
        * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
        STMT_EXPR.
        (pp_cxx_expression): Likewise.
        (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
        * dump.c (cp_dump_tree): Handle STMT_EXPR.

2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>

        * decl.c (expand_static_init): Call build2 and build3 instead
        of build.

        * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.

2005-04-17  Ian Lance Taylor  <ian@airs.com>

        * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
        * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
        ARROW_EXPR.
        (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
        (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
        ALIGNOF_EXPR.
        * typeck.c (cxx_sizeof_or_alignof_type): Update call to
        c_sizeof_or_alignof_type for change in parameter type.

2005-04-16  Mark Mitchell  <mark@codesourcery.com>

        PR c++/21025
        * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
        which sizeof/alignof is dependent, rather than just whether we are
        processing_template_decl.

2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-tree.h (LOOKUP_GLOBAL): Remove.
        (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
        LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
        LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
        their values.

2005-04-15  Richard Henderson  <rth@redhat.com>

        PR middle-end/14311
        * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.

2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-tree.h (lang_type_class): Remove redefined.  Move
        java_interface into where redefined was.  Increment the width
        of dummy.
        (TYPE_REDEFINED): Remove.

2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
        CLASSTYPE_TEMPLATE_LEVEL): Remove.

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

        * decl2.c (determine_visibility): Don't use export_class_data.
        (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
        TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.

2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-tree.h (cxx_alignof): Remove.

        * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.

        * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
        CONV_STATIC_CAST): Remove.

        * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.

        * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.

        * cp-tree.h (cp_deprecated): Remove.

2005-04-08  Ian Lance Taylor  <ian@airs.com>

        * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
        CONTINUE_STMT, SWITCH_STMT.
        * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
        BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
        (WHILE_COND, WHILE_BODY): Define.
        (DO_COND, DO_BODY): Define.
        (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
        (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
        * cp-gimplify.c (enum bc_t): Define.
        (struct cp_gimplify_ctx, ctxp): Define.
        (push_context, pop_context): New static functions.
        (begin_bc_block, finish_bc_block): New static functions.
        (build_bc_goto): New static function.
        (gimplify_cp_loop, gimplify_for_stmt): New static functions.
        (gimplify_while_stmt, gimplify_do_stmt): Likewise.
        (gimplify_switch_stmt): Likewise.
        (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
        SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
        (cp_genericize): Call push_context and pop_context.
        * semantics.c (finish_break_stmt): Just call build_stmt
        (BREAK_STMT) rather than build_break_stmt.
        (finish_continue_stmt): Corresponding change.
        * decl.c (pop_switch): Update call to c_do_switch_warnings for new
        parameters.
        * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
        WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
        * dump.c (cp_dump_tree): Likewise.

2005-04-08  Mark Mitchell  <mark@codesourcery.com>

        PR c++/20905
        * parser.c (cp_parser_type_specifier_seq): Add is_condition
        parameter.
        (cp_parser_new_type_id): Pass it.
        (cp_parser_condition): Likewise.
        (cp_parser_conversion_type_id): Likewise.
        (cp_parser_type_id): Likewise.
        (cp_parser_type_specifier_seq): In a condition, do not allow
        invalid type-specifier combinations.
        (cp_parser_exception_declaration): Adjust call to
        cp_parser_type_specifier_seq.

        * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
        * cp-tree.h (struct tinst_level): Add in_system_header_p.
        (TINST_IN_SYSTEM_HEADER_P): New macro.
        (make_tinst_level): Remove.
        * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
        the instantiated class.
        (push_tinst_level): Do not use make_tinst_level.  Set
        TINST_IN_SYSTEM_HEADER_P.
        (pop_tinst_level): Likewise.
        (instantiate_class_template): Set in_system_header.
        (instantiate_pending_templates): Likewise.
        * tree.c (make_tinst_level): Remove.

2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>

        * decl.c (start_decl): Apply pending #pragma weak regardless of
        scope.

2005-04-06  Mark Mitchell  <mark@codesourcery.com>

        PR c++/20212
        * pt.c (regenerate_decl_from_template): Copy attributes for
        parameters from the pattern to the instantiation.

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

        PR c++/20734
        * cp-tree.def (OFFSET_REF): Correct comments.
        * init.c (build_offset_ref): Remove misleading comment.
        * typeck.c (build_unary_op): Handle pointer-to-member creation
        here, rather than ...
        (unary_complex_lvalue): ... here.

2005-04-06  Jason Merrill  <jason@redhat.com>

        PR c++/19312
        * tree.c (stabilize_init): Don't bother trying to stabilize
        something with no side-effects.

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

        PR c++/20763
        * decl.c (grokdeclarator): Correct attribute handling.

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

        PR c++/19159
        * decl2.c (import_export_decl): Use non-COMDAT external linkage
        for virtual tables, typeinfo, etc. that will be emitted in only
        one translation unit on systems without weak symbols.

2005-04-04  Mark Mitchell  <mark@codesourcery.com>

        PR c++/20679
        * parser.c (cp_parser_template_name): Fix thinko.

2005-04-04  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/20746
        * method.c (use_thunk): Protect covariant pointer return
        adjustments from NULL pointers.

2005-04-04  Jan Hubicka  <jh@suse.cz>

        * decl2.c (finish_objects): Revert my previous patch.
        (cp_finish_file): Likewise.

2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>

        * pt.c: Fix comment typos.

2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/20723
        * pt.c (more_specialized_fn): Member functions are unordered wrt
        non-members.  Conversion operators are unordered wrt other
        functions.

2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>

        * call.c (add_template_candidates_real): Remove length parameter
        from fn_type_unification call.
        * class.c (resolve_address_of_overloaded_function): Likewise
        * cp-tree.h (fn_type_unification): Remove length parameter.
        * pt.c (get_bindings_overload): Remove.
        (get_bindings_real): Rename to ...
        (get_bindings): ... here.  Remove length and strict
        parameters. Change return type flag to boolean.  Remove original
        forwarding function.
        (determine_specialization): Adjust get_bindings call.
        (fn_type_unification): Remove length parameter.  Adjust.
        (type_unification_real): Remove length parameter.  Adjust.
        (resolve_overloaded_unification): Adjust get_bindings call.
        (try_one_overload): Simplify confusing cascaded if control flow.
        (unify): Remove length paramter from type_unification_real call.
        (most_specialized_instantiation): Adjust get_bindings calls.
        (most_specialized): Likewise.

2005-03-31  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/19203, implement DR 214
        * call.c (joust): Use more_specialized_fn.
        * cp-tree.h (DEDUCE_ORDER): Remove.
        (more_specialized): Replace with ...
        (more_specialized_fn): ... this.
        * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
        case.
        (type_unification_real): Remove DEDUCE_ORDER case.
        (more_specialized): Replace with ...
        (more_specialized_fn): ... this.  Implement DR 214.
        (most_specialized_instantiation): Use get_bindings_real directly.

2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        PR c++/18644
        * call.c (build_new_op): Remove check for -Wsynth.

2005-03-31  Jan Hubicka  <jh@suse.cz>

        * decl2.c (finish_objects): Mark ctor as needed.
        (cp_finish_file): Output variables only in nonunit-at-a-time.

2005-03-29  Richard Henderson  <rth@redhat.com>

        PR c/20519
        * decl.c (cp_complete_array_type): Rename from complete_array_type.
        Use the new complete_array_type in c-common.c.  Update all callers.
        * cp-tree.h (cp_complete_array_type): Update to match.

2005-03-24  Geoffrey Keating  <geoffk@apple.com>

        * typeck.c (build_static_cast_1): Allow scalar_cast between
        any integral, floating, or enumeration type.

2005-03-24  Steven Bosscher  <stevenb@suse.de>

        * typeck.c (comptypes): First determine if the types are compatible
        from a target-independent point of view.  Check target attributes
        last.

        * class.c (build_base_path):
        (build_vbase_offset_vtbl_entries):
        (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
        * error.c (dump_expr): Likewise.
        * init.c (build_zero_init, expand_cleanup_for_base,
        build_vec_delete_1): Likewise.
        * mangle.c (write_integer_cst): Likewise.
        * method.c (thunk_adjust): Likewise.
        * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
        * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
        * typeck.c (build_ptrmemfunc_access_expr,
        (get_member_function_from_ptrfunc): Likewise.

2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>

        * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.

2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>

        * cp-tree.h (perform_integral_promotions): Remove.
        (default_conversion): Add.

2005-03-22  Mark Mitchell  <mark@codesourcery.com>

        * parser.c (cp_parser_warn_min_max): New function.
        (cp_parser_binary_expression): Use it.
        (cp_parser_assignment_operator_opt): Likewise.
        (cp_parser_operator): Likewise.

2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/19980
        * decl.c (start_preparsed_function): Robustify.

2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/20499
        * parser.c (cp_parser_class_head): Return NULL_TREE when
        encountering a redefinition.

2005-03-22  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/20465
        PR c++/20381
        * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
        template.

2005-03-21  Paolo Carlini  <pcarlini@suse.de>

        PR c++/20461
        PR c++/20536
        * init.c (emit_mem_initializers): Don't crash on undefined
        types.

2005-03-21  Paolo Carlini  <pcarlini@suse.de>

        PR c++/20147
        * semantics.c (finish_stmt_expr_expr): Return immediately
        if error_operand_p (expr).

2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>

        * cp-tree.h (lvalue_or_else, lvalue_p): New.
        * typeck.c (lvalue_or_else): New.  Call lvalue_error.

2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        PR c++/20240
        * decl.c (decls_match): Compare context of VAR_DECL.

2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        PR c++/20333
        * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
        Check the return value of cp_parser_nested_name_specifier.

2005-03-18  Dale Johannesen <dalej@apple.com>

        * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.

2005-03-18  Paolo Carlini  <pcarlini@suse.de>

        PR c++/20463
        * parser.c (cp_parser_diagnose_invalid_type_name):
        Check TYPE_BINFO (current_class_type) before attempting
        to emit inform messages.

2005-03-17  Paolo Carlini  <pcarlini@suse.de>

        PR c++/19966
        * cp-tree.h (grok_op_properties): Change return type to void.
        * decl.c (grok_op_properties): Return early - don't check the
        arity - in case of a static member or an operator that cannot
        be non-member; tidy a bit.

2005-03-17  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/20186
        * pt.c (contains_dependent_cast_p): Remove.
        (fold_non_dependent_expr): Don't use it.
        (value_dependent_expression_p): Use a switch statement.
        reference_exprs can be dependent.

2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        PR c++/4403
        PR c++/9783, DR433
        * name-lookup.c (pushtag): Skip template parameter scope when
        scope is ts_global.  Don't push tag into template parameter
        scope.
        * pt.c (instantiate_class_template): Reorder friend class
        template substitution to handle non-dependent friend class
        that hasn't been previously declared.

2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        Friend class name lookup 5/n
        PR c++/1016
        * cp-tree.h (pushtag): Adjust declaration.
        * decl.c (lookup_and_check_tag): Call lookup_type_scope if
        lookup_name fails.
        (xref_tag): Adjust call to pushtag.  Make hidden class visible.
        (start_enum): Adjust call to pushtag.
        * name-lookup.c (ambiguous_decl): Ignore hidden names.
        (qualify_lookup): Change return type to bool.
        (hidden_name_p): New function.
        (lookup_namespace_name, unqualified_namespace_lookup,
        lookup_name_real): Use it.
        (lookup_type_scope): Update comments.
        (maybe_process_template_type_declaration): Change parameter name
        from globalize to is_friend.
        (pushtag): Change globalize parameter of type int to tag_scope.
        Hide name if introduced by friend declaration.
        * name-lookup.h (hidden_name_p): Add declaration.
        * parser.c (cp_parser_lookup_name): Don't deal with hidden name
        here.
        * pt.c (push_template_decl_real): Make hidden class template
        visible.
        (lookup_template_class, instantiate_class_template): Adjust call
        to pushtag.
        * semantics.c (begin_class_definition): Likewise.
        * rtti.c (init_rtti_processing, build_dynamic_cast_1,
        tinfo_base_init, emit_support_tinfos): Use ts_current instead of
        ts_global.

2005-03-13  Mark Mitchell  <mark@codesourcery.com>

        PR c++/20157
        * pt.c (determine_specialization): Reject non-specializations.

2005-03-11  Per Bothner  <per@bothner.com>

        * cp-tree.h (struct cp_declarator): New id_loc field.
        * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
        location using c_lex_with_flags, instead of input_location.
        (cp_parser_direct_declarator): Set declarator's id_loc from
        cp_token's id_loc.

2005-03-10  Jakub Jelinek  <jakub@redhat.com>

        PR c++/18384, c++/18327
        * decl.c (reshape_init_array): Use UHWI type for max_index_cst
        and index.  Convert max_index to size_type_node if it isn't
        host_integerp (, 1).

2005-03-09  Mark Mitchell  <mark@codesourcery.com>

        PR c++/20208
        * pt.c (tsubst_decl): Apply array-to-pointer and
        function-to-pointer conversions to function arguments.
        (regenerate_decl_from_template): Likewise.

2005-03-09  Paolo Carlini  <pcarlini@suse.de>

        PR c++/16859
        * decl.c (complete_array_type): In pedantic mode, return
        3 for an empty initializer list as the initializer for an
        array of unknown bound (8.5.1/4).
        (maybe_deduce_size_from_array_init): Fix final test to use
        the above.

2005-03-08  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/20186
        * pt.c (contains_dependent_cast_p): New.
        (fold_non_dependent_expr): Call it.

2005-03-08  Mark Mitchell  <mark@codesourcery.com>

        PR c++/20142
        * cp-tree.h (target_type): Remove.
        * decl.c (layout_var_decl): Remove #if 0'd code.
        (cp_finish_decl): Remove dead code.
        * init.c (build_vec_init): When determining whether or not the
        element type has an asignment operator, look through all array
        dimensions.
        * typeck.c (target_type): Remove.

2005-03-07  Mark Mitchell  <mark@codesourcery.com>

        * class.c (finish_struct_1): Do not warn about non-virtual
        destructors in Java classes.

2005-03-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        PR c++/19311
        * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
        * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
        for OFFSET_TYPE.
        * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
        Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
        (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
        template.

2005-03-02  Alexandre Oliva  <aoliva@redhat.com>

        * name-lookup.c (push_overloaded_decl): Don't error if the new
        decl matches the old one.
        * decl.c (redeclaration_error_message): Likewise.

2005-03-01  Per Bothner  <per@bothner.com>

        * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
        unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.

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

        PR c++/20232
        * class.c (update_vtable_entry_for_fn): Don't crash on invalid
        covariancy.

        * cp-tree.g (THUNK_TARGET): Expand comment.
        * method.c (use_thunk): Make sure we also use the target, if that
        is a thunk.

2005-02-27  Jakub Jelinek  <jakub@redhat.com>

        PR c++/20206
        * decl.c (cxx_comdat_group): Put thunks for
        TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
        comdat group as the thunk target.

2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
        parser.c: Fix comment typo(s).

2005-02-24  Jakub Jelinek  <jakub@redhat.com>

        PR c++/20175
        * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
        initializes a char/wchar_t array.

2005-02-23  Mark Mitchell  <mark@codesourcery.com>

        PR c++/19878
        * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
        with internal linkage.

2005-02-23  Alexandre Oliva  <aoliva@redhat.com>

        * decl.c (grokvardecl): Don't exempt anonymous types from having
        linkage for variables that have linkage other than "C".

2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-objcp-common.h, error.c: Update copyright.

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

        PR c++/20073
        * decl.c (start_decl_1): Don't clear TREE_READONLY.
        (cp_finish_decl): Likewise.
        (complete_vars): Call cp_apply_type_quals_to_decl.
        * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
        cases where that's not valid.

        PR c++/19991
        * init.c (integral_constant_value): Iterate if the value of a decl
        is itself a constant.

        PR c++/20152
        * parser.c (cp_parser_class_head): Check for redefintions here.
        * semantics.c (begin_class_definition): Not here.

        PR c++/20153
        * decl2.c (build_anon_union_vars): Add type parameter.
        (finish_anon_union): Pass it.

        PR c++/20148
        * error.c (dump_expr): Do not print the body of a BIND_EXPR.
        Handle STATEMENT_LIST.

        PR c++/19883
        * parser.c (cp_parser_direct_declarator): Always complain about
        non-constant array bounds when in a function scope.
        * semantics.c (finish_id_expression): Do not mark dependent names
        as non-constant.

2005-02-21  Douglas Gregor  <dgregor@cs.indiana.edu>

        PR c++/19076
        PR c++/6628
        * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
        * decl.c (grokdeclarator): Pedwarn about qualifying a function
        type.
        Add qualifiers when declaring a typedef of a function type.
        Member function pointers pick up the qualifiers of the typedef
        used to declare them.
        Don't complain about creating cv-qualified function types.
        Complain about qualified function typedefs that are used to
        declare non-static member functions or free functions.
        Use cp_apply_type_quals_to_decl.
        (start_preparsed_function): Use cp_apply_type_quals_to_decl.
        (grokclassfn): Use cp_apply_type_quals_to_decl.
        * error.c (dump_type_suffix): Print qualifiers for function
        types.
        * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
        (tsubst): When substituting a function type into a member
        pointer type, pass along the qualifiers.
        (unify): Unify member pointers to member function pointers.
        * tree.c (cp_build_qualified_type_real): Function types may be
        qualified. This includes restrict qualifiers.
        * typeck.c (cp_apply_type_quals_to_decl): New function to replace
        use of c_apply_type_quals_to_decl. Drops qualifiers that are being
        added to function types.

2005-02-20  Zack Weinberg  <zack@codesourcery.com>

        PR 18785
        * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
        c_common_to_target_charset.  Delete bogus comment.

2005-02-18  Richard Henderson  <rth@redhat.com>

        PR libstdc++/10606
        * except.c (do_get_exception_ptr): New.
        (expand_start_catch_block): Use it.

2005-02-19  Jakub Jelinek  <jakub@redhat.com>

        * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
        if type is not error_mark_node.

2005-01-20  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

        PR c++/19508
        * decl2.c (grokfield): Do not apply attributes to template parameters
        as they are ignored by tsubst anyway.

2005-02-18  Jakub Jelinek  <jakub@redhat.com>

        PR c++/19813
        * decl.c (start_decl_1): Clear TREE_READONLY flag if
        its type has TYPE_NEEDS_CONSTRUCTING.
        (complete_vars): Likewise.

2005-02-17  Alexandre Oliva  <aoliva@redhat.com>

        PR c++/20028
        * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
        template along with TYPE_SIZE.

        PR c++/20022
        * semantics.c (perform_deferred_access_checks): Use
        get_deferred_access_checks to get the top of the stack.

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

        PR c++/17788
        * class.c (add_implicitly_declared_members, check_field_decl)
        (check_field_decls, check_bases): Remove arguments, tests and
        assignments of cant_have_default_ctor-related variables.

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

        * decl2.c (mark_used): Set the source location of the used decl to
        the current input location here...
        * method.c (synthesize_method): ... not here.  Set input_location
        from the decl instead.

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

        PR c++/19608
        * parser.c (cp_parser_late_parsing_for_member): Use
        current_function_decl as scope to push to and from.

        PR c++/19884
        * pt.c (check_explicit_specialization): Make sure namespace
        binding lookup found an overloaded function.
        (lookup_template_function): Just assert FNS is an overloaded
        function.

        PR c++/19895
        * decl.c (grokdeclarator): Check for error mark node in ptrmem
        construction.

2005-02-14  Alexandre Oliva  <aoliva@redhat.com>

        PR c++/17816
        * decl.c (redeclaration_error_message): Report redefinition of
        pure virtual function.

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

        PR c++/19891
        * class.c (build_simple_base_path): Build the component_ref
        directly.
        (update_vtable_entry_for_fn): Walk the covariant's binfo chain
        rather than using lookup_base.
        * search.c (dfs_walk_once): Add non-recursive assert check.
        * typeck.c (build_class_member_access_expr): It is possible for
        the member type to be both const and volatile.

2005-02-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        PR c++/14479
        PR c++/19487
        * pt.c (maybe_check_template_type): Remove.
        * cp-tree.h (maybe_check_template_type): Remove prototype.
        * name-lookup.c (maybe_process_template_type_declaration): Don't
        use maybe_check_template_type.

2005-02-11  Richard Henderson  <rth@redhat.com>

        PR c++/19632
        * pt.c (get_mostly_instantiated_function_type): Save and restore
        flag_access_control instead of push/pop_access_scope.

2005-02-10  Mark Mitchell  <mark@codesourcery.com>

        PR c++/19755
        * decl.c (reshape_init): Issue warnings about missing braces.

2005-02-11  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-tree.def, except.c, ptree.c: Update copyright.

2005-02-09  Mark Mitchell  <mark@codesourcery.com>

        PR c++/19811
        * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
        attempting name lookup.

        * parser.c (cp_parser_unqualified_id): Initialize type_decl.

        PR c++/19787
        * call.c (initialize_reference): Robustify.

        PR ++/19732
        * decl.c (grokdeclarator): Check for invalid use of destructor
        names.

        PR c++/19762
        * parser.c (cp_parser_unqualified_id): Avoid creating destructor
        names with invalid types.

        PR c++/19826
        * parser.c (cp_parser_direct_declarator): Allow type-dependent
        expressions as array bounds.

        PR c++/19739
        * parser.c (cp_parser_attributes_list): Allow empty lists.

2005-02-08  Mark Mitchell  <mark@codesourcery.com>

        PR c++/19733
        * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
        (check_bases): Give warnings about a base class with a
        non-virtual destructor, even if it is implicit.
        (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
        (maybe_warn_about_overly_private_class): Don't use
        TYPE_HAS_DESTRUCTOR.
        (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
        (check_for_override): Give it external linkage.
        (add_implicitly_declared_members): Generate destructors lazily.
        (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
        TYPE_HAS_DESTRUCTOR.
        (check_bases_and_members): Call check_methods before
        check_field_decls.
        (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
        TYPE_HAS_DESTRUCTOR.
        (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
        * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
        * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
        (lang_type_class): Add lazy_destructor.
        (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
        (CLASSTYPE_DESTRUCTORS): Robustify.
        (TYPE_HAS_DESTRUCTOR): Remove.
        (check_for_override): Declare.
        (build_vbase_delete): Remove.
        * cvt.c (convert_to_void): Issue errors about pseudo-destructor
        expressions.
        * decl.c (cxx_maybe_build_cleanup): Remove dead code.
        * except.c (dtor_nothrow): Lazily create destructors if necessary.
        (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
        * init.c (build_delete): Lazily create destructors, if necessary.
        (build_vbase_delete): Remove.
        * method.c (locate_dtor): Simplify.
        (implicitly_declare_fn): Add support for destructors.
        * parser.c (cp_parser_lookup_name): Lazily create destructors, if
        necessary.
        * pt.c (check_explicit_specialization): Don't use
        TYPE_HAS_DESTRUCTOR.
        (instantiate_class_template): Likewise.
        * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
        * rtti.c (emit_support_tinfos): Robustify.
        * search.c (lookup_fnfields_1): Lazily create destructors.
        * typeck.c (build_class_member_access_expr): Remove
        PSEUDO_DTOR_EXPR handling.
        (lookup_destructor): Likewise.

2005-02-08  Kazu Hirata  <kazu@cs.umass.edu>

        * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
        copyright.

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

        * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
        on boolean variables.
        (cp_lexer_stop_debugging): Likewise.

2005-02-03  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

        PR c++/17401
        * parser.c (cp_parser_pure_specifier): Emit a specific error
        message with an invalid pure specifier.
        * decl2.c (grok_function_init): Remove.
        (grokfield): An initializer for a method is a always a pure
        specifier.

2005-02-02  Matt Austern  <austern@apple.com>

        PR c++/19628
        * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
        * parser.c (cp_parser_postfix_expression): Accept function call in
        constant expression if builtin_valid_in_constant_expr_p is true
        for that function.
        * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
        * semantics.c (finish_id_expression): Accept function call in constant
        expression if builtin_valid_in_constant_expr_p is true for that
        function.
        * tree.c (builtin_valid_in_constant_expr_p): New.

2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/17413
        * pt.c (check_instantiated_args): Improve error message.
        Fix logic when to print its second part.

2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * cp-tree.h (complete_type_or_else): Remove macro.
        (complete_type_or_diagnostic): Rename to complete_type_or_else
        and remove last argument.
        * typeck.c (complete_type_or_diagnostic): Rename to
        complete_type_or_else and remove last argument.

2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * cp-tree.h (commonparms): Remove prototype.
        (convert_arguments): Likewise.
        (PFN_FROM_PTRMEMFUNC): Remove.
        * typeck.c (commonparms): Make static.
        (convert_arguments): Add prototype. Make static.
        (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.

2005-01-31  Mark Mitchell  <mark@codesourcery.com>

        * parser.c (cp_parser_primary_expression): Don't complain about
        floating-point literals in integral constant expressions when
        !pedantic.

2005-02-01  Alexandre Oliva  <aoliva@redhat.com>

        * parser.c (cp_parser_template_id): Revert comment patch too.

        PR c++/18757
        PR c++/19366
        PR c++/19499
        * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
        Issue an error when creating the template id.
        * pt.c (fn_type_unification): Return early if the explicit
        template arg list is an error_mark_node.

2005-01-31  Mark Mitchell  <mark@codesourcery.com>

        * decl.c (build_enumerator): Do not issue duplicate error messages
        about invalid enumeration constants.
        * parser.c (cp_parser_non_integral_constant_expression): Always
        set parser->non_integral_constant_expression_p.
        (cp_parser_primary_expression): Add cast_p parameter.  Issue
        errors about invalid uses of floating-point literals in
        cast-expressions.
        (cp_parser_postfix_expression): Add cast_p parameter.
        (cp_parser_open_square_expression): Pass it.
        (cp_parser_parenthesized_expression_list): Add cast_p parameter.
        (cp_parser_unary_expression): Likewise.
        (cp_parser_new_placement): Pass it.
        (cp_parser_direct_new_declarator): Likewise.
        (cp_parser_new_initializer): Likewise.
        (cp_parser_cast_expression): Add cast_p parameter.
        (cp_parser_binary_expression): Likewise.
        (cp_parser_question_colon_clause): Likewise.
        (cp_parser_assignment_expression): Likewise.
        (cp_parser_expression): Likewise.
        (cp_parser_constant_expression): If an integral constant
        expression is invalid, return error_mark_node.
        (cp_parser_expression_statement): Pass cast_p.
        (cp_parser_condition): Likewise.
        (cp_parser_iteration_statement): Likewise.
        (cp_parser_jump_statement): Likewise.
        (cp_parser_mem_initializer): Likewise.
        (cp_parser_template_argument): Likewise.
        (cp_parser_parameter_declaration): Likewise.
        (cp_parser_initializer): Likewise.
        (cp_parser_throw_expression): Likewise.
        (cp_parser_attribute_list): Likewise.
        (cp_parser_simple_cast_expression): Likewise.
        (cp_parser_functional_cast): Likewise.
        (cp_parser_late_parsing_default_args): Likewise.
        (cp_parser_sizeof_operand): Save/restore
        non_integral_constant_expression_p.

2005-01-31  Mike Stump  <mrs@apple.com>

        * parser.c (cp_lexer_new_main): Get the first token, first, before
        doing anything.

2005-01-31  Mark Mitchell  <mark@codesourcery.com>

        * decl.c (start_decl): Add missing parentheses.

2005-01-30  Mark Mitchell  <mark@codesourcery.com>

        PR c++/19555
        * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
        * decl.c (duplicate_decls): Do not discard
        DECL_IMPLICIT_INSTANTIATION when merging declarations.
        (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
        variables that do not have DECL_USE_TEMPLATE.

        PR c++/19395
        * decl.c (grokdeclarator): Refactor code so that qualified names
        are never allowed as the declarator in a typedef.

        PR c++/19367
        * name-lookup.c (do_nonmember_using_decl): Avoid overloading
        builtin declarations.

        PR c++/19457
        * call.c (convert_like_real): Inline call to
        dubious_conversion_warnings here.
        * cp-tree.h (dubious_conversion_warnings): Remove.
        * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
        setting TREE_NEGATED_INT.
        * typeck.c (dubious_conversion_warnings): Remove.

        PR c++/19349
        * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
        memory.

2005-01-28  Mark Mitchell  <mark@codesourcery.com>

        PR c++/19253
        * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
        tentative parses.

        PR c++/19667
        * pt.c (redeclare_class_template): Robustify.

2005-01-27  Steven Bosscher  <stevenb@suse.de>

        * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
        instead of SWITCH_EXPR ones.
        * pt.c (tsubst_expr): Likewise.
        * semantics.c (begin_switch_stmt, finish_switch_cond,
        finish_switch_stmt): Likewise.

2005-01-26  J"orn Rennecke <joern.rennecke@st.com>

        PR c++/18370
        * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.

2005-01-25  Andrew Pinski  <pinskia@physics.uc.edu>

        * class.c (abort_fndecl_addr): New variable.
        (build_vtbl_initializer): If we have a pure virtual function
        share the abort function's address.
        Include gt-cp-class.h at the end.
        * config-lang.in (gtfiles): Add cp/class.c.

2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
        (pp_cxx_function_definition): Make static.
        * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
        (pp_cxx_function_definition): Likewise.

2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * name-lookup.c (print_binding_level): Make static.
        (constructor_name_full): Make static inline.
        (current_decl_namespace): Make static.
        * name-lookup.h (constructor_name_full): Remove prototype.
        (print_binding_level): Likewise.
        (current_decl_namespace): Likewise.

2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * decl.h (debug_bindings_indentation): Remove.

2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>

        * typeck.c: Fix a comment typo.

2005-01-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

        PR c++/19208
        * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
        at least once.
        (tsubst): Use fold_decl_constant_value in place of a bare call to
        integral_constant_value.

2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>

        * typeck.c (more_qualified_p): Remove.
        * cp-tree.h: Remove the corresponding prototype.

2005-01-19  Matt Austern  <austern@apple.com>

        * typeck.c (comptypes): Handle return code from objc_comptypes
        correctly.

2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-tree.h, name-lookup.h: Remove unused prototypes.

2005-01-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        PR c++/19375
        * semantics.c (finish_id_expression): Disable access checking for
        already lookuped FIELD_DECL.

2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>

        * decl.c (delete_block): Remove.
        * cp-tree.h: Remove the corresponding prototype.

        * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
        walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
        Remove.
        * cp-tree.h: Remove the corresponding prototypes.

        * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
        cp_update_decl_after_saving, name_p): Remove.
        * cp-tree.h: Remove the corresponding prototypes.

2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c/19472
        * semantics.c (finish_asm_stmt): Strip nops off
        input memory operands.

2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>

        * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
        typeck2.c: Update copyright.

2005-01-16  Kazu Hirata  <kazu@cs.umass.edu>

        * class.c (get_enclosing_class): Remove.
        * cp-tree.h: Remove the corresponding prototypes.

        * cvt.c (convert_lvalue): Remove.
        * cp-tree.h: Remove the corresponding prototype.

        * pt.c (tinst_for_decl): Remove.
        * cp-tree.h: Remove the corresponding prototypes.

        * tree.c (hash_chainon): Remove.
        * cp-tree.h: Remove the corresponding prototypes.

2005-01-15  Jakub Jelinek  <jakub@redhat.com>

        PR c++/19263
        * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
        of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.

2005-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * Make-lang.in (cp-warn): Don't append $(WERROR).

2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>

        * cp-tree.h: Fix a comment typo.

2005-01-07  Nathan Sidwell  <nathan@codesourcery.com>

        PR c++/19298
        * pt.c (tsubst_qualified_id): Call convert_from_reference.

2005-01-06  Mark Mitchell  <mark@codesourcery.com>

        PR c++/19244
        * class.c (add_implicitly_declared_members): Remove dead code.
        * decl.c (grokfndecl): Add sfk parameter.  Use it do set
        DECL_CONSTRUCTOR_P.
        (grokdeclarator): Adjust calls to grokfndecl.
        * method.c (implicitly_declare_fn): Improve documentation.
        * parser.c (cp_parser_direct_declarator): Do not consider a
        function to be a constructor if the containing class was
        originally anonymous.

2005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        PR c++/17154
        * search.c (lookup_field_1): Handle using declaration in
        class template partial specialization.

2005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

        PR c++/19258
        * pt.c (push_access_scope): Handle friend defined in class.
        (pop_access_scope): Likewise.

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

        PR c++/19270
        * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
        (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
        array-new handling code.  Use build_x_binary_op.

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

        PR c++/19030
        * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
        * name-lookup.h (push_scope): Return pushed scope, not flag.
        * name-lookup.c (push_scope): Return scope that should be popped,
        not a flag.
        * decl.c (start_decl): Adjust.
        (grokfndecl): Adjust scope push and pop.
        * decl2.c (check_classfn): Likewise.
        * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
        cp_parser_init_declarator, cp_parser_direct_declarator,
        cp_parser_class_specifier, cp_parser_class_head,
        cp_parser_lookup_name,
        cp_parser_constructor_declarator_p): Likewise.
        * pt.c (instantiate_class_template,
        resolve_typename_type): Likewise.

2005-01-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        PR c++/14136
        * parser.c (cp_parser_unqualified_id): Do not issue error message
        for typedef-name as destructor declarator when performing an
        uncommitted tentative parse.

2005-01-01  Steven Bosscher  <stevenb@suse.de>

        PR middle-end/17544
        * decl.c (finish_function): Fix comment.  Annotate the compiler
        generated return with the current file name and line 0.


Copyright (C) 2005 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.

Go to most recent revision | 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.