OSDN Git Service

2004-07-12 Andrew Pinski <apinski@apple.com>
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 488d037..e5de5a7 100644 (file)
@@ -1,3 +1,223 @@
+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.
+       * class.c (pushclass): Don't use unuse_fields.
+       * name-lookup.c (cxx_saved_binding_make): Remove.
+       (store_binding): Add new bindings to a vector, using an
+       accumulator style, rather than adding them to a list.
+       (store_bindings): Adjust accordingly.
+       (store_class_bindings): Likewise.
+       (push_to_top_level): Likewise.
+       (pop_from_top_level): Likewise.
+       * optimize.c (maybe_clone_body): Must push_to_top_level and
+       pop_from_top_level calls outside of loop.
+       * parser.c (cp_parser_class_specifier): Move push_scope/pop_scope
+       calls here from cp_parser_late_parsing_default_args.
+       (cp_parser_save_default_args): Record the class type in which the
+       function is declared.
+       (cp_parser_late_parsing_default_args): Do not call
+       push_nested_class/pop_nested_class.
+       * search.c (dfs_unuse_fields): Remove.
+       (unuse_fields): Remove.
+
+2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP, LANG_HOOKS_PUSHLEVEL,
+       LANG_HOOKS_POPLEVEL, LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Remove.
+       * cp-tree.h (poplevel): Declare.
+       (set_block): Remove.
+       * decl.c (set_block): Remove.
+
+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.