OSDN Git Service

2004-07-12 Andrew Pinski <apinski@apple.com>
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index ea3b13f..e5de5a7 100644 (file)
@@ -1,5 +1,100 @@
+2004-07-12  Andrew Pinski  <apinski@apple.com>
+
+       PR c++/16475
+       Revert:
+       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-12  Eric Christopher  <echristo@redhat.com>
+
+       * parser.c (cp_parser_class_head): Remove unused variable.
+
+2004-07-12  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       * decl.c (grok_op_properties): Reject [de-]allocation functions
+       declared in a namespace, or declared as static.
+
+2004-07-12  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cp-tree.h (make_binfo): Remove.
+       * decl.c (xref_basetypes): Use make_tree_binfo directly.
+       * tree.h (copy_base_binfos): Likewise.
+       (make_binfo): Remove.
+
+       * call.c (build_user_type_conversion_1, build_new_op,
+       check_constructor_callable, build_temp,
+       perform_direct_initialization_of_possible): Pass type directly to
+       lookup_fnfields & build_special_member_call.
+       (build_special_member_call): Accept a type, and complete it.
+       * class.c (finish_stuct_bits): Copy the BINFOs here.
+       * cvt.c (ocp_convert): Pass type directly to
+       build_special_member_call.
+       * decl.c (build_ptrmemfunc_type): Call xref_bastypes here.
+       (xref_basetypes): Allocate the binfo here. Adjust.
+       * init.c (build_init, build_new_1): Pass type directly to
+       build_special_member_call.
+       * lex.c (cxx_make_type): Do not allocate binfo here.
+       * name-lookup.c (arg_assoc_class): Incomplete types have no binfo.
+       * parser.c (cp_parser_class_head): Always call xref_basetypes.
+       * pt.c (instantiate_class_template): Likewise. Inhibit access
+       checking for template friends.
+       * ptree.c (cxx_print_type): Adjust record printing.
+       * search.c (lookup_base): When taking a type, complete it before
+       looking for a binfo.
+       (lookup_member): Delay completing a type.
+       (push_class_decls): Don't walk an incomplete type.
+       (lookup_conversions): Likewise.
+       * semantics.c (finish_stmt_expr_expr): Pass type directly to
+       build_special_member_call.
+       * tree.c (copy_base_binfos): Adjust.
+       (make_binfo): Likewise.
+       * typeck.c (build_modify_expr): Pass type directly to
+       build_special_member_call.
+       * typeck2.c (process_init_constructor): Check a binfo exists.
+       (build_m_component_ref): Allow accessing an incomplete type.
+       (build_functional_cast): Pass type directly to
+       build_special_member_call.
+
+2004-07-12  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/2204
+       * config-lang.in (gtfiles): Add typeck2.c.
+       * Make-lang.in: Tweak typeck2.c dependencies, and add rule for
+       gt-cp-typeck2.h.
+       * cp-tree.h: Declare complete_type_check_abstract.
+       * typeck2.c (pat_calc_hash, pat_compare,
+       complete_type_check_abstract): New functions.
+       (abstract_virtuals_error): If the type is abstract, register the
+       declaration within abstract_pending_vars for further checks.
+       Inspect also dependent types. Handle IDENTIFIER_NODEs as decl.
+       * decl.c (cp_finish_decl): Do not strip array types.
+       (create_array_type_for_decl): Check for abstractness of the element
+       type.
+       (complete_vars): Call complete_type_check_abstract.
+       * class.c (finish_struct): Prepare a list of virtual functions for
+       template types, and call complete_vars on it to check for abstractness.
+
+2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR tree-optimization/14107
+       * decl.c (finish_function): Remove temporary band-aid.
+
 2004-07-11  Mark Mitchell  <mark@codesourcery.com>
 
+       * call.c (build_operator_new_call): Avoid using push_to_top_level.
+       (build_new_op): Adjust call to lookup_function_nonclass.
+       * name-lookup.c (identifier_type_value): Adjust call to
+       lookup_name_real.
+       (lookup_name_real): Add block_p parameter.
+       (lookup_name_nonclass): Adjust call to lookup_name_real.
+       (lookup_function_nonclass): Likewise.
+       (lookup_name): Likewise.
+       * name-lookup.h (lookup_name_real): Change prototype.
+       (lookup_name_nonclass): Likewise.
+       * parser.c (cp_parser_lookup_name): Likewise.
+
        * cp-tree.h (saved_scope): Make old_bindings a vector.
        (unuse_fields): Remove.
        * name-lookup.h (cxx_saved_binding): Define it.