OSDN Git Service

* decl2.c (import_export_class): Never export/import vtables
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index a15f152..2639623 100644 (file)
@@ -1,3 +1,231 @@
+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
 
 2004-06-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
-       PR c++/14123    
+       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. 
+       ARRAY_TYPE.
 
 2004-06-27  Mark Mitchell  <mark@codesourcery.com>
 
        (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. 
+       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. 
+       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_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. 
+       pp_cxx_right_paren.
        (dump_exception_spec): Likewise.
        (dump_function_name): Use pp_cxx_tree_identifier and
-       pp_cxx_identifier. 
+       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. 
+       pp_cxx_whitespace throughout.
        (dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
-       pp_cxx_right_paren. 
+       pp_cxx_right_paren.
        (dump_unary_op): Likewise.
        (reinit_cxx_pp): New function.
        (type_as_string); Use it.
        (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