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