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