OSDN Git Service

* class.c (build_base_path): Use build_address directly.
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index f71e01d..97296e9 100644 (file)
@@ -1,3 +1,810 @@
+2004-08-30  Richard Henderson  <rth@redhat.com>
+
+       * class.c (build_base_path): Use build_address directly.
+       * typeck.c (build_unary_op): Don't lower &a.b to pointer
+       arithmetic directly.
+       * typeck2.c (store_init_value): Don't assume !TREE_CONSTANT
+       means !initializer_constant_valid_p.
+
+2004-08-30  Richard Henderson  <rth@redhat.com>
+
+       * class.c (fixed_type_or_null): Use get_base_address before
+       assuming an ADDR_EXPR is non-null.
+
+2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * name-lookup.c (pop_binding, pushdecl,
+       set_identifier_type_value_with_scope, push_overloaded_decl,
+       arg_assoc_type): Replace abort with gcc_assert or gcc_unreachable.
+       * parser.c (cp_parser_diagnose_invalid_type_name,
+       cp_parser_postfix_expression, cp_parser_unary_expression,
+       cp_parser_check_declarator_template_para): Likewise.
+       * pt.c (push_inline_template_parms_recursive,
+       check_explicit_specialization, convert_nontype_argument,
+       coerce_template_template_parms, uses_template_parms,
+       instantiate_class_template, tsubst_decl, tsubst, tsubst_copy,
+       tsubst_expr, instantiate_template,
+       maybe_adjust_types_for_deduction, type_unification_real,
+       resolve_overloaded_unification, template_decl_level,
+       type_dependent_expression_p): Likewise.
+       * search.c (lookup_base_r): Likewise.
+       * semantics.c (finish_stmt_expr, simplify_aggr_init_expr): Likewise.
+       * tree.c (lvalue_p_1, count_functions, cxx_printable_name,
+       verify_stmt_tree_r, get_type_decl, stabilize_call): Likewise.
+       * typeck.c (common_type, get_member_function_from_ptrfunc,
+       build_binary_op, build_unary_op, expand_ptrmemfunc_cst): Likewise.
+       * typeck2.c (cxx_incomplete_type_diagnostic,
+       split_nonconstant_init_1, store_init_value,
+       process_init_constructor): Likewise.
+
+2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * call.c (check_dtor_name): Replace abort with gcc_assert or
+       gcc_unreachable.
+       (build_call, add_builtin_candidate, build_new_op,
+       convert_like_real, build_over_call, in_charge_arg_for_name,
+       source_type, joust): Likewise.
+       * class.c (build_simple_base_path, get_vcall_index,
+       finish_struct_1, instantiate_type, get_enclosing_class,
+       add_vcall_offset_vtbl_entries_1, cp_fold_obj_type_ref): Likewise.
+       * cp-gimplify.c (cp_genericize): Likewise.
+       * cp-lang.c (cp_expr_size, cp_tree_size): Likewise.
+       * cvt.c (cp_convert_to_pointer, ocp_convert): Likewise.
+       * decl.c (poplevel, make_unbound_class_template, reshape_init,
+       check_special_function_return_type, grokdeclarator,
+       grok_op_properties, tag_name, xref_tag, start_preparsed_function,
+       finish_function): Likewise.
+       * decl2.c (grokfield, maybe_emit_vtables):Likewise.
+       * error.c (dump_global_iord, dump_decl, dump_template_decl,
+       language_to_string): Likewise.
+       * except.c (choose_personality_routine): Likewise.
+       * friend.c (do_friend): Likewise.
+       * g++spec.c (lang_specific_driver): Likewise.
+       * init.c (build_zero_init, expand_default_init, build_new_1,
+       build_vec_delete_1, build_vec_init, build_dtor_call): Likewise.
+       * lex.c (retrofit_lang_decl, cp_type_qual_from_rid): Likewise.
+       * mangle.c (add_substitution, write_unscoped_name,
+       write_template_prefix, write_identifier,
+       write_special_name_destructor, write_type, write_builtin_type,
+       write_expression, write_template_param,
+       write_java_integer_type_codes): Likewise.
+       * method.c (implicitly_declare_fn): Likewise.
+
+2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cp-tree.h (BINFO_PRIMARY_P): Use a binfo flag.
+       (BINFO_INDIRECT_PRIMARY_P): Remove.
+       * class.c (determine_primary_base): Rename to ...
+       (determine_primary_bases): ... here.  Set all primary bases.
+       (set_primary_base): Remove.
+       (mark_primary_bases): Remove.
+       (build_simple_base_path, walk_subobject_offsets,
+       propagate_binfo_offsets, end_of_class): Adjust.
+       (layout_class_type): Rename determine_primary_base call.
+       (dump_class_hierarchy_r, dump_vtable): Adjust. Don't pass a binfo
+       to type_as_string.
+       (dfs_build_secondary_vptr_vtt_inits, dfs_accumulate_vtbl_inits,
+       build_rtti_vtbl_entries): Adjust.
+       * init.c (build_vtbl_address): Adjust.
+
+       * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Use gcc_assert.
+
+2004-08-28  Ziemowit Laski  <zlaski@apple.com>
+
+       * Make-lang.in (CXX_OBJS): Split up into CXX_OBJS and
+       CXX_AND_OBJCXX_OBJS.
+       (CXX_C_OBJS): Include in CXX_AND_OBJCXX_OBJS instead of listing
+       separately on the link line.
+
+2004-08-28  Jason Merrill  <jason@redhat.com>
+
+       * decl.c (expand_static_init): Avoid bogus warnings.
+
+2004-08-27  Jason Merrill  <jason@redhat.com>
+
+       PR c++/16851
+       * tree.c (stabilize_init): See through a COMPOUND_EXPR.
+
+       PR c++/13684
+       * decl.c (expand_static_init): Use thread-safety API.
+       (register_dtor_fn): Return the call, don't expand it.
+       * tree.c (add_stmt_to_compound): New fn.
+       (stabilize_call): Use it.
+
+2004-08-27  Richard Henderson  <rth@redhat.com>
+
+       * cp-tree.def (OFFSETOF_EXPR): New.
+       * parser.c (cp_parser_builtin_offsetof): Either built an
+       OFFSETOF_EXPR, or call fold_offsetof immediately.
+       * pt.c (tsubst_expr): Handle OFFSETOF_EXPR.
+
+2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * call.c (validate_conversion_obstack): Replace
+       my_friendly_assert with gcc_assert or gcc_unreachable.
+       (direct_reference_binding, merge_conversion_sequences,
+       build_user_type_conversion_1, perform_overload_resolution,
+       build_op_delete_call, enforce_access, call_builtin_trap,
+       build_over_call, build_special_member_call, build_new_method_call,
+       initialize_reference): Likewise.
+       * class.c (build_base_path, build_primary_vtable, alter_access,
+       check_bases, update_vtable_entry_for_fn, layout_empty_base,
+       clone_function_decl, adjust_clone_args,
+       type_requires_array_cookie, include_empty_classes,
+       finish_struct_1, resolve_address_of_overloaded_function,
+       instantiate_type, get_vtbl_decl_for_binfo, build_vtt_inits,
+       dfs_build_secondary_vptr_vtt_inits, build_ctor_vtbl_group,
+       accumulate_vtbl_inits, build_vtbl_initializer,
+       build_vbase_offset_vtbl_entries, build_rtti_vtbl_entries): Likewise.
+       * cvt.c (build_up_reference, convert_to_reference): Likewise.
+       * decl.c (poplevel, duplicate_decls, make_typename_type,
+       cxx_init_decl_processing, reshape_init, check_initializer,
+       make_rtl_for_nonlocal_decl, initialize_local_var, cp_finish_decl,
+       expand_static_init, grokfndecl, grokvardecl, build_ptrmem_type,
+       grokdeclarator, copy_fn_p, grok_op_properties, xref_tag,
+       xref_basetypes, start_preparsed_function, save_function_data,
+       finish_function, finish_method, maybe_register_incomplete_var,
+       complete_vars): Likewise.
+       * decl2.c (grok_array_decl, check_member_template,
+       check_classfn, finish_static_data_member_decl, coerce_new_type,
+       coerce_delete_type, import_export_class, decl_needed_p,
+       determine_visibility, import_export_decl, build_cleanup,
+       start_static_initialization_or_destructi, do_static_destruction,
+       prune_vars_needing_no_initialization,
+       build_offset_ref_call_from_tree): Likewise.
+       * error.c (dump_decl, dump_expr): Likewise.
+       * init.c (finish_init_stmts, build_zero_init,
+       expand_virtual_init, expand_default_init, expand_aggr_init_1,
+       build_offset_ref, build_new_1, build_delete, build_vbase_delete):
+       Likewise.
+       * mangle.c (write_method_parms, write_template_args,
+       write_expression, write_template_arg): Likewise.
+       * method.c (make_thunk, finish_thunk, use_thunk): Likewise.
+       * name-lookup.c (pop_binding, begin_scope, leave_scope,
+       resume_scope, push_using_decl, validate_nonmember_using_decl,
+       is_ancestor, poplevel_class, set_inherited_value_binding_p,
+       push_class_level_binding, do_class_using_decl, push_namespace,
+       pop_namespace, add_using_namespace, ambiguous_decl,
+       lookup_namespace_name, lookup_type_current_level,
+       maybe_process_template_type_declaration): Likewise.
+       * parser.c (cp_lexer_peek_nth_token,
+       cp_parser_parse_and_diagnose_invalid_typ,
+       cp_parser_translation_unit, cp_parser_template_id,
+       cp_parser_lookup_name, cp_parser_late_parsing_for_member): Likewise.
+       * pt.c (push_access_scope, finish_member_template_decl,
+       push_inline_template_parms_recursive, add_outermost_template_args,
+       get_innermost_template_args, begin_explicit_instantiation,
+       end_explicit_instantiation, retrieve_specialization,
+       is_specialization_of, is_specialization_of_friend,
+       register_specialization, check_explicit_specialization,
+       comp_template_parms, process_template_parm,
+       process_partial_specialization, convert_nontype_argument,
+       coerce_template_template_parms, coerce_template_parms,
+       mangle_class_name_for_template, lookup_template_function,
+       lookup_template_class, instantiate_class_template, tsubst_decl,
+       tsubst_function_type, tsubst, tsubst_qualified_id, tsubst_copy,
+       instantiate_template, fn_type_unification, type_unification_real,
+       get_template_base, regenerate_decl_from_template,
+       template_for_substitution, instantiate_decl,
+       get_mostly_instantiated_function_type, dependent_scope_ref_p,
+       value_dependent_expression_p, resolve_typename_type): Likewise.
+       * repo.c (repo_emit_p): Likewise.
+       * rtti.c (build_headof, get_tinfo_decl, get_pseudo_ti_init,
+       create_tinfo_types, emit_tinfo_decl): Likewise.
+       * search.c (lookup_base_r, lookup_base, lookup_field_1,
+       dfs_access_in_type, build_baselink, lookup_member,
+       adjust_result_of_qualified_name_lookup, copied_binfo): Likewise.
+       * semantics.c (perform_or_defer_access_check,
+       finish_non_static_data_member, finish_stmt_expr_expr,
+       finish_stmt_expr, finish_call_expr, finish_pseudo_destructor_expr,
+       finish_template_template_parm, finish_member_declaration,
+       emit_associated_thunks): Likewise.
+       * tree.c (build_target_expr_with_type, force_target_expr,
+       copy_binfo, get_first_fn, cp_tree_equal): Likewise.
+       * typeck.c (type_after_usual_arithmetic_conversions, comptypes,
+       cxx_sizeof_or_alignof_type, perform_integral_promotions,
+       build_class_member_access_expr, finish_class_member_access_expr,
+       build_ptrmemfunc_access_expr, build_unary_op,
+       unary_complex_lvalue, cxx_mark_addressable, build_modify_expr,
+       build_ptrmemfunc, expand_ptrmemfunc_cst, check_return_expr
+       * typeck2.c (complete_type_check_abstract,
+       abstract_virtuals_error, process_init_constructor,
+       add_exception_specifier): Likewise.
+
+2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * class.c (build_vtbl_initializer): Use ssize_int.
+       * decl.c (complete_array_type): Likewise.
+       * method.c (finish_thunk): Likewise.
+       * search.c (get_dynamic_base_type): Likewise.
+
+2004-08-26  Richard Henderson  <rth@redhat.com>
+
+       * cp-tree.h (DECL_FIELD_IS_BASE): New.
+       * class.c (build_base_field): Set it.
+       (build_simple_base_path): Use it.
+       (fixed_type_or_null): Don't consider base fields definitive.
+
+2004-08-25  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/16693
+       PR tree-optimization/16372
+       * decl.c (finish_enum): Make the precision of the enumerated type
+       the same width as the underlying integer type.
+
+2004-08-25  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17155
+       * lex.c (build_lang_decl): Set DECL_NO_STATIC_CHAIN for all C++
+       functions.
+
+       * mangle.c (get_identifier_nocopy): Add cast.
+
+       * cp-tree.h (mangle_type): Remove.
+       * mangle.c (globals): GTY it.
+       (mangle_obstack): New variable.
+       (name_obstack): Likewise.
+       (name_base): Likewise.
+       (write_char): Adjust accordingly.
+       (write_chars): Likewise.
+       (write_string): Likewise.
+       (start_mangling): Initialize G.substitutions only one.  Add
+       ident_p parameter.
+       (finish_mangling): Use VARRAY_CLEAR to reclaim
+       storage in G.substitutions.  Use obstack_finish.
+       (init_mangle): Adjust for changes to variable names above.
+       Initialize G.substitutions.
+       (mangle_decl_string): Adjust call to start_mangling.
+       (get_identifier_nocopy): New function.
+       (mangle_decl): Use it.
+       (mangle_type_string): Adjust call to start_mangling.
+       (mangle_special_for_type): Likewise.
+       (mangle_vtt_for_type): Likewise.
+       (mangle_ctor_vtbl_for_type): Likewise.
+       (mangle_thunk): Likewise.
+       (mangle_guard_variable): Likewise.
+       (mangle_ref_init_variable): Likewise.
+
+2004-08-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/14428
+       * pt.c (redeclare_class_template): Check the type of non-type and
+       template template parameter.
+
+2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
+
+
+       * call.c (convert_class_to_reference): Adjust build_int_cst calls.
+       (build_user_type_conversion_1, convert_like_real,
+       build_java_interface_fn_ref, build_special_member_call): Likewise.
+       * class.c (finish_struct_1, build_vtbl_initializer): Likewise.
+       * cp-gimplify.c (cp_gimplify_expr): Likewise.
+       * cvt.c (cp_convert_to_pointer): Likewise.
+       * decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
+       * decl2.c (start_static_initialization_or_destruction,
+       generate_ctor_or_dtor_function): Likewise.
+       * except.c (build_throw): Likewise.
+       * mangle.c (write_integer_cst): Likewise.
+       * method.c (finish_thunk): Likewise.
+       * rtti.c (build_headof, get_tinfo_decl_dynamic,
+       build_dynamic_cast_1, ptr_initializer, ptm_initializer,
+       get_pseudo_ti_init): Likewise.
+       * search.c (get_dynamic_cast_base_type): Likewise.
+       
+2004-08-25  Zack Weinberg  <zack@codesourcery.com>
+
+       * class.c, search.c: Remove references to DWARF_DEBUG.
+
+2004-08-25  Adam Nemet  <anemet@lnxw.com>
+
+       * repo.c (extract_string): Reset backquote after one character.
+       (get_base_filename): Fix indentation.
+2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * decl.c (cxx_init_decl_processing): Adjust
+       build_common_tree_nodes call.
+
+2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/16889
+       * (is_subobject_of_p): Resurrect & optimize.
+       (lookup_field_r): Use it.
+
+2004-08-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/16706
+       * search.c (friend_accessible_p): Increment processing_template_decl
+       when deal with TEMPLATE_DECL of SCOPE.
+
+2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/17149
+       * semantics.c (check_accessibility_of_qualified_id): Defer check
+       if qualifying_type is a template parameter.
+
+2004-08-23  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17163
+       * pt.c (instantiate_decl): Do not try to apply
+       DECL_DECLARED_INLINED_P to a VAR_DECL.
+
+       * search.c (build_baselink): Fix typo in comment.
+
+2004-08-22 Andrew Pinski  <apinski@apple.com>
+
+       Revert:
+       2004-08-22  Andrew Pinski  <apinski@apple.com>
+       PR c++/14029
+       * typeck.c (build_unary_op): Use &a.b if the folded lowered
+       expression is not constant.
+
+2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * name-lookup.c (pushdecl): Rename build_type_copy call.
+       * tree.c (cp_build_qualified_type_real,
+       build_exception_variant, handle_java_interface_attribute): Likewise.
+
+2004-08-22  Andrew Pinski  <apinski@apple.com>
+
+       PR c++/14029
+       * typeck.c (build_unary_op): Use &a.b if the folded lowered
+       expression is not constant.
+
+2004-08-20  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17121
+       * decl.c (expand_static_init): Use DECL_FUNCTION_SCOPE_P.
+
+2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c++/17120
+       * pt.c (tsubst_copy_and_build): Avoid clearing TREE_NO_WARNING for
+       MODOP_EXPR.
+
+2004-08-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       * pt.c (register_specialization): Check DECL_TEMPLATE_SPECIALIZATION
+       before calling comp_template_args.
+
+2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * class.c (build_vtbl_initializer): Use build_int_cst for
+       negative size types.
+       * decl.c (complete_array_type): Likewise.
+       * method.c (finish_thunk): Likewise.
+
+2004-08-20  Andreas Tobler  <a.tobler@schweiz.ch>
+
+       * tree.c: Remove unused mark_local_for_remap_r.
+
+2004-08-19  Eric Christopher  <echristo@redhat.com>
+
+       * cp-tree.h (cxx_unsave_expr_now): Delete prototype.
+       * tree.c (cxx_unsave_expr_now): Delete.
+       (cp_unsave_r): Ditto.
+
+2004-08-19  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/15890
+       * pt.c (push_template_decl_real): Disallow template allocation
+       functions with fewer than two parameters.
+
+2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cp-tree.h (build_shared_int_cst): Remove.
+       * tree.c (shared_int_cache): Remove.
+       (build_shared_int_cst): Remove.
+       * class.c (finish_struct_1): Use build_int_cst.
+
+2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * decl.c (finish_enum): Do not copy value node early, copy
+       later.
+       * lex.c (cxx_init): Force null_node to be unique.
+
+2004-08-19  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c++/17041
+       * pt.c (tsubst_copy, tsubst_copy_and_build): Copy TREE_NO_WARNING
+       from input for MODOP_EXPR.
+
+2004-08-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * pt.c (dependent_template_p): Fix typo in commment.
+
+       PR c++/17068
+       * pt.c (dependent_template_p): Treat IDENTIFIER_NODEs as
+       dependent.
+
+2004-08-17  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/16246
+       * pt.c (unify): Tidy ARRAY_TYPE handling.  Make sure that non-type
+       arguments have the same type as the corresponding parameter.
+
+       PR c++/16215
+       * parser.c (cp_parser_name_lookup_error): If parser->object_scope
+       is set use it for diagnostic purposes.
+       (cp_parser_pseudo_destructor_name): Remove special-case error
+       message.
+
+       PR c++/15871
+       * semantics.c (expand_or_defer_fn): Honor -fkeep-inline-functions.
+
+       PR c++/16965
+       * cp-tree.h (qualified_name_lookup_error): Add parameter.
+       * name-lookup.c (do_class_using_decl): Restrict set of entities
+       passed to cp_emit_debug_info_for_using more carefully.
+       (lookup_qualified_name): Allow lookup_member to return sets of
+       ambiguous entries.
+       * parser.c (cp_parser_lookup_name): Add ambiguous_p parameter.
+       (cp_parser_primary_expression): Handle ambiguous lookups.
+       (cp_parser_template_name): Adjust use of cp_parser_lookup_name.
+       (cp_parser_template_argument): Likewise.
+       (cp_parser_elaborate_type_specifier): Likewise.
+       (cp_parser_namespace_name): Likewise.
+       (cp_parser_class_name): Likewise.
+       (cp_parser_lookup_name_simple): Likewise.
+       * pt.c (tsubst_qualified_id): Handle ambiguous results.
+       (tsubst_expr): Likewise.
+       * semantics.c (qualified_name_lookup_error): Add decl paramter.
+       For ambiguous lookups, print candidates.
+
+2004-08-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/6749
+       * pt.c (instantiate_pending_templates): Add int parameter.  Don't
+       return anything.
+       * cp-tree.h (instantiate_pending_templates): Adjust prototype.
+       * decl2.c (finish_file): Adjust call to
+       instantiate_pending_templates.
+
+2004-08-15  Roger Sayle  <roger@eyesopen.com>
+
+       * call.c (build_vfield_ref, build_call, build_conditional_expr,
+       convert_arg_to_ellipsis, build_x_va_arg, build_over_call,
+       build_java_interface_fn_ref, build_special_member_call,
+       build_new_method_call, initialize_reference): Replace calls to
+       build with calls to buildN.
+       * class.c (build_base_path, convert_to_base_statically,
+       build_vfn_ref, instantiate_type, dfs_accumulate_vtbl_inits,
+       build_vtbl_initializer): Likewise.
+       * cp-gimplify.c (genericize_try_block, genericize_catch_block,
+       gimplify_if_stmt, cp_genericize_r): Likewise.
+       * cvt.c (convert_to_void): Likewise.
+       * decl.c (check_initializer, finish_constructor_body,
+       finish_destructor_body): Likewise.
+       * error.c (dump_expr): Likewise.
+       * except.c (build_exc_ptr, expand_start_catch_block, build_throw):
+       Likewise.
+       * init.c (perform_member_init, expand_virtual_init,
+       expand_cleanup_for_base, build_init, expand_default_init,
+       build_offset_ref, decl_constant_value, build_new, build_new_1,
+       build_vec_delete_1, build_vec_init, build_delete,
+       push_base_cleanups, build_vec_delete): Likewise.
+       * mangle.c (write_integer_cst): Likewise.
+       * method.c (thunk_adjust, do_build_copy_constructor,
+       do_build_assign_ref): Likewise.
+       * pt.c (lookup_template_function, tsubst, tsubst_copy_and_build,
+       unify, build_non_dependent_expr): Likewise.
+       * rtti.c (build_headof, build_typeid, ifnonnull,
+       build_dyanmic_cast_1, tinfo_base_init): Likewise.
+       * semantics.c (begin_compound_stmt, finish_call_expr,
+       finish_pseudo_destructor_expr, finish_id_expression,
+       simplify_aggr_init_expr, finalize_nrv_r): Likewise.
+       * tree.c (build_target_expr, build_cplus_new, array_type_nelts_top,
+       array_type_nelts_total, stabilize_call): Likewise.
+       * typeck.c (decay_conversion, build_class_member_access_expr,
+       lookup_destructor, build_ptrmemfunc_access_expr, build_array_ref,
+       get_member_function_from_ptrfunc, build_binary_op, pointer_diff,
+       build_x_unary_op, build_unary_op, unary_complex_lvalue,
+       build_compound_expr, build_modify_expr, expand_ptrmemfunc_cst,
+       check_return_expr): Likewise.
+       * typeck2.c (split_nonconstant_1, split_nonconstant_init_1,
+       split_nonconstant_init, store_init_value, build_m_component_ref):
+       Likewise.
+
+2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * call.c (convert_class_to_reference,
+       build_user_type_conversion_1, convert_like_real,
+       build_java_interface_fn_ref, build_special_member_call): Use
+       build_int_cst.
+       * class.c (build_vtbl_initializer): Likewise.
+       * cp-gimplify.c (cp_gimplify_expr): Likewise.
+       * cvt.c (cp_convert_to_pointer): Likewise.
+       * decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
+       * decl2.c (start_static_initialization_or_destruction,
+       generate_ctor_or_dtor_function): Likewise.
+       * except.c (build_throw): Likewise.
+       * lex.c (cxx_init): Likewise.
+       * mangle.c (write_integer_cst): Likewise.
+       * rtti.c (build_headof, get_tinfo_decl_dynamic,
+       build_dynamic_cast_1, ptr_initializer, ptm_initializer,
+       get_pseudo_ti_init): Likewise.
+       * search.c (get_dynamic_cast_base_type): Likewise.
+       * tree.c (build_shared_int_cst): Likewise.
+
+2004-08-12  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/16273
+       * class.c (count_depth_data): New type.
+       (dfs_depth_post): New function.
+       (dfs_depth_q): Likewise.
+       (find_final_overrider_data_s): Change type of vpath.
+       Add vpath_list.
+       (dfs_find_final_overrider_1): New function.
+       (dfs_find_final_overrider): Use it.
+       (dfs_find_final_overrider_q): Adjust use of vpath.
+       (dfs_find_final_overrider_post): Likewise.
+       (find_final_overrider): Use dfs_depth.  Allocate and deallocate
+       vpath_list.
+
+2004-08-12 Jan Beulich <jbeulich@novell.com>
+
+       * parser.c (cp_parser_asm_definition): Properly consume scope operator
+       tokens preceding the clobbers. Don't check for scope operator
+       following inputs. Simplify inputs handling to match that now used for
+       clobbers.
+
+2004-08-11  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/16698
+       * except.c (build_throw): Allocate cleanup_type and the function
+       for __cxa_throw separately.
+
+       PR c++/16853
+       * call.c (standard_conversion): Do not accept conversions between
+       pointers to members if the class types are unrelated.
+
+       PR c++/16618
+       * parser.c (cp_parser_builtin_offsetof): Cast to "const volatile
+       char &" instead of just "char &".
+
+       PR c++/16870
+       * pt.c (tsubst): Just return the unknown_type_node.
+
+2004-08-11  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/16964
+       * parser.c (cp_parser_class_specifier): Robustify.
+
+       PR c++/16904
+       * pt.c (tsubst_copy_and_build): Complain about invalid
+       qualification.
+
+       PR c++/16929
+       * pt.c (tsubst_default_argument): Clear out current_class_ptr and
+       current_class_ref while tsubsting.
+
+2004-08-10  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/16971
+       * parser.c (cp_parser_init_declarator): Robustify.
+
+2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * typeck2.c (process_init_constructor): Guard the missing field warning
+       with warn_missing_field_initializers rather than extra_warnings.
+
+2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
+
+       * class.c (instantiate_type) <ENTRY_VALUE_EXPR>: Do not handle.
+
+2004-08-05  Mark Mitchell  <mark@codesourcery.com>
+
+       * decl.c (start_preparsed_function): Move determine_visibility
+       call.
+       * decl2.c (determine_visibility): Incorporate dllexport testing.
+
+2004-08-05  Geoffrey Keating  <geoffk@apple.com>
+
+       * g++spec.c (lang_specific_driver): An -Xlinker or -Wl, option
+       means that libstdc++ is needed.
+
+2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cvt.c (cp_convert_to_pointer): Adjust force_fit_type call.
+
+2004-08-04  Geoffrey Keating  <geoffk@apple.com>
+
+       * decl.c (make_rtl_for_nonlocal_decl): Set DECL_ASSEMBLER_NAME rather
+       than passing it as a parameter to rest_of_decl_compilation.
+       * decl2.c (grokfield): Use set_user_assembler_name.
+
+2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * decl.c (complete_array_type): Don't gratuitously copy
+       maxindex. Its type is always set.
+
+2004-08-04  Paul Brook  <paul@codesourcery.com>
+
+       * Make-lang.in (cp/semantics.o, cp/optimize.o): Depend on TARGET_H.
+       * cp-tree.h (struct language_function): Rename x_dtor_label to
+       x_cdtor_label.
+       (dtor_label): Rename ...
+       (cdtor_label): ... to this.
+       * decl.c (begin_constructor_body): Remove.
+       (check_special_function_return_type): Maybe change the return type.
+       (grokdeclarator): Pass the class type.
+       (start_preparsed_function): Constructors may need a return label.
+       (finish_constructor_body, finish_destructor_body): Set the return
+       value.
+       (begin_function_body): Don't call begin_constructor_body.
+       (finish_function): Don't warn for constructors or destructors.
+       (implicitly_declare_fn): Maybe change the return type.
+       * optimize.c: Include target.h.
+       (maybe_clone_body): Remap the function result.
+       * semantics.c: Include target.h.
+       (finish_return_stmt): Maybe jump to return label for constructors.
+
+2004-08-03  Mark Mitchell  <mark@codesourcery.com>
+
+       * class.c (build_vtable): Do not set DECL_VISIBILITY here.
+       (check_field_decls): Or here.
+       (check_methods): Or here.
+       (initialize_array): Don't mess with DECL_CONTEXT.
+       * cp-tree.h (start_decl): Adjust prototype.
+       (determine_visibility): New function.
+       * decl.c (duplicate_decls): Remove checks for hidden "operator
+       new".
+       (build_library_fn_1): Give all library functions default
+       visibility.
+       (start_decl): Add pop_scope_p parameter.  Tidy.
+       (cp_finish_decl): Do not pop scopes here.  Call
+       determine_visibility for variable definitions.
+       (start_preparsed_function): Call determine_visibility.
+       * decl2.c (determine_visibility): New function.
+       * method.c (use_thunk): Fix formatting.
+       * parser.c (cp_parser_condition): Adjust calls to start_decl.
+       (cp_parser_init_declarator): Likewise.
+       * pt.c (instantiate_decl): Always call pop_nested_class.
+       * rtti.c (get_tinfo_decl): Do not set DECL_VISIBILITY.
+       (tinfo_base_init): Likewise.
+
+2004-08-02  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/16707
+       * name-lookup.c (validate_nonmember_using_decl): Robustify.
+
+2004-08-01  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/16224
+       * name-lookup.c (decl_namespace): Remove.
+       (current_decl_namespace): Use decl_namespace_context instead of
+       decl_namespace.
+       (push_decl_namespace): Likewise.
+       (arg_assoc_class): Likewise.
+       (arg_assoc_type): Likewise.
+       * pt.c (check_specialization_namespace): New function.
+       (maybe_process_partial_specialization): Use it.
+       (register_specialization): Likewise.
+
+       PR c++/16489
+       * cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): New macro.
+       * call.c (null_ptr_cst_p): Handle variables with constant
+       initializers.
+       * pt.c (convert_nontype_argument): Use
+       DECL_INTEGRAL_CONSTANT_VAR_P.
+       * semantics.c (finish_id_expression): Likewise.
+
+       PR c++/16529
+       * decl.c (duplicate_decls): Reject duplicate namespace
+       declarations.
+
+       PR c++/16810
+       * typeck.c (build_ptrmemfunc): Loosen assertion.
+
+2004-08-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * call.c (z_candidate::template_decl): Rename from template.
+       (add_template_candidate_real): Adjust member reference.
+       (joust): Likewise.
+
+2004-07-29  Mark Mitchell  <mark@codesourcery.com>
+
+       * cp-tree.h (IDENTIFIER_REPO_CHOSEN): Define.
+       (lang_decl_flags): Narrow the width of "languages".  Add
+       repo_available_p.
+       (DECL_NEEDED_P): Remove.
+       (FOR_EACH_CLONE): New macro.
+       (DECL_REPO_AVAILABLE_P): Likewise.
+       (DECL_TINFO_P): Likewise.
+       (set_linkage_according_to_type): Declare.
+       (import_export_vtable): Remove.
+       (import_export_tinfo): Likewise.
+       (mark_needed): New function.
+       (decl_needed_p): Likewise.
+       (note_vauge_linkage_fn): Likewise.
+       (init_repo): Change prototype.
+       (repo_template_used): Remove.
+       (repo_template_instantiated): Likewise.
+       (repo_emit_p): New function.
+       (repo_export_class_p): Likewise.
+       (no_linkage_check): Change prototype.
+       * class.c (set_linkage_according_to_type): New function.
+       (build_vtable): Use it.  Do not call import_export_vtable.  Set
+       DECL_IGNORED_P if appropriate.
+       * decl.c (duplicate_decls): Preserve DECL_REPO_AVAILABLE_P.
+       (make_rtL_for_nonlocal_decls): Check for template instantiations
+       explicitly.
+       (grokfndecl): Adjust call to no_linkage_check.
+       (set_linkage_for_static_data_member): New function.
+       (grokvardecl): Use it.  Adjust call to no_linkage_check.
+       (grokdeclarator): Use set_linkage_for_static_data_member.
+       * decl2.c (note_vague_linkage_fn): New function.
+       (note_vague_linkage_var): Likewise.
+       (finish_static_data_member_decl): Use it.
+       (import_export_vtable): Remove.
+       (import_export_class): Use repo_export_class_p.
+       (var_finalized_p): Simplify.
+       (maybe_emit_vtables): Simplify.
+       (mark_needed): New function.
+       (decl_needed_p): Likewise.
+       (import_export_decl): Add documentation and consistency checks.
+       Use repo_emit_p.  Handle virtual tables and RTTI information
+       here.
+       (import_export_tinfo): Remove.
+       (write_out_vars): Call import_export_decl.
+       (cxx_callgraph_analyze_expr): Ensure that all vtables are emitted
+       whenever one is.
+       (finish_file): Use decl_needed_p.  Do not call import_export_decl
+       for undefined static data members.  Do not warn about undefined
+       inlines when using a repository.
+       (mark_used): Use note_vague_linkage_fn.  Always defer template
+       instantiations.
+       * lex.c (cxx_init): Adjust call to init_repo.  Always set
+       flag_unit_at_a-time.
+       * method.c (synthesize_method): Remove unncessary
+       import_export_decl call.
+       (implicitly_declare_fn): Use set_linkage_according_to_type.
+       * optimize.c (maybe_clone_body): Use FOR_EACH_CLONE.
+       * pt.c (instantiate_class_template): Don't redundantly add classes
+       to keyed_classes.  Don't call repo_template_used.
+       (tsubst_decl): Set DECL_INTERFACE_KNOWN for instantiations of
+       templates with internal linkage.
+       (check_instantiated_args): Adjust call to no_linkage_check.
+       (instantiate_template): Use FOR_EACH_CLONE.
+       (mark_definable): New function.
+       (mark_decl_instantiated): Use it.
+       (do_decl_instantiation): Adjust tests for explicit instantiation
+       after "extern template".
+       (instantiate_class_member): Do not use repo_template_instantiated.
+       (do_type_instantiation): Simplify.
+       (instantiate_decl): Use mark_definable.  Check repo_emit_p.
+       Simplify.
+       * repo.c (repo_get_id): Remove.
+       (original_repo): Remove.
+       (IDENTIFIER_REPO_USED): Remove.
+       (IDENTIFIER_REPO_CHOSEN): Remove.
+       Remove all #if 0'd code.
+       (repo_template_used): Remove.
+       (repo_template_instantiated): Remove.
+       (temporary_obstack_initialized_p): New variable.
+       (init_repo): Register with lang_post_pch_load.  Avoid creating
+       identifiers unnecessarily.  Don't use original_repo.  Close the
+       file here.
+       (reopen_repo_file_for_write): Not here.
+       (finish_repo): Always write out a new repository file.
+       (repo_emit_p): New function.
+       (repo_export_class_p): Likewise.
+       * rtti.c (get_tinfo_decl): Use set_linkage_according_to_type.
+       (involves_incomplete_p): New function.
+       (tinfo_base_init): Use it.
+       (ptr_initializer): Remove non_public_ptr parameter.
+       (ptm_initializer): Likewise.
+       (get_pseudo_ti_init): Likewise.
+       (unemitted_tinfo_decl_p): Remove.
+       (emit_tinfo_decl): Use import_export_decl.
+       * semantics.c (expand_body): Move updates of static_ctors and
+       static_dtors to ...
+       (expand_or_defer_fn): ... here.
+       * tree.c (no_linkage_check): Add relaxed_p parameter.
+
+2004-07-28  Eric Christopher  <echristo@redhat.com>
+
+       * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
+
 2004-07-28  Nathan Sidwell  <nathan@codesourcery.com>
 
        * cp-tree.h (struct tree_pair_s): New.