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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc3/] [gcc/] [cp/] [ChangeLog-2005] - Diff between revs 283 and 516

Only display areas with differences | Details | Blame | View Log

Rev 283 Rev 516
2005-12-30  Gabriel Dos Reis  
2005-12-30  Gabriel Dos Reis  
        * cxx-pretty-print.c (pp_cxx_constant): New.  Print
        * cxx-pretty-print.c (pp_cxx_constant): New.  Print
        string-literal in parens if input program says so.
        string-literal in parens if input program says so.
        (pp_cxx_primary_expression): Hand off constant printing to
        (pp_cxx_primary_expression): Hand off constant printing to
        pp_cxx_constant.
        pp_cxx_constant.
        (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
        (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
        (pp_cxx_expression): Use pp_cxx_constant for literals.
        (pp_cxx_expression): Use pp_cxx_constant for literals.
        * error.c (dump_expr): Use pp_constant for literals.
        * error.c (dump_expr): Use pp_constant for literals.
2005-12-29  Nathan Sidwell  
2005-12-29  Nathan Sidwell  
        * method.c (make_thunk): Don't set comdat_linkage here.
        * method.c (make_thunk): Don't set comdat_linkage here.
        (use_thunk): Make thunk one only here, if thunk target is
        (use_thunk): Make thunk one only here, if thunk target is
        DECL_ONE_ONLY.
        DECL_ONE_ONLY.
2005-12-26  Mark Mitchell  
2005-12-26  Mark Mitchell  
        PR c++/25439
        PR c++/25439
        * decl.c (grokdeclarator): Remove dead code.
        * decl.c (grokdeclarator): Remove dead code.
        * ptree.c (cxx_print_xnode): Handle BASELINK.
        * ptree.c (cxx_print_xnode): Handle BASELINK.
        * parser.c (make_id_declarator): Add sfk parameter.
        * parser.c (make_id_declarator): Add sfk parameter.
        (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
        (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
        make_id_declarator.
        make_id_declarator.
        (cp_parser_declarator_id): Simplify BASELINKs here.
        (cp_parser_declarator_id): Simplify BASELINKs here.
        (cp_parser_member_declaration): Adjust calls to
        (cp_parser_member_declaration): Adjust calls to
        make_id_declarator.
        make_id_declarator.
2005-12-26  Mark Mitchell  
2005-12-26  Mark Mitchell  
        PR c++/23171, c++/23172, c++/25417.
        PR c++/23171, c++/23172, c++/25417.
        * typeck.c (build_unary_op): Create temporary variables for
        * typeck.c (build_unary_op): Create temporary variables for
        compound literals whose addresses are taken.
        compound literals whose addresses are taken.
        * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
        * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
        * decl.c (reshape_init_vector): Likewise.
        * decl.c (reshape_init_vector): Likewise.
        (reshape_init): Give it external linkage.
        (reshape_init): Give it external linkage.
        (check_initializer): Use COMPOUND_LITERAL_P.
        (check_initializer): Use COMPOUND_LITERAL_P.
        (initialize_artificial_var): Allow the initializer to be a
        (initialize_artificial_var): Allow the initializer to be a
        CONSTRUCTOR.
        CONSTRUCTOR.
        * call.c (make_temporary_var_for_ref_to_temp): Use
        * call.c (make_temporary_var_for_ref_to_temp): Use
        create_temporary_var.
        create_temporary_var.
        * cp-tree.h (COMPOUND_LITERAL_P): New macro.
        * cp-tree.h (COMPOUND_LITERAL_P): New macro.
        (rehape_init): Declare.
        (rehape_init): Declare.
        * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
        * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
        * semantics.c (finish_compound_literal): Use reshape_init.
        * semantics.c (finish_compound_literal): Use reshape_init.
2005-12-23  Mark Mitchell  
2005-12-23  Mark Mitchell  
        PR c++/24671
        PR c++/24671
        * pt.c (instantiate_template): Handle SFINAE.
        * pt.c (instantiate_template): Handle SFINAE.
2005-12-23  Volker Reichelt  
2005-12-23  Volker Reichelt  
        * decl.c (grokdeclarator): Improve diagnostic for friend
        * decl.c (grokdeclarator): Improve diagnostic for friend
        declarations of class members.
        declarations of class members.
2005-12-22  Mark Mitchell  
2005-12-22  Mark Mitchell  
        PR c++/25369
        PR c++/25369
        * tree.c (really_overloaded_fn): Tweak comment.
        * tree.c (really_overloaded_fn): Tweak comment.
        * pt.c (tsubst_call_declarator_parms): Remove.
        * pt.c (tsubst_call_declarator_parms): Remove.
        (tsubst_copy): Call mark_used on the member referenced by an
        (tsubst_copy): Call mark_used on the member referenced by an
        OFFSET_REF.
        OFFSET_REF.
        * semantics.c (finish_qualified_id_expr): Simplify.
        * semantics.c (finish_qualified_id_expr): Simplify.
        * decl2.c (mark_used): Accept BASELINKs.
        * decl2.c (mark_used): Accept BASELINKs.
        PR c++/25364
        PR c++/25364
        * typeck.c (build_unary_op): Pass DECLs not names to
        * typeck.c (build_unary_op): Pass DECLs not names to
        build_offset_refs.
        build_offset_refs.
        * init.c (build_offset_ref): Do not do name lookup.  Do not call
        * init.c (build_offset_ref): Do not do name lookup.  Do not call
        mark_used.
        mark_used.
        * call.c (build_call): Simplify and tidy.
        * call.c (build_call): Simplify and tidy.
        * semantics.c (finish_qualified_id_expr): Call mark_used.
        * semantics.c (finish_qualified_id_expr): Call mark_used.
2005-12-22  Volker Reichelt  
2005-12-22  Volker Reichelt  
        PR c++/23333
        PR c++/23333
        * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
        * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
        identify a single '0'.
        identify a single '0'.
2005-12-20  Mark Mitchell  
2005-12-20  Mark Mitchell  
        PR c++/21228
        PR c++/21228
        * decl.c (use_eh_spec_block): New function.
        * decl.c (use_eh_spec_block): New function.
        (store_parm_decls): Use it.
        (store_parm_decls): Use it.
        (finish_function): Likewise.
        (finish_function): Likewise.
2005-12-19  Mark Mitchell  
2005-12-19  Mark Mitchell  
        PR c++/24278
        PR c++/24278
        * init.c (expand_member_init): Print messages about baseclasses
        * init.c (expand_member_init): Print messages about baseclasses
        using %T rather than %D.
        using %T rather than %D.
        PR c++/24915
        PR c++/24915
        * class.c (add_method): Do not treat templates as identical unless
        * class.c (add_method): Do not treat templates as identical unless
        their return types are the same.
        their return types are the same.
2005-12-12  Mark Mitchell  
2005-12-12  Mark Mitchell  
        PR c++/25300
        PR c++/25300
        * tree.c (build_qualified_name): Return error_mark_node for
        * tree.c (build_qualified_name): Return error_mark_node for
        erroneous input.
        erroneous input.
2005-12-10  Mark Mitchell  
2005-12-10  Mark Mitchell  
        PR c++/25337
        PR c++/25337
        * pt.c (tsubst_copy_and_build): Permit dependent types for the
        * pt.c (tsubst_copy_and_build): Permit dependent types for the
        object in a class member access expression.
        object in a class member access expression.
2005-12-10  Terry Laurenzo  
2005-12-10  Terry Laurenzo  
        PR java/9861
        PR java/9861
        * mangle.c (write_bare_function_type): Mangle return type for
        * mangle.c (write_bare_function_type): Mangle return type for
        methods of Java classes
        methods of Java classes
2005-12-08  Théodore Papadopoulo 
2005-12-08  Théodore Papadopoulo 
        * call.c (build_conditional_expr): Print types in error messages.
        * call.c (build_conditional_expr): Print types in error messages.
2005-12-07  Volker Reichelt  
2005-12-07  Volker Reichelt  
        * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
        * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
2005-12-07  Volker Reichelt  
2005-12-07  Volker Reichelt  
        * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
        * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
2005-12-07  Rafael Ávila de Espíndola  
2005-12-07  Rafael Ávila de Espíndola  
        * Make-lang.in (c++.all.build, c++.install-normal): Remove.
        * Make-lang.in (c++.all.build, c++.install-normal): Remove.
2005-12-07  Rafael Ávila de Espíndola  
2005-12-07  Rafael Ávila de Espíndola  
        * Make-lang.in: Remove all dependencies on s-gtype.
        * Make-lang.in: Remove all dependencies on s-gtype.
2005-12-06  Aldy Hernandez  
2005-12-06  Aldy Hernandez  
        PR C++/24138
        PR C++/24138
        * decl.c (reshape_init_array_1): Handle max_index of -1.
        * decl.c (reshape_init_array_1): Handle max_index of -1.
2005-12-06  Roger Sayle  
2005-12-06  Roger Sayle  
        * typeck.c (build_binary_op): Issue warning if either operand of a
        * typeck.c (build_binary_op): Issue warning if either operand of a
        comparison operator is a string literal, except for testing equality
        comparison operator is a string literal, except for testing equality
        or inequality against NULL.
        or inequality against NULL.
2005-12-06  Roger Sayle  
2005-12-06  Roger Sayle  
        PR c++/25263
        PR c++/25263
        * decl.c (compute_array_index_type): Check that itype is an
        * decl.c (compute_array_index_type): Check that itype is an
        INTEGER_CST node before testing/clearing TREE_OVERFLOW.
        INTEGER_CST node before testing/clearing TREE_OVERFLOW.
2005-12-05  Daniel Berlin  
2005-12-05  Daniel Berlin  
        * ptree.c (cxx_print_decl): Update to check for decl_common
        * ptree.c (cxx_print_decl): Update to check for decl_common
        structure.
        structure.
2005-12-02  Mark Mitchell  
2005-12-02  Mark Mitchell  
        PR c++/24173
        PR c++/24173
        * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
        * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
        clobbering newdecl.
        clobbering newdecl.
2005-12-02  Richard Guenther  
2005-12-02  Richard Guenther  
        * semantics.c (simplify_aggr_init_expr): Use buildN instead
        * semantics.c (simplify_aggr_init_expr): Use buildN instead
        of build.
        of build.
2005-12-02  Gabriel Dos Reis  
2005-12-02  Gabriel Dos Reis  
        * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
        * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
        ggc_realloc.
        ggc_realloc.
        (cp_parser_template_argument_list): Use XRESIZEVEC instead of
        (cp_parser_template_argument_list): Use XRESIZEVEC instead of
        xrealloc.
        xrealloc.
        * class.c (pushclass): Likewise.
        * class.c (pushclass): Likewise.
2005-12-02  Gabriel Dos Reis  
2005-12-02  Gabriel Dos Reis  
        * decl2.c (get_priority_info): Use XNEW, not xmalloc.
        * decl2.c (get_priority_info): Use XNEW, not xmalloc.
        * decl.c (push_switch): Likewise.
        * decl.c (push_switch): Likewise.
        * lex.c (handle_pragma_implementation): Likewise.
        * lex.c (handle_pragma_implementation): Likewise.
        * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
        * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
        not ggc_alloc.
        not ggc_alloc.
        (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
        (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
        * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
        * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
        * g++spec.c (lang_specific_driver): Likewise.
        * g++spec.c (lang_specific_driver): Likewise.
        * mangle.c (save_partially_mangled_name): Likewise.
        * mangle.c (save_partially_mangled_name): Likewise.
        * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
        * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
        (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
        (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
        (cp_parser_sizeof_operand): Likewise.
        (cp_parser_sizeof_operand): Likewise.
        * repo.c (open_repo_file, open_repo_file): Likewise.
        * repo.c (open_repo_file, open_repo_file): Likewise.
2005-12-01  Gabriel Dos Reis  
2005-12-01  Gabriel Dos Reis  
        * parser.c (cp_parser_make_typename_type): Call make_typename_type
        * parser.c (cp_parser_make_typename_type): Call make_typename_type
        with tf_none instead of magic value 0.
        with tf_none instead of magic value 0.
        (cp_parser_explicit_instantiation): Call do_type_instantiation
        (cp_parser_explicit_instantiation): Call do_type_instantiation
        with tf_error instead of magic value 1.
        with tf_error instead of magic value 1.
        (cp_parser_elaborated_type_specifier): Call make_typename_type
        (cp_parser_elaborated_type_specifier): Call make_typename_type
        with tf_error instead of magic value 1.
        with tf_error instead of magic value 1.
        (cp_parser_class_name): Likewise.
        (cp_parser_class_name): Likewise.
        (cp_parser_lookup_name): Likewise.
        (cp_parser_lookup_name): Likewise.
2005-12-01  Gabriel Dos Reis  
2005-12-01  Gabriel Dos Reis  
        * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
        * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
        not RID_MAX.
        not RID_MAX.
2005-11-30  Jason Merrill  
2005-11-30  Jason Merrill  
        PR c++/21123
        PR c++/21123
        * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
        * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
        parms in a thunk.
        parms in a thunk.
2005-11-30  Ben Elliston  
2005-11-30  Ben Elliston  
        * typeck.c (build_x_unary_op): Correct spelling in error message.
        * typeck.c (build_x_unary_op): Correct spelling in error message.
2005-11-28  Nathan Sidwell  
2005-11-28  Nathan Sidwell  
        PR c++/21166
        PR c++/21166
        * class.c (check_field_decls): Only set DECL_PACKED on a field
        * class.c (check_field_decls): Only set DECL_PACKED on a field
        when its natural alignment is > BITS_PER_UNIT.
        when its natural alignment is > BITS_PER_UNIT.
2005-11-27  Volker Reichelt  
2005-11-27  Volker Reichelt  
        PR c++/24979
        PR c++/24979
        * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
        * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
2005-11-26  Richard Henderson  
2005-11-26  Richard Henderson  
        * lex.c: Update for pragma_lex rename.
        * lex.c: Update for pragma_lex rename.
        * parser.c: Likewise.
        * parser.c: Likewise.
2005-11-25  Volker Reichelt  
2005-11-25  Volker Reichelt  
        PR c++/9278
        PR c++/9278
        * decl.c (grokparms): Do not allow typedef-names in a '(void)'
        * decl.c (grokparms): Do not allow typedef-names in a '(void)'
        parmlist.
        parmlist.
2005-11-25  Volker Reichelt  
2005-11-25  Volker Reichelt  
        * typeck2.c (process_init_constructor_union): Remove check for
        * typeck2.c (process_init_constructor_union): Remove check for
        unnamed union members.
        unnamed union members.
2005-11-25  Volker Reichelt  
2005-11-25  Volker Reichelt  
        * name-lookup.c (lookup_name_real): Merge two if's.
        * name-lookup.c (lookup_name_real): Merge two if's.
2005-11-25  Volker Reichelt  
2005-11-25  Volker Reichelt  
        * pt.c (instantiate_class_template): Clean-up.
        * pt.c (instantiate_class_template): Clean-up.
2005-11-25  Volker Reichelt  
2005-11-25  Volker Reichelt  
        * pt.c (template_class_depth_real): Remove. Move functionality to ...
        * pt.c (template_class_depth_real): Remove. Move functionality to ...
        (template_class_depth): ... here, replacing count_specializations
        (template_class_depth): ... here, replacing count_specializations
        with 0.  Adjust comment.
        with 0.  Adjust comment.
2005-11-24  Richard Guenther  
2005-11-24  Richard Guenther  
        Dirk Mueller 
        Dirk Mueller 
        PR c++/14024
        PR c++/14024
        * typeck.c (build_reinterpret_cast_1): Use
        * typeck.c (build_reinterpret_cast_1): Use
        strict_aliasing_warning.
        strict_aliasing_warning.
2005-11-23  Gabriel Dos Reis  
2005-11-23  Gabriel Dos Reis  
        PR c++/24235
        PR c++/24235
        * pt.c (check_instantiated_args): Reword diagnostic message about
        * pt.c (check_instantiated_args): Reword diagnostic message about
        template argument involving local types.
        template argument involving local types.
2005-11-23  Gabriel Dos Reis  
2005-11-23  Gabriel Dos Reis  
        PR c++/21667
        PR c++/21667
        * typeck.c (build_array_ref): Avoid code duplicate.  Use common
        * typeck.c (build_array_ref): Avoid code duplicate.  Use common
        C/C++ diagnostic function warn_array_subscript_with_type_char.
        C/C++ diagnostic function warn_array_subscript_with_type_char.
2005-11-21  Gabriel Dos Reis  
2005-11-21  Gabriel Dos Reis  
        PR c++/22238
        PR c++/22238
        * error.c (resolve_virtual_fun_from_obj_type_ref): New.
        * error.c (resolve_virtual_fun_from_obj_type_ref): New.
        (dump_expr): Use it in .
        (dump_expr): Use it in .
2005-11-21  Richard Henderson  
2005-11-21  Richard Henderson  
        * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
        * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
        * name-lookup.c (lookup_name): Remove prefer_type argument.
        * name-lookup.c (lookup_name): Remove prefer_type argument.
        (lookup_name_prefer_type): New.
        (lookup_name_prefer_type): New.
        * decl.c (lookup_and_check_tag): Use them.
        * decl.c (lookup_and_check_tag): Use them.
        * pt.c (tsubst_friend_class): Likewise.
        * pt.c (tsubst_friend_class): Likewise.
        (lookup_template_class): Likewise.
        (lookup_template_class): Likewise.
        (tsubst_copy_and_build): Likewise.
        (tsubst_copy_and_build): Likewise.
        * name-lookup.h (lookup_name_prefer_type): New.
        * name-lookup.h (lookup_name_prefer_type): New.
        (lookup_name): Remove declaration.
        (lookup_name): Remove declaration.
2005-11-18  Mark Mitchell  
2005-11-18  Mark Mitchell  
        PR c++/8355
        PR c++/8355
        * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
        * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
        set_decl_namespace.
        set_decl_namespace.
        * name-lookup.c (set_decl_namespace):
        * name-lookup.c (set_decl_namespace):
2005-11-18  Mike Stump  
2005-11-18  Mike Stump  
        * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
        * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
        * name-lookup.c (lookup_name_two): Remove.
        * name-lookup.c (lookup_name_two): Remove.
        (lookup_name_one): Add.
        (lookup_name_one): Add.
        * name-lookup.h (lookup_name_two): Remove.
        * name-lookup.h (lookup_name_two): Remove.
        (lookup_name_one): Add.
        (lookup_name_one): Add.
2005-11-15  Jason Merrill  
2005-11-15  Jason Merrill  
        PR c++/24580
        PR c++/24580
        * method.c (locate_copy): Also use skip_artificial_parms here.
        * method.c (locate_copy): Also use skip_artificial_parms here.
        (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
        (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
        for RECORD_TYPE.
        for RECORD_TYPE.
        (locate_ctor): Abort if we fail to find a default constructor.
        (locate_ctor): Abort if we fail to find a default constructor.
2005-11-15  Mike Stump  
2005-11-15  Mike Stump  
        * name-lookup.c (lookup_name_two): Add.
        * name-lookup.c (lookup_name_two): Add.
        * name-lookup.h: Likewise.
        * name-lookup.h: Likewise.
2005-11-15  Mark Mitchell  
2005-11-15  Mark Mitchell  
        PR c++/24667
        PR c++/24667
        * typeck.c (check_for_casting_away_constness): Use the diag_fn.
        * typeck.c (check_for_casting_away_constness): Use the diag_fn.
        (build_const_cast_1): Call it, for C-style casts.
        (build_const_cast_1): Call it, for C-style casts.
2005-11-14  Mark Mitchell  
2005-11-14  Mark Mitchell  
        PR c++/24687
        PR c++/24687
        * pt.c (check_explicit_specialization): Don't check for C linkage.
        * pt.c (check_explicit_specialization): Don't check for C linkage.
        (push_template_decl_real): Likewise.
        (push_template_decl_real): Likewise.
        * parser.c (cp_parser_explicit_specialization): Check here.
        * parser.c (cp_parser_explicit_specialization): Check here.
        (cp_parser_template_declaration_after_export): And here.
        (cp_parser_template_declaration_after_export): And here.
        * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
        * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
        field.
        field.
2005-11-14  Jason Merrill  
2005-11-14  Jason Merrill  
        PR c++/24580
        PR c++/24580
        * method.c (locate_ctor): Skip all artificial parms, not just
        * method.c (locate_ctor): Skip all artificial parms, not just
        'this'.
        'this'.
2005-11-14  Mark Mitchell  
2005-11-14  Mark Mitchell  
        * parser.c (eof_token): Add initializer for ambiguous_p.
        * parser.c (eof_token): Add initializer for ambiguous_p.
2005-11-13  Mark Mitchell  
2005-11-13  Mark Mitchell  
        PR c++/24817
        PR c++/24817
        * decl.c (check_redeclaration_exception_specification): New
        * decl.c (check_redeclaration_exception_specification): New
        function.
        function.
        (duplicate_decls): Use it.
        (duplicate_decls): Use it.
        * error.c (fndecl_to_string): Print the template parameter list.
        * error.c (fndecl_to_string): Print the template parameter list.
        PR c++/20293
        PR c++/20293
        * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
        * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
        for namespaces.
        for namespaces.
        (pp_cxx_original_namespace_definition): Likewise.
        (pp_cxx_original_namespace_definition): Likewise.
        * name-lookup.c (ambiguous_decl): Don't issue error messages;
        * name-lookup.c (ambiguous_decl): Don't issue error messages;
        instead return lists of ambiguous candidates.
        instead return lists of ambiguous candidates.
        (select_decl): Handle ambiguous namespace lookups.
        (select_decl): Handle ambiguous namespace lookups.
        * parser.c (cp_token): Add ambiguous_p.
        * parser.c (cp_token): Add ambiguous_p.
        (cp_lexer_get_preprocessor_token): Set it.
        (cp_lexer_get_preprocessor_token): Set it.
        (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
        (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
        when a qualified name uses an invalid scope.
        when a qualified name uses an invalid scope.
        (cp_parser_primary_expression): Print ambiguous candidates.
        (cp_parser_primary_expression): Print ambiguous candidates.
        (cp_parser_type_parameter): Adjust comment to reflect new
        (cp_parser_type_parameter): Adjust comment to reflect new
        parameter name for cp_parser_lookup_name.
        parameter name for cp_parser_lookup_name.
        (cp_parser_template_argument): Likewise.
        (cp_parser_template_argument): Likewise.
        (cp_parser_elaborated_type_specifier): Likewise.
        (cp_parser_elaborated_type_specifier): Likewise.
        (cp_parser_namespace_name): Likewise.
        (cp_parser_namespace_name): Likewise.
        (cp_parser_class_name): Print ambiguous candidates.
        (cp_parser_class_name): Print ambiguous candidates.
        (cp_parser_lookup_name): Rename ambiguous_p parameter to
        (cp_parser_lookup_name): Rename ambiguous_p parameter to
        ambiguous_decls.  Use it to return a list of ambiguous candiates
        ambiguous_decls.  Use it to return a list of ambiguous candiates
        when a lookup is ambiguous.
        when a lookup is ambiguous.
        (cp_parser_lookup_name_simple): Adjust comment to reflect new
        (cp_parser_lookup_name_simple): Adjust comment to reflect new
        parameter name for cp_parser_lookup_name.
        parameter name for cp_parser_lookup_name.
2005-11-12  Jakub Jelinek  
2005-11-12  Jakub Jelinek  
        PR c++/24780
        PR c++/24780
        * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
        * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
        and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
        and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
        of array type.
        of array type.
        PR c++/24761
        PR c++/24761
        * pt.c (tsubst_copy_asm_operands): New function.
        * pt.c (tsubst_copy_asm_operands): New function.
        (tsubst_expr) : Use it.
        (tsubst_expr) : Use it.
2005-11-08  Jakub Jelinek  
2005-11-08  Jakub Jelinek  
        PR c++/19450
        PR c++/19450
        * decl.c (redeclaration_error_message): Issue diagnostics about
        * decl.c (redeclaration_error_message): Issue diagnostics about
        olddecl and newdecl disagreement on __thread property.
        olddecl and newdecl disagreement on __thread property.
        (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
        (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
2005-11-08  Jason Merrill  
2005-11-08  Jason Merrill  
        PR c++/21123
        PR c++/21123
        * method.c (use_thunk): Use build_cplus_new instead of
        * method.c (use_thunk): Use build_cplus_new instead of
        force_target_expr.
        force_target_expr.
2005-11-06  Jason Merrill  
2005-11-06  Jason Merrill  
            James A. Morrison 
            James A. Morrison 
        PR c++/17256
        PR c++/17256
        * decl2.c (cp_finish_file): Fix conditions for undefined warning.
        * decl2.c (cp_finish_file): Fix conditions for undefined warning.
        Set TREE_NO_WARNING instead of TREE_PUBLIC.
        Set TREE_NO_WARNING instead of TREE_PUBLIC.
        * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
        * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
        a warning on a function we didn't instantiate because of excessive
        a warning on a function we didn't instantiate because of excessive
        recursion.
        recursion.
2005-11-06  Mark Mitchell  
2005-11-06  Mark Mitchell  
        * class.c (record_subobject_offsets): Don't record offsets past
        * class.c (record_subobject_offsets): Don't record offsets past
        biggest empty class for non-empty base classes.
        biggest empty class for non-empty base classes.
        (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
        (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
        keeping track of the size of emptyclasses.
        keeping track of the size of emptyclasses.
        PR c++/21308
        PR c++/21308
        * class.c (sizeof_biggest_empty_class): New variable.
        * class.c (sizeof_biggest_empty_class): New variable.
        (record_subobject_offsets): Don't record offsets past biggest
        (record_subobject_offsets): Don't record offsets past biggest
        empty class for data members.  Replace vbases_p parameter with
        empty class for data members.  Replace vbases_p parameter with
        is_data_member parameter.
        is_data_member parameter.
        (build_base_field): Adjust call.
        (build_base_field): Adjust call.
        (layout_class_type): Likewise.  Maintain
        (layout_class_type): Likewise.  Maintain
        sizeof_biggest_empty_class.
        sizeof_biggest_empty_class.
2005-11-05  Kazu Hirata  
2005-11-05  Kazu Hirata  
        * decl2.c, init.c, typeck.c: Fix comment typos.
        * decl2.c, init.c, typeck.c: Fix comment typos.
2005-11-04  Richard Guenther  
2005-11-04  Richard Guenther  
        PR c++/22487
        PR c++/22487
        * init.c (build_vec_init): Build comparison of matching
        * init.c (build_vec_init): Build comparison of matching
        types.
        types.
2005-11-03  Josh Conner  
2005-11-03  Josh Conner  
        PR c++/19989
        PR c++/19989
        pt.c (tsubst): Accept zero-length array if tf_error is set
        pt.c (tsubst): Accept zero-length array if tf_error is set
        in complain flags.  Change error message for negative-
        in complain flags.  Change error message for negative-
        length array.
        length array.
2005-11-04  Joseph S. Myers  
2005-11-04  Joseph S. Myers  
        * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
        * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
        parameter.
        parameter.
2005-11-03  Joseph S. Myers  
2005-11-03  Joseph S. Myers  
        PR c++/17964
        PR c++/17964
        * error.c (cp_cpp_error): New function.
        * error.c (cp_cpp_error): New function.
        * cp-tree.h (cp_cpp_error): Declare.
        * cp-tree.h (cp_cpp_error): Declare.
        * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
        * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
        and error callback after lexing.
        and error callback after lexing.
2005-11-03  Mark Mitchell  
2005-11-03  Mark Mitchell  
        PR c++/21627
        PR c++/21627
        * pt.c (register_specialization): Update inline flags on clones.y
        * pt.c (register_specialization): Update inline flags on clones.y
2005-11-03  Andrew Pinski  
2005-11-03  Andrew Pinski  
        PR c++/24582
        PR c++/24582
        * decl.c (declare_local_label): Return 0 for variables
        * decl.c (declare_local_label): Return 0 for variables
        with error_mark_node as their types.
        with error_mark_node as their types.
2005-11-02  Mark Mitchell  
2005-11-02  Mark Mitchell  
        PR c++/22434
        PR c++/22434
        * call.c (build_conditional_expr): Do bad conversions, if there's
        * call.c (build_conditional_expr): Do bad conversions, if there's
        no other choice.
        no other choice.
        PR c++/24560
        PR c++/24560
        * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
        * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
        message for use of overloaded functions on LHS of "." operator.
        message for use of overloaded functions on LHS of "." operator.
        PR c++/19253
        PR c++/19253
        * parser.c (cp_parser_postfix_expression): Use
        * parser.c (cp_parser_postfix_expression): Use
        cp_parser_elaborated_type_specifier to handle typename-types in
        cp_parser_elaborated_type_specifier to handle typename-types in
        functional casts.
        functional casts.
        (cp_parser_enclosed_argument_list): Skip ahead to the end of the
        (cp_parser_enclosed_argument_list): Skip ahead to the end of the
        template argument list if the closing ">" is not found.
        template argument list if the closing ">" is not found.
        PR c++/24569
        PR c++/24569
        * pt.c (instantiate_decl): Use cp_finish_decl, not
        * pt.c (instantiate_decl): Use cp_finish_decl, not
        finish_static_data_member_decl.
        finish_static_data_member_decl.
2005-10-28  Andrew Pinski  
2005-10-28  Andrew Pinski  
        * decl.c (grokfndecl): Remove the setting
        * decl.c (grokfndecl): Remove the setting
        of the return type of the function type
        of the return type of the function type
        of main after erroring about must returning
        of main after erroring about must returning
        int.
        int.
2005-10-28  Andrew Pinski  
2005-10-28  Andrew Pinski  
        PR C++/23229
        PR C++/23229
        * decl.c (grokfndecl): Create a new function type
        * decl.c (grokfndecl): Create a new function type
        after erroring out about main not returning int.
        after erroring out about main not returning int.
2005-10-28  Josh Conner  
2005-10-28  Josh Conner  
        PR c++/22153
        PR c++/22153
        * parser.c (cp_parser_member_declaration): Detect and handle
        * parser.c (cp_parser_member_declaration): Detect and handle
        a template specialization.
        a template specialization.
2005-10-28  Andrew Pinski  
2005-10-28  Andrew Pinski  
        PR C++/23426
        PR C++/23426
        * decl.c (start_decl): Check that the decl is an
        * decl.c (start_decl): Check that the decl is an
        error_mark_node before getting the type.
        error_mark_node before getting the type.
        Remove the check for the decl's type being an
        Remove the check for the decl's type being an
        error_mark_node.
        error_mark_node.
2005-10-21  Mark Mitchell  
2005-10-21  Mark Mitchell  
        PR c++/24260
        PR c++/24260
        * parser.c (cp_parser_init_declarator): Pass attributes to
        * parser.c (cp_parser_init_declarator): Pass attributes to
        grokfield.
        grokfield.
2005-10-20  Mark Mitchell  
2005-10-20  Mark Mitchell  
        PR c++/22618
        PR c++/22618
        * search.c (accessible_p): Check access in the outermost set of
        * search.c (accessible_p): Check access in the outermost set of
        template parameters.
        template parameters.
2005-10-20  Richard Guenther  
2005-10-20  Richard Guenther  
        * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
        * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
2005-10-18  Volker Reichelt  
2005-10-18  Volker Reichelt  
        PR c++/22293
        PR c++/22293
        * decl.c (grokdeclarator): Reject unqualified destructors in
        * decl.c (grokdeclarator): Reject unqualified destructors in
        friend declarations.
        friend declarations.
2005-10-18  Mark Mitchell  
2005-10-18  Mark Mitchell  
        PR c++/23293
        PR c++/23293
        * pt.c (convert_template_argument): Use canonical type variants in
        * pt.c (convert_template_argument): Use canonical type variants in
        template specializations.
        template specializations.
2005-10-18  Nathan Sidwell  
2005-10-18  Nathan Sidwell  
        PR c++/21383
        PR c++/21383
        * name-lookup.c (arg_assoc): Template args can be null in a
        * name-lookup.c (arg_assoc): Template args can be null in a
        template-id-expr.
        template-id-expr.
        PR c++/22604
        PR c++/22604
        * class.c (update_vtable_entry_for_fn): Don't process invalid
        * class.c (update_vtable_entry_for_fn): Don't process invalid
        covariant overriders.
        covariant overriders.
        PR c++/23118
        PR c++/23118
        * cp-tree.h (add_method): Add return value.
        * cp-tree.h (add_method): Add return value.
        * class.c (add_method): Return success indicator.
        * class.c (add_method): Return success indicator.
        * semantics.c (finish_member_declaration): Don't add an invalid
        * semantics.c (finish_member_declaration): Don't add an invalid
        method to the method list.
        method to the method list.
2005-10-17  Mark Mitchell  
2005-10-17  Mark Mitchell  
        PR c++/21908
        PR c++/21908
        * call.c (build_new_method_call): Do not show VTT parameters to
        * call.c (build_new_method_call): Do not show VTT parameters to
        the user.
        the user.
2005-10-17  Volker Reichelt  
2005-10-17  Volker Reichelt  
        PR c++/23440
        PR c++/23440
        * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
        * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
        only complain about missing statement.
        only complain about missing statement.
2005-10-17  Nathan Sidwell  
2005-10-17  Nathan Sidwell  
        PR c++/24386
        PR c++/24386
        * cp-tree.h (BASELINK_QUALIFIED_P): New.
        * cp-tree.h (BASELINK_QUALIFIED_P): New.
        * pt.c (tsubst_copy_and_build): : Use it.
        * pt.c (tsubst_copy_and_build): : Use it.
        * typeck.c (finish_class_member_access_expr): Set it.
        * typeck.c (finish_class_member_access_expr): Set it.
        PR c++/21353
        PR c++/21353
        * decl.c (check_default_argument): Don't check
        * decl.c (check_default_argument): Don't check
        processing_template_decl or uses_template_parms here.
        processing_template_decl or uses_template_parms here.
        (grokparms): Only call check_default_argument when not processing
        (grokparms): Only call check_default_argument when not processing
        a template decl.
        a template decl.
        * parser.c (cp_parser_late_parsing_default_arg): Call
        * parser.c (cp_parser_late_parsing_default_arg): Call
        check_default_argument when not processing a template decl.
        check_default_argument when not processing a template decl.
2005-10-16  Mark Mitchell  
2005-10-16  Mark Mitchell  
        PR c++/24389
        PR c++/24389
        * decl2.c (mark_used): Use uses_template_parms instead of
        * decl2.c (mark_used): Use uses_template_parms instead of
        dependent_type_p.
        dependent_type_p.
        * init.c (constant_value_1): Handle uninstantiated templates
        * init.c (constant_value_1): Handle uninstantiated templates
        specially.
        specially.
        * pt.c (instantiate_decl): Add sanity check.
        * pt.c (instantiate_decl): Add sanity check.
2005-10-16  Mark Mitchell  
2005-10-16  Mark Mitchell  
        PR c++/22173
        PR c++/22173
        * typeck.c (check_template_keyword): Fix thinko.
        * typeck.c (check_template_keyword): Fix thinko.
2005-10-16  Andrew Pinski  
2005-10-16  Andrew Pinski  
        PR c++/23959
        PR c++/23959
        * decl.c (pop_switch): Only call c_do_switch_warnings
        * decl.c (pop_switch): Only call c_do_switch_warnings
        when not processing templates.
        when not processing templates.
2005-10-16  Mark Mitchell  
2005-10-16  Mark Mitchell  
        PR c++/22173
        PR c++/22173
        * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
        * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
        (check_template_keyword): New function.
        (check_template_keyword): New function.
        (finish_id_expression): Change prototoype.
        (finish_id_expression): Change prototoype.
        (finish_qualified_id_expr): Change prototype.
        (finish_qualified_id_expr): Change prototype.
        (build_qualified_name): New function.
        (build_qualified_name): New function.
        (finish_class_member_access_expr): Change prototype.
        (finish_class_member_access_expr): Change prototype.
        * init.c (build_offset_ref): Use build_qualified_name.
        * init.c (build_offset_ref): Use build_qualified_name.
        * mangle.c (write_expression): Likewise.
        * mangle.c (write_expression): Likewise.
        * parser.c (cp_parser_primary_expression): Remove qualifying_class
        * parser.c (cp_parser_primary_expression): Remove qualifying_class
        parameter.  Add address_p and template_arg_p.  Use
        parameter.  Add address_p and template_arg_p.  Use
        build_qualified_name.
        build_qualified_name.
        (cp_parser_id_expression): Default *template_p to
        (cp_parser_id_expression): Default *template_p to
        template_keyword_p.  Check for invalid uses of the template
        template_keyword_p.  Check for invalid uses of the template
        keyword.
        keyword.
        (cp_parser_postfix_expression): Eliminate special handling for
        (cp_parser_postfix_expression): Eliminate special handling for
        qualified names.  Adjust call to cp_parser_primary_expression.
        qualified names.  Adjust call to cp_parser_primary_expression.
        (cp_parser_postfix_dot_deref_expression): Adjust call to
        (cp_parser_postfix_dot_deref_expression): Adjust call to
        cp_parser_id_expression and finish_class_member_access_expr.
        cp_parser_id_expression and finish_class_member_access_expr.
        (cp_parser_template_argument_list): Add comment.
        (cp_parser_template_argument_list): Add comment.
        (cp_parser_template_argument): Adjust use of
        (cp_parser_template_argument): Adjust use of
        cp_parser_primary_expression.  Remove call to
        cp_parser_primary_expression.  Remove call to
        finish_qualified_id_expr.
        finish_qualified_id_expr.
        (cp_parser_lookup_name): Use build_qualified_name.
        (cp_parser_lookup_name): Use build_qualified_name.
        * pt.c (tsubst): Use build_qualified_name.
        * pt.c (tsubst): Use build_qualified_name.
        (tsubst_qualified_id): Likewise.  Adjust call to
        (tsubst_qualified_id): Likewise.  Adjust call to
        finish_qualified_id_expr.
        finish_qualified_id_expr.
        (tsubst_copy): Use build_qualified_name.
        (tsubst_copy): Use build_qualified_name.
        (tsubst_copy_and_build): Adjusts call to finish_id_expression and
        (tsubst_copy_and_build): Adjusts call to finish_id_expression and
        finish_class_member_access_expr.
        finish_class_member_access_expr.
        * semantics.c (finish_non_static_data_member): Use
        * semantics.c (finish_non_static_data_member): Use
        build_qualified_name.
        build_qualified_name.
        (finish_qualified_id_expr): Add template_p and template_arg_p
        (finish_qualified_id_expr): Add template_p and template_arg_p
        parameters.
        parameters.
        (finish_id_expression): Remove qualifiying_class parameter.  Add
        (finish_id_expression): Remove qualifiying_class parameter.  Add
        template_p, done, address_p, and template_arg_p.  Use
        template_p, done, address_p, and template_arg_p.  Use
        build_qualified_name.  Adjust calls to
        build_qualified_name.  Adjust calls to
        finish_class_member_acess_expr.
        finish_class_member_acess_expr.
        * tree.c (build_qualified_name): New function.
        * tree.c (build_qualified_name): New function.
        * typeck.c (check_template_keyword): New function.
        * typeck.c (check_template_keyword): New function.
        (finish_class_member_access_expr): Add template_p argument.  Check
        (finish_class_member_access_expr): Add template_p argument.  Check
        for invalid uses of the template keyword.
        for invalid uses of the template keyword.
2005-10-15  Mark Mitchell  
2005-10-15  Mark Mitchell  
        PR c++/21347
        PR c++/21347
        * class.c (maybe_warn_about_overly_private_class): Lazy
        * class.c (maybe_warn_about_overly_private_class): Lazy
        constructors are public.
        constructors are public.
2005-10-14  Mark Mitchell  
2005-10-14  Mark Mitchell  
        PR c++/19565
        PR c++/19565
        * call.c (convert_like_real): Rely on convert_and_check to issue
        * call.c (convert_like_real): Rely on convert_and_check to issue
        warnings about overflow and conversion to unsigned.
        warnings about overflow and conversion to unsigned.
        * decl.c (finish_enum): Use the location of the enumerators, not
        * decl.c (finish_enum): Use the location of the enumerators, not
        the closing brace of the enumeration, when reporting warnings
        the closing brace of the enumeration, when reporting warnings
        about conversions.
        about conversions.
        (build_enumerator): Use error_mark_node for erroneous values.
        (build_enumerator): Use error_mark_node for erroneous values.
        * typeck2.c (digest_init): Remove reference to "signature pointer"
        * typeck2.c (digest_init): Remove reference to "signature pointer"
        from comment.
        from comment.
2005-10-14  Nathan Sidwell  
2005-10-14  Nathan Sidwell  
        PR c++/17796
        PR c++/17796
        * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
        * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
        (maybe_clone_body): Track the first clone.
        (maybe_clone_body): Track the first clone.
2005-10-13  Nathan Sidwell  
2005-10-13  Nathan Sidwell  
        PR c++/23984
        PR c++/23984
        * class.c (build_base_path): The vtable is always the first thing
        * class.c (build_base_path): The vtable is always the first thing
        in the vtt.
        in the vtt.
2005-10-13  Mark Mitchell  
2005-10-13  Mark Mitchell  
        PR c++/20721
        PR c++/20721
        * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
        * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
        * decl.c (duplicate_decls): Merge it into new declarations.
        * decl.c (duplicate_decls): Merge it into new declarations.
        (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
        (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
        (cp_finish_decl): Set it, when appropriate.
        (cp_finish_decl): Set it, when appropriate.
        PR c++/22180
        PR c++/22180
        * call.c (build_new_method_call): Correct pretty-printing of
        * call.c (build_new_method_call): Correct pretty-printing of
        destructor names.
        destructor names.
        * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
        * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
        identifier.
        identifier.
        PR c++/23694
        PR c++/23694
        * decl.c (start_method): Return error_mark_node for errors.
        * decl.c (start_method): Return error_mark_node for errors.
        PR c++/23307
        PR c++/23307
        * pt.c (push_template_decl_real): Complain about attempts to
        * pt.c (push_template_decl_real): Complain about attempts to
        declare template variables.
        declare template variables.
        PR c++/22352
        PR c++/22352
        * pt.c (tsubst_template_parms): Set processing_template_decl while
        * pt.c (tsubst_template_parms): Set processing_template_decl while
        processing the parameters.
        processing the parameters.
        (tsubst_decl): Set processing_template_decl when substituting into
        (tsubst_decl): Set processing_template_decl when substituting into
        a TEMPLATE_DECL.
        a TEMPLATE_DECL.
        PR c++/22405
        PR c++/22405
        * pt.c (most_specialized_instantiation): Robustify.
        * pt.c (most_specialized_instantiation): Robustify.
        PR c++/22464
        PR c++/22464
        * semantics.c (finish_id_expression): Issue errors about uses of
        * semantics.c (finish_id_expression): Issue errors about uses of
        local variables in containing functions even in templates.
        local variables in containing functions even in templates.
2005-10-12  Danny Smith  
2005-10-12  Danny Smith  
        PR target/21801
        PR target/21801
        PR target/23589
        PR target/23589
        * class.c (finish_struct_1): Call
        * class.c (finish_struct_1): Call
        targetm.cxx.adjust_class_at_definition.
        targetm.cxx.adjust_class_at_definition.
2005-10-12  Nathan Sidwell  
2005-10-12  Nathan Sidwell  
        PR c++/21592
        PR c++/21592
        * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
        * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
        with already looked up member functions.  Assert we're not
        with already looked up member functions.  Assert we're not
        returning a NON_DEPENDENT_EXPR with unknown type.
        returning a NON_DEPENDENT_EXPR with unknown type.
        * typeck.c (finish_class_member_access_expr):  We can get
        * typeck.c (finish_class_member_access_expr):  We can get
        non-template-id-expr baselinks.  If the lookup finds a baselink,
        non-template-id-expr baselinks.  If the lookup finds a baselink,
        remember it even inside templates.
        remember it even inside templates.
        PR c++/23797
        PR c++/23797
        * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
        * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
        TYPE_DECL.  Use dependent_type_p to check type.
        TYPE_DECL.  Use dependent_type_p to check type.
        * pt.c (uses_template_parms_p): Use dependent_type_p for a
        * pt.c (uses_template_parms_p): Use dependent_type_p for a
        TYPE_DECL.
        TYPE_DECL.
        (type_dependent_expression_p): Assert we've not been given a
        (type_dependent_expression_p): Assert we've not been given a
        TYPE_DECL.
        TYPE_DECL.
        PR c++/21117
        PR c++/21117
        * decl.c (check_function_type): Correctly overwrite incomplete
        * decl.c (check_function_type): Correctly overwrite incomplete
        return type with void type.
        return type with void type.
        * typeck.c (check_return_expr): If the function's return type is
        * typeck.c (check_return_expr): If the function's return type is
        void, don't try and convert a return expr.
        void, don't try and convert a return expr.
2005-10-12  David Edelsohn  
2005-10-12  David Edelsohn  
        PR c++/23730
        PR c++/23730
        * call.c (build_object_call): If BINFO is NULL, bypass
        * call.c (build_object_call): If BINFO is NULL, bypass
        lookup_fnfields and set fns to NULL_TREE.
        lookup_fnfields and set fns to NULL_TREE.
2005-10-12  Paolo Bonzini  
2005-10-12  Paolo Bonzini  
        PR c++/24052
        PR c++/24052
        * error.c (dump_expr): Pass LABEL_DECL to dump_decl.  Print
        * error.c (dump_expr): Pass LABEL_DECL to dump_decl.  Print
        an ADDR_EXPR of a LABEL_DECL as &&.
        an ADDR_EXPR of a LABEL_DECL as &&.
2005-10-12  Nathan Sidwell  
2005-10-12  Nathan Sidwell  
        PR c++/19964
        PR c++/19964
        * class.c (walk_subobject_offsets): Don't walk error_mark_node.
        * class.c (walk_subobject_offsets): Don't walk error_mark_node.
2005-10-11  Ian Lance Taylor  
2005-10-11  Ian Lance Taylor  
        PR c++/8057
        PR c++/8057
        * cvt.c (convert_to_void): Don't warn about unused values when
        * cvt.c (convert_to_void): Don't warn about unused values when
        processing a template declaration.
        processing a template declaration.
2005-10-11  Mark Mitchell  
2005-10-11  Mark Mitchell  
        PR c++/21089
        PR c++/21089
        * call.c (convert_like_real): Use decl_constant_value, not
        * call.c (convert_like_real): Use decl_constant_value, not
        integral_constant_value.
        integral_constant_value.
        * init.c (constant_value_1): New function.
        * init.c (constant_value_1): New function.
        (integral_constant_value): Use it.
        (integral_constant_value): Use it.
        (decl_constant_value): Likewise.
        (decl_constant_value): Likewise.
        * typeck.c (decay_conversion): Use decl_constant_value, not
        * typeck.c (decay_conversion): Use decl_constant_value, not
        integral_constant_value.
        integral_constant_value.
        PR c++/21369
        PR c++/21369
        * parser.c (cp_parser_elaborated_type_specifier): Don't treat
        * parser.c (cp_parser_elaborated_type_specifier): Don't treat
        class types as templates if the type is not appearing as part of a
        class types as templates if the type is not appearing as part of a
        type definition or declaration.
        type definition or declaration.
2005-10-10  Mark Mitchell  
2005-10-10  Mark Mitchell  
        PR c++/24277
        PR c++/24277
        * pt.c (instantiate_decl): Call finish_static_data_member_decl for
        * pt.c (instantiate_decl): Call finish_static_data_member_decl for
        static data members.
        static data members.
2005-10-10  Giovanni Bajo  
2005-10-10  Giovanni Bajo  
            Mark Mitchell  
            Mark Mitchell  
        PR c++/23437
        PR c++/23437
        * parser.c (cp_parser_template_argument_list): Do not treat
        * parser.c (cp_parser_template_argument_list): Do not treat
        contents of argument list as part of a constant expression.
        contents of argument list as part of a constant expression.
2005-10-10  Mark Mitchell  
2005-10-10  Mark Mitchell  
        PR c++/24139
        PR c++/24139
        * decl.c (grokdeclarator): Do not require template parameter lists
        * decl.c (grokdeclarator): Do not require template parameter lists
        for explicitly specialized class.
        for explicitly specialized class.
        * error.c (dump_aggr_type): Do not dump template arguments for
        * error.c (dump_aggr_type): Do not dump template arguments for
        non-primary specializations.
        non-primary specializations.
        (dump_function_name): Likewise.
        (dump_function_name): Likewise.
        PR c++/24275
        PR c++/24275
        * pt.c (instantiate_decl): Instantiate the initializer of
        * pt.c (instantiate_decl): Instantiate the initializer of
        a static data member in the namespace containing the class
        a static data member in the namespace containing the class
        containing the static data member.
        containing the static data member.
2005-10-08  James A. Morrison  
2005-10-08  James A. Morrison  
        PR c++/22172
        PR c++/22172
        * parser.c (cp_parser_postfix_expression) : Treat nontype
        * parser.c (cp_parser_postfix_expression) : Treat nontype
        scopes as nondependent.
        scopes as nondependent.
2005-10-06  Volker Reichelt  
2005-10-06  Volker Reichelt  
        * call.c (resolve_args): Remove redundant test.
        * call.c (resolve_args): Remove redundant test.
2005-10-05  Paolo Bonzini  
2005-10-05  Paolo Bonzini  
        PR tree-optimization/21419
        PR tree-optimization/21419
        PR tree-optimization/24146
        PR tree-optimization/24146
        PR tree-optimization/24151
        PR tree-optimization/24151
        * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
        * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
        read-only.  Set ASM_VOLATILE_P for asms without outputs.
        read-only.  Set ASM_VOLATILE_P for asms without outputs.
2005-10-05  Nathan Sidwell  
2005-10-05  Nathan Sidwell  
        PR c++/23513
        PR c++/23513
        * call.c (joust): Adjust length count to more_specialized_fn.
        * call.c (joust): Adjust length count to more_specialized_fn.
        * pt.c (more_specialized_fn): Cope with non-static member vs
        * pt.c (more_specialized_fn): Cope with non-static member vs
        non-member.
        non-member.
2005-10-04  Andrew Pinski  
2005-10-04  Andrew Pinski  
        PR middle-end/23125
        PR middle-end/23125
        * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
        * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
        instead of change_decl_assembler_name.
        instead of change_decl_assembler_name.
2005-10-03  Alexandre Oliva  
2005-10-03  Alexandre Oliva  
        * error.c (dump_type) : Print reworded message.
        * error.c (dump_type) : Print reworded message.
2005-10-03  Mark Mitchell  
2005-10-03  Mark Mitchell  
        PR c++/17775
        PR c++/17775
        * repo.c: Include flags.h.
        * repo.c: Include flags.h.
        (finish_repo): Add -frandom-seed to the arguments.
        (finish_repo): Add -frandom-seed to the arguments.
2005-10-02  Mark Mitchell  
2005-10-02  Mark Mitchell  
        PR c++/22621
        PR c++/22621
        * parser.c (cp_parser_template_argument): Don't turn "T::f" into
        * parser.c (cp_parser_template_argument): Don't turn "T::f" into
        "(*this).T::f".
        "(*this).T::f".
        * pt.c (convert_nontype_argument): Remove ??? comment.
        * pt.c (convert_nontype_argument): Remove ??? comment.
        PR c++/23840
        PR c++/23840
        * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
        * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
        when class rvalues are lvalues.
        when class rvalues are lvalues.
2005-09-28  Mark Mitchell  
2005-09-28  Mark Mitchell  
        PR c++/16782
        PR c++/16782
        * decl.c (grokdeclarator): Always pedwarn about overqualified
        * decl.c (grokdeclarator): Always pedwarn about overqualified
        member names.
        member names.
2005-09-27  Mark Mitchell  
2005-09-27  Mark Mitchell  
        PR c++/22147
        PR c++/22147
        * name-lookup.c (maybe_process_template_type_declaration): Don't
        * name-lookup.c (maybe_process_template_type_declaration): Don't
        treat forward declarations of classes as templates just because
        treat forward declarations of classes as templates just because
        we're processing_template_decl.
        we're processing_template_decl.
        * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
        * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
        functions.
        functions.
2005-09-26  Jason Merrill  
2005-09-26  Jason Merrill  
        PR c++/13764
        PR c++/13764
        * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
        * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
        * name-lookup.c (pushdecl_maybe_friend): Check it.
        * name-lookup.c (pushdecl_maybe_friend): Check it.
        * decl.c (begin_function_body): Do nothing if it's false.
        * decl.c (begin_function_body): Do nothing if it's false.
        (finish_function_body): Ditto.
        (finish_function_body): Ditto.
        (outer_curly_brace_block): New fn.
        (outer_curly_brace_block): New fn.
        (finish_function): Use it.
        (finish_function): Use it.
2005-09-26  Richard Guenther  
2005-09-26  Richard Guenther  
        PR middle-end/15855
        PR middle-end/15855
        * decl2.c (do_static_destruction): Remove.
        * decl2.c (do_static_destruction): Remove.
        (finish_static_initialization_or_destruction): Likewise.
        (finish_static_initialization_or_destruction): Likewise.
        (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
        (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
        (NEEDS_GUARD_P): Likewise.
        (NEEDS_GUARD_P): Likewise.
        (do_static_initialization): Rename to
        (do_static_initialization): Rename to
        do_static_initialization_or_destruction.  Process all
        do_static_initialization_or_destruction.  Process all
        initializers/destructors and handle common conditionalizing.
        initializers/destructors and handle common conditionalizing.
        (start_static_initialization_or_destruction): Rename to
        (start_static_initialization_or_destruction): Rename to
        one_static_initialization_or_destruction.  Handle only
        one_static_initialization_or_destruction.  Handle only
        decl-specific conditionalizing.
        decl-specific conditionalizing.
        (cp_finish_file): Call do_static_initialization_or_destruction.
        (cp_finish_file): Call do_static_initialization_or_destruction.
2005-09-22  Jakub Jelinek  
2005-09-22  Jakub Jelinek  
        PR c++/21983
        PR c++/21983
        * class.c (find_final_overrider): Move diagnostic about no unique final
        * class.c (find_final_overrider): Move diagnostic about no unique final
        overrider to...
        overrider to...
        (update_vtable_entry_for_fn): ... here.
        (update_vtable_entry_for_fn): ... here.
2005-09-21  Mark Mitchell  
2005-09-21  Mark Mitchell  
        PR c++/23993
        PR c++/23993
        * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
        * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
2005-09-21  Volker Reichelt  
2005-09-21  Volker Reichelt  
        PR c++/23965
        PR c++/23965
        * call.c (resolve_args): Return error_mark_node on arguments
        * call.c (resolve_args): Return error_mark_node on arguments
        whose TREE_TYPE is error_mark_node.
        whose TREE_TYPE is error_mark_node.
2005-09-20  Jakub Jelinek  
2005-09-20  Jakub Jelinek  
        PR c++/23947
        PR c++/23947
        * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
        * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
        get_tinfo_ptr calls.
        get_tinfo_ptr calls.
2005-09-16  Mark Mitchell  
2005-09-16  Mark Mitchell  
        PR c++/23914
        PR c++/23914
        * parser.c (cp_parser_enclosed_template_argument_list): Make sure
        * parser.c (cp_parser_enclosed_template_argument_list): Make sure
        skip_evaluation is false when processing template arguments.
        skip_evaluation is false when processing template arguments.
        PR c++/21514
        PR c++/21514
        * pt.c (check_instantiated_args): Treat uses of anonymous types as
        * pt.c (check_instantiated_args): Treat uses of anonymous types as
        causing type-deduction failure.
        causing type-deduction failure.
2005-09-15  Jason Merrill  
2005-09-15  Jason Merrill  
        PR c++/23357
        PR c++/23357
        * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
        * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
        tcc_expression.
        tcc_expression.
2005-09-15  Mark Mitchell  
2005-09-15  Mark Mitchell  
        PR c++/23896
        PR c++/23896
        * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
        * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
        processing template arguments.
        processing template arguments.
        * pt.c (check_explicit_instantiation_namespace): Fix typo.
        * pt.c (check_explicit_instantiation_namespace): Fix typo.
        PR c++/13140
        PR c++/13140
        * decl.c (check_class_member_definition_namespace): New function.
        * decl.c (check_class_member_definition_namespace): New function.
        (grokfndecl): Use it.
        (grokfndecl): Use it.
        (grokvardecl): Likewise.
        (grokvardecl): Likewise.
        (grokdecl): Improve documentation.
        (grokdecl): Improve documentation.
        * pt.c (check_explicit_instantiation_namespace): New function.
        * pt.c (check_explicit_instantiation_namespace): New function.
        (register_specialization): Call check_specialization_namespace
        (register_specialization): Call check_specialization_namespace
        when replacing an implicitly instantiated function.
        when replacing an implicitly instantiated function.
        (check_explicit_specialization): Ensure that DECL_CONTEXT is set
        (check_explicit_specialization): Ensure that DECL_CONTEXT is set
        correctly for namespace-scope specializations.
        correctly for namespace-scope specializations.
        (do_decl_instantiation): Use
        (do_decl_instantiation): Use
        check_explicit_instantiation_namespace.
        check_explicit_instantiation_namespace.
        (do_type_instantiation): Likewise.
        (do_type_instantiation): Likewise.
2005-09-15  Nathan Sidwell  
2005-09-15  Nathan Sidwell  
        PR c++/23725
        PR c++/23725
        * error.c (dump_decl):  Use USING_DECL_SCOPE.
        * error.c (dump_decl):  Use USING_DECL_SCOPE.
2005-09-13  Bastian Blank 
2005-09-13  Bastian Blank 
        PR c++/16171
        PR c++/16171
        * mangle.c (find_substitution): Do not use special substitutions
        * mangle.c (find_substitution): Do not use special substitutions
        for identifiers not in std::.
        for identifiers not in std::.
2005-09-13  Mark Mitchell  
2005-09-13  Mark Mitchell  
        PR c++/23839
        PR c++/23839
        * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
        * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
        for VAR_DECLs.
        for VAR_DECLs.
2005-09-13  Mark Mitchell  
2005-09-13  Mark Mitchell  
        PR c++/23842
        PR c++/23842
        * pt.c (tsubst_default_argument): Do treat default argument
        * pt.c (tsubst_default_argument): Do treat default argument
        expressions as occurring in the context of the function called.
        expressions as occurring in the context of the function called.
2005-09-12  Mark Mitchell  
2005-09-12  Mark Mitchell  
        PR c++/23841
        PR c++/23841
        * parser.c (cp_parser_primary_expression): Recognize the closing
        * parser.c (cp_parser_primary_expression): Recognize the closing
        ">" of a template-argument-list after a floating-point literal as
        ">" of a template-argument-list after a floating-point literal as
        the end of a cast expression.
        the end of a cast expression.
2005-09-12  Mark Mitchell  
2005-09-12  Mark Mitchell  
        PR c++/23789
        PR c++/23789
        * cvt.c (perform_qualification_conversions): Don't create
        * cvt.c (perform_qualification_conversions): Don't create
        unnecessary NOP_EXPRs.
        unnecessary NOP_EXPRs.
        * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
        * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
2005-09-12  Ian Lance Taylor  
2005-09-12  Ian Lance Taylor  
        PR g++/7874
        PR g++/7874
        * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
        * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
        bitfield.  Make dummy bitfield one bit smaller.
        bitfield.  Make dummy bitfield one bit smaller.
        (DECL_HIDDEN_FRIEND_P): Define.
        (DECL_HIDDEN_FRIEND_P): Define.
        (pushdecl_maybe_friend): Declare.
        (pushdecl_maybe_friend): Declare.
        (pushdecl_top_level_maybe_friend): Declare.
        (pushdecl_top_level_maybe_friend): Declare.
        * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
        * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
        Change prototype and all callers.  Add assertion that a
        Change prototype and all callers.  Add assertion that a
        DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P.  Set
        DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P.  Set
        DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
        DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
        appropriate.
        appropriate.
        * name-lookup.c (supplement_binding): Don't ignore a
        * name-lookup.c (supplement_binding): Don't ignore a
        DECL_HIDDEN_FRIEND_P.
        DECL_HIDDEN_FRIEND_P.
        (pushdecl_maybe_friend): Break out contents of pushdecl.  Add
        (pushdecl_maybe_friend): Break out contents of pushdecl.  Add
        is_friend parameter.  Set DECL_ANTICIPATED and
        is_friend parameter.  Set DECL_ANTICIPATED and
        DECL_HIDDEN_FRIEND_P for a friend function.
        DECL_HIDDEN_FRIEND_P for a friend function.
        (pushdecl): Just call pushdecl_maybe_friend.
        (pushdecl): Just call pushdecl_maybe_friend.
        (pushdecl_with_scope): Add is_friend parameter.  Change prototype
        (pushdecl_with_scope): Add is_friend parameter.  Change prototype
        and all callers.
        and all callers.
        (pushdecl_namespace_level): Likewise.
        (pushdecl_namespace_level): Likewise.
        (push_overloaded_decl): Likewise.  Check DECL_HIDDEN_FRIEND_P as
        (push_overloaded_decl): Likewise.  Check DECL_HIDDEN_FRIEND_P as
        well as DECL_ANTICIPATED when checking for a builtin.
        well as DECL_ANTICIPATED when checking for a builtin.
        (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
        (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
        DECL_ANTICIPATED when checking for a builtin.
        DECL_ANTICIPATED when checking for a builtin.
        (do_nonmember_using_decl): Likewise.
        (do_nonmember_using_decl): Likewise.
        (pushdecl_top_level_1): Add is_friend parameter.  Change all
        (pushdecl_top_level_1): Add is_friend parameter.  Change all
        callers.
        callers.
        (pushdecl_top_level_maybe_friend): New function.
        (pushdecl_top_level_maybe_friend): New function.
        (remove_hidden_names): New function.
        (remove_hidden_names): New function.
        (struct arg_lookup): Add args field.
        (struct arg_lookup): Add args field.
        (friend_of_associated_class_p): New static function.
        (friend_of_associated_class_p): New static function.
        (arg_assoc_namespace): Ignore hidden functions which are not
        (arg_assoc_namespace): Ignore hidden functions which are not
        friends of an associated class of some argument.
        friends of an associated class of some argument.
        (lookup_arg_dependent): Remove hidden functions from list passed
        (lookup_arg_dependent): Remove hidden functions from list passed
        in.  Initialize k.args.
        in.  Initialize k.args.
        * name-lookup.h (remove_hidden_names): Declare.
        * name-lookup.h (remove_hidden_names): Declare.
        * friend.c (do_friend): Call pushdecl_maybe_friend instead of
        * friend.c (do_friend): Call pushdecl_maybe_friend instead of
        pushdecl.
        pushdecl.
        * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
        * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
        an assertion, with a check for DECL_HIDDEN_FRIEND_P.
        an assertion, with a check for DECL_HIDDEN_FRIEND_P.
        (build_new_function_call): Add koenig_p parameter.  Change
        (build_new_function_call): Add koenig_p parameter.  Change
        prototype and callers.
        prototype and callers.
        * pt.c (register_specialization): Add is_friend parameter.  Change
        * pt.c (register_specialization): Add is_friend parameter.  Change
        all callers.
        all callers.
        (push_template_decl_real): Change is_friend parameter to bool.
        (push_template_decl_real): Change is_friend parameter to bool.
        Change prototype and all callers.
        Change prototype and all callers.
        (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
        (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
        instead of pushdecl_top_level.
        instead of pushdecl_top_level.
2005-09-11  Richard Henderson  
2005-09-11  Richard Henderson  
        * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
        * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
        * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
        * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
2005-09-09  Gabriel Dos Reis  
2005-09-09  Gabriel Dos Reis  
        * parser.c (cp_parser_translation_unit): Simplify.  The while-block
        * parser.c (cp_parser_translation_unit): Simplify.  The while-block
        was actually executed at most once.
        was actually executed at most once.
2005-09-09  Richard Henderson  
2005-09-09  Richard Henderson  
        PR debug/20998
        PR debug/20998
        * cp-tree.def (ALIAS_DECL): Remove.
        * cp-tree.def (ALIAS_DECL): Remove.
        * cp-lang.c (cp_init_ts): Remove support for it.
        * cp-lang.c (cp_init_ts): Remove support for it.
        * error.c (dump_decl): Likewise.
        * error.c (dump_decl): Likewise.
        * name-lookup.c (pushdecl): Likewise.
        * name-lookup.c (pushdecl): Likewise.
        * semantics.c (finish_id_expression): Likewise.
        * semantics.c (finish_id_expression): Likewise.
        * decl2.c (build_anon_union_vars): Use a VAR_DECL with
        * decl2.c (build_anon_union_vars): Use a VAR_DECL with
        DECL_VALUE_EXPR instead.
        DECL_VALUE_EXPR instead.
2005-09-09  Mark Mitchell  
2005-09-09  Mark Mitchell  
        PR c++/22252
        PR c++/22252
        * decl.c (start_preparsed_function): Do not pay attention to
        * decl.c (start_preparsed_function): Do not pay attention to
        #pragma interface for implicitly-defined methods.
        #pragma interface for implicitly-defined methods.
        * decl2.c (cp_finish_file): Do not complain about uses of inline
        * decl2.c (cp_finish_file): Do not complain about uses of inline
        functions that have bodies, even if we decided not to emit the
        functions that have bodies, even if we decided not to emit the
        body in this translation unit.
        body in this translation unit.
        * semantics.c (note_decl_for_pch): Do not mess with linkage.
        * semantics.c (note_decl_for_pch): Do not mess with linkage.
        (expand_or_defer_fn): Make inline, non-template functions COMDAT
        (expand_or_defer_fn): Make inline, non-template functions COMDAT
        at this point.
        at this point.
2005-09-08  Richard Henderson  
2005-09-08  Richard Henderson  
        PR debug/23190
        PR debug/23190
        * decl.c (wrapup_globals_for_namespace): Call
        * decl.c (wrapup_globals_for_namespace): Call
        emit_debug_global_declarations.
        emit_debug_global_declarations.
        * decl2.c (cp_finish_file): Likewise.
        * decl2.c (cp_finish_file): Likewise.
2005-09-08  Mark Mitchell  
2005-09-08  Mark Mitchell  
        PR c++/23691
        PR c++/23691
        * decl2.c (mark_used): Instantiate static data members initialized
        * decl2.c (mark_used): Instantiate static data members initialized
        by constants, even in a template.
        by constants, even in a template.
2005-09-08  Andrew Pinski  
2005-09-08  Andrew Pinski  
        PR obj-c++/16816
        PR obj-c++/16816
        * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
        * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
        two CPP_COLON.
        two CPP_COLON.
2005-09-07  Richard Guenther  
2005-09-07  Richard Guenther  
        * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
        * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
        for EMPTY_CLASS_EXPR.
        for EMPTY_CLASS_EXPR.
2005-09-06  Jakub Jelinek  
2005-09-06  Jakub Jelinek  
        PR c/23075
        PR c/23075
        * typeck.c (check_return_expr): Add no_warning argument.  Set
        * typeck.c (check_return_expr): Add no_warning argument.  Set
        *no_warning to true if "return-statement with no value, in function
        *no_warning to true if "return-statement with no value, in function
        returning" warning has been issued.
        returning" warning has been issued.
        * cp-tree.h (check_return_expr): Adjust prototype.
        * cp-tree.h (check_return_expr): Adjust prototype.
        * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
        * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
        check_return_expr set *no_warning to true.
        check_return_expr set *no_warning to true.
2005-09-06  Mark Mitchell  
2005-09-06  Mark Mitchell  
        * cp-tree.h (rvalue): New function.
        * cp-tree.h (rvalue): New function.
        * call.c (build_conditional_expr): Use it.
        * call.c (build_conditional_expr): Use it.
        * init.c (build_new_1): Likewise.
        * init.c (build_new_1): Likewise.
        * rtti.c (build_dynamic_cast_1): Likewise.
        * rtti.c (build_dynamic_cast_1): Likewise.
        * tree.c (rvalue): New function.
        * tree.c (rvalue): New function.
        * typeck.c (build_unary_op): Use it.
        * typeck.c (build_unary_op): Use it.
        (build_static_cast_1): Likewise.
        (build_static_cast_1): Likewise.
        PR c++/9782
        PR c++/9782
        * init.c (build_new_1): Make sure the entire array type is
        * init.c (build_new_1): Make sure the entire array type is
        complete, not just its element types.
        complete, not just its element types.
2005-09-06  Volker Reichelt  
2005-09-06  Volker Reichelt  
        * decl.c (check_elaborated_type_specifier): Remove redundant check.
        * decl.c (check_elaborated_type_specifier): Remove redundant check.
2005-09-06  Jakub Jelinek  
2005-09-06  Jakub Jelinek  
        PR c++/23056
        PR c++/23056
        * typeck.c (ignore_overflows): New helper function.
        * typeck.c (ignore_overflows): New helper function.
        (build_static_cast_1): Use it.
        (build_static_cast_1): Use it.
2005-09-06  Kazu Hirata  
2005-09-06  Kazu Hirata  
        * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
        * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
        Follow spelling conventions.
        Follow spelling conventions.
2005-09-05  Mark Mitchell  
2005-09-05  Mark Mitchell  
        PR c++/23667
        PR c++/23667
        * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
        * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
        copying a VAR_DECL.
        copying a VAR_DECL.
2005-09-05  Mark Mitchell  
2005-09-05  Mark Mitchell  
        PR c++/21440
        PR c++/21440
        * semantics.c (finish_stmt_expr_expr): Add an explicit
        * semantics.c (finish_stmt_expr_expr): Add an explicit
        initialization to the last statement in the statement-expression.
        initialization to the last statement in the statement-expression.
        * (finish_stmt_expr): Adjust accordingly.
        * (finish_stmt_expr): Adjust accordingly.
2005-09-03  Mark Mitchell  
2005-09-03  Mark Mitchell  
        PR c++/23699
        PR c++/23699
        * decl2.c (mark_used): Always instantiate static data members
        * decl2.c (mark_used): Always instantiate static data members
        initialized by constant expressions.
        initialized by constant expressions.
        * pt.c (instantiate_decl): Instantiate the initializers for static
        * pt.c (instantiate_decl): Instantiate the initializers for static
        data members initialized by constant expressions.
        data members initialized by constant expressions.
        PR c++/21687
        PR c++/21687
        * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
        * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
        finishing processing for a template function in a local class.
        finishing processing for a template function in a local class.
        Revert:
        Revert:
        2005-09-02  Mark Mitchell  
        2005-09-02  Mark Mitchell  
        * parser.c (cp_parser_class_specifier): Push/pop GC contexts
        * parser.c (cp_parser_class_specifier): Push/pop GC contexts
        around functions in local classes.
        around functions in local classes.
2005-09-02  Mark Mitchell  
2005-09-02  Mark Mitchell  
        PR c++/21687
        PR c++/21687
        * parser.c (cp_parser_class_specifier): Push/pop GC contexts
        * parser.c (cp_parser_class_specifier): Push/pop GC contexts
        around functions in local classes.
        around functions in local classes.
2005-08-31  Andrew Pinski  
2005-08-31  Andrew Pinski  
        PR obj-c++/23640
        PR obj-c++/23640
        * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
        * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
        init, call generate_ctor_or_dtor_function.
        init, call generate_ctor_or_dtor_function.
2005-08-31  Volker Reichelt  
2005-08-31  Volker Reichelt  
        PR c++/13377
        PR c++/13377
        * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
        * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
        lookup_name_real on final parse.
        lookup_name_real on final parse.
2005-08-31  Volker Reichelt  
2005-08-31  Volker Reichelt  
        PR c++/23639
        PR c++/23639
        * semantics.c (qualified_name_lookup_error): Do not complain again
        * semantics.c (qualified_name_lookup_error): Do not complain again
        on invalid scope.
        on invalid scope.
2005-08-30  Volker Reichelt  
2005-08-30  Volker Reichelt  
        PR c++/23586
        PR c++/23586
        * parser.c (cp_parser_namespace_name): Move diagnostic for
        * parser.c (cp_parser_namespace_name): Move diagnostic for
        invalid namespace-name to here from ...
        invalid namespace-name to here from ...
        * name-lookup.c (do_namespace_alias): ... here and ...
        * name-lookup.c (do_namespace_alias): ... here and ...
        (do_using_directive): ... here.  Remove dead code.
        (do_using_directive): ... here.  Remove dead code.
2005-08-28  Mark Mitchell  
2005-08-28  Mark Mitchell  
        PR c++/23099
        PR c++/23099
        * cp-tree.h (saved_scope): Add skip_evaluation.
        * cp-tree.h (saved_scope): Add skip_evaluation.
        * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
        * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
        DECL_INITIAL, to determine whether or not a static data member was
        DECL_INITIAL, to determine whether or not a static data member was
        initialized in the class-specifier.
        initialized in the class-specifier.
        (cp_finish_decl): Add comment.
        (cp_finish_decl): Add comment.
        * init.c (integral_constant_value): Subtitute into the
        * init.c (integral_constant_value): Subtitute into the
        initializers for static data members in templates.
        initializers for static data members in templates.
        * name-lookup.c (push_to_top_level): Save skip_evaluation.
        * name-lookup.c (push_to_top_level): Save skip_evaluation.
        (pop_from_top_level): Restore it.
        (pop_from_top_level): Restore it.
        * pt.c (instantiate_class_template): Do not substitute into the
        * pt.c (instantiate_class_template): Do not substitute into the
        intializers of static data members when instantiating a class.
        intializers of static data members when instantiating a class.
        (regenerate_decl_from_template): Simplify.
        (regenerate_decl_from_template): Simplify.
        (instantiate_decl): Tidy.  Substitute into the initializer for a
        (instantiate_decl): Tidy.  Substitute into the initializer for a
        static data member even when the definition of the data member is
        static data member even when the definition of the data member is
        not available.
        not available.
2005-08-26  Mark Mitchell  
2005-08-26  Mark Mitchell  
        PR c++/19004
        PR c++/19004
        * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
        * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
        (type_dependent_expression_p): Allow BASELINKs whose associated
        (type_dependent_expression_p): Allow BASELINKs whose associated
        functions are simply a FUNCTION_DECL.
        functions are simply a FUNCTION_DECL.
        PR c++/23491
        PR c++/23491
        * cp-tree.h (build_vec_init): Adjust prototype.
        * cp-tree.h (build_vec_init): Adjust prototype.
        * init.c (perform_member_init): Adjust call to build_vec_init.
        * init.c (perform_member_init): Adjust call to build_vec_init.
        (build_aggr_init): Likewise.
        (build_aggr_init): Likewise.
        (build_new_1): Do not call build_default_init for array types.
        (build_new_1): Do not call build_default_init for array types.
        (build_vec_init): Add explicit_default_init_p parameter.  Perform
        (build_vec_init): Add explicit_default_init_p parameter.  Perform
        default initialization of vector elements when set.
        default initialization of vector elements when set.
        * typeck.c (build_modify_expr): Adjust call to build_vec_init.
        * typeck.c (build_modify_expr): Adjust call to build_vec_init.
2005-08-25  Nathan Sidwell  
2005-08-25  Nathan Sidwell  
        PR c++/20817
        PR c++/20817
        * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
        * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
        ->*.
        ->*.
2005-08-24  Nathan Sidwell  
2005-08-24  Nathan Sidwell  
        PR c++/22454
        PR c++/22454
        * parser.c (cp_lexer_peek_nth_token): Relax assert.
        * parser.c (cp_lexer_peek_nth_token): Relax assert.
2005-08-23  Nathan Sidwell  
2005-08-23  Nathan Sidwell  
        PR c++/23044
        PR c++/23044
        * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
        * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
2005-08-22  James E Wilson  
2005-08-22  James E Wilson  
        PR tree-optimization/23426
        PR tree-optimization/23426
        * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
        * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
        array size check.
        array size check.
2005-08-22  Volker Reichelt  
2005-08-22  Volker Reichelt  
        PR c++/22233
        PR c++/22233
        * pt.c (push_template_decl_real): Return error_mark_node if the
        * pt.c (push_template_decl_real): Return error_mark_node if the
        number of template parameters does not match previous definition.
        number of template parameters does not match previous definition.
2005-08-22  Volker Reichelt  
2005-08-22  Volker Reichelt  
        PR c++/23089
        PR c++/23089
        * decl.c (require_complete_types_for_parms): Mark incomplete types
        * decl.c (require_complete_types_for_parms): Mark incomplete types
        as invalid.
        as invalid.
2005-08-19  Volker Reichelt  
2005-08-19  Volker Reichelt  
        * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
        * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
        Fix typo in leading comment.
        Fix typo in leading comment.
2005-08-15  Kaveh R. Ghazi  
2005-08-15  Kaveh R. Ghazi  
        * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
        * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
2005-08-15 Fariborz Jahanian 
2005-08-15 Fariborz Jahanian 
        * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
        * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
        * call.c (add_template_candidate_real): Pass down 'flags' to
        * call.c (add_template_candidate_real): Pass down 'flags' to
        fn_type_unification.
        fn_type_unification.
        (can_convert_arg): New 'flags' argument. Pass it to call to
        (can_convert_arg): New 'flags' argument. Pass it to call to
        implicit_conversion instead of LOOKUP_NORMAL.
        implicit_conversion instead of LOOKUP_NORMAL.
        (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
        (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
        * class.c (resolve_address_of_overloaded_function): Ditto.
        * class.c (resolve_address_of_overloaded_function): Ditto.
        (resolve_address_of_overloaded_function): Ditto.
        (resolve_address_of_overloaded_function): Ditto.
        * decl.c (reshape_init, check_default_argument): Ditto.
        * decl.c (reshape_init, check_default_argument): Ditto.
        * typeck.c (build_ptrmemfunc): Ditto.
        * typeck.c (build_ptrmemfunc): Ditto.
        * pt.c (type_unification_real): Add 'flags' argument.
        * pt.c (type_unification_real): Add 'flags' argument.
        (fn_type_unification): Pass 'flags' to type_unification_real.
        (fn_type_unification): Pass 'flags' to type_unification_real.
        (type_unification_real): Pass new 'flags' argument to call to
        (type_unification_real): Pass new 'flags' argument to call to
        can_convert_arg.
        can_convert_arg.
2005-08-12  Giovanni Bajo  
2005-08-12  Giovanni Bajo  
            Nathan Sidwell  
            Nathan Sidwell  
        PR c++/21799
        PR c++/21799
        PR c++/8271
        PR c++/8271
        * pt.c (unify) : Check this-pointer cv-qualifiers
        * pt.c (unify) : Check this-pointer cv-qualifiers
        explicitly.
        explicitly.
2005-08-12  Nathan Sidwell  
2005-08-12  Nathan Sidwell  
        PR c++/21799
        PR c++/21799
        Revert my 2005-07-08 patch
        Revert my 2005-07-08 patch
        * pt.c (type_unification_real): Remove is_method_argument and
        * pt.c (type_unification_real): Remove is_method_argument and
        assoicated checks.
        assoicated checks.
        (fn_type_unification, unify): Adjust type_unification_real calls.
        (fn_type_unification, unify): Adjust type_unification_real calls.
2005-08-11  Volker Reichelt  
2005-08-11  Volker Reichelt  
        PR c++/23266
        PR c++/23266
        * decl2.c (grokfield): Check that method is not static before
        * decl2.c (grokfield): Check that method is not static before
        marking it as pure.
        marking it as pure.
2005-08-11  Nathan Sidwell  
2005-08-11  Nathan Sidwell  
        PR c++/23219
        PR c++/23219
        * name-lookup.c (pushtag): Process the template type before
        * name-lookup.c (pushtag): Process the template type before
        altering the identifier lookup fields.  Remove unreachable code
        altering the identifier lookup fields.  Remove unreachable code
        creating an empty stub decl.
        creating an empty stub decl.
2005-08-10  Volker Reichelt  
2005-08-10  Volker Reichelt  
        PR c++/20646
        PR c++/20646
        * decl.c (grokdeclarator): Reset storage_class after error.
        * decl.c (grokdeclarator): Reset storage_class after error.
2005-08-08  Volker Reichelt  
2005-08-08  Volker Reichelt  
        PR c++/22508
        PR c++/22508
        * init.c (build_new_1): Check for empty candidate list.
        * init.c (build_new_1): Check for empty candidate list.
2005-08-06  Volker Reichelt  
2005-08-06  Volker Reichelt  
        PR c++/23191
        PR c++/23191
        * pt.c (tsubst) : Check for error_mark_node
        * pt.c (tsubst) : Check for error_mark_node
        before calling build_exception_variant.
        before calling build_exception_variant.
2005-08-06  Volker Reichelt  
2005-08-06  Volker Reichelt  
        PR c++/19498
        PR c++/19498
        * pt.c (tsubst_decl) : Return ERROR_MARK_NODE
        * pt.c (tsubst_decl) : Return ERROR_MARK_NODE
        if substitution of template args did not succeed.
        if substitution of template args did not succeed.
2005-08-06  Michael Matz  
2005-08-06  Michael Matz  
        * method.c (use_thunk): Call init_insn_lengths.
        * method.c (use_thunk): Call init_insn_lengths.
2005-08-05  James A. Morrison  
2005-08-05  James A. Morrison  
        PR c++/22514
        PR c++/22514
        * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
        * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
        sorrycount or errorcount are nonzero.
        sorrycount or errorcount are nonzero.
2005-08-05  Mark Mitchell  
2005-08-05  Mark Mitchell  
        * name-lookup.c (pushtag): Remove accidental commit from:
        * name-lookup.c (pushtag): Remove accidental commit from:
        2004-12-21  Mark Mitchell  
        2004-12-21  Mark Mitchell  
        PR c++/19063
        PR c++/19063
        * decl.c (grokdeclarator): Return error_mark_node, not
        * decl.c (grokdeclarator): Return error_mark_node, not
        void_type_node, to indicate errors.
        void_type_node, to indicate errors.
        * parser.c (cp_parser_template_parameter_list): Robustify.
        * parser.c (cp_parser_template_parameter_list): Robustify.
        (cp_parser_template_parameter): Likewise.
        (cp_parser_template_parameter): Likewise.
2005-08-01  Kazu Hirata  
2005-08-01  Kazu Hirata  
        * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
        * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
        Fix comment typos.
        Fix comment typos.
2005-07-29  Kazu Hirata  
2005-07-29  Kazu Hirata  
        * method.c: Fix a comment typo.
        * method.c: Fix a comment typo.
2005-07-28  Mark Mitchell  
2005-07-28  Mark Mitchell  
        PR c++/22545
        PR c++/22545
        * call.c (add_builtin_candidate): Adjust for changes in
        * call.c (add_builtin_candidate): Adjust for changes in
        representation of pointer-to-member types.
        representation of pointer-to-member types.
2005-07-28  Mike Stump  
2005-07-28  Mike Stump  
        * pt.c (check_explicit_specialization): Add visibility logic.
        * pt.c (check_explicit_specialization): Add visibility logic.
        (lookup_template_class): Likewise.
        (lookup_template_class): Likewise.
        (instantiate_class_template): Likewise.
        (instantiate_class_template): Likewise.
2005-07-27  Devang Patel  
2005-07-27  Devang Patel  
        * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
        * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
2005-07-25  Ian Lance Taylor  
2005-07-25  Ian Lance Taylor  
        * ptree.c (cxx_print_identifier): Print a leading space if the
        * ptree.c (cxx_print_identifier): Print a leading space if the
        indent level is 0.
        indent level is 0.
2005-07-24  Kaveh R. Ghazi  
2005-07-24  Kaveh R. Ghazi  
        * call.c (convert_for_arg_passing): Check function pointers when
        * call.c (convert_for_arg_passing): Check function pointers when
        -Wmissing-format-attribute is activated.
        -Wmissing-format-attribute is activated.
        * typeck.c (convert_for_assignment): Likewise.
        * typeck.c (convert_for_assignment): Likewise.
2005-07-22  Manfred Hollstein  
2005-07-22  Manfred Hollstein  
        * parser.c (cp_parser_declaration): Fix unitialised warnings.
        * parser.c (cp_parser_declaration): Fix unitialised warnings.
2005-07-21  Andrew Pinski  
2005-07-21  Andrew Pinski  
        * class.c (build_base_path): Fix typo.
        * class.c (build_base_path): Fix typo.
2005-07-21  Andrew Pinski  
2005-07-21  Andrew Pinski  
        PR C++/22358
        PR C++/22358
        * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
        * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
2005-07-21  Volker Reichelt  
2005-07-21  Volker Reichelt  
        * call.c: Fix comment typo(s).
        * call.c: Fix comment typo(s).
        * cxx-pretty-print.h: Likewise.
        * cxx-pretty-print.h: Likewise.
        * name-lookup.c: Likewise.
        * name-lookup.c: Likewise.
        * parser.c: Likewise.
        * parser.c: Likewise.
2005-07-20  Douglas Gregor 
2005-07-20  Douglas Gregor 
        PR c++/2922
        PR c++/2922
        * semantics.c (perform_koenig_lookup): For dependent calls, just
        * semantics.c (perform_koenig_lookup): For dependent calls, just
        return the set of functions we've found so far. Later, it will be
        return the set of functions we've found so far. Later, it will be
        augmented by those found through argument-dependent lookup.
        augmented by those found through argument-dependent lookup.
        * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
        * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
        the optimization that skips namespaces where the functions were
        the optimization that skips namespaces where the functions were
        originally found.
        originally found.
2005-07-20  Giovanni Bajo  
2005-07-20  Giovanni Bajo  
        Make CONSTRUCTOR use VEC to store initializers.
        Make CONSTRUCTOR use VEC to store initializers.
        * call.c (convert_default_arg): Update call to digest_init.
        * call.c (convert_default_arg): Update call to digest_init.
        * class.c (dump_class_hierarchy, dump_array): Update to cope with
        * class.c (dump_class_hierarchy, dump_array): Update to cope with
        VEC in CONSTRUCTOR_ELTS.
        VEC in CONSTRUCTOR_ELTS.
        * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
        * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
        (finish_compound_literal, digest_init): Update declaration.
        (finish_compound_literal, digest_init): Update declaration.
        * decl.c (struct reshape_iter): New data type.
        * decl.c (struct reshape_iter): New data type.
        (reshape_init_array): Rename to...
        (reshape_init_array): Rename to...
        (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
        (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
        (reshape_init): Rewrite from scratch. Split parts into...
        (reshape_init): Rewrite from scratch. Split parts into...
        (reshape_init_array, reshape_init_vector, reshape_init_class,
        (reshape_init_array, reshape_init_vector, reshape_init_class,
        reshape_init_r): New functions.
        reshape_init_r): New functions.
        (check_initializer): Update call to reshape_init. Remove obsolete
        (check_initializer): Update call to reshape_init. Remove obsolete
        code.
        code.
        (initialize_artificial_var, cp_complete_array_type): Update to cope
        (initialize_artificial_var, cp_complete_array_type): Update to cope
        with VEC in CONSTRUCTOR_ELTS.
        with VEC in CONSTRUCTOR_ELTS.
        * decl2.c (grokfield): Update calls to digest_init.
        * decl2.c (grokfield): Update calls to digest_init.
        (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
        (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
        * error.c (dump_expr_init_vec): New function.
        * error.c (dump_expr_init_vec): New function.
        (dump_expr): Use dump_expr_init_vec.
        (dump_expr): Use dump_expr_init_vec.
        * init.c (build_zero_init, build_vec_init): Update to cope with VEC
        * init.c (build_zero_init, build_vec_init): Update to cope with VEC
        in CONSTRUCTOR_ELTS.
        in CONSTRUCTOR_ELTS.
        (expand_default_init): Update call to digest_init.
        (expand_default_init): Update call to digest_init.
        * parser.c  (cp_parser_postfix_expression): Use a VEC for the
        * parser.c  (cp_parser_postfix_expression): Use a VEC for the
        initializers.
        initializers.
        (cp_parser_initializer_list): Build a VEC of initializers.
        (cp_parser_initializer_list): Build a VEC of initializers.
        * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
        * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
        in CONSTRUCTOR_ELTS.
        in CONSTRUCTOR_ELTS.
        * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
        * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
        ptm_initializer, class_initializer, get_pseudo_ti_init): Use
        ptm_initializer, class_initializer, get_pseudo_ti_init): Use
        build_constructor_from_list instead of build_constructor.
        build_constructor_from_list instead of build_constructor.
        * semantics.c (finish_compound_literal): Update call to digest_init.
        * semantics.c (finish_compound_literal): Update call to digest_init.
        * tree.c (stabilize_init): Update to cope with VEC in
        * tree.c (stabilize_init): Update to cope with VEC in
        CONSTRUCTOR_ELTS.
        CONSTRUCTOR_ELTS.
        * typeck.c (build_ptrmemfunc1): Likewise.
        * typeck.c (build_ptrmemfunc1): Likewise.
        * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
        * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
        Likewise.
        Likewise.
        (store_init_value): Use build_constructor_from_list and update call
        (store_init_value): Use build_constructor_from_list and update call
        to digest_init.
        to digest_init.
        (digest_init): Rewrite.
        (digest_init): Rewrite.
        (process_init_constructor): Rewrite from scratch. Split into...
        (process_init_constructor): Rewrite from scratch. Split into...
        (process_init_constructor_array, picflag_from_initializer,
        (process_init_constructor_array, picflag_from_initializer,
        process_init_constructor_record, process_init_constructor_union):
        process_init_constructor_record, process_init_constructor_union):
        New functions.
        New functions.
        (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
        (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
        New macros.
        New macros.
        (build_functional_cast): Use build_constructor_from_list instead of
        (build_functional_cast): Use build_constructor_from_list instead of
        build_constructor.
        build_constructor.
2005-07-18  Mark Mitchell  
2005-07-18  Mark Mitchell  
        PR c++/22263
        PR c++/22263
        * cp-tree.h (instantiate_decl): Change prototype.
        * cp-tree.h (instantiate_decl): Change prototype.
        * decl2.c (mark_used): Adjust accordingly.
        * decl2.c (mark_used): Adjust accordingly.
        * pt.c (do_decl_instantiation): Likewise.
        * pt.c (do_decl_instantiation): Likewise.
        (instantiate_class_member): Likewise.
        (instantiate_class_member): Likewise.
        (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
        (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
        Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
        Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
        that has no definition available.
        that has no definition available.
        (instantiate_pending_templates): Adjust call to instantiate_decl.
        (instantiate_pending_templates): Adjust call to instantiate_decl.
2005-07-17  Mark Mitchell  
2005-07-17  Mark Mitchell  
        PR c++/22139
        PR c++/22139
        * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
        * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
        * decl.c (duplicate_decls): Re-register template specializations
        * decl.c (duplicate_decls): Re-register template specializations
        for functions that have DECL_TEMLPLATE_INFO, even if they do not
        for functions that have DECL_TEMLPLATE_INFO, even if they do not
        have DECL_TEMPLATE_INSTANTIATION set.
        have DECL_TEMPLATE_INSTANTIATION set.
2005-07-16  Kaveh R. Ghazi  
2005-07-16  Kaveh R. Ghazi  
        * call.c (diagnostic_fn_t): New.
        * call.c (diagnostic_fn_t): New.
        (build_temp, convert_like_real): Use diagnostic_fn_t.
        (build_temp, convert_like_real): Use diagnostic_fn_t.
2005-07-15  Mark Mitchell  
2005-07-15  Mark Mitchell  
        PR c++/22204
        PR c++/22204
        * repo.c (repo_emit_p): Robustify.
        * repo.c (repo_emit_p): Robustify.
2005-07-14  Daniel Berlin  
2005-07-14  Daniel Berlin  
        Fix PR c++/22452
        Fix PR c++/22452
        * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
        * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
2005-07-15  Mark Mitchell  
2005-07-15  Mark Mitchell  
        PR c++/22132
        PR c++/22132
        * call.c (implicit_conversion): Add c_cast_p parameter.
        * call.c (implicit_conversion): Add c_cast_p parameter.
        (standard_conversion): Likewise.  Allow conversions between
        (standard_conversion): Likewise.  Allow conversions between
        differently-qualified pointer types when performing a C-style
        differently-qualified pointer types when performing a C-style
        cast.
        cast.
        (add_function_candidate): Adjust callee.
        (add_function_candidate): Adjust callee.
        (build_builtin_candidate): Likewise.
        (build_builtin_candidate): Likewise.
        (build_user_type_conversion_1): Likewise.
        (build_user_type_conversion_1): Likewise.
        (conditional_conversion): Likewise.
        (conditional_conversion): Likewise.
        (can_convert_arg): Likewise.
        (can_convert_arg): Likewise.
        (can_convert_arg_bad): Likewise.
        (can_convert_arg_bad): Likewise.
        (perform_implicit_conversion): Likewise.
        (perform_implicit_conversion): Likewise.
        * cp-tree.h (comp_ptr_ttypes_const): Declare.
        * cp-tree.h (comp_ptr_ttypes_const): Declare.
        * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
        * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
        Return bool.
        Return bool.
2005-07-12  Volker Reichelt  
2005-07-12  Volker Reichelt  
            Nathan Sidwell  
            Nathan Sidwell  
        PR c++/20172
        PR c++/20172
        * pt.c (tsubst_template_parms): Check for invalid non-type
        * pt.c (tsubst_template_parms): Check for invalid non-type
        parameters.
        parameters.
2005-07-09  Andrew Pinski  
2005-07-09  Andrew Pinski  
        * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
        * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
        decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
        decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
        (cp_init_ts): Call init_shadowed_var_for_decl.
        (cp_init_ts): Call init_shadowed_var_for_decl.
        Remove include of gt-cp-cp-lang.h.
        Remove include of gt-cp-cp-lang.h.
        * cp-objcp-common.c (shadowed_var_for_decl,
        * cp-objcp-common.c (shadowed_var_for_decl,
        decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
        decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
        cp-lang.c.
        cp-lang.c.
        (init_shadowed_var_for_decl): New function to initialize
        (init_shadowed_var_for_decl): New function to initialize
        shadowed_var_for_decl.
        shadowed_var_for_decl.
        Include gt-cp-cp-objcp-common.h.
        Include gt-cp-cp-objcp-common.h.
        * Make-lang.in (gt-cp-lang.h): Remove.
        * Make-lang.in (gt-cp-lang.h): Remove.
        (gt-cp-cp-objcp-common.h): Add.
        (gt-cp-cp-objcp-common.h): Add.
        (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
        (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.
        (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.
        * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
        * cp-tree (init_shadowed_var_for_decl): Add prototype.
        * cp-tree (init_shadowed_var_for_decl): Add prototype.
2005-07-08  Daniel Berlin  
2005-07-08  Daniel Berlin  
        * Make-lang.in: Add gt-cp-lang.h.
        * Make-lang.in: Add gt-cp-lang.h.
        (cp-lang.o): Ditto.
        (cp-lang.o): Ditto.
        * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
        * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
        the field.
        the field.
        * config-lang.in: Add cp-lang.c to gtfiles.
        * config-lang.in: Add cp-lang.c to gtfiles.
        * cp-lang.c: Include hashtab.h.
        * cp-lang.c: Include hashtab.h.
        (cp_init_ts): New function.
        (cp_init_ts): New function.
        (LANG_HOOK_INIT_TS): Use macro.
        (LANG_HOOK_INIT_TS): Use macro.
        (decl_shadowed_for_var_lookup): New function.
        (decl_shadowed_for_var_lookup): New function.
        (decl_shadowed_for_var_insert): Ditto.
        (decl_shadowed_for_var_insert): Ditto.
        * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
        * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
        (NON_THUNK_FUNCTION_CHECK): Ditto.
        (NON_THUNK_FUNCTION_CHECK): Ditto.
        (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
        (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
        (DECL_INIT_PRIORITY): Ditto.
        (DECL_INIT_PRIORITY): Ditto.
        (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
        (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
        (DECL_SHADOWED_FOR_VAR): Use hashtable.
        (DECL_SHADOWED_FOR_VAR): Use hashtable.
        (SET_DECL_SHADOWED_FOR_VAR): Ditto.
        (SET_DECL_SHADOWED_FOR_VAR): Ditto.
        * decl.c (duplicate_decls): Update for new/updated structures.
        * decl.c (duplicate_decls): Update for new/updated structures.
        (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
        (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
        * decl2.c (start_static_initialization_or_destruction): Deal with
        * decl2.c (start_static_initialization_or_destruction): Deal with
        priority.
        priority.
        * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
        * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
        SET_DECL_RTL.
        SET_DECL_RTL.
        * tree.c (handle_init_priority_attribute): Handle priority.
        * tree.c (handle_init_priority_attribute): Handle priority.
2005-07-08  Nathan Sidwell  
2005-07-08  Nathan Sidwell  
        PR c++/21799
        PR c++/21799
        * pt.c (type_unification_real): Add is_method argument.  Use it
        * pt.c (type_unification_real): Add is_method argument.  Use it
        for this pointer unification.
        for this pointer unification.
        (fn_type_unification): Adjust type_unification_real call.
        (fn_type_unification): Adjust type_unification_real call.
        (unify): Likewise.
        (unify): Likewise.
2005-07-07  Nathan Sidwell  
2005-07-07  Nathan Sidwell  
        * pt.c (type_unification_real): Remove allow_incomplete argument.
        * pt.c (type_unification_real): Remove allow_incomplete argument.
        Remove unreachable code.
        Remove unreachable code.
        (fn_type_unification): Adjust call to type_unification_real.
        (fn_type_unification): Adjust call to type_unification_real.
        (unify): Likewise.
        (unify): Likewise.
2005-07-05  Paolo Bonzini  
2005-07-05  Paolo Bonzini  
        * Makefile.in (class.o, decl2.o): Adjust dependencies.
        * Makefile.in (class.o, decl2.o): Adjust dependencies.
        * class.c: Include tree-dump.h.
        * class.c: Include tree-dump.h.
        * decl2.c: Include tree-dump.h.
        * decl2.c: Include tree-dump.h.
2005-07-02  Gabriel Dos Reis  
2005-07-02  Gabriel Dos Reis  
        * dump.c: Use dump_string_field.
        * dump.c: Use dump_string_field.
2005-07-03  Joseph S. Myers  
2005-07-03  Joseph S. Myers  
        * cp-tree.h (GCC_DIAG_STYLE): #undef before defining.  Change
        * cp-tree.h (GCC_DIAG_STYLE): #undef before defining.  Change
        minimum GCC version for format checking to 4.1.
        minimum GCC version for format checking to 4.1.
2005-07-02  Kazu Hirata  
2005-07-02  Kazu Hirata  
        * Make-lang.in (cc1plus-checksum.c): Use
        * Make-lang.in (cc1plus-checksum.c): Use
        build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
        build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
2005-07-02  Joseph S. Myers  
2005-07-02  Joseph S. Myers  
        * name-lookup.c, parser.c: Use %q, %< and %> to quote in
        * name-lookup.c, parser.c: Use %q, %< and %> to quote in
        diagnostics.
        diagnostics.
2005-07-02  Zack Weinberg  
2005-07-02  Zack Weinberg  
            Joseph S. Myers  
            Joseph S. Myers  
        * error.c (location_of): Add comment.
        * error.c (location_of): Add comment.
        (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
        (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.
        * 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,
        * 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,
        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
        typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
        or cp_pedwarn_at.  Mark up some diagnostic strings with N_.
        or cp_pedwarn_at.  Mark up some diagnostic strings with N_.
2005-06-30  Daniel Berlin  
2005-06-30  Daniel Berlin  
        * decl.c (require_complete_types_for_parms): Call relayout_decl
        * decl.c (require_complete_types_for_parms): Call relayout_decl
        instead of layout_decl.
        instead of layout_decl.
2005-06-30  Zack Weinberg  
2005-06-30  Zack Weinberg  
            Jakub Jelinek  
            Jakub Jelinek  
        * cp-lang.c: No need to include cxx-pretty-print.h.
        * cp-lang.c: No need to include cxx-pretty-print.h.
        * error.c (cp_printer): Update signature.  No need to process
        * error.c (cp_printer): Update signature.  No need to process
        flags.
        flags.
        (print_instantiation_partial_context): Output last newline
        (print_instantiation_partial_context): Output last newline
        with pp_base_newline.
        with pp_base_newline.
        * Make-lang.in: Update dependencies.
        * Make-lang.in: Update dependencies.
2005-06-30  Steven Bosscher  
2005-06-30  Steven Bosscher  
        * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
        * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
        DECL_THREAD_LOCAL_P.
        DECL_THREAD_LOCAL_P.
        (cp_finish_decl): Likewise.
        (cp_finish_decl): Likewise.
        (grokvardecl): Set the default DECL_TLS_MODEL here.
        (grokvardecl): Set the default DECL_TLS_MODEL here.
2005-06-28  Joseph S. Myers  
2005-06-28  Joseph S. Myers  
        * cvt.c (ocp_convert): Use invalid_conversion hook.
        * cvt.c (ocp_convert): Use invalid_conversion hook.
        * typeck.c (build_binary_op): Use invalid_binary_op hook.
        * typeck.c (build_binary_op): Use invalid_binary_op hook.
        (build_unary_op): Use invalid_unary_op hook.
        (build_unary_op): Use invalid_unary_op hook.
2005-06-28  Paul Brook  
2005-06-28  Paul Brook  
        * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
        * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
        * except.c: Include target.h.
        * except.c: Include target.h.
        (init_exception_processing): Initialize unwind_resume_libfunc.
        (init_exception_processing): Initialize unwind_resume_libfunc.
        * doc/tm.texi: Document TARGET_ASM_TTYPE
        * doc/tm.texi: Document TARGET_ASM_TTYPE
2005-06-26  Kaveh R. Ghazi  
2005-06-26  Kaveh R. Ghazi  
        * call.c (build_over_call): Pass in named argument list to
        * call.c (build_over_call): Pass in named argument list to
        `check_function_arguments'.
        `check_function_arguments'.
        * typeck.c (build_function_call): Likewise.
        * typeck.c (build_function_call): Likewise.
2005-06-26  Kaveh R. Ghazi  
2005-06-26  Kaveh R. Ghazi  
        * cp-tree.h (lang_check_failed): Add noreturn attribute.
        * cp-tree.h (lang_check_failed): Add noreturn attribute.
2005-06-25  Kelley Cook  
2005-06-25  Kelley Cook  
        * all files: Update FSF address in copyright headers.
        * all files: Update FSF address in copyright headers.
2005-06-23  Jason Merrill  
2005-06-23  Jason Merrill  
        PR c++/19317
        PR c++/19317
        * semantics.c (simplify_aggr_init_expr): Use
        * semantics.c (simplify_aggr_init_expr): Use
        CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
        CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
2005-06-23  Volker Reichelt  
2005-06-23  Volker Reichelt  
        * pt.c (register_specialization): Remove superfluous assertion.
        * pt.c (register_specialization): Remove superfluous assertion.
2005-06-18  Kaveh R. Ghazi  
2005-06-18  Kaveh R. Ghazi  
        * call.c (convert_like_real): Add format attribute.
        * call.c (convert_like_real): Add format attribute.
        * typeck.c (check_for_casting_away_constness,
        * typeck.c (check_for_casting_away_constness,
        build_static_cast_1): Likewise.
        build_static_cast_1): Likewise.
        * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
        * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
        Likewise.
        Likewise.
2005-06-17  Geoffrey Keating  
2005-06-17  Geoffrey Keating  
        PR c++/17413
        PR c++/17413
        * pt.c (type_unification_real): Apply template type deduction even
        * pt.c (type_unification_real): Apply template type deduction even
        to procedure parameters that are not dependent on a template
        to procedure parameters that are not dependent on a template
        parameter.
        parameter.
2005-06-16  Nathan Sidwell  
2005-06-16  Nathan Sidwell  
        * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
        * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
        change.
        change.
        (create_pseudo_type_info): First parameter is an int.
        (create_pseudo_type_info): First parameter is an int.
2005-06-15  Nathan Sidwell  
2005-06-15  Nathan Sidwell  
        PR c++/20678
        PR c++/20678
        * error.c (dump_expr) : Check DECL_NAME is not
        * error.c (dump_expr) : Check DECL_NAME is not
        null.
        null.
        * Make-lang.in: Reformat some long lines.
        * Make-lang.in: Reformat some long lines.
        (gt-cp-rtti.h): New target.
        (gt-cp-rtti.h): New target.
        (cp/rtti.o): Add dependency.
        (cp/rtti.o): Add dependency.
        * config-lang.in (gtfiles): Add cp/rtti.c.
        * config-lang.in (gtfiles): Add cp/rtti.c.
        * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
        * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
        CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
        CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
        CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
        CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
        CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
        CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
        CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
        CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
        (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
        (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
        ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
        ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
        class_desc_type_node, si_class_desc_type_node,
        class_desc_type_node, si_class_desc_type_node,
        vmi_class_desc_type_node, ptm_desc_type_node,
        vmi_class_desc_type_node, ptm_desc_type_node,
        base_desc_type_node): Remove.
        base_desc_type_node): Remove.
        * decl.c: Adjust documentation of global trees.
        * decl.c: Adjust documentation of global trees.
        * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
        * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
        TINFO_REAL_NAME): Remove.
        TINFO_REAL_NAME): Remove.
        (struct tinfo_s): New.
        (struct tinfo_s): New.
        (enum tinfo_kind): New.
        (enum tinfo_kind): New.
        (tinfo_descs): New.
        (tinfo_descs): New.
        (get_tinfo_decl): Adjust use of tinfo descriptor.
        (get_tinfo_decl): Adjust use of tinfo descriptor.
        (tinfo_base_init, generic_initializer, ptr_initializer,
        (tinfo_base_init, generic_initializer, ptr_initializer,
        ptm_initializer, class_initializer): Likewise.
        ptm_initializer, class_initializer): Likewise.
        (get_pseudo_ti_init): Take descriptor index. Adjust.
        (get_pseudo_ti_init): Take descriptor index. Adjust.
        (create_pseudo_type_info): Likewise.
        (create_pseudo_type_info): Likewise.
        (get_pseudo_ti_desc): Return descriptor index. Adjust.
        (get_pseudo_ti_desc): Return descriptor index. Adjust.
        (create_tinfo_types): Adjust use of create_pseudo_type_info.
        (create_tinfo_types): Adjust use of create_pseudo_type_info.
        (emit_tinfo_decl): Adjust use of tinfo descriptor.
        (emit_tinfo_decl): Adjust use of tinfo descriptor.
2005-06-14  Roger Sayle  
2005-06-14  Roger Sayle  
        * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
        * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
2005-06-13  Geoffrey Keating  
2005-06-13  Geoffrey Keating  
        * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
        * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
        (rule for installing g++.1 manpage): Does depend on installdirs.
        (rule for installing g++.1 manpage): Does depend on installdirs.
2005-06-13  Nathan Sidwell  
2005-06-13  Nathan Sidwell  
        PR c++/20789
        PR c++/20789
        * decl.c (cp_finish_decl): Clear runtime runtime initialization if
        * decl.c (cp_finish_decl): Clear runtime runtime initialization if
        in-class decl's initializer is bad.
        in-class decl's initializer is bad.
        PR c++/21929
        PR c++/21929
        * parser.c (struct cp_parser): Document that scope could be
        * parser.c (struct cp_parser): Document that scope could be
        error_mark.
        error_mark.
        (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
        (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
        scope.
        scope.
        (cp_parser_nested_name_specifier): Return NULL_TREE on error.
        (cp_parser_nested_name_specifier): Return NULL_TREE on error.
        (cp_parser_postfix_expression): Deal with null or error_mark
        (cp_parser_postfix_expression): Deal with null or error_mark
        scope.
        scope.
        (cp_parser_elaborated_type_specifier): Adjust
        (cp_parser_elaborated_type_specifier): Adjust
        cp_parser_nested_name_specifier call.
        cp_parser_nested_name_specifier call.
        * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
        * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
2005-06-12  Roger Sayle  
2005-06-12  Roger Sayle  
        PR c++/21930
        PR c++/21930
        * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
        * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
        Treat CONVERT_EXPR identically to NOP_EXPR.
        Treat CONVERT_EXPR identically to NOP_EXPR.
2005-06-10  Aldy Hernandez  
2005-06-10  Aldy Hernandez  
        PR c++/10611
        PR c++/10611
        * cvt.c (build_expr_type_conversion): Same.
        * cvt.c (build_expr_type_conversion): Same.
        * typeck.c (build_binary_op): Handle vectors.
        * typeck.c (build_binary_op): Handle vectors.
        (common_type): Same.
        (common_type): Same.
        (type_after_usual_arithmetic_conversions): Same.
        (type_after_usual_arithmetic_conversions): Same.
2005-06-08  Nathan Sidwell  
2005-06-08  Nathan Sidwell  
        PR c++/19497
        PR c++/19497
        * cp-tree.def (USING_DECL): Update documentation.
        * cp-tree.def (USING_DECL): Update documentation.
        * cp-tree.h (DECL_DEPENDENT_P): New.
        * cp-tree.h (DECL_DEPENDENT_P): New.
        (USING_DECL_DECLS, USING_DECL_SCOPE): New.
        (USING_DECL_DECLS, USING_DECL_SCOPE): New.
        * class.c (handle_using_decl): Move most of the processing to ...
        * class.c (handle_using_decl): Move most of the processing to ...
        * name-lookup.c (do_class_using_decl): ... here.  Make stricter.
        * name-lookup.c (do_class_using_decl): ... here.  Make stricter.
        (push_using_decl): Use USING_DECL_SCOPE.
        (push_using_decl): Use USING_DECL_SCOPE.
        (cp_emit_debug_info_for_using): Make extern.
        (cp_emit_debug_info_for_using): Make extern.
        * cxx-pretty-print.c (pp_cxx_statement) : Adjust.
        * cxx-pretty-print.c (pp_cxx_statement) : Adjust.
        * name-lookup.h (cp_emit_debug_info_for_using): Declare.
        * name-lookup.h (cp_emit_debug_info_for_using): Declare.
        * pt.c (tsubst_decl) : Use do_class_using_decl
        * pt.c (tsubst_decl) : Use do_class_using_decl
        when tsubsting.
        when tsubsting.
        (tsubst_expr): Use USING_DECL_SCOPE.
        (tsubst_expr): Use USING_DECL_SCOPE.
        * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
        * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
        * semantics.c (finish_member_declaration): Likewise.
        * semantics.c (finish_member_declaration): Likewise.
2005-06-08  Volker Reichelt  
2005-06-08  Volker Reichelt  
        PR c++/19894
        PR c++/19894
        * pt.c (tsubst): Reject pointer-to-member of type void.
        * pt.c (tsubst): Reject pointer-to-member of type void.
        PR c++/20563
        PR c++/20563
        * parser.c (cp_parser_label_declaration): Deal with invalid/missing
        * parser.c (cp_parser_label_declaration): Deal with invalid/missing
        identifiers.
        identifiers.
2005-06-07  Nathan Sidwell  
2005-06-07  Nathan Sidwell  
        * cp-tree.def (DEFAULT_ARG): Adjust documentation.
        * cp-tree.def (DEFAULT_ARG): Adjust documentation.
        * cp-tree.h (DEFARG_INSTANTIATIONS): New.
        * cp-tree.h (DEFARG_INSTANTIATIONS): New.
        (struct tree_default_arg): Add instantiations member.
        (struct tree_default_arg): Add instantiations member.
        * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
        * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
        VEC.
        VEC.
        * pt.c (tsubst_arg_types): Likewise.
        * pt.c (tsubst_arg_types): Likewise.
        * parser.c (cp_parser_late_parsing_default_args): Fix overeager
        * parser.c (cp_parser_late_parsing_default_args): Fix overeager
        assert in previous patch.
        assert in previous patch.
2005-06-06  Jakub Jelinek  
2005-06-06  Jakub Jelinek  
        * error.c (locate_error): Use gmsgid instead of msgid for argument
        * error.c (locate_error): Use gmsgid instead of msgid for argument
        name.
        name.
        (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
        (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
2005-06-06  Nathan Sidwell  
2005-06-06  Nathan Sidwell  
        PR 21903
        PR 21903
        * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
        * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
        * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
        * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
        argument to any early instantiations.
        argument to any early instantiations.
        * pt.c (tsubst_arg_types): Chain early instantiation of default arg.
        * pt.c (tsubst_arg_types): Chain early instantiation of default arg.
        PR c++/20637
        PR c++/20637
        * cp-tree.h (add_method): Add using_decl parameter.
        * cp-tree.h (add_method): Add using_decl parameter.
        * class.c (add_method): Add using_decl parameter.  Adjust error
        * class.c (add_method): Add using_decl parameter.  Adjust error
        messages.
        messages.
        (handle_using_decl): Pass the using decl to add_method.
        (handle_using_decl): Pass the using decl to add_method.
        (clone_function_decl): Adjust add_member calls.
        (clone_function_decl): Adjust add_member calls.
        * decl2.c (check_classfn): Likewise.
        * decl2.c (check_classfn): Likewise.
        * method.c (lazily_declare_fn): Likewise.
        * method.c (lazily_declare_fn): Likewise.
        * semantics.c (finish_member_declaration): Likewise.
        * semantics.c (finish_member_declaration): Likewise.
        * method.c (synthesize_method): Use inform, not warning.
        * method.c (synthesize_method): Use inform, not warning.
2005-06-06  Hans-Peter Nilsson  
2005-06-06  Hans-Peter Nilsson  
        * config-lang.in (target_libs): Remove target-gperf.
        * config-lang.in (target_libs): Remove target-gperf.
2005-06-05  Mark Mitchell  
2005-06-05  Mark Mitchell  
        PR c++/21619
        PR c++/21619
        * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
        * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
        * parser.c (cp_parser_postfix_expression): Allow non-constant
        * parser.c (cp_parser_postfix_expression): Allow non-constant
        expressions as arguments to __builtin_constant_p.
        expressions as arguments to __builtin_constant_p.
        * tree.c (builtin_valid_in_constant_expr_p): Use
        * tree.c (builtin_valid_in_constant_expr_p): Use
        DECL_IS_BUILTIN_CONSTANT_P.
        DECL_IS_BUILTIN_CONSTANT_P.
2005-06-03  Mark Mitchell  
2005-06-03  Mark Mitchell  
        PR c++/21853
        PR c++/21853
        * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
        * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
        the pointed-to type for a pointer-to-member.
        the pointed-to type for a pointer-to-member.
        PR c++/21336
        PR c++/21336
        * cp-tree.h (grok_op_properties): Remove friendp parameter.
        * cp-tree.h (grok_op_properties): Remove friendp parameter.
        * decl.c (grokfndecl): Adjust call.
        * decl.c (grokfndecl): Adjust call.
        (grok_op_properties): Determine the class of which the function is
        (grok_op_properties): Determine the class of which the function is
        a member by looking at its DECL_CONTEXT, not current_class_type.
        a member by looking at its DECL_CONTEXT, not current_class_type.
        * pt.c (tsubst_decl): Adjust call to grok_op_properties.
        * pt.c (tsubst_decl): Adjust call to grok_op_properties.
2005-06-02  Nathan Sidwell  
2005-06-02  Nathan Sidwell  
        * method.c (synthesize_method): Add addtional arg to warning call.
        * method.c (synthesize_method): Add addtional arg to warning call.
        PR c++/21280
        PR c++/21280
        * Make-lang.in (method.o): Add diagnostic.h
        * Make-lang.in (method.o): Add diagnostic.h
        * decl.c (start_preparsed_function): Use decl's location for file
        * decl.c (start_preparsed_function): Use decl's location for file
        info.
        info.
        * decl2.c (cp_finish_file): Set input_location before synthesizing
        * decl2.c (cp_finish_file): Set input_location before synthesizing
        a function.
        a function.
        (mark_used): When deferring a synthesized function, save current
        (mark_used): When deferring a synthesized function, save current
        location.  Do not set function's location when actually
        location.  Do not set function's location when actually
        synthesizing it.
        synthesizing it.
        * method.c: #include diagnostic.h.
        * method.c: #include diagnostic.h.
        (synthesize_method): Set the functions source location.  Show
        (synthesize_method): Set the functions source location.  Show
        needed location if errors are emitted.
        needed location if errors are emitted.
        * decl.c (start_decl): Simplify specialization handling. Remove
        * decl.c (start_decl): Simplify specialization handling. Remove
        unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
        unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
        * mangle.c (discriminator_for_local_entity): Use VEC_index.
        * mangle.c (discriminator_for_local_entity): Use VEC_index.
        PR c++/20350
        PR c++/20350
        * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
        * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
        PR c++/21151
        PR c++/21151
        * name-lookup.c (pushtag): Push local class even in a template.
        * name-lookup.c (pushtag): Push local class even in a template.
2005-05-31  Nathan Sidwell  
2005-05-31  Nathan Sidwell  
        PR c++/21165
        PR c++/21165
        * init.c (integral_constant_value): Check the type of the
        * init.c (integral_constant_value): Check the type of the
        initializer, not the decl.
        initializer, not the decl.
2005-05-30  Mark Mitchell  
2005-05-30  Mark Mitchell  
        PR c++/21784
        PR c++/21784
        * name-lookup.c (do_nonmember_using_decl): Ignore builtin
        * name-lookup.c (do_nonmember_using_decl): Ignore builtin
        functions, even when the used name is not a function.
        functions, even when the used name is not a function.
2005-05-30  Kazu Hirata  
2005-05-30  Kazu Hirata  
        * operators.def, optimize.c: Update copyright.
        * operators.def, optimize.c: Update copyright.
2005-05-28  Mark Mitchell  
2005-05-28  Mark Mitchell  
        PR c++/21210
        PR c++/21210
        * call.c (standard_conversion): Permit conversions to complex
        * call.c (standard_conversion): Permit conversions to complex
        types if conversion to the corresponding scalar type would be
        types if conversion to the corresponding scalar type would be
        permitted.
        permitted.
        PR c++/21340
        PR c++/21340
        * method.c (implicitly_declare_fn): Clear processing_template_decl
        * method.c (implicitly_declare_fn): Clear processing_template_decl
        when generating implicit declaration.
        when generating implicit declaration.
2005-05-27  Mark Mitchell  
2005-05-27  Mark Mitchell  
        PR c++/21614
        PR c++/21614
        * typeck.c (get_member_function_from_ptrfunc): Do not attempt
        * typeck.c (get_member_function_from_ptrfunc): Do not attempt
        conversions to base classes of incomplete types.
        conversions to base classes of incomplete types.
2005-05-27  Ian Lance Taylor  
2005-05-27  Ian Lance Taylor  
        * semantics.c (add_stmt): Add C++ frontend specific version.
        * semantics.c (add_stmt): Add C++ frontend specific version.
        * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
        * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
        (stmts_are_full_exprs_p): Declare.
        (stmts_are_full_exprs_p): Declare.
2005-05-27  Roger Sayle  
2005-05-27  Roger Sayle  
            Giovanni Bajo  
            Giovanni Bajo  
        * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
        * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
        * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
        * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
        of CONVERT_EXPR.
        of CONVERT_EXPR.
        (cp_parser_unary_expression): Likewise.
        (cp_parser_unary_expression): Likewise.
        * typeck.c (build_unary_op): Likewise.
        * typeck.c (build_unary_op): Likewise.
        * call.c (add_builtin_candidate, build_new_op): Likewise.
        * call.c (add_builtin_candidate, build_new_op): Likewise.
        * error.c (dump_expr): Likewise.
        * error.c (dump_expr): Likewise.
        * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
        * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
        * decl.c (ambi_op_p, grok_op_properties): Likewise.
        * decl.c (ambi_op_p, grok_op_properties): Likewise.
        * dump.c (dump_op): Likewise.
        * dump.c (dump_op): Likewise.
        * lex.c (init_operators): Likewise.
        * lex.c (init_operators): Likewise.
        * operators.def ("+"): Likewise.
        * operators.def ("+"): Likewise.
        * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
        * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
        conversion, if the result and argument types differ.
        conversion, if the result and argument types differ.
        * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
        * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
        like a NOP_EXPR when !processing_template_decl.
        like a NOP_EXPR when !processing_template_decl.
        * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
        * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
        (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
        (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
2005-05-27  Nathan Sidwell  
2005-05-27  Nathan Sidwell  
        PR c++/21455
        PR c++/21455
        * typeck.c (get_delta_difference): Cope with incomplete but equal
        * typeck.c (get_delta_difference): Cope with incomplete but equal
        classes.  Reorder if.
        classes.  Reorder if.
        PR c++/21681
        PR c++/21681
        * parser.c (cp_parser_late_parsing_for_member): Disable access
        * parser.c (cp_parser_late_parsing_for_member): Disable access
        checking for template functions.
        checking for template functions.
2005-05-26  Volker Reichelt  
2005-05-26  Volker Reichelt  
        PR c++/21768
        PR c++/21768
        * pt.c (redeclare_class_template): Change error message according
        * pt.c (redeclare_class_template): Change error message according
        to coding conventions.
        to coding conventions.
2005-05-26  Volker Reichelt  
2005-05-26  Volker Reichelt  
        * call.c (build_op_delete_call): Fix quoting in error message.
        * call.c (build_op_delete_call): Fix quoting in error message.
2005-05-25  Richard Henderson  
2005-05-25  Richard Henderson  
        PR libgcj/21692
        PR libgcj/21692
        * cp-tree.h (make_alias_for): Declare.
        * cp-tree.h (make_alias_for): Declare.
        * decl2.c (build_java_method_aliases): New.
        * decl2.c (build_java_method_aliases): New.
        (cp_finish_file): Call it.
        (cp_finish_file): Call it.
        * method.c (make_alias_for): Split out from ...
        * method.c (make_alias_for): Split out from ...
        (make_alias_for_thunk): ... here.
        (make_alias_for_thunk): ... here.
2005-05-25  Volker Reichelt  
2005-05-25  Volker Reichelt  
        PR c++/21686
        PR c++/21686
        * semantics.c (finish_id_expression): Fix quoting in error message.
        * semantics.c (finish_id_expression): Fix quoting in error message.
2005-05-25  DJ Delorie  
2005-05-25  DJ Delorie  
        * decl.c (duplicate_decls): Move warning control from if() to
        * decl.c (duplicate_decls): Move warning control from if() to
        warning(OPT_*).
        warning(OPT_*).
        * name-lookup.c (parse_using_directive): Likewise.
        * name-lookup.c (parse_using_directive): Likewise.
        * parser.c (cp_parser_elaborated_type_specifier): Likewise.
        * parser.c (cp_parser_elaborated_type_specifier): Likewise.
        (cp_parser_init_declarator): Likewise.
        (cp_parser_init_declarator): Likewise.
        * tree.c (handle_com_interface_attribute): Likewise.
        * tree.c (handle_com_interface_attribute): Likewise.
2005-05-24  Ziemowit Laski  
2005-05-24  Ziemowit Laski  
        * class.c (layout_class_type): Do not issue C++ ABI warnings
        * class.c (layout_class_type): Do not issue C++ ABI warnings
        for ObjC structs.
        for ObjC structs.
        * decl.c (objc_mark_locals_volatile): Streamline by calling
        * decl.c (objc_mark_locals_volatile): Streamline by calling
        objc_volatilize_decl().
        objc_volatilize_decl().
        * parser.c (cp_parser_objc_message_expression): Allow simple
        * parser.c (cp_parser_objc_message_expression): Allow simple
        type specifiers (instead of merely type names) as message
        type specifiers (instead of merely type names) as message
        receivers.
        receivers.
        * pt.c (template_args_equal): Do not call objc_comptypes().
        * pt.c (template_args_equal): Do not call objc_comptypes().
        * typeck.c (composite_pointer_type): If both pointers are
        * typeck.c (composite_pointer_type): If both pointers are
        ObjC-esque, arbitrarily choose the first; do not call
        ObjC-esque, arbitrarily choose the first; do not call
        objc_comptypes().
        objc_comptypes().
        (comptypes): Do not call objc_comptypes().
        (comptypes): Do not call objc_comptypes().
        (convert_for_assignment): Call objc_compare_types().
        (convert_for_assignment): Call objc_compare_types().
        (comp_ptr_ttypes_real): Call objc_type_quals_match() before
        (comp_ptr_ttypes_real): Call objc_type_quals_match() before
        concluding that types do not match.
        concluding that types do not match.
2005-05-24  Andrew Pinski  
2005-05-24  Andrew Pinski  
        PR C++/21645
        PR C++/21645
        * optimize.c (update_cloned_parm): Copy the TYPE also from the
        * optimize.c (update_cloned_parm): Copy the TYPE also from the
        original one.
        original one.
2005-05-19  Jakub Jelinek  
2005-05-19  Jakub Jelinek  
        PR c++/21495
        PR c++/21495
        * decl.c (grokdeclarator): Fix "storage class specified for"
        * decl.c (grokdeclarator): Fix "storage class specified for"
        error reporting.
        error reporting.
2005-05-19  Kazu Hirata  
2005-05-19  Kazu Hirata  
        * parser.c: Fix comment typos.
        * parser.c: Fix comment typos.
2005-05-18  Geoffrey Keating  
2005-05-18  Geoffrey Keating  
        * Make-lang.in (cc1plus-dummy): New.
        * Make-lang.in (cc1plus-dummy): New.
        (cc1plus-checksum.c): New.
        (cc1plus-checksum.c): New.
        (cc1plus-checksum.o): New.
        (cc1plus-checksum.o): New.
        (cc1plus): Add cc1plus-checksum.o.
        (cc1plus): Add cc1plus-checksum.o.
2005-05-17  H.J. Lu  
2005-05-17  H.J. Lu  
        PR C++/19664
        PR C++/19664
        * decl2.c (determine_visibility): Don't set visibility to
        * decl2.c (determine_visibility): Don't set visibility to
        hidden if it has been set explicitly by user.
        hidden if it has been set explicitly by user.
2005-05-17  Ziemowit Laski  
2005-05-17  Ziemowit Laski  
            Mike Stump  
            Mike Stump  
        Yet more Objective-C++...
        Yet more Objective-C++...
        * cp-objcp-common.h (cxx_get_alias_set): Move from
        * cp-objcp-common.h (cxx_get_alias_set): Move from
        here...
        here...
        (cxx_warn_unused_global_decl): Likewise.
        (cxx_warn_unused_global_decl): Likewise.
        (cp_expr_size): Likewise.
        (cp_expr_size): Likewise.
        (cp_tree_size): Likewise.
        (cp_tree_size): Likewise.
        (cp_var_mod_type_p): Likewise.
        (cp_var_mod_type_p): Likewise.
        (cxx_initialize_diagnostics): Likewise.
        (cxx_initialize_diagnostics): Likewise.
        (cxx_types_compatible_p): Likewise.
        (cxx_types_compatible_p): Likewise.
        * cp-tree.h: to here.
        * cp-tree.h: to here.
        (do_poplevel): Add.
        (do_poplevel): Add.
        * lex.c (D_OBJC): Add.
        * lex.c (D_OBJC): Add.
        (init_reswords): Add.
        (init_reswords): Add.
        * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
        * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
        * parser.c: Add c-common.h include.
        * parser.c: Add c-common.h include.
        * pt.c: Add c-common.h and cp-objcp-common.h includes.
        * pt.c: Add c-common.h and cp-objcp-common.h includes.
        (template_args_equal): Use objc_comptypes as well.
        (template_args_equal): Use objc_comptypes as well.
        (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
        (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
        * semantics.c (do_poplevel): Remove static.
        * semantics.c (do_poplevel): Remove static.
        * decl.c (objc_mark_locals_volatile): Don't change decls that are
        * decl.c (objc_mark_locals_volatile): Don't change decls that are
        already ok.
        already ok.
        * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
        * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
        Objective C++ early enough.
        Objective C++ early enough.
        * lex.c (struct resword reswords): Add Objective-C++ support.
        * lex.c (struct resword reswords): Add Objective-C++ support.
        * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
        * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
        (cp_parser_objc_message_receiver): Add.
        (cp_parser_objc_message_receiver): Add.
        (cp_parser_objc_message_args): Likewise.
        (cp_parser_objc_message_args): Likewise.
        (cp_parser_objc_message_expression): Likewise.
        (cp_parser_objc_message_expression): Likewise.
        (cp_parser_objc_encode_expression): Likewise.
        (cp_parser_objc_encode_expression): Likewise.
        (cp_parser_objc_defs_expression): Likewise.
        (cp_parser_objc_defs_expression): Likewise.
        (cp_parser_objc_protocol_expression): Likewise.
        (cp_parser_objc_protocol_expression): Likewise.
        (cp_parser_objc_selector_expression): Likewise.
        (cp_parser_objc_selector_expression): Likewise.
        (cp_parser_objc_expression): Likewise.
        (cp_parser_objc_expression): Likewise.
        (cp_parser_objc_visibility_spec): Likewise.
        (cp_parser_objc_visibility_spec): Likewise.
        (cp_parser_objc_method_type): Likewise.
        (cp_parser_objc_method_type): Likewise.
        (cp_parser_objc_protocol_qualifiers): Likewise.
        (cp_parser_objc_protocol_qualifiers): Likewise.
        (cp_parser_objc_typename): Likewise.
        (cp_parser_objc_typename): Likewise.
        (cp_parser_objc_selector_p): Likewise.
        (cp_parser_objc_selector_p): Likewise.
        (cp_parser_objc_selector): Likewise.
        (cp_parser_objc_selector): Likewise.
        (cp_parser_objc_method_keyword_params): Likewise.
        (cp_parser_objc_method_keyword_params): Likewise.
        (cp_parser_objc_method_tail_params_opt): Likewise.
        (cp_parser_objc_method_tail_params_opt): Likewise.
        (cp_parser_objc_interstitial_code): Likewise.
        (cp_parser_objc_interstitial_code): Likewise.
        (cp_parser_objc_method_signature): Likewise.
        (cp_parser_objc_method_signature): Likewise.
        (cp_parser_objc_method_prototype_list): Likewise.
        (cp_parser_objc_method_prototype_list): Likewise.
        (cp_parser_objc_method_definition_list): Likewise.
        (cp_parser_objc_method_definition_list): Likewise.
        (cp_parser_objc_class_ivars): Likewise.
        (cp_parser_objc_class_ivars): Likewise.
        (cp_parser_objc_identifier_list): Likewise.
        (cp_parser_objc_identifier_list): Likewise.
        (cp_parser_objc_alias_declaration): Likewise.
        (cp_parser_objc_alias_declaration): Likewise.
        (cp_parser_objc_class_declaration): Likewise.
        (cp_parser_objc_class_declaration): Likewise.
        (cp_parser_objc_protocol_declaration): Likewise.
        (cp_parser_objc_protocol_declaration): Likewise.
        (cp_parser_objc_protocol_refs_opt): Likewise.
        (cp_parser_objc_protocol_refs_opt): Likewise.
        (cp_parser_objc_superclass_or_category): Likewise.
        (cp_parser_objc_superclass_or_category): Likewise.
        (cp_parser_objc_class_interface): Likewise.
        (cp_parser_objc_class_interface): Likewise.
        (cp_parser_objc_class_implementation): Likewise.
        (cp_parser_objc_class_implementation): Likewise.
        (cp_parser_objc_end_implementation): Likewise.
        (cp_parser_objc_end_implementation): Likewise.
        (cp_parser_objc_declaration): Likewise.
        (cp_parser_objc_declaration): Likewise.
        (cp_parser_objc_try_catch_finally_statement): Likewise.
        (cp_parser_objc_try_catch_finally_statement): Likewise.
        (cp_parser_objc_synchronized_statement): Likewise.
        (cp_parser_objc_synchronized_statement): Likewise.
        (cp_parser_objc_throw_statement): Likewise.
        (cp_parser_objc_throw_statement): Likewise.
        (cp_parser_objc_statement): Likewise.
        (cp_parser_objc_statement): Likewise.
        (cp_parser_primary_expression): Add Objective-C++.
        (cp_parser_primary_expression): Add Objective-C++.
        (cp_parser_statement): Likewise.
        (cp_parser_statement): Likewise.
        (cp_parser_declaration): Likewise.
        (cp_parser_declaration): Likewise.
        (cp_parser_simple_type_specifier): Likewise.
        (cp_parser_simple_type_specifier): Likewise.
        (cp_parser_type_name): Likewise.
        (cp_parser_type_name): Likewise.
        (cp_parser_parameter_declaration_list): Likewise.
        (cp_parser_parameter_declaration_list): Likewise.
        (cp_parser_member_declaration) Likewise.
        (cp_parser_member_declaration) Likewise.
        * tree.c: Include debug.h.
        * tree.c: Include debug.h.
        * typeck.c (composite_pointer_type): Add Objective-C++ support.
        * typeck.c (composite_pointer_type): Add Objective-C++ support.
        (finish_class_member_access_expr): Likewise.
        (finish_class_member_access_expr): Likewise.
        (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
        (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
        (build_modify_expr): Allow objc to generate write barriers.
        (build_modify_expr): Allow objc to generate write barriers.
        * Make-lang.in (cp/tree.o): Add debug.h.
        * Make-lang.in (cp/tree.o): Add debug.h.
        * tree.c (lvalue_p_1, case CONST_DECL): Add.
        * tree.c (lvalue_p_1, case CONST_DECL): Add.
2005-05-18  Jan Hubicka  
2005-05-18  Jan Hubicka  
        * method.c: Include tree-pass.h
        * method.c: Include tree-pass.h
        (use_thunk): Lower body before expanding.
        (use_thunk): Lower body before expanding.
2005-05-17  Jakub Jelinek  
2005-05-17  Jakub Jelinek  
        PR c++/21454
        PR c++/21454
        * decl.c (maybe_deduce_size_from_array_init): Call
        * decl.c (maybe_deduce_size_from_array_init): Call
        cp_apply_type_quals_to_decl after completing array type.
        cp_apply_type_quals_to_decl after completing array type.
2005-05-16  Richard Henderson  
2005-05-16  Richard Henderson  
        * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
        * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
        (build_library_fn): ... here.
        (build_library_fn): ... here.
2005-05-12  Ian Lance Taylor  
2005-05-12  Ian Lance Taylor  
        * cp-tree.h (cp_stmt_codes): Don't define.
        * cp-tree.h (cp_stmt_codes): Don't define.
        (statement_code_p): Declare.
        (statement_code_p): Declare.
        (STATEMENT_CODE_P): Define.
        (STATEMENT_CODE_P): Define.
        * lex.c (statement_code_p): Define.
        * lex.c (statement_code_p): Define.
        (cxx_init): Use actual codes in stmt_codes initializer, not
        (cxx_init): Use actual codes in stmt_codes initializer, not
        cp_stmt_codes macro.  Initialize statement_code_p directly, rather
        cp_stmt_codes macro.  Initialize statement_code_p directly, rather
        than using INIT_STATEMENT_CODES.
        than using INIT_STATEMENT_CODES.
2005-05-09  Mark Mitchell  
2005-05-09  Mark Mitchell  
        * typeck.c (build_unary_op): Do not resort to address arithmetic
        * typeck.c (build_unary_op): Do not resort to address arithmetic
        when taking the address of a COMPONENT_REF.
        when taking the address of a COMPONENT_REF.
2005-05-08  Kazu Hirata  
2005-05-08  Kazu Hirata  
        * class.c (vtbl_init_data_s): Change the type of fns to
        * class.c (vtbl_init_data_s): Change the type of fns to
        VEC(tree,gc)*.
        VEC(tree,gc)*.
        (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
        (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
        Use VEC instead of VARRAY.
        Use VEC instead of VARRAY.
2005-05-07  Richard Sandiford  
2005-05-07  Richard Sandiford  
        * mangle.c: Remove a reference to the MIPS -mint64 option.
        * mangle.c: Remove a reference to the MIPS -mint64 option.
2005-05-07  Kazu Hirata  
2005-05-07  Kazu Hirata  
        * decl.c (wrapup_globals_for_namespace): Use VEC instead of
        * decl.c (wrapup_globals_for_namespace): Use VEC instead of
        VARRAY.
        VARRAY.
        * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
        * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
        * name-lookup.h (cp_binding_level): Change the type of
        * name-lookup.h (cp_binding_level): Change the type of
        static_decls to VEC(tree,gc)*.
        static_decls to VEC(tree,gc)*.
        * mangle.c (globals): Change the type of substitutions to
        * mangle.c (globals): Change the type of substitutions to
        VEC(tree,gc)*.
        VEC(tree,gc)*.
        (dump_substitution_candidates, add_substitution,
        (dump_substitution_candidates, add_substitution,
        find_substitution, finish_mangling, init_mangle): Use VEC
        find_substitution, finish_mangling, init_mangle): Use VEC
        instead of VARRAY.
        instead of VARRAY.
2005-05-06  Kazu Hirata  
2005-05-06  Kazu Hirata  
        * decl2.c (spew_debug): Remove.
        * decl2.c (spew_debug): Remove.
        * decl2.c (ssdf_decls, start_static_storage_duration_function,
        * decl2.c (ssdf_decls, start_static_storage_duration_function,
        generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
        generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
        * decl2.c (pending_statics, note_vague_linkage_var,
        * decl2.c (pending_statics, note_vague_linkage_var,
        cp_finish_file): Use VEC instead of VARRAY.
        cp_finish_file): Use VEC instead of VARRAY.
        (pending_statics_used): Remove.
        (pending_statics_used): Remove.
2005-05-05  Kazu Hirata  
2005-05-05  Kazu Hirata  
        * decl2.c (deferred_fns, note_vague_linkage_fn,
        * decl2.c (deferred_fns, note_vague_linkage_fn,
        cp_finish_file): Use VEC instead of VARRAY.
        cp_finish_file): Use VEC instead of VARRAY.
2005-05-05  Mark Mitchell  
2005-05-05  Mark Mitchell  
        PR c++/21352
        PR c++/21352
        * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
        * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
2005-05-05  Kazu Hirata  
2005-05-05  Kazu Hirata  
        * pt.c: Fix a comment typo.
        * pt.c: Fix a comment typo.
2005-05-04  Kazu Hirata  
2005-05-04  Kazu Hirata  
        * cp-tree.h (language_function): Change the type of
        * cp-tree.h (language_function): Change the type of
        x_local_names to VEC.
        x_local_names to VEC.
        * decl.c (push_local_name): Adjust uses of local_names.
        * decl.c (push_local_name): Adjust uses of local_names.
2005-05-03  Kazu Hirata  
2005-05-03  Kazu Hirata  
        * friend.c, lex.c, mangle.c, repo.c: Update copyright.
        * friend.c, lex.c, mangle.c, repo.c: Update copyright.
2005-05-02  Kazu Hirata  
2005-05-02  Kazu Hirata  
        * class.c (local_classes, init_class_processing): Use VEC
        * class.c (local_classes, init_class_processing): Use VEC
        instead of VARRAY.
        instead of VARRAY.
        * cp-tree.h (local_classes): Likewise.
        * cp-tree.h (local_classes): Likewise.
        * mangle.c (discriminator_for_local_entity): Likewise.
        * mangle.c (discriminator_for_local_entity): Likewise.
        * name-lookup.c (pushtag): Likewise.
        * name-lookup.c (pushtag): Likewise.
        * class.c (current_lang_depth, push_lang_context,
        * class.c (current_lang_depth, push_lang_context,
        pop_lang_context): Use VEC instead of VARRAY.
        pop_lang_context): Use VEC instead of VARRAY.
        * cp-tree.h (saved_scope): Use VEC for lang_base instead of
        * cp-tree.h (saved_scope): Use VEC for lang_base instead of
        VARRAY.
        VARRAY.
        * name-lookup.c (push_to_top_level): Use VEC instead of
        * name-lookup.c (push_to_top_level): Use VEC instead of
        VARRAY.
        VARRAY.
2005-05-02  Paolo Bonzini  
2005-05-02  Paolo Bonzini  
        * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
        * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
        for BUILT_IN_MD built-ins.
        for BUILT_IN_MD built-ins.
2005-05-02  Michael Matz  
2005-05-02  Michael Matz  
        PR c++/19542
        PR c++/19542
        * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
        * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
        common frontend.
        common frontend.
        (null_node): Remove.
        (null_node): Remove.
        * lex.c (cxx_init): Move null_node initialisation to C common frontend.
        * lex.c (cxx_init): Move null_node initialisation to C common frontend.
2005-04-25  Ian Lance Taylor  
2005-04-25  Ian Lance Taylor  
        * cp-tree.def: Add EXPR_STMT.
        * cp-tree.def: Add EXPR_STMT.
        * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
        * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
        (EXPR_STMT_EXPR): Define.
        (EXPR_STMT_EXPR): Define.
        * cp-gimplify.c: Include "flags.h".
        * cp-gimplify.c: Include "flags.h".
        (gimplify_expr_stmt): New static function.
        (gimplify_expr_stmt): New static function.
        (cp_gimplify_expr): Handle EXPR_STMT.
        (cp_gimplify_expr): Handle EXPR_STMT.
        * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
        * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
        rather than pp_expression.
        rather than pp_expression.
        (pp_cxx_statement): Handle EXPR_STMT.
        (pp_cxx_statement): Handle EXPR_STMT.
        * dump.c (cp_dump_tree): 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
        * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
        initializer.
        initializer.
2005-04-25  Andrew Pinski  
2005-04-25  Andrew Pinski  
        PR C++/21188
        PR C++/21188
        * rtti.c (ifnonnull): Cast the zero comparison operand
        * rtti.c (ifnonnull): Cast the zero comparison operand
        to the correct type.
        to the correct type.
2005-04-24  Jakub Jelinek  
2005-04-24  Jakub Jelinek  
        PR middle-end/20991
        PR middle-end/20991
        * class.c: Include cgraph.h.
        * class.c: Include cgraph.h.
        (cp_fold_obj_type_ref): Set node->local.vtable_method.
        (cp_fold_obj_type_ref): Set node->local.vtable_method.
        * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
        * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
2005-04-12  Markus F.X.J. Oberhumer  
2005-04-12  Markus F.X.J. Oberhumer  
        * mangle.c (write_builtin_type): Handle integer types which are
        * mangle.c (write_builtin_type): Handle integer types which are
        not one of the shared integer type nodes and emit a "vendor
        not one of the shared integer type nodes and emit a "vendor
        extended builtin type" with an encoding in the form of "u5int96".
        extended builtin type" with an encoding in the form of "u5int96".
2005-04-24  Ian Lance Taylor  
2005-04-24  Ian Lance Taylor  
        * cp-tree.def (USING_STMT): Change class to tcc_statement.
        * cp-tree.def (USING_STMT): Change class to tcc_statement.
        (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
        (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
        (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
        (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
        (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
        (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
2005-04-23  DJ Delorie  
2005-04-23  DJ Delorie  
        * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
        * 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,
        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()
        repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
        callers.
        callers.
2005-04-22  Per Bothner  
2005-04-22  Per Bothner  
        * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
        * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
        input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
        input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
2005-04-22  Alexandre Oliva  
2005-04-22  Alexandre Oliva  
        PR c++/21087
        PR c++/21087
        * name-lookup.c (push_overloaded_decl): Do not overload with
        * name-lookup.c (push_overloaded_decl): Do not overload with
        non-duplicate anticipated built-in.
        non-duplicate anticipated built-in.
2005-04-21  Kazu Hirata  
2005-04-21  Kazu Hirata  
        * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
        * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
        VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
        VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
2005-04-21  Nathan Sidwell  
2005-04-21  Nathan Sidwell  
        * cp-tree.h: Adjust for new VEC API.
        * cp-tree.h: Adjust for new VEC API.
        Define VEC(tree_pair_s,gc).
        Define VEC(tree_pair_s,gc).
        (struct save_scope): Adjust.
        (struct save_scope): Adjust.
        (struct lang_type_class): Adjust.
        (struct lang_type_class): Adjust.
        (unemitted_tinfo_decls): Adjust.
        (unemitted_tinfo_decls): Adjust.
        * class.c (add_method, resort_type_method_vec,
        * class.c (add_method, resort_type_method_vec,
        finish_struct_methods, struct find_final_overrider_data,
        finish_struct_methods, struct find_final_overrider_data,
        dfs_find_final_overrider_pre, find_final_overrider,
        dfs_find_final_overrider_pre, find_final_overrider,
        get_vcall_index, warn_hidden, walk_subobject_offsets,
        get_vcall_index, warn_hidden, walk_subobject_offsets,
        check_methods, fixup_inline_methods, end_of_class,
        check_methods, fixup_inline_methods, end_of_class,
        warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
        warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
        add_vcall_offset): Adjust.
        add_vcall_offset): Adjust.
        * decl.c (xref_basetypes, finish_method): Adjust.
        * decl.c (xref_basetypes, finish_method): Adjust.
        * decl2.c (check_classfn): Adjust.
        * decl2.c (check_classfn): Adjust.
        * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
        * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
        * method.c (do_build_copy_constructor): Adjust.
        * method.c (do_build_copy_constructor): Adjust.
        * name-lookup.c (new_class_binding, store_binding,
        * name-lookup.c (new_class_binding, store_binding,
        store_bindings, store_class_bindings): Adjust.
        store_bindings, store_class_bindings): Adjust.
        * name-lookup.h: Define VEC(cxx_saved_binding,gc),
        * name-lookup.h: Define VEC(cxx_saved_binding,gc),
        VEC(cp_class_binding,gc).
        VEC(cp_class_binding,gc).
        (struct cp_binding_level): Adjust.
        (struct cp_binding_level): Adjust.
        * parser.c: Define VEC(cp_token_position,heap).
        * parser.c: Define VEC(cp_token_position,heap).
        (struct cp_lexer): Adjust.
        (struct cp_lexer): Adjust.
        (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
        (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
        cp_lexer_save_tokens): Adjust.
        cp_lexer_save_tokens): Adjust.
        * pt.c (retrieve_specialization,
        * pt.c (retrieve_specialization,
        check_explicit_specialization): Adjust.
        check_explicit_specialization): Adjust.
        * rtti.c (unemitted_tinfo_decls): Adjust.
        * rtti.c (unemitted_tinfo_decls): Adjust.
        (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
        (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
        get_pseudo_ti_desc): Adjust.
        get_pseudo_ti_desc): Adjust.
        * search.c (dfs_access_in_type, lookup_conversion_operator,
        * search.c (dfs_access_in_type, lookup_conversion_operator,
        lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
        lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
        dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
        dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
        * semantics.c: Define VEC(deferred_access,gc).
        * semantics.c: Define VEC(deferred_access,gc).
        (push_deferring_access_checks): Adjust.
        (push_deferring_access_checks): Adjust.
        * typeck2.c (abstract_virtuals_error): Adjust.
        * typeck2.c (abstract_virtuals_error): Adjust.
2005-04-20  Ian Lance Taylor  
2005-04-20  Ian Lance Taylor  
        * cp-tree.def: Add STMT_EXPR.
        * cp-tree.def: Add STMT_EXPR.
        * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
        * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
        (STMT_EXPR_STMT): Define.
        (STMT_EXPR_STMT): Define.
        * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
        * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
        STMT_EXPR.
        STMT_EXPR.
        (pp_cxx_expression): Likewise.
        (pp_cxx_expression): Likewise.
        (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
        (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
        * dump.c (cp_dump_tree): Handle STMT_EXPR.
        * dump.c (cp_dump_tree): Handle STMT_EXPR.
2005-04-18  Kazu Hirata  
2005-04-18  Kazu Hirata  
        * decl.c (expand_static_init): Call build2 and build3 instead
        * decl.c (expand_static_init): Call build2 and build3 instead
        of build.
        of build.
        * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
        * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
2005-04-17  Ian Lance Taylor  
2005-04-17  Ian Lance Taylor  
        * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
        * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
        * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
        * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
        ARROW_EXPR.
        ARROW_EXPR.
        (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
        (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
        (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
        (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
        ALIGNOF_EXPR.
        ALIGNOF_EXPR.
        * typeck.c (cxx_sizeof_or_alignof_type): Update call to
        * typeck.c (cxx_sizeof_or_alignof_type): Update call to
        c_sizeof_or_alignof_type for change in parameter type.
        c_sizeof_or_alignof_type for change in parameter type.
2005-04-16  Mark Mitchell  
2005-04-16  Mark Mitchell  
        PR c++/21025
        PR c++/21025
        * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
        * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
        which sizeof/alignof is dependent, rather than just whether we are
        which sizeof/alignof is dependent, rather than just whether we are
        processing_template_decl.
        processing_template_decl.
2005-04-17  Kazu Hirata  
2005-04-17  Kazu Hirata  
        * cp-tree.h (LOOKUP_GLOBAL): Remove.
        * cp-tree.h (LOOKUP_GLOBAL): Remove.
        (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
        (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
        LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
        LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
        LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
        LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
        their values.
        their values.
2005-04-15  Richard Henderson  
2005-04-15  Richard Henderson  
        PR middle-end/14311
        PR middle-end/14311
        * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
        * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
2005-04-15  Kazu Hirata  
2005-04-15  Kazu Hirata  
        * cp-tree.h (lang_type_class): Remove redefined.  Move
        * cp-tree.h (lang_type_class): Remove redefined.  Move
        java_interface into where redefined was.  Increment the width
        java_interface into where redefined was.  Increment the width
        of dummy.
        of dummy.
        (TYPE_REDEFINED): Remove.
        (TYPE_REDEFINED): Remove.
2005-04-14  Kazu Hirata  
2005-04-14  Kazu Hirata  
        * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
        * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
        CLASSTYPE_TEMPLATE_LEVEL): Remove.
        CLASSTYPE_TEMPLATE_LEVEL): Remove.
2005-04-11  Mark Mitchell  
2005-04-11  Mark Mitchell  
        * decl2.c (determine_visibility): Don't use export_class_data.
        * decl2.c (determine_visibility): Don't use export_class_data.
        (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
        (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
        TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
        TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
2005-04-09  Kazu Hirata  
2005-04-09  Kazu Hirata  
        * cp-tree.h (cxx_alignof): Remove.
        * cp-tree.h (cxx_alignof): Remove.
        * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
        * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
        * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
        * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
        CONV_STATIC_CAST): Remove.
        CONV_STATIC_CAST): Remove.
        * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
        * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
        * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
        * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
        * cp-tree.h (cp_deprecated): Remove.
        * cp-tree.h (cp_deprecated): Remove.
2005-04-08  Ian Lance Taylor  
2005-04-08  Ian Lance Taylor  
        * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
        * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
        CONTINUE_STMT, SWITCH_STMT.
        CONTINUE_STMT, SWITCH_STMT.
        * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
        * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
        BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
        BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
        (WHILE_COND, WHILE_BODY): Define.
        (WHILE_COND, WHILE_BODY): Define.
        (DO_COND, DO_BODY): Define.
        (DO_COND, DO_BODY): Define.
        (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
        (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
        (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
        (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
        * cp-gimplify.c (enum bc_t): Define.
        * cp-gimplify.c (enum bc_t): Define.
        (struct cp_gimplify_ctx, ctxp): Define.
        (struct cp_gimplify_ctx, ctxp): Define.
        (push_context, pop_context): New static functions.
        (push_context, pop_context): New static functions.
        (begin_bc_block, finish_bc_block): New static functions.
        (begin_bc_block, finish_bc_block): New static functions.
        (build_bc_goto): New static function.
        (build_bc_goto): New static function.
        (gimplify_cp_loop, gimplify_for_stmt): New static functions.
        (gimplify_cp_loop, gimplify_for_stmt): New static functions.
        (gimplify_while_stmt, gimplify_do_stmt): Likewise.
        (gimplify_while_stmt, gimplify_do_stmt): Likewise.
        (gimplify_switch_stmt): Likewise.
        (gimplify_switch_stmt): Likewise.
        (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
        (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
        SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
        SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
        (cp_genericize): Call push_context and pop_context.
        (cp_genericize): Call push_context and pop_context.
        * semantics.c (finish_break_stmt): Just call build_stmt
        * semantics.c (finish_break_stmt): Just call build_stmt
        (BREAK_STMT) rather than build_break_stmt.
        (BREAK_STMT) rather than build_break_stmt.
        (finish_continue_stmt): Corresponding change.
        (finish_continue_stmt): Corresponding change.
        * decl.c (pop_switch): Update call to c_do_switch_warnings for new
        * decl.c (pop_switch): Update call to c_do_switch_warnings for new
        parameters.
        parameters.
        * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
        * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
        WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
        WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
        * dump.c (cp_dump_tree): Likewise.
        * dump.c (cp_dump_tree): Likewise.
2005-04-08  Mark Mitchell  
2005-04-08  Mark Mitchell  
        PR c++/20905
        PR c++/20905
        * parser.c (cp_parser_type_specifier_seq): Add is_condition
        * parser.c (cp_parser_type_specifier_seq): Add is_condition
        parameter.
        parameter.
        (cp_parser_new_type_id): Pass it.
        (cp_parser_new_type_id): Pass it.
        (cp_parser_condition): Likewise.
        (cp_parser_condition): Likewise.
        (cp_parser_conversion_type_id): Likewise.
        (cp_parser_conversion_type_id): Likewise.
        (cp_parser_type_id): Likewise.
        (cp_parser_type_id): Likewise.
        (cp_parser_type_specifier_seq): In a condition, do not allow
        (cp_parser_type_specifier_seq): In a condition, do not allow
        invalid type-specifier combinations.
        invalid type-specifier combinations.
        (cp_parser_exception_declaration): Adjust call to
        (cp_parser_exception_declaration): Adjust call to
        cp_parser_type_specifier_seq.
        cp_parser_type_specifier_seq.
        * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
        * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
        * cp-tree.h (struct tinst_level): Add in_system_header_p.
        * cp-tree.h (struct tinst_level): Add in_system_header_p.
        (TINST_IN_SYSTEM_HEADER_P): New macro.
        (TINST_IN_SYSTEM_HEADER_P): New macro.
        (make_tinst_level): Remove.
        (make_tinst_level): Remove.
        * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
        * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
        the instantiated class.
        the instantiated class.
        (push_tinst_level): Do not use make_tinst_level.  Set
        (push_tinst_level): Do not use make_tinst_level.  Set
        TINST_IN_SYSTEM_HEADER_P.
        TINST_IN_SYSTEM_HEADER_P.
        (pop_tinst_level): Likewise.
        (pop_tinst_level): Likewise.
        (instantiate_class_template): Set in_system_header.
        (instantiate_class_template): Set in_system_header.
        (instantiate_pending_templates): Likewise.
        (instantiate_pending_templates): Likewise.
        * tree.c (make_tinst_level): Remove.
        * tree.c (make_tinst_level): Remove.
2005-04-06  Joseph S. Myers  
2005-04-06  Joseph S. Myers  
        * decl.c (start_decl): Apply pending #pragma weak regardless of
        * decl.c (start_decl): Apply pending #pragma weak regardless of
        scope.
        scope.
2005-04-06  Mark Mitchell  
2005-04-06  Mark Mitchell  
        PR c++/20212
        PR c++/20212
        * pt.c (regenerate_decl_from_template): Copy attributes for
        * pt.c (regenerate_decl_from_template): Copy attributes for
        parameters from the pattern to the instantiation.
        parameters from the pattern to the instantiation.
2005-04-05  Mark Mitchell  
2005-04-05  Mark Mitchell  
        PR c++/20734
        PR c++/20734
        * cp-tree.def (OFFSET_REF): Correct comments.
        * cp-tree.def (OFFSET_REF): Correct comments.
        * init.c (build_offset_ref): Remove misleading comment.
        * init.c (build_offset_ref): Remove misleading comment.
        * typeck.c (build_unary_op): Handle pointer-to-member creation
        * typeck.c (build_unary_op): Handle pointer-to-member creation
        here, rather than ...
        here, rather than ...
        (unary_complex_lvalue): ... here.
        (unary_complex_lvalue): ... here.
2005-04-06  Jason Merrill  
2005-04-06  Jason Merrill  
        PR c++/19312
        PR c++/19312
        * tree.c (stabilize_init): Don't bother trying to stabilize
        * tree.c (stabilize_init): Don't bother trying to stabilize
        something with no side-effects.
        something with no side-effects.
2005-04-05  Mark Mitchell  
2005-04-05  Mark Mitchell  
        PR c++/20763
        PR c++/20763
        * decl.c (grokdeclarator): Correct attribute handling.
        * decl.c (grokdeclarator): Correct attribute handling.
2005-04-05  Mark Mitchell  
2005-04-05  Mark Mitchell  
        PR c++/19159
        PR c++/19159
        * decl2.c (import_export_decl): Use non-COMDAT external linkage
        * decl2.c (import_export_decl): Use non-COMDAT external linkage
        for virtual tables, typeinfo, etc. that will be emitted in only
        for virtual tables, typeinfo, etc. that will be emitted in only
        one translation unit on systems without weak symbols.
        one translation unit on systems without weak symbols.
2005-04-04  Mark Mitchell  
2005-04-04  Mark Mitchell  
        PR c++/20679
        PR c++/20679
        * parser.c (cp_parser_template_name): Fix thinko.
        * parser.c (cp_parser_template_name): Fix thinko.
2005-04-04  Nathan Sidwell  
2005-04-04  Nathan Sidwell  
        PR c++/20746
        PR c++/20746
        * method.c (use_thunk): Protect covariant pointer return
        * method.c (use_thunk): Protect covariant pointer return
        adjustments from NULL pointers.
        adjustments from NULL pointers.
2005-04-04  Jan Hubicka  
2005-04-04  Jan Hubicka  
        * decl2.c (finish_objects): Revert my previous patch.
        * decl2.c (finish_objects): Revert my previous patch.
        (cp_finish_file): Likewise.
        (cp_finish_file): Likewise.
2005-04-03  Kazu Hirata  
2005-04-03  Kazu Hirata  
        * pt.c: Fix comment typos.
        * pt.c: Fix comment typos.
2005-04-03  Nathan Sidwell  
2005-04-03  Nathan Sidwell  
        PR c++/20723
        PR c++/20723
        * pt.c (more_specialized_fn): Member functions are unordered wrt
        * pt.c (more_specialized_fn): Member functions are unordered wrt
        non-members.  Conversion operators are unordered wrt other
        non-members.  Conversion operators are unordered wrt other
        functions.
        functions.
2005-04-01  Nathan Sidwell  
2005-04-01  Nathan Sidwell  
        * call.c (add_template_candidates_real): Remove length parameter
        * call.c (add_template_candidates_real): Remove length parameter
        from fn_type_unification call.
        from fn_type_unification call.
        * class.c (resolve_address_of_overloaded_function): Likewise
        * class.c (resolve_address_of_overloaded_function): Likewise
        * cp-tree.h (fn_type_unification): Remove length parameter.
        * cp-tree.h (fn_type_unification): Remove length parameter.
        * pt.c (get_bindings_overload): Remove.
        * pt.c (get_bindings_overload): Remove.
        (get_bindings_real): Rename to ...
        (get_bindings_real): Rename to ...
        (get_bindings): ... here.  Remove length and strict
        (get_bindings): ... here.  Remove length and strict
        parameters. Change return type flag to boolean.  Remove original
        parameters. Change return type flag to boolean.  Remove original
        forwarding function.
        forwarding function.
        (determine_specialization): Adjust get_bindings call.
        (determine_specialization): Adjust get_bindings call.
        (fn_type_unification): Remove length parameter.  Adjust.
        (fn_type_unification): Remove length parameter.  Adjust.
        (type_unification_real): Remove length parameter.  Adjust.
        (type_unification_real): Remove length parameter.  Adjust.
        (resolve_overloaded_unification): Adjust get_bindings call.
        (resolve_overloaded_unification): Adjust get_bindings call.
        (try_one_overload): Simplify confusing cascaded if control flow.
        (try_one_overload): Simplify confusing cascaded if control flow.
        (unify): Remove length paramter from type_unification_real call.
        (unify): Remove length paramter from type_unification_real call.
        (most_specialized_instantiation): Adjust get_bindings calls.
        (most_specialized_instantiation): Adjust get_bindings calls.
        (most_specialized): Likewise.
        (most_specialized): Likewise.
2005-03-31  Nathan Sidwell  
2005-03-31  Nathan Sidwell  
        PR c++/19203, implement DR 214
        PR c++/19203, implement DR 214
        * call.c (joust): Use more_specialized_fn.
        * call.c (joust): Use more_specialized_fn.
        * cp-tree.h (DEDUCE_ORDER): Remove.
        * cp-tree.h (DEDUCE_ORDER): Remove.
        (more_specialized): Replace with ...
        (more_specialized): Replace with ...
        (more_specialized_fn): ... this.
        (more_specialized_fn): ... this.
        * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
        * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
        case.
        case.
        (type_unification_real): Remove DEDUCE_ORDER case.
        (type_unification_real): Remove DEDUCE_ORDER case.
        (more_specialized): Replace with ...
        (more_specialized): Replace with ...
        (more_specialized_fn): ... this.  Implement DR 214.
        (more_specialized_fn): ... this.  Implement DR 214.
        (most_specialized_instantiation): Use get_bindings_real directly.
        (most_specialized_instantiation): Use get_bindings_real directly.
2005-03-31  Gabriel Dos Reis  
2005-03-31  Gabriel Dos Reis  
        PR c++/18644
        PR c++/18644
        * call.c (build_new_op): Remove check for -Wsynth.
        * call.c (build_new_op): Remove check for -Wsynth.
2005-03-31  Jan Hubicka  
2005-03-31  Jan Hubicka  
        * decl2.c (finish_objects): Mark ctor as needed.
        * decl2.c (finish_objects): Mark ctor as needed.
        (cp_finish_file): Output variables only in nonunit-at-a-time.
        (cp_finish_file): Output variables only in nonunit-at-a-time.
2005-03-29  Richard Henderson  
2005-03-29  Richard Henderson  
        PR c/20519
        PR c/20519
        * decl.c (cp_complete_array_type): Rename from complete_array_type.
        * decl.c (cp_complete_array_type): Rename from complete_array_type.
        Use the new complete_array_type in c-common.c.  Update all callers.
        Use the new complete_array_type in c-common.c.  Update all callers.
        * cp-tree.h (cp_complete_array_type): Update to match.
        * cp-tree.h (cp_complete_array_type): Update to match.
2005-03-24  Geoffrey Keating  
2005-03-24  Geoffrey Keating  
        * typeck.c (build_static_cast_1): Allow scalar_cast between
        * typeck.c (build_static_cast_1): Allow scalar_cast between
        any integral, floating, or enumeration type.
        any integral, floating, or enumeration type.
2005-03-24  Steven Bosscher  
2005-03-24  Steven Bosscher  
        * typeck.c (comptypes): First determine if the types are compatible
        * typeck.c (comptypes): First determine if the types are compatible
        from a target-independent point of view.  Check target attributes
        from a target-independent point of view.  Check target attributes
        last.
        last.
        * class.c (build_base_path):
        * class.c (build_base_path):
        (build_vbase_offset_vtbl_entries):
        (build_vbase_offset_vtbl_entries):
        (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
        (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
        * error.c (dump_expr): Likewise.
        * error.c (dump_expr): Likewise.
        * init.c (build_zero_init, expand_cleanup_for_base,
        * init.c (build_zero_init, expand_cleanup_for_base,
        build_vec_delete_1): Likewise.
        build_vec_delete_1): Likewise.
        * mangle.c (write_integer_cst): Likewise.
        * mangle.c (write_integer_cst): Likewise.
        * method.c (thunk_adjust): Likewise.
        * method.c (thunk_adjust): Likewise.
        * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
        * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
        * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
        * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
        * typeck.c (build_ptrmemfunc_access_expr,
        * typeck.c (build_ptrmemfunc_access_expr,
        (get_member_function_from_ptrfunc): Likewise.
        (get_member_function_from_ptrfunc): Likewise.
2005-03-23  Joseph S. Myers  
2005-03-23  Joseph S. Myers  
        * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
        * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2005-03-23  Joseph S. Myers  
2005-03-23  Joseph S. Myers  
        * cp-tree.h (perform_integral_promotions): Remove.
        * cp-tree.h (perform_integral_promotions): Remove.
        (default_conversion): Add.
        (default_conversion): Add.
2005-03-22  Mark Mitchell  
2005-03-22  Mark Mitchell  
        * parser.c (cp_parser_warn_min_max): New function.
        * parser.c (cp_parser_warn_min_max): New function.
        (cp_parser_binary_expression): Use it.
        (cp_parser_binary_expression): Use it.
        (cp_parser_assignment_operator_opt): Likewise.
        (cp_parser_assignment_operator_opt): Likewise.
        (cp_parser_operator): Likewise.
        (cp_parser_operator): Likewise.
2005-03-22  Volker Reichelt  
2005-03-22  Volker Reichelt  
        PR c++/19980
        PR c++/19980
        * decl.c (start_preparsed_function): Robustify.
        * decl.c (start_preparsed_function): Robustify.
2005-03-22  Volker Reichelt  
2005-03-22  Volker Reichelt  
        PR c++/20499
        PR c++/20499
        * parser.c (cp_parser_class_head): Return NULL_TREE when
        * parser.c (cp_parser_class_head): Return NULL_TREE when
        encountering a redefinition.
        encountering a redefinition.
2005-03-22  Nathan Sidwell  
2005-03-22  Nathan Sidwell  
        PR c++/20465
        PR c++/20465
        PR c++/20381
        PR c++/20381
        * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
        * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
        template.
        template.
2005-03-21  Paolo Carlini  
2005-03-21  Paolo Carlini  
        PR c++/20461
        PR c++/20461
        PR c++/20536
        PR c++/20536
        * init.c (emit_mem_initializers): Don't crash on undefined
        * init.c (emit_mem_initializers): Don't crash on undefined
        types.
        types.
2005-03-21  Paolo Carlini  
2005-03-21  Paolo Carlini  
        PR c++/20147
        PR c++/20147
        * semantics.c (finish_stmt_expr_expr): Return immediately
        * semantics.c (finish_stmt_expr_expr): Return immediately
        if error_operand_p (expr).
        if error_operand_p (expr).
2005-03-21  Joseph S. Myers  
2005-03-21  Joseph S. Myers  
        * cp-tree.h (lvalue_or_else, lvalue_p): New.
        * cp-tree.h (lvalue_or_else, lvalue_p): New.
        * typeck.c (lvalue_or_else): New.  Call lvalue_error.
        * typeck.c (lvalue_or_else): New.  Call lvalue_error.
2005-03-19  Kriang Lerdsuwanakij  
2005-03-19  Kriang Lerdsuwanakij  
        PR c++/20240
        PR c++/20240
        * decl.c (decls_match): Compare context of VAR_DECL.
        * decl.c (decls_match): Compare context of VAR_DECL.
2005-03-19  Kriang Lerdsuwanakij  
2005-03-19  Kriang Lerdsuwanakij  
        PR c++/20333
        PR c++/20333
        * parser.c (cp_parser_postfix_expression) :
        * parser.c (cp_parser_postfix_expression) :
        Check the return value of cp_parser_nested_name_specifier.
        Check the return value of cp_parser_nested_name_specifier.
2005-03-18  Dale Johannesen 
2005-03-18  Dale Johannesen 
        * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
        * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
2005-03-18  Paolo Carlini  
2005-03-18  Paolo Carlini  
        PR c++/20463
        PR c++/20463
        * parser.c (cp_parser_diagnose_invalid_type_name):
        * parser.c (cp_parser_diagnose_invalid_type_name):
        Check TYPE_BINFO (current_class_type) before attempting
        Check TYPE_BINFO (current_class_type) before attempting
        to emit inform messages.
        to emit inform messages.
2005-03-17  Paolo Carlini  
2005-03-17  Paolo Carlini  
        PR c++/19966
        PR c++/19966
        * cp-tree.h (grok_op_properties): Change return type to void.
        * cp-tree.h (grok_op_properties): Change return type to void.
        * decl.c (grok_op_properties): Return early - don't check the
        * decl.c (grok_op_properties): Return early - don't check the
        arity - in case of a static member or an operator that cannot
        arity - in case of a static member or an operator that cannot
        be non-member; tidy a bit.
        be non-member; tidy a bit.
2005-03-17  Nathan Sidwell  
2005-03-17  Nathan Sidwell  
        PR c++/20186
        PR c++/20186
        * pt.c (contains_dependent_cast_p): Remove.
        * pt.c (contains_dependent_cast_p): Remove.
        (fold_non_dependent_expr): Don't use it.
        (fold_non_dependent_expr): Don't use it.
        (value_dependent_expression_p): Use a switch statement.
        (value_dependent_expression_p): Use a switch statement.
        reference_exprs can be dependent.
        reference_exprs can be dependent.
2005-03-14  Kriang Lerdsuwanakij  
2005-03-14  Kriang Lerdsuwanakij  
        PR c++/4403
        PR c++/4403
        PR c++/9783, DR433
        PR c++/9783, DR433
        * name-lookup.c (pushtag): Skip template parameter scope when
        * name-lookup.c (pushtag): Skip template parameter scope when
        scope is ts_global.  Don't push tag into template parameter
        scope is ts_global.  Don't push tag into template parameter
        scope.
        scope.
        * pt.c (instantiate_class_template): Reorder friend class
        * pt.c (instantiate_class_template): Reorder friend class
        template substitution to handle non-dependent friend class
        template substitution to handle non-dependent friend class
        that hasn't been previously declared.
        that hasn't been previously declared.
2005-03-14  Kriang Lerdsuwanakij  
2005-03-14  Kriang Lerdsuwanakij  
        Friend class name lookup 5/n
        Friend class name lookup 5/n
        PR c++/1016
        PR c++/1016
        * cp-tree.h (pushtag): Adjust declaration.
        * cp-tree.h (pushtag): Adjust declaration.
        * decl.c (lookup_and_check_tag): Call lookup_type_scope if
        * decl.c (lookup_and_check_tag): Call lookup_type_scope if
        lookup_name fails.
        lookup_name fails.
        (xref_tag): Adjust call to pushtag.  Make hidden class visible.
        (xref_tag): Adjust call to pushtag.  Make hidden class visible.
        (start_enum): Adjust call to pushtag.
        (start_enum): Adjust call to pushtag.
        * name-lookup.c (ambiguous_decl): Ignore hidden names.
        * name-lookup.c (ambiguous_decl): Ignore hidden names.
        (qualify_lookup): Change return type to bool.
        (qualify_lookup): Change return type to bool.
        (hidden_name_p): New function.
        (hidden_name_p): New function.
        (lookup_namespace_name, unqualified_namespace_lookup,
        (lookup_namespace_name, unqualified_namespace_lookup,
        lookup_name_real): Use it.
        lookup_name_real): Use it.
        (lookup_type_scope): Update comments.
        (lookup_type_scope): Update comments.
        (maybe_process_template_type_declaration): Change parameter name
        (maybe_process_template_type_declaration): Change parameter name
        from globalize to is_friend.
        from globalize to is_friend.
        (pushtag): Change globalize parameter of type int to tag_scope.
        (pushtag): Change globalize parameter of type int to tag_scope.
        Hide name if introduced by friend declaration.
        Hide name if introduced by friend declaration.
        * name-lookup.h (hidden_name_p): Add declaration.
        * name-lookup.h (hidden_name_p): Add declaration.
        * parser.c (cp_parser_lookup_name): Don't deal with hidden name
        * parser.c (cp_parser_lookup_name): Don't deal with hidden name
        here.
        here.
        * pt.c (push_template_decl_real): Make hidden class template
        * pt.c (push_template_decl_real): Make hidden class template
        visible.
        visible.
        (lookup_template_class, instantiate_class_template): Adjust call
        (lookup_template_class, instantiate_class_template): Adjust call
        to pushtag.
        to pushtag.
        * semantics.c (begin_class_definition): Likewise.
        * semantics.c (begin_class_definition): Likewise.
        * rtti.c (init_rtti_processing, build_dynamic_cast_1,
        * rtti.c (init_rtti_processing, build_dynamic_cast_1,
        tinfo_base_init, emit_support_tinfos): Use ts_current instead of
        tinfo_base_init, emit_support_tinfos): Use ts_current instead of
        ts_global.
        ts_global.
2005-03-13  Mark Mitchell  
2005-03-13  Mark Mitchell  
        PR c++/20157
        PR c++/20157
        * pt.c (determine_specialization): Reject non-specializations.
        * pt.c (determine_specialization): Reject non-specializations.
2005-03-11  Per Bothner  
2005-03-11  Per Bothner  
        * cp-tree.h (struct cp_declarator): New id_loc field.
        * cp-tree.h (struct cp_declarator): New id_loc field.
        * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
        * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
        location using c_lex_with_flags, instead of input_location.
        location using c_lex_with_flags, instead of input_location.
        (cp_parser_direct_declarator): Set declarator's id_loc from
        (cp_parser_direct_declarator): Set declarator's id_loc from
        cp_token's id_loc.
        cp_token's id_loc.
2005-03-10  Jakub Jelinek  
2005-03-10  Jakub Jelinek  
        PR c++/18384, c++/18327
        PR c++/18384, c++/18327
        * decl.c (reshape_init_array): Use UHWI type for max_index_cst
        * 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
        and index.  Convert max_index to size_type_node if it isn't
        host_integerp (, 1).
        host_integerp (, 1).
2005-03-09  Mark Mitchell  
2005-03-09  Mark Mitchell  
        PR c++/20208
        PR c++/20208
        * pt.c (tsubst_decl): Apply array-to-pointer and
        * pt.c (tsubst_decl): Apply array-to-pointer and
        function-to-pointer conversions to function arguments.
        function-to-pointer conversions to function arguments.
        (regenerate_decl_from_template): Likewise.
        (regenerate_decl_from_template): Likewise.
2005-03-09  Paolo Carlini  
2005-03-09  Paolo Carlini  
        PR c++/16859
        PR c++/16859
        * decl.c (complete_array_type): In pedantic mode, return
        * decl.c (complete_array_type): In pedantic mode, return
        3 for an empty initializer list as the initializer for an
        3 for an empty initializer list as the initializer for an
        array of unknown bound (8.5.1/4).
        array of unknown bound (8.5.1/4).
        (maybe_deduce_size_from_array_init): Fix final test to use
        (maybe_deduce_size_from_array_init): Fix final test to use
        the above.
        the above.
2005-03-08  Nathan Sidwell  
2005-03-08  Nathan Sidwell  
        PR c++/20186
        PR c++/20186
        * pt.c (contains_dependent_cast_p): New.
        * pt.c (contains_dependent_cast_p): New.
        (fold_non_dependent_expr): Call it.
        (fold_non_dependent_expr): Call it.
2005-03-08  Mark Mitchell  
2005-03-08  Mark Mitchell  
        PR c++/20142
        PR c++/20142
        * cp-tree.h (target_type): Remove.
        * cp-tree.h (target_type): Remove.
        * decl.c (layout_var_decl): Remove #if 0'd code.
        * decl.c (layout_var_decl): Remove #if 0'd code.
        (cp_finish_decl): Remove dead code.
        (cp_finish_decl): Remove dead code.
        * init.c (build_vec_init): When determining whether or not the
        * init.c (build_vec_init): When determining whether or not the
        element type has an asignment operator, look through all array
        element type has an asignment operator, look through all array
        dimensions.
        dimensions.
        * typeck.c (target_type): Remove.
        * typeck.c (target_type): Remove.
2005-03-07  Mark Mitchell  
2005-03-07  Mark Mitchell  
        * class.c (finish_struct_1): Do not warn about non-virtual
        * class.c (finish_struct_1): Do not warn about non-virtual
        destructors in Java classes.
        destructors in Java classes.
2005-03-05  Kriang Lerdsuwanakij  
2005-03-05  Kriang Lerdsuwanakij  
        PR c++/19311
        PR c++/19311
        * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
        * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
        * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
        * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
        for OFFSET_TYPE.
        for OFFSET_TYPE.
        * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
        * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
        Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
        Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
        (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
        (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
        template.
        template.
2005-03-02  Alexandre Oliva  
2005-03-02  Alexandre Oliva  
        * name-lookup.c (push_overloaded_decl): Don't error if the new
        * name-lookup.c (push_overloaded_decl): Don't error if the new
        decl matches the old one.
        decl matches the old one.
        * decl.c (redeclaration_error_message): Likewise.
        * decl.c (redeclaration_error_message): Likewise.
2005-03-01  Per Bothner  
2005-03-01  Per Bothner  
        * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
        * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
        unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
        unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2005-03-01  Nathan Sidwell  
2005-03-01  Nathan Sidwell  
        PR c++/20232
        PR c++/20232
        * class.c (update_vtable_entry_for_fn): Don't crash on invalid
        * class.c (update_vtable_entry_for_fn): Don't crash on invalid
        covariancy.
        covariancy.
        * cp-tree.g (THUNK_TARGET): Expand comment.
        * cp-tree.g (THUNK_TARGET): Expand comment.
        * method.c (use_thunk): Make sure we also use the target, if that
        * method.c (use_thunk): Make sure we also use the target, if that
        is a thunk.
        is a thunk.
2005-02-27  Jakub Jelinek  
2005-02-27  Jakub Jelinek  
        PR c++/20206
        PR c++/20206
        * decl.c (cxx_comdat_group): Put thunks for
        * decl.c (cxx_comdat_group): Put thunks for
        TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
        TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
        comdat group as the thunk target.
        comdat group as the thunk target.
2005-02-24  Volker Reichelt  
2005-02-24  Volker Reichelt  
        * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
        * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
        parser.c: Fix comment typo(s).
        parser.c: Fix comment typo(s).
2005-02-24  Jakub Jelinek  
2005-02-24  Jakub Jelinek  
        PR c++/20175
        PR c++/20175
        * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
        * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
        initializes a char/wchar_t array.
        initializes a char/wchar_t array.
2005-02-23  Mark Mitchell  
2005-02-23  Mark Mitchell  
        PR c++/19878
        PR c++/19878
        * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
        * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
        with internal linkage.
        with internal linkage.
2005-02-23  Alexandre Oliva  
2005-02-23  Alexandre Oliva  
        * decl.c (grokvardecl): Don't exempt anonymous types from having
        * decl.c (grokvardecl): Don't exempt anonymous types from having
        linkage for variables that have linkage other than "C".
        linkage for variables that have linkage other than "C".
2005-02-23  Kazu Hirata  
2005-02-23  Kazu Hirata  
        * cp-objcp-common.h, error.c: Update copyright.
        * cp-objcp-common.h, error.c: Update copyright.
2005-02-22  Mark Mitchell  
2005-02-22  Mark Mitchell  
        PR c++/20073
        PR c++/20073
        * decl.c (start_decl_1): Don't clear TREE_READONLY.
        * decl.c (start_decl_1): Don't clear TREE_READONLY.
        (cp_finish_decl): Likewise.
        (cp_finish_decl): Likewise.
        (complete_vars): Call cp_apply_type_quals_to_decl.
        (complete_vars): Call cp_apply_type_quals_to_decl.
        * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
        * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
        cases where that's not valid.
        cases where that's not valid.
        PR c++/19991
        PR c++/19991
        * init.c (integral_constant_value): Iterate if the value of a decl
        * init.c (integral_constant_value): Iterate if the value of a decl
        is itself a constant.
        is itself a constant.
        PR c++/20152
        PR c++/20152
        * parser.c (cp_parser_class_head): Check for redefintions here.
        * parser.c (cp_parser_class_head): Check for redefintions here.
        * semantics.c (begin_class_definition): Not here.
        * semantics.c (begin_class_definition): Not here.
        PR c++/20153
        PR c++/20153
        * decl2.c (build_anon_union_vars): Add type parameter.
        * decl2.c (build_anon_union_vars): Add type parameter.
        (finish_anon_union): Pass it.
        (finish_anon_union): Pass it.
        PR c++/20148
        PR c++/20148
        * error.c (dump_expr): Do not print the body of a BIND_EXPR.
        * error.c (dump_expr): Do not print the body of a BIND_EXPR.
        Handle STATEMENT_LIST.
        Handle STATEMENT_LIST.
        PR c++/19883
        PR c++/19883
        * parser.c (cp_parser_direct_declarator): Always complain about
        * parser.c (cp_parser_direct_declarator): Always complain about
        non-constant array bounds when in a function scope.
        non-constant array bounds when in a function scope.
        * semantics.c (finish_id_expression): Do not mark dependent names
        * semantics.c (finish_id_expression): Do not mark dependent names
        as non-constant.
        as non-constant.
2005-02-21  Douglas Gregor  
2005-02-21  Douglas Gregor  
        PR c++/19076
        PR c++/19076
        PR c++/6628
        PR c++/6628
        * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
        * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
        * decl.c (grokdeclarator): Pedwarn about qualifying a function
        * decl.c (grokdeclarator): Pedwarn about qualifying a function
        type.
        type.
        Add qualifiers when declaring a typedef of a function type.
        Add qualifiers when declaring a typedef of a function type.
        Member function pointers pick up the qualifiers of the typedef
        Member function pointers pick up the qualifiers of the typedef
        used to declare them.
        used to declare them.
        Don't complain about creating cv-qualified function types.
        Don't complain about creating cv-qualified function types.
        Complain about qualified function typedefs that are used to
        Complain about qualified function typedefs that are used to
        declare non-static member functions or free functions.
        declare non-static member functions or free functions.
        Use cp_apply_type_quals_to_decl.
        Use cp_apply_type_quals_to_decl.
        (start_preparsed_function): 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.
        (grokclassfn): Use cp_apply_type_quals_to_decl.
        * error.c (dump_type_suffix): Print qualifiers for function
        * error.c (dump_type_suffix): Print qualifiers for function
        types.
        types.
        * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
        * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
        (tsubst): When substituting a function type into a member
        (tsubst): When substituting a function type into a member
        pointer type, pass along the qualifiers.
        pointer type, pass along the qualifiers.
        (unify): Unify member pointers to member function pointers.
        (unify): Unify member pointers to member function pointers.
        * tree.c (cp_build_qualified_type_real): Function types may be
        * tree.c (cp_build_qualified_type_real): Function types may be
        qualified. This includes restrict qualifiers.
        qualified. This includes restrict qualifiers.
        * typeck.c (cp_apply_type_quals_to_decl): New function to replace
        * 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
        use of c_apply_type_quals_to_decl. Drops qualifiers that are being
        added to function types.
        added to function types.
2005-02-20  Zack Weinberg  
2005-02-20  Zack Weinberg  
        PR 18785
        PR 18785
        * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
        * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
        c_common_to_target_charset.  Delete bogus comment.
        c_common_to_target_charset.  Delete bogus comment.
2005-02-18  Richard Henderson  
2005-02-18  Richard Henderson  
        PR libstdc++/10606
        PR libstdc++/10606
        * except.c (do_get_exception_ptr): New.
        * except.c (do_get_exception_ptr): New.
        (expand_start_catch_block): Use it.
        (expand_start_catch_block): Use it.
2005-02-19  Jakub Jelinek  
2005-02-19  Jakub Jelinek  
        * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
        * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
        if type is not error_mark_node.
        if type is not error_mark_node.
2005-01-20  Giovanni Bajo  
2005-01-20  Giovanni Bajo  
        PR c++/19508
        PR c++/19508
        * decl2.c (grokfield): Do not apply attributes to template parameters
        * decl2.c (grokfield): Do not apply attributes to template parameters
        as they are ignored by tsubst anyway.
        as they are ignored by tsubst anyway.
2005-02-18  Jakub Jelinek  
2005-02-18  Jakub Jelinek  
        PR c++/19813
        PR c++/19813
        * decl.c (start_decl_1): Clear TREE_READONLY flag if
        * decl.c (start_decl_1): Clear TREE_READONLY flag if
        its type has TYPE_NEEDS_CONSTRUCTING.
        its type has TYPE_NEEDS_CONSTRUCTING.
        (complete_vars): Likewise.
        (complete_vars): Likewise.
2005-02-17  Alexandre Oliva  
2005-02-17  Alexandre Oliva  
        PR c++/20028
        PR c++/20028
        * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
        * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
        template along with TYPE_SIZE.
        template along with TYPE_SIZE.
        PR c++/20022
        PR c++/20022
        * semantics.c (perform_deferred_access_checks): Use
        * semantics.c (perform_deferred_access_checks): Use
        get_deferred_access_checks to get the top of the stack.
        get_deferred_access_checks to get the top of the stack.
2005-02-15  Alexandre Oliva  
2005-02-15  Alexandre Oliva  
        PR c++/17788
        PR c++/17788
        * class.c (add_implicitly_declared_members, check_field_decl)
        * class.c (add_implicitly_declared_members, check_field_decl)
        (check_field_decls, check_bases): Remove arguments, tests and
        (check_field_decls, check_bases): Remove arguments, tests and
        assignments of cant_have_default_ctor-related variables.
        assignments of cant_have_default_ctor-related variables.
2005-02-15  Alexandre Oliva  
2005-02-15  Alexandre Oliva  
        * decl2.c (mark_used): Set the source location of the used decl to
        * decl2.c (mark_used): Set the source location of the used decl to
        the current input location here...
        the current input location here...
        * method.c (synthesize_method): ... not here.  Set input_location
        * method.c (synthesize_method): ... not here.  Set input_location
        from the decl instead.
        from the decl instead.
2005-02-14  Nathan Sidwell  
2005-02-14  Nathan Sidwell  
        PR c++/19608
        PR c++/19608
        * parser.c (cp_parser_late_parsing_for_member): Use
        * parser.c (cp_parser_late_parsing_for_member): Use
        current_function_decl as scope to push to and from.
        current_function_decl as scope to push to and from.
        PR c++/19884
        PR c++/19884
        * pt.c (check_explicit_specialization): Make sure namespace
        * pt.c (check_explicit_specialization): Make sure namespace
        binding lookup found an overloaded function.
        binding lookup found an overloaded function.
        (lookup_template_function): Just assert FNS is an overloaded
        (lookup_template_function): Just assert FNS is an overloaded
        function.
        function.
        PR c++/19895
        PR c++/19895
        * decl.c (grokdeclarator): Check for error mark node in ptrmem
        * decl.c (grokdeclarator): Check for error mark node in ptrmem
        construction.
        construction.
2005-02-14  Alexandre Oliva  
2005-02-14  Alexandre Oliva  
        PR c++/17816
        PR c++/17816
        * decl.c (redeclaration_error_message): Report redefinition of
        * decl.c (redeclaration_error_message): Report redefinition of
        pure virtual function.
        pure virtual function.
2005-02-14  Nathan Sidwell  
2005-02-14  Nathan Sidwell  
        PR c++/19891
        PR c++/19891
        * class.c (build_simple_base_path): Build the component_ref
        * class.c (build_simple_base_path): Build the component_ref
        directly.
        directly.
        (update_vtable_entry_for_fn): Walk the covariant's binfo chain
        (update_vtable_entry_for_fn): Walk the covariant's binfo chain
        rather than using lookup_base.
        rather than using lookup_base.
        * search.c (dfs_walk_once): Add non-recursive assert check.
        * search.c (dfs_walk_once): Add non-recursive assert check.
        * typeck.c (build_class_member_access_expr): It is possible for
        * typeck.c (build_class_member_access_expr): It is possible for
        the member type to be both const and volatile.
        the member type to be both const and volatile.
2005-02-12  Kriang Lerdsuwanakij  
2005-02-12  Kriang Lerdsuwanakij  
        PR c++/14479
        PR c++/14479
        PR c++/19487
        PR c++/19487
        * pt.c (maybe_check_template_type): Remove.
        * pt.c (maybe_check_template_type): Remove.
        * cp-tree.h (maybe_check_template_type): Remove prototype.
        * cp-tree.h (maybe_check_template_type): Remove prototype.
        * name-lookup.c (maybe_process_template_type_declaration): Don't
        * name-lookup.c (maybe_process_template_type_declaration): Don't
        use maybe_check_template_type.
        use maybe_check_template_type.
2005-02-11  Richard Henderson  
2005-02-11  Richard Henderson  
        PR c++/19632
        PR c++/19632
        * pt.c (get_mostly_instantiated_function_type): Save and restore
        * pt.c (get_mostly_instantiated_function_type): Save and restore
        flag_access_control instead of push/pop_access_scope.
        flag_access_control instead of push/pop_access_scope.
2005-02-10  Mark Mitchell  
2005-02-10  Mark Mitchell  
        PR c++/19755
        PR c++/19755
        * decl.c (reshape_init): Issue warnings about missing braces.
        * decl.c (reshape_init): Issue warnings about missing braces.
2005-02-11  Kazu Hirata  
2005-02-11  Kazu Hirata  
        * cp-tree.def, except.c, ptree.c: Update copyright.
        * cp-tree.def, except.c, ptree.c: Update copyright.
2005-02-09  Mark Mitchell  
2005-02-09  Mark Mitchell  
        PR c++/19811
        PR c++/19811
        * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
        * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
        attempting name lookup.
        attempting name lookup.
        * parser.c (cp_parser_unqualified_id): Initialize type_decl.
        * parser.c (cp_parser_unqualified_id): Initialize type_decl.
        PR c++/19787
        PR c++/19787
        * call.c (initialize_reference): Robustify.
        * call.c (initialize_reference): Robustify.
        PR ++/19732
        PR ++/19732
        * decl.c (grokdeclarator): Check for invalid use of destructor
        * decl.c (grokdeclarator): Check for invalid use of destructor
        names.
        names.
        PR c++/19762
        PR c++/19762
        * parser.c (cp_parser_unqualified_id): Avoid creating destructor
        * parser.c (cp_parser_unqualified_id): Avoid creating destructor
        names with invalid types.
        names with invalid types.
        PR c++/19826
        PR c++/19826
        * parser.c (cp_parser_direct_declarator): Allow type-dependent
        * parser.c (cp_parser_direct_declarator): Allow type-dependent
        expressions as array bounds.
        expressions as array bounds.
        PR c++/19739
        PR c++/19739
        * parser.c (cp_parser_attributes_list): Allow empty lists.
        * parser.c (cp_parser_attributes_list): Allow empty lists.
2005-02-08  Mark Mitchell  
2005-02-08  Mark Mitchell  
        PR c++/19733
        PR c++/19733
        * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
        * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
        (check_bases): Give warnings about a base class with a
        (check_bases): Give warnings about a base class with a
        non-virtual destructor, even if it is implicit.
        non-virtual destructor, even if it is implicit.
        (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
        (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
        (maybe_warn_about_overly_private_class): Don't use
        (maybe_warn_about_overly_private_class): Don't use
        TYPE_HAS_DESTRUCTOR.
        TYPE_HAS_DESTRUCTOR.
        (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
        (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
        (check_for_override): Give it external linkage.
        (check_for_override): Give it external linkage.
        (add_implicitly_declared_members): Generate destructors lazily.
        (add_implicitly_declared_members): Generate destructors lazily.
        (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
        (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
        TYPE_HAS_DESTRUCTOR.
        TYPE_HAS_DESTRUCTOR.
        (check_bases_and_members): Call check_methods before
        (check_bases_and_members): Call check_methods before
        check_field_decls.
        check_field_decls.
        (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
        (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
        TYPE_HAS_DESTRUCTOR.
        TYPE_HAS_DESTRUCTOR.
        (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
        (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
        * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
        * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
        * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
        * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
        (lang_type_class): Add lazy_destructor.
        (lang_type_class): Add lazy_destructor.
        (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
        (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
        (CLASSTYPE_DESTRUCTORS): Robustify.
        (CLASSTYPE_DESTRUCTORS): Robustify.
        (TYPE_HAS_DESTRUCTOR): Remove.
        (TYPE_HAS_DESTRUCTOR): Remove.
        (check_for_override): Declare.
        (check_for_override): Declare.
        (build_vbase_delete): Remove.
        (build_vbase_delete): Remove.
        * cvt.c (convert_to_void): Issue errors about pseudo-destructor
        * cvt.c (convert_to_void): Issue errors about pseudo-destructor
        expressions.
        expressions.
        * decl.c (cxx_maybe_build_cleanup): Remove dead code.
        * decl.c (cxx_maybe_build_cleanup): Remove dead code.
        * except.c (dtor_nothrow): Lazily create destructors if necessary.
        * except.c (dtor_nothrow): Lazily create destructors if necessary.
        (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
        (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
        * init.c (build_delete): Lazily create destructors, if necessary.
        * init.c (build_delete): Lazily create destructors, if necessary.
        (build_vbase_delete): Remove.
        (build_vbase_delete): Remove.
        * method.c (locate_dtor): Simplify.
        * method.c (locate_dtor): Simplify.
        (implicitly_declare_fn): Add support for destructors.
        (implicitly_declare_fn): Add support for destructors.
        * parser.c (cp_parser_lookup_name): Lazily create destructors, if
        * parser.c (cp_parser_lookup_name): Lazily create destructors, if
        necessary.
        necessary.
        * pt.c (check_explicit_specialization): Don't use
        * pt.c (check_explicit_specialization): Don't use
        TYPE_HAS_DESTRUCTOR.
        TYPE_HAS_DESTRUCTOR.
        (instantiate_class_template): Likewise.
        (instantiate_class_template): Likewise.
        * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
        * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
        * rtti.c (emit_support_tinfos): Robustify.
        * rtti.c (emit_support_tinfos): Robustify.
        * search.c (lookup_fnfields_1): Lazily create destructors.
        * search.c (lookup_fnfields_1): Lazily create destructors.
        * typeck.c (build_class_member_access_expr): Remove
        * typeck.c (build_class_member_access_expr): Remove
        PSEUDO_DTOR_EXPR handling.
        PSEUDO_DTOR_EXPR handling.
        (lookup_destructor): Likewise.
        (lookup_destructor): Likewise.
2005-02-08  Kazu Hirata  
2005-02-08  Kazu Hirata  
        * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
        * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
        copyright.
        copyright.
2005-02-07  Mark Mitchell  
2005-02-07  Mark Mitchell  
        * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
        * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
        on boolean variables.
        on boolean variables.
        (cp_lexer_stop_debugging): Likewise.
        (cp_lexer_stop_debugging): Likewise.
2005-02-03  Giovanni Bajo  
2005-02-03  Giovanni Bajo  
        PR c++/17401
        PR c++/17401
        * parser.c (cp_parser_pure_specifier): Emit a specific error
        * parser.c (cp_parser_pure_specifier): Emit a specific error
        message with an invalid pure specifier.
        message with an invalid pure specifier.
        * decl2.c (grok_function_init): Remove.
        * decl2.c (grok_function_init): Remove.
        (grokfield): An initializer for a method is a always a pure
        (grokfield): An initializer for a method is a always a pure
        specifier.
        specifier.
2005-02-02  Matt Austern  
2005-02-02  Matt Austern  
        PR c++/19628
        PR c++/19628
        * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
        * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
        * parser.c (cp_parser_postfix_expression): Accept function call in
        * parser.c (cp_parser_postfix_expression): Accept function call in
        constant expression if builtin_valid_in_constant_expr_p is true
        constant expression if builtin_valid_in_constant_expr_p is true
        for that function.
        for that function.
        * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
        * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
        * semantics.c (finish_id_expression): Accept function call in constant
        * semantics.c (finish_id_expression): Accept function call in constant
        expression if builtin_valid_in_constant_expr_p is true for that
        expression if builtin_valid_in_constant_expr_p is true for that
        function.
        function.
        * tree.c (builtin_valid_in_constant_expr_p): New.
        * tree.c (builtin_valid_in_constant_expr_p): New.
2005-02-02  Volker Reichelt  
2005-02-02  Volker Reichelt  
        PR c++/17413
        PR c++/17413
        * pt.c (check_instantiated_args): Improve error message.
        * pt.c (check_instantiated_args): Improve error message.
        Fix logic when to print its second part.
        Fix logic when to print its second part.
2005-02-02  Volker Reichelt  
2005-02-02  Volker Reichelt  
        * cp-tree.h (complete_type_or_else): Remove macro.
        * cp-tree.h (complete_type_or_else): Remove macro.
        (complete_type_or_diagnostic): Rename to complete_type_or_else
        (complete_type_or_diagnostic): Rename to complete_type_or_else
        and remove last argument.
        and remove last argument.
        * typeck.c (complete_type_or_diagnostic): Rename to
        * typeck.c (complete_type_or_diagnostic): Rename to
        complete_type_or_else and remove last argument.
        complete_type_or_else and remove last argument.
2005-02-02  Volker Reichelt  
2005-02-02  Volker Reichelt  
        * cp-tree.h (commonparms): Remove prototype.
        * cp-tree.h (commonparms): Remove prototype.
        (convert_arguments): Likewise.
        (convert_arguments): Likewise.
        (PFN_FROM_PTRMEMFUNC): Remove.
        (PFN_FROM_PTRMEMFUNC): Remove.
        * typeck.c (commonparms): Make static.
        * typeck.c (commonparms): Make static.
        (convert_arguments): Add prototype. Make static.
        (convert_arguments): Add prototype. Make static.
        (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
        (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
2005-01-31  Mark Mitchell  
2005-01-31  Mark Mitchell  
        * parser.c (cp_parser_primary_expression): Don't complain about
        * parser.c (cp_parser_primary_expression): Don't complain about
        floating-point literals in integral constant expressions when
        floating-point literals in integral constant expressions when
        !pedantic.
        !pedantic.
2005-02-01  Alexandre Oliva  
2005-02-01  Alexandre Oliva  
        * parser.c (cp_parser_template_id): Revert comment patch too.
        * parser.c (cp_parser_template_id): Revert comment patch too.
        PR c++/18757
        PR c++/18757
        PR c++/19366
        PR c++/19366
        PR c++/19499
        PR c++/19499
        * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
        * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
        Issue an error when creating the template id.
        Issue an error when creating the template id.
        * pt.c (fn_type_unification): Return early if the explicit
        * pt.c (fn_type_unification): Return early if the explicit
        template arg list is an error_mark_node.
        template arg list is an error_mark_node.
2005-01-31  Mark Mitchell  
2005-01-31  Mark Mitchell  
        * decl.c (build_enumerator): Do not issue duplicate error messages
        * decl.c (build_enumerator): Do not issue duplicate error messages
        about invalid enumeration constants.
        about invalid enumeration constants.
        * parser.c (cp_parser_non_integral_constant_expression): Always
        * parser.c (cp_parser_non_integral_constant_expression): Always
        set parser->non_integral_constant_expression_p.
        set parser->non_integral_constant_expression_p.
        (cp_parser_primary_expression): Add cast_p parameter.  Issue
        (cp_parser_primary_expression): Add cast_p parameter.  Issue
        errors about invalid uses of floating-point literals in
        errors about invalid uses of floating-point literals in
        cast-expressions.
        cast-expressions.
        (cp_parser_postfix_expression): Add cast_p parameter.
        (cp_parser_postfix_expression): Add cast_p parameter.
        (cp_parser_open_square_expression): Pass it.
        (cp_parser_open_square_expression): Pass it.
        (cp_parser_parenthesized_expression_list): Add cast_p parameter.
        (cp_parser_parenthesized_expression_list): Add cast_p parameter.
        (cp_parser_unary_expression): Likewise.
        (cp_parser_unary_expression): Likewise.
        (cp_parser_new_placement): Pass it.
        (cp_parser_new_placement): Pass it.
        (cp_parser_direct_new_declarator): Likewise.
        (cp_parser_direct_new_declarator): Likewise.
        (cp_parser_new_initializer): Likewise.
        (cp_parser_new_initializer): Likewise.
        (cp_parser_cast_expression): Add cast_p parameter.
        (cp_parser_cast_expression): Add cast_p parameter.
        (cp_parser_binary_expression): Likewise.
        (cp_parser_binary_expression): Likewise.
        (cp_parser_question_colon_clause): Likewise.
        (cp_parser_question_colon_clause): Likewise.
        (cp_parser_assignment_expression): Likewise.
        (cp_parser_assignment_expression): Likewise.
        (cp_parser_expression): Likewise.
        (cp_parser_expression): Likewise.
        (cp_parser_constant_expression): If an integral constant
        (cp_parser_constant_expression): If an integral constant
        expression is invalid, return error_mark_node.
        expression is invalid, return error_mark_node.
        (cp_parser_expression_statement): Pass cast_p.
        (cp_parser_expression_statement): Pass cast_p.
        (cp_parser_condition): Likewise.
        (cp_parser_condition): Likewise.
        (cp_parser_iteration_statement): Likewise.
        (cp_parser_iteration_statement): Likewise.
        (cp_parser_jump_statement): Likewise.
        (cp_parser_jump_statement): Likewise.
        (cp_parser_mem_initializer): Likewise.
        (cp_parser_mem_initializer): Likewise.
        (cp_parser_template_argument): Likewise.
        (cp_parser_template_argument): Likewise.
        (cp_parser_parameter_declaration): Likewise.
        (cp_parser_parameter_declaration): Likewise.
        (cp_parser_initializer): Likewise.
        (cp_parser_initializer): Likewise.
        (cp_parser_throw_expression): Likewise.
        (cp_parser_throw_expression): Likewise.
        (cp_parser_attribute_list): Likewise.
        (cp_parser_attribute_list): Likewise.
        (cp_parser_simple_cast_expression): Likewise.
        (cp_parser_simple_cast_expression): Likewise.
        (cp_parser_functional_cast): Likewise.
        (cp_parser_functional_cast): Likewise.
        (cp_parser_late_parsing_default_args): Likewise.
        (cp_parser_late_parsing_default_args): Likewise.
        (cp_parser_sizeof_operand): Save/restore
        (cp_parser_sizeof_operand): Save/restore
        non_integral_constant_expression_p.
        non_integral_constant_expression_p.
2005-01-31  Mike Stump  
2005-01-31  Mike Stump  
        * parser.c (cp_lexer_new_main): Get the first token, first, before
        * parser.c (cp_lexer_new_main): Get the first token, first, before
        doing anything.
        doing anything.
2005-01-31  Mark Mitchell  
2005-01-31  Mark Mitchell  
        * decl.c (start_decl): Add missing parentheses.
        * decl.c (start_decl): Add missing parentheses.
2005-01-30  Mark Mitchell  
2005-01-30  Mark Mitchell  
        PR c++/19555
        PR c++/19555
        * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
        * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
        * decl.c (duplicate_decls): Do not discard
        * decl.c (duplicate_decls): Do not discard
        DECL_IMPLICIT_INSTANTIATION when merging declarations.
        DECL_IMPLICIT_INSTANTIATION when merging declarations.
        (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
        (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
        variables that do not have DECL_USE_TEMPLATE.
        variables that do not have DECL_USE_TEMPLATE.
        PR c++/19395
        PR c++/19395
        * decl.c (grokdeclarator): Refactor code so that qualified names
        * decl.c (grokdeclarator): Refactor code so that qualified names
        are never allowed as the declarator in a typedef.
        are never allowed as the declarator in a typedef.
        PR c++/19367
        PR c++/19367
        * name-lookup.c (do_nonmember_using_decl): Avoid overloading
        * name-lookup.c (do_nonmember_using_decl): Avoid overloading
        builtin declarations.
        builtin declarations.
        PR c++/19457
        PR c++/19457
        * call.c (convert_like_real): Inline call to
        * call.c (convert_like_real): Inline call to
        dubious_conversion_warnings here.
        dubious_conversion_warnings here.
        * cp-tree.h (dubious_conversion_warnings): Remove.
        * cp-tree.h (dubious_conversion_warnings): Remove.
        * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
        * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
        setting TREE_NEGATED_INT.
        setting TREE_NEGATED_INT.
        * typeck.c (dubious_conversion_warnings): Remove.
        * typeck.c (dubious_conversion_warnings): Remove.
        PR c++/19349
        PR c++/19349
        * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
        * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
        memory.
        memory.
2005-01-28  Mark Mitchell  
2005-01-28  Mark Mitchell  
        PR c++/19253
        PR c++/19253
        * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
        * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
        tentative parses.
        tentative parses.
        PR c++/19667
        PR c++/19667
        * pt.c (redeclare_class_template): Robustify.
        * pt.c (redeclare_class_template): Robustify.
2005-01-27  Steven Bosscher  
2005-01-27  Steven Bosscher  
        * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
        * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
        instead of SWITCH_EXPR ones.
        instead of SWITCH_EXPR ones.
        * pt.c (tsubst_expr): Likewise.
        * pt.c (tsubst_expr): Likewise.
        * semantics.c (begin_switch_stmt, finish_switch_cond,
        * semantics.c (begin_switch_stmt, finish_switch_cond,
        finish_switch_stmt): Likewise.
        finish_switch_stmt): Likewise.
2005-01-26  J"orn Rennecke 
2005-01-26  J"orn Rennecke 
        PR c++/18370
        PR c++/18370
        * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
        * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
2005-01-25  Andrew Pinski  
2005-01-25  Andrew Pinski  
        * class.c (abort_fndecl_addr): New variable.
        * class.c (abort_fndecl_addr): New variable.
        (build_vtbl_initializer): If we have a pure virtual function
        (build_vtbl_initializer): If we have a pure virtual function
        share the abort function's address.
        share the abort function's address.
        Include gt-cp-class.h at the end.
        Include gt-cp-class.h at the end.
        * config-lang.in (gtfiles): Add cp/class.c.
        * config-lang.in (gtfiles): Add cp/class.c.
2005-01-25  Volker Reichelt  
2005-01-25  Volker Reichelt  
        * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
        * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
        (pp_cxx_function_definition): Make static.
        (pp_cxx_function_definition): Make static.
        * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
        * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
        (pp_cxx_function_definition): Likewise.
        (pp_cxx_function_definition): Likewise.
2005-01-25  Volker Reichelt  
2005-01-25  Volker Reichelt  
        * name-lookup.c (print_binding_level): Make static.
        * name-lookup.c (print_binding_level): Make static.
        (constructor_name_full): Make static inline.
        (constructor_name_full): Make static inline.
        (current_decl_namespace): Make static.
        (current_decl_namespace): Make static.
        * name-lookup.h (constructor_name_full): Remove prototype.
        * name-lookup.h (constructor_name_full): Remove prototype.
        (print_binding_level): Likewise.
        (print_binding_level): Likewise.
        (current_decl_namespace): Likewise.
        (current_decl_namespace): Likewise.
2005-01-25  Volker Reichelt  
2005-01-25  Volker Reichelt  
        * decl.h (debug_bindings_indentation): Remove.
        * decl.h (debug_bindings_indentation): Remove.
2005-01-23  Kazu Hirata  
2005-01-23  Kazu Hirata  
        * typeck.c: Fix a comment typo.
        * typeck.c: Fix a comment typo.
2005-01-21  Giovanni Bajo  
2005-01-21  Giovanni Bajo  
        PR c++/19208
        PR c++/19208
        * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
        * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
        at least once.
        at least once.
        (tsubst): Use fold_decl_constant_value in place of a bare call to
        (tsubst): Use fold_decl_constant_value in place of a bare call to
        integral_constant_value.
        integral_constant_value.
2005-01-20  Kazu Hirata  
2005-01-20  Kazu Hirata  
        * typeck.c (more_qualified_p): Remove.
        * typeck.c (more_qualified_p): Remove.
        * cp-tree.h: Remove the corresponding prototype.
        * cp-tree.h: Remove the corresponding prototype.
2005-01-19  Matt Austern  
2005-01-19  Matt Austern  
        * typeck.c (comptypes): Handle return code from objc_comptypes
        * typeck.c (comptypes): Handle return code from objc_comptypes
        correctly.
        correctly.
2005-01-19  Kazu Hirata  
2005-01-19  Kazu Hirata  
        * cp-tree.h, name-lookup.h: Remove unused prototypes.
        * cp-tree.h, name-lookup.h: Remove unused prototypes.
2005-01-19  Kriang Lerdsuwanakij  
2005-01-19  Kriang Lerdsuwanakij  
        PR c++/19375
        PR c++/19375
        * semantics.c (finish_id_expression): Disable access checking for
        * semantics.c (finish_id_expression): Disable access checking for
        already lookuped FIELD_DECL.
        already lookuped FIELD_DECL.
2005-01-18  Kazu Hirata  
2005-01-18  Kazu Hirata  
        * decl.c (delete_block): Remove.
        * decl.c (delete_block): Remove.
        * cp-tree.h: Remove the corresponding prototype.
        * cp-tree.h: Remove the corresponding prototype.
        * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
        * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
        walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
        walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
        Remove.
        Remove.
        * cp-tree.h: Remove the corresponding prototypes.
        * cp-tree.h: Remove the corresponding prototypes.
        * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
        * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
        cp_update_decl_after_saving, name_p): Remove.
        cp_update_decl_after_saving, name_p): Remove.
        * cp-tree.h: Remove the corresponding prototypes.
        * cp-tree.h: Remove the corresponding prototypes.
2005-01-18  Andrew Pinski  
2005-01-18  Andrew Pinski  
        PR c/19472
        PR c/19472
        * semantics.c (finish_asm_stmt): Strip nops off
        * semantics.c (finish_asm_stmt): Strip nops off
        input memory operands.
        input memory operands.
2005-01-18  Kazu Hirata  
2005-01-18  Kazu Hirata  
        * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
        * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
        typeck2.c: Update copyright.
        typeck2.c: Update copyright.
2005-01-16  Kazu Hirata  
2005-01-16  Kazu Hirata  
        * class.c (get_enclosing_class): Remove.
        * class.c (get_enclosing_class): Remove.
        * cp-tree.h: Remove the corresponding prototypes.
        * cp-tree.h: Remove the corresponding prototypes.
        * cvt.c (convert_lvalue): Remove.
        * cvt.c (convert_lvalue): Remove.
        * cp-tree.h: Remove the corresponding prototype.
        * cp-tree.h: Remove the corresponding prototype.
        * pt.c (tinst_for_decl): Remove.
        * pt.c (tinst_for_decl): Remove.
        * cp-tree.h: Remove the corresponding prototypes.
        * cp-tree.h: Remove the corresponding prototypes.
        * tree.c (hash_chainon): Remove.
        * tree.c (hash_chainon): Remove.
        * cp-tree.h: Remove the corresponding prototypes.
        * cp-tree.h: Remove the corresponding prototypes.
2005-01-15  Jakub Jelinek  
2005-01-15  Jakub Jelinek  
        PR c++/19263
        PR c++/19263
        * typeck2.c (split_nonconstant_init_1) : Put a copy
        * typeck2.c (split_nonconstant_init_1) : Put a copy
        of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
        of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
2005-01-12  Kaveh R. Ghazi  
2005-01-12  Kaveh R. Ghazi  
        * Make-lang.in (cp-warn): Don't append $(WERROR).
        * Make-lang.in (cp-warn): Don't append $(WERROR).
2005-01-10  Kazu Hirata  
2005-01-10  Kazu Hirata  
        * cp-tree.h: Fix a comment typo.
        * cp-tree.h: Fix a comment typo.
2005-01-07  Nathan Sidwell  
2005-01-07  Nathan Sidwell  
        PR c++/19298
        PR c++/19298
        * pt.c (tsubst_qualified_id): Call convert_from_reference.
        * pt.c (tsubst_qualified_id): Call convert_from_reference.
2005-01-06  Mark Mitchell  
2005-01-06  Mark Mitchell  
        PR c++/19244
        PR c++/19244
        * class.c (add_implicitly_declared_members): Remove dead code.
        * class.c (add_implicitly_declared_members): Remove dead code.
        * decl.c (grokfndecl): Add sfk parameter.  Use it do set
        * decl.c (grokfndecl): Add sfk parameter.  Use it do set
        DECL_CONSTRUCTOR_P.
        DECL_CONSTRUCTOR_P.
        (grokdeclarator): Adjust calls to grokfndecl.
        (grokdeclarator): Adjust calls to grokfndecl.
        * method.c (implicitly_declare_fn): Improve documentation.
        * method.c (implicitly_declare_fn): Improve documentation.
        * parser.c (cp_parser_direct_declarator): Do not consider a
        * parser.c (cp_parser_direct_declarator): Do not consider a
        function to be a constructor if the containing class was
        function to be a constructor if the containing class was
        originally anonymous.
        originally anonymous.
2005-01-06  Kriang Lerdsuwanakij  
2005-01-06  Kriang Lerdsuwanakij  
        PR c++/17154
        PR c++/17154
        * search.c (lookup_field_1): Handle using declaration in
        * search.c (lookup_field_1): Handle using declaration in
        class template partial specialization.
        class template partial specialization.
2005-01-06  Kriang Lerdsuwanakij  
2005-01-06  Kriang Lerdsuwanakij  
        PR c++/19258
        PR c++/19258
        * pt.c (push_access_scope): Handle friend defined in class.
        * pt.c (push_access_scope): Handle friend defined in class.
        (pop_access_scope): Likewise.
        (pop_access_scope): Likewise.
2005-01-06  Nathan Sidwell  
2005-01-06  Nathan Sidwell  
        PR c++/19270
        PR c++/19270
        * pt.c (tsubst_copy) : Handle separately.
        * pt.c (tsubst_copy) : Handle separately.
        (tsubst_copy_and_build) : Remove obsolete
        (tsubst_copy_and_build) : Remove obsolete
        array-new handling code.  Use build_x_binary_op.
        array-new handling code.  Use build_x_binary_op.
2005-01-05  Nathan Sidwell  
2005-01-05  Nathan Sidwell  
        PR c++/19030
        PR c++/19030
        * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
        * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
        * name-lookup.h (push_scope): Return pushed scope, not flag.
        * name-lookup.h (push_scope): Return pushed scope, not flag.
        * name-lookup.c (push_scope): Return scope that should be popped,
        * name-lookup.c (push_scope): Return scope that should be popped,
        not a flag.
        not a flag.
        * decl.c (start_decl): Adjust.
        * decl.c (start_decl): Adjust.
        (grokfndecl): Adjust scope push and pop.
        (grokfndecl): Adjust scope push and pop.
        * decl2.c (check_classfn): Likewise.
        * decl2.c (check_classfn): Likewise.
        * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
        * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
        cp_parser_init_declarator, cp_parser_direct_declarator,
        cp_parser_init_declarator, cp_parser_direct_declarator,
        cp_parser_class_specifier, cp_parser_class_head,
        cp_parser_class_specifier, cp_parser_class_head,
        cp_parser_lookup_name,
        cp_parser_lookup_name,
        cp_parser_constructor_declarator_p): Likewise.
        cp_parser_constructor_declarator_p): Likewise.
        * pt.c (instantiate_class_template,
        * pt.c (instantiate_class_template,
        resolve_typename_type): Likewise.
        resolve_typename_type): Likewise.
2005-01-03  Volker Reichelt  
2005-01-03  Volker Reichelt  
        PR c++/14136
        PR c++/14136
        * parser.c (cp_parser_unqualified_id): Do not issue error message
        * parser.c (cp_parser_unqualified_id): Do not issue error message
        for typedef-name as destructor declarator when performing an
        for typedef-name as destructor declarator when performing an
        uncommitted tentative parse.
        uncommitted tentative parse.
2005-01-01  Steven Bosscher  
2005-01-01  Steven Bosscher  
        PR middle-end/17544
        PR middle-end/17544
        * decl.c (finish_function): Fix comment.  Annotate the compiler
        * decl.c (finish_function): Fix comment.  Annotate the compiler
        generated return with the current file name and line 0.
        generated return with the current file name and line 0.


Copyright (C) 2005 Free Software Foundation, Inc.
Copyright (C) 2005 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
notice and this notice are preserved.
 
 

powered by: WebSVN 2.1.0

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