+2004-07-10 Mike Stump <mrs@apple.com>
+
+ * decl2.c (import_export_class): Never export/import vtables
+ with inline key functions.
+
+2004-07-09 Steven Bosscher <stevenb@suse.de>
+
+ * typeck.c (c_expand_asm_operands): Remove.
+
+2004-07-09 Mike Stump <mrs@apple.com>
+
+ * typeck.c (build_class_member_access_expr): Skip null deref
+ warning when we don't dereference it.
+
+2004-07-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/8211
+ PR c++/16165
+ * class.c (check_field_decls): Improve -Weffc++ warning: do not
+ warn for pointers to functions/members, or for classes without
+ destructors.
+
+2004-07-08 Mark Mitchell <mark@codesourcery.com>
+
+ * name-lookup.h (struct cp_binding_level): Update documentation
+ for class_shadowed.
+
+2004-07-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/16169
+ * typeck.c (check_return_expr): Improve -Weffc++ warning: handle
+ returning CALL_EXPR, and non-reference return type.
+
+2004-07-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * name-lookup.c (push_binding): Use VEC_reserve.
+
+2004-07-08 Richard Henderson <rth@redhat.com>
+
+ * cp-tree.h (expand_eh_spec_block): Remove.
+
+2004-07-07 Mark Mitchell <mark@codesourcery.com>
+
+ * cp-tree.h (saved_scope): Remove x_previous_class_type and
+ x_previous_class_values; add x_previous_class_level.
+ (previous_class_type): Remove.
+ (previous_class_values): Remove.
+ (previous_class_level): New macro.
+ * class.c (pushclass): Restore the identifier cache more
+ expeditiously.
+ (invalidate_class_lookup_cache): Use vector for class_shadowed and
+ previous_class_values.
+ * decl.c (poplevel): Likewise.
+ * name-lookup.c (cxx_binding_init): New function.
+ (cxx_binding_make): Use it.
+ (push_binding): For a binding in a class level, use a vector of
+ cp_class_binding nodes.
+ (push_binding_level): New function.
+ (begin_scope): Use it.
+ (leave_scope): Do not put class binding levels on the free list.
+ (print_binding_level): Adjust for the fact that class_shadowed is
+ a vector.
+ (poplevel_class): Likewise.
+ (clear_identifier_class_values): Likewise.
+ (push_class_level_binding): Likewise.
+ (set_class_shadows): Remove.
+ (store_binding): New function.
+ (store_class_bindings): New function.
+ (push_to_top_level): Use store_class_bindings as appropriate.
+ (pop_from_top_level): Use previous_class_level, not
+ previous_class_type.
+ * name-lookup.h (cp_class_binding): New type.
+ (cp_binding_level): Use a vector object for class_shadowed.
+ (push_binding_level): Declare.
+ (set_class_shadows): Remove.
+
+2004-07-07 Andrew Pinski <apinski@apple.com>
+
+ * class.c (instantiate_type): BUFFER_REF is dead.
+ * lex.c (init_operators): IN_EXPR is dead.
+
+2004-07-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/16334
+ * call.c (build_new_op): Give overload warnings for built-in
+ candidates.
+
+2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR c++/16276
+ * rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
+ is not public.
+
+2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
+
+ * cp-tree.h (CLASSTYPE_N_BASECLASSES): Remove.
+ * class.c (build_primary_vtable, check_bases,
+ determine_primary_base, finish_struct_bits,
+ maybe_warn_about_overly_private_class, dfs_find_final_overrider_q,
+ get_basefndecls, warn_hidden, walk_subobject_offsets,
+ build_base_fields, create_vtable_ptr, propagate_binfo_offsets,
+ layout_virtual_bases, end_of_class, warn_about_ambiguous_bases,
+ finish_struct_1, get_vfield_name, contains_empty_class_p,
+ dump_class_hierarchy_r, finish_vtbls, build_vtt_inits,
+ dfs_ctor_vtable_bases_queue_p, accumulate_vtbl_inits,
+ add_vcall_offset_vtbl_entries_r, cp_fold_obj_type_ref): Adjust
+ BINFO macros.
+ * decl.c (xref_basetypes): Likewise.
+ * dump.c (cp_dump_tree): Likewise.
+ * error.c (dump_expr): Likewise.
+ * init.c (sort_mem_initializers, expand_member_init,
+ push_base_cleanups): Likewise.
+ * method.c (do_build_copy_constructor, do_build_assign_reg,
+ synthesize_exception_spec): Likewise.
+ * name-lookup.c (arg_assoc_class):
+ * pt.c (instantiate_class_template, tsubst,
+ get_template_base_recursive):
+ * ptree.c (cxx_print_type):
+ * rtti.c (get_psuedo_ti_init, get_pseudo_ti_desc): Likewise.
+ * search.c (lookup_base_r, dynamic_cast_base_recurse,
+ dfs_access_in_type, access_in_type, lookup_field_queue_p,
+ bfs_walk, dfs_walk_real, look_for_overrides, markedp, unmarkedp,
+ marked_pushdecls_p, unmarked_pushdecls_p, dfs_debug_markedp,
+ dfs_debug_unmarkedp, dfs_check_overlap, dfs_no_overlap_yet,
+ binfo_for_vtable, copied_binfo, original_binfo): Likewise
+ * tree.c (copy_base_binfos, make_binfo): Likewise.
+ * typeck.c (commmon_base_type): Likewise
+ * typeck2.c (process_init_constructor): Likewise
+
+2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * decl.c (check_tag_decl): Name redeclared type in diagnostic.
+
+2004-07-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/3671
+ * pt.c (convert_nontype_argument): Disallow conversions between
+ different enumeration types.
+
+2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
+
+ * cp-tree.h (BINFO_MARKED): Remove.
+ (BINFO_VTABLE_PATH_MARKED, BINFO_NEW_VTABLE_MARKED,
+ BINFO_DEPENDENT_BASE_P, BINFO_LOST_PRIMARY_P,
+ BINFO_INDIRECT_PRIMARY_P): Use appropriate BINFO_FLAG_n.
+ (SET_BINFO_NEW_VTABLE_MARKED): Use BINFO_VIRTUAL_P.
+ * class.c (build_base_path): Use BINFO_VIRTUAL_P.
+ (mark_primary_bases, determine_primary_base, base_derived_from,
+ dfs_find_final_overrider, dfs_find_final_overrider_q,
+ dfs_find_inal_overrider_post, update_vtable_entry_for_fn,
+ dfs_modify_vtables, walk_subobject_offsets,
+ layout_nonempty_base_or_field, build_base_field,
+ build_base_fields, propagate_binfo_offsets, layout_virtual_bases,
+ end_of_class, get_vfield_name, dump_class_hierarchy, dump_vtable,
+ finish_vtbls, build_vtt_inits, dfs_build_secondary_vptr_vtt_inits,
+ build_ctor_vtbl_group, accumulate_vtble_inits,
+ dfs_accumulate_vtbls_inits, build_vbase_offset_vtbl_entries,
+ build_vcall_offset_vtbl_entries, add_vcall_offset_vtbl_entries_r,
+ add_vcall_offset_vtbl_entries_1): Likewise.
+ * decl.c (xref_basetypes): Incomming virtual base indicated by
+ TREE_TYPE. Adjust.
+ * dump.c (cp_dump_tree): Use BINFO_VIRTUAL_P.
+ * init.c (finish_init_stmts, sort_mem_initializers,
+ emit_mem_initializers, build_vtble_address, expand_member_init,
+ push_base_cleanups): Likewise.
+ * method.c (do_build_copy_constructor): Likewise.
+ * pt.c (instantiate_class_template,
+ get_template_base_recursive): Likewise.
+ * rtti.c (dfs_class_hint_mark, get_pseudo_ti_init,
+ get_pseudo_ti_desc): Likewise.
+ * search.c (lookup_base_r, dynamic_cast_base_recurse,
+ binfo_from_vbase, binfo_via_virtual, copied_binfo,
+ original_binfo): Likewise.
+ * semantics.c (finish_base_specifier): Virtualness is indicated
+ by TREE_TYPE.
+ * tree.c (copy_base_binfos): Use BINFO_VIRTUAL_P.
+
+2004-07-06 Mark Mitchell <mark@codesourcery.com>
+
+ Revert:
+ 2004-06-24 Jason Merrill <jason@redhat.com>
+ PR c++/16115
+ * decl.c (grokparms): Give the PARM_DECL reference type if the
+ parameter is passed by invisible reference.
+
+2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * cp-lang.c (cp_var_mod_type_p): Add extra arg.
+ * decl.c (grokdeclarator): Extra arg to variably_modified_type_p.
+ * pt.c (check_instantiated_args, unify): Likewise.
+
+2004-07-05 Phil Edwards <phil@codesourcery.com>
+
+ * Make-lang.in (check-c++, lang_checks): Add some comments.
+
+2004-07-05 Zack Weinberg <zack@codesourcery.com>
+
+ * cp-mudflap.c: Delete file.
+ * Makefile.in: Remove all references to cp-mudflap.o.
+
+2004-07-05 Zack Weinberg <zack@codesourcery.com>
+
+ * decl.c (cxx_init_decl_processing): Call
+ build_common_tree_nodes before creating the global NAMESPACE_DECL.
+
+2004-07-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/2518
+ * call.c (build_operator_new_call): Look only at global scope.
+
+2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
+
+ * call.c (enforce_access): Expect TREE_BINFO.
+ * class.c (binfo_ctor_vtable): Check TREE_BINFO.
+ * cp-tree.h (RECORD_OR_UNION_TYPE_CHECK): Remove.
+ (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
+ Adjust.
+ (BINFO_LANG_ELTS): Remove.
+ (BINFO_LANG_SLOTS): New.
+ (TYPE_RAISES_EXCEPTIONS, ENUM_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1.
+ (CLASSTYPE_TEMPLATE_INFO): Adjust.
+ * pt.c (tsubst): Split TREE_BINFO case from TREE_VEC case.
+ * search.c (lookup_member): Check TREE_BINFO.
+ * semantics.c (perform_or_defer_access_check): Likewise.
+ (check_accessibility_of_qualified_id): Check
+ deferred_access_no_check.
+ * tree.c (make_binfo): Use make_tree_binfo.
+
+2004-07-04 Mark Mitchell <mark@codesourcery.com>
+
+ * method.c (implicitly_declare_fn): Set linkage of generated
+ functions.
+
+2004-07-04 Richard Henderson <rth@redhat.com>
+
+ * typeck.c (cxx_mark_addressable): Don't put_var_into_stack.
+
+2004-07-03 Scott Brumbaugh <scottb.lists@verizon.net>
+
+ PR c++/3761
+ * name-lookup.c (push_class_level_binding): Don't pass a
+ TREE_LIST of ambiguous names to check_template_shadow as it
+ only handles declarations. Instead, pull the declaration
+ out and pass that.
+
+2004-07-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/14971
+ * pt.c (check_explicit_specialization): Clarify error message.
+
+2004-07-02 Richard Henderson <rth@redhat.com>
+
+ * tree.c (cp_unsave_r): Update remap_save_expr call.
+
+2004-07-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/16240
+ * mangle.c (write_template_arg): Correct mangling.
+
+ PR c++/16297
+ * decl.c (grokdeclarator): Robustify.
+
+2004-07-01 Richard Henderson <rth@redhat.com>
+
+ * class.c (fixed_type_or_null): Don't handle RTL_EXPR.
+ * method.c (synthesize_method): Don't clear_last_expr.
+ * name-lookup.c (maybe_push_cleanup_level): Likewise.
+
+2004-07-01 Nick Clifton <nickc@redhat.com>
+
+ * decl2.c (import_export_class): Invoke the
+ import_export_class field in the gcc_target structure if it is not
+ empty.
+
+2004-06-30 Richard Henderson (rth@redhat.com>
+
+ * decl.c (start_preparsed_function): Don't set immediate_size_expand.
+ * method.c (use_thunk): Likewise.
+
+2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * call.c (build_over_call), typeck.c (build_function_call): Call
+ check_function_arguments instead of check_function_format.
+
+2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * call.c (build_over_call), typeck.c (build_function_call): Update
+ calls to check_function_format.
+
+2004-06-30 Richard Henderson <rth@redhat.com>
+
+ * call.c (build_over_call): Use __builtin_memcpy for copying
+ CLASS_AS_BASE rather than funny casting.
+
+2004-06-30 Richard Henderson <rth@redhat.com>
+
+ * init.c (build_new_1): Fill in TYPE_DOMAIN, TYPE_SIZE and
+ TYPE_SIZE_UNIT of full_type.
+
+2004-06-30 Per Bothner <per@bothner.com>
+
+ Conditionally compile support for --enable-mapped_location.
+ * decl.c (pop_label): Handle (imperfectly) USE_MAPPED_LOCATION case.
+ * decl2.c: If USE_MAPPED_LOCATION, don't do some line number
+ adjustments - which I don't understand.
+ * error.c (dump_decl): Rename "<interrnal>" to "<built-in>".
+ * error.c: Use LOCATION_FILE and EXPR_LOCATION macros.
+ (print_instantiation_partial_context): Use expand_location.
+ * decl.c (duplicate_decl): Use new DECL_IS_BUILTIN macro.
+ * name-lookup.c: Likewise.
+ * lex.c (cxx_init): Likewise. Also use BUILTINS_LOCATION.
+ * name-lookup.c: Use input_line macro.
+ * parser.c (cp_lexer_get_preprocessor_token): Use UNKNOWN_LOCATION.
+ (cp_parser_statement): Rename locaal variable statement_locus to
+ statement_location and use SET_EXPR_LOCATION macro.
+ * pt.c: Handle USE_MAPPED_LOCATION case. Use new macros.
+ * tree.c (cp_walk_subtrees): Likewise.
+
+2004-06-29 Per Bothner <per@bothner.com>
+
+ * tree.c (build_min_nt, build_min, build_min_non_dep):
+ Don't set TREE_COMPLEXITY from input_line.
+
+2004-06-29 Paul Brook <paul@codesourcery.com>
+
+ * init.c: Include target.h.
+ (get_cookie_size): Remove and replace with target hook.
+ Update callers.
+ (build_new_1): Store the element size in the cookie.
+
+2004-06-29 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/16260
+ * parser.c (cp_parser_template_declaration_after_export): Disable
+ access checks here ...
+ (cp_parser_class_specifier): ... not here.
+
+2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
+
+ * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
+ VAR_FUNCTION_OR_PARM_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
+ BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Use appropriate
+ TREE_CHECK macro.
+
+2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
+
+ * cp-tree.h (struct deferred_access): Move to ...
+ * semantics.c (struct deferred_access): ... here. Adjust.
+ (deferred_access_stack): Make a VEC(deferred_access),
+ (deferred_access_free_list): Remove.
+ (deferred_access_no_check): New.
+ (push_deferring_access_checks, resume_deferring_access_checks,
+ stop_deferring_access_checks, pop_deferring_access_checks,
+ get_deferred_access_checks, pop_to_parent_deferring_access_checks,
+ perform_deferred_access_checks, perform_or_defer_access_check): Adjust.
+
+2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/16174
+ * call.c (build_temp): Declare.
+ (check_constructor_callable): New.
+ (reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for
+ CONSTRUCTOR_CALLABLE.
+ (convert_like_real, initialize_reference): Use
+ check_constructor_callable.
+ * cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): New.
+ (LOOKUP_*): Renumber.
+
+2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
+
+ * friend.c (add_friend): Only perform access checks when context
+ is a class.
+ * lex.c (cxx_make_type): Only create a binfo for aggregate types.
+ * parser.c (cp_parser_class_specifier): Disable access checks here
+ when parsing the body of a templated class.
+ * semantics.c (perform_or_defer_access_checks): Reorder to allow
+ NULL binfos when not checking access.
+
+2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
+
+ Use vector API for vbase list.
+ * cp-tree.h: Include vec.h
+ (DEF_VEC_P (tree)): New type.
+ (struct lang_type_class): Change vbase's member type.
+ (binfo_for_vbase): Declare.
+ * class.c (determine_primary_base, base_derived_from,
+ update_vtable_entry_for_fn, walk_subobject_offsets, end_of_class,
+ warn_about_ambiguous_bases, dfs_accumulate_vtbl_inits,
+ build_vtbl_initializer): Adjust.
+ * decl.c (xref_basetypes): Adjust, accumulate upper bound of
+ vbases.
+ * init.c (sort_mem_initializers, expand_member_init,
+ push_base_cleanups): Adjust.
+ * method.c (do_build_copy_constructor): Adjust.
+ * search.c (get_pure_virtuals, copied_binfo, original_binfo): Adjust.
+ (binfo_for_vbase): New.
+ * tree.c (copy_base_binfos): Adjust.
+
+2004-06-28 Mark Mitchell <mark@codesourcery.com>
+
+ * parser.c (cp_parser_set_decl_spec_type): Fix thinko.
+
+2004-06-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/14123
+ * cxx-pretty-print.c (pp_cxx_ptr_operator): Properly put
+ paranthesis in case of pointers to array members.
+ * error.c (dump_type_prefix): Likewise.
+ (dump_type_suffix): Maybe issue a whitespace when printing
+ ARRAY_TYPE.
+
+2004-06-27 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/16193
+ * parser.c (cp_parser_set_decl_spec_type): Refine test for
+ redefinition of built-in types.
+
+2004-06-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * error.c (pp_template_argument_list_start): Remove.
+ (pp_template_argument_list_end): Likewise.
+ (pp_separate_with_comma): Use pp_cxx_separate_with.
+ (reinit_global_formatting_buffer): Remove.
+ (pp_non_consecutive_character): Likewise.
+ (dump_scope): Use pp_cxx_colon_colon.
+ (dump_template_parameter): Use pp_cxx_identifier,
+ pp_cxx_tree_identifier and pp_cxx_whitespace.
+ (dump_templat_bindings): Replace use of pp_string with sequence
+ of pp_cxx_whitespace and pp_equal.
+ (dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
+ pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
+ padding here.
+ (dump_aggr_type): Use pp_cxx_identifier amd pp_cxx_tree_identifier.
+ (dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
+ pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star troughout.
+ (dump_type_suffix): Use pp_cxx_right_paren, pp_cxx_left_bracket,
+ pp_cxx_right_bracket, pp_cxx_identifier throughout,
+ (dump_decl): Likewise.
+ (dump_template_decl): Likewise.
+ (dump_function_decl): Likewise. Set padding as appropriate.
+ (dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier and
+ pp_cxx_right_paren.
+ (dump_exception_spec): Likewise.
+ (dump_function_name): Use pp_cxx_tree_identifier and
+ pp_cxx_identifier.
+ (dump_template_parms): Use pp_cxx_begin_template_argument_list and
+ pp_cxx_end_template_argument_list.
+ (dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
+ pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier and
+ pp_cxx_whitespace throughout.
+ (dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
+ pp_cxx_right_paren.
+ (dump_unary_op): Likewise.
+ (reinit_cxx_pp): New function.
+ (type_as_string); Use it.
+ (expr_as_string): Likewise.
+ (decl_as_string); Likewise.
+ (context_as_string): Likewise.
+ (lang_decl_name): Likewise.
+ (decl_to_string): Likewise.
+ (expr_to_string): Likewise.
+ (parm_to_string): Likewise.
+ (type_to_string): Likewise.
+ (args_to_string): Likewise.
+ (cv_to_string): Likewise.
+
+2004-06-26 Mark Mitchell <mark@codesourcery.com>
+
+ * cp-tree.h (cp_cv_quals): New type.
+ (cp_declarator): Use it instead of "tree" as appropriate.
+ (grok_method_quals): Adjust prototype.
+ (grokclassfn): Likewise.
+ (do_friend): Likewise.
+ * decl.c (grokfndecl): Use cp_cv_quals, not tree.
+ (grokdeclarator): Likewise.
+ * decl2.c (grok_method_quals): Likewise.
+ (grokclassfn): Likewise.
+ * friend.c (do_friend): Likewise.
+ * method.c (implicitly_declare_fn): Adjust call to grokclassfn.
+ * parser.c (make_call_declarator): Use cp_cv_quals, not tree.
+ (make_pointer_declarator): Likewise.
+ (make_reference_declarator): Likewise.
+ (make_ptrmem_declarator): Likewise.
+ (cp_parser_ptr_operator): Likewise.
+ (cp_parser_cv_qualifier_seq_opt): Likewise.
+ (cp_parser_cv_qualifier_opt): Remove.
+ (cp_parser_new_declarator_opt): Adjust call to
+ cp_parser_ptr_operator.
+ (cp_parser_conversion_declaration_opt): Likewise.
+ (cp_parser_declarator): Use cp_cv_quals, not tree.
+ (cp_parser_direct_declarator): Likewise.
+
2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* call.c, cp-tree.h, cxx-pretty-print.c, decl.c, decl2.c:
(cp_parser_set_decl_spec_type): Likewise.
* pt.c: Do not include lex.h.
* semantics.c: Likewise.
- (finish_member_class_template): Remove.
-
+ (finish_member_class_template): Remove.
+
2004-06-23 Roger Sayle <roger@eyesopen.com>
* call.c (build_cxx_call): Don't call expand_tree_builtin. No