2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.c (pp_cxx_constant): New.  Print
	string-literal in parens if input program says so.
	(pp_cxx_primary_expression): Hand off constant printing to
	pp_cxx_constant.
	(pp_cxx_pretty_printer_init): Set pp->c_base.constant.
	(pp_cxx_expression): Use pp_cxx_constant for literals.
	* error.c (dump_expr): Use pp_constant for literals.

2005-12-29  Nathan Sidwell  <nathan@codesourcery.com>

	* method.c (make_thunk): Don't set comdat_linkage here.
	(use_thunk): Make thunk one only here, if thunk target is
	DECL_ONE_ONLY.

2005-12-26  Mark Mitchell  <mark@codesourcery.com>

	PR c++/25439
	* decl.c (grokdeclarator): Remove dead code.
	* ptree.c (cxx_print_xnode): Handle BASELINK.
	* parser.c (make_id_declarator): Add sfk parameter.
	(cp_parser_direct_declarator): Do not pass TYPE_DECLs to
	make_id_declarator.
	(cp_parser_declarator_id): Simplify BASELINKs here.
	(cp_parser_member_declaration): Adjust calls to
	make_id_declarator.

2005-12-26  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23171, c++/23172, c++/25417.
	* typeck.c (build_unary_op): Create temporary variables for
	compound literals whose addresses are taken.
	* init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
	* decl.c (reshape_init_vector): Likewise.
	(reshape_init): Give it external linkage.
	(check_initializer): Use COMPOUND_LITERAL_P.
	(initialize_artificial_var): Allow the initializer to be a
	CONSTRUCTOR.
	* call.c (make_temporary_var_for_ref_to_temp): Use
	create_temporary_var.
	* cp-tree.h (COMPOUND_LITERAL_P): New macro.
	(rehape_init): Declare.
	* typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
	* semantics.c (finish_compound_literal): Use reshape_init.

2005-12-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24671
	* pt.c (instantiate_template): Handle SFINAE.

2005-12-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* decl.c (grokdeclarator): Improve diagnostic for friend
	declarations of class members.

2005-12-22  Mark Mitchell  <mark@codesourcery.com>

	PR c++/25369
	* tree.c (really_overloaded_fn): Tweak comment.
	* pt.c (tsubst_call_declarator_parms): Remove.
	(tsubst_copy): Call mark_used on the member referenced by an
	OFFSET_REF.
	* semantics.c (finish_qualified_id_expr): Simplify.
	* decl2.c (mark_used): Accept BASELINKs.

	PR c++/25364
	* typeck.c (build_unary_op): Pass DECLs not names to
	build_offset_refs.
	* init.c (build_offset_ref): Do not do name lookup.  Do not call
	mark_used.
	* call.c (build_call): Simplify and tidy.
	* semantics.c (finish_qualified_id_expr): Call mark_used.

2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23333
	* parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
	identify a single '0'.

2005-12-20  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21228
	* decl.c (use_eh_spec_block): New function.
	(store_parm_decls): Use it.
	(finish_function): Likewise.

2005-12-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24278
	* init.c (expand_member_init): Print messages about baseclasses
	using %T rather than %D.

	PR c++/24915
	* class.c (add_method): Do not treat templates as identical unless
	their return types are the same.

2005-12-12  Mark Mitchell  <mark@codesourcery.com>

	PR c++/25300
	* tree.c (build_qualified_name): Return error_mark_node for
	erroneous input.

2005-12-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/25337
	* pt.c (tsubst_copy_and_build): Permit dependent types for the
	object in a class member access expression.

2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>

	PR java/9861
	* mangle.c (write_bare_function_type): Mangle return type for
	methods of Java classes

2005-12-08  Théodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

	* call.c (build_conditional_expr): Print types in error messages.

2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.

2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* cp-gimplify.c (gimplify_cp_loop): Use fold_build3.

2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>

	* Make-lang.in (c++.all.build, c++.install-normal): Remove.

2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>

	* Make-lang.in: Remove all dependencies on s-gtype.

2005-12-06  Aldy Hernandez  <aldyh@redhat.com>

	PR C++/24138
	* decl.c (reshape_init_array_1): Handle max_index of -1.

2005-12-06  Roger Sayle  <roger@eyesopen.com>

	* typeck.c (build_binary_op): Issue warning if either operand of a
	comparison operator is a string literal, except for testing equality
	or inequality against NULL.

2005-12-06  Roger Sayle  <roger@eyesopen.com>

	PR c++/25263
	* decl.c (compute_array_index_type): Check that itype is an
	INTEGER_CST node before testing/clearing TREE_OVERFLOW.

2005-12-05  Daniel Berlin  <dberlin@dberlin.org>

	* ptree.c (cxx_print_decl): Update to check for decl_common
	structure.

2005-12-02  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24173
	* decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
	clobbering newdecl.

2005-12-02  Richard Guenther  <rguenther@suse.de>

	* semantics.c (simplify_aggr_init_expr): Use buildN instead
	of build.

2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
	ggc_realloc.
	(cp_parser_template_argument_list): Use XRESIZEVEC instead of
	xrealloc.
	* class.c (pushclass): Likewise.

2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* decl2.c (get_priority_info): Use XNEW, not xmalloc.
	* decl.c (push_switch): Likewise.
	* lex.c (handle_pragma_implementation): Likewise.
	* cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
	not ggc_alloc.
	(cxx_initialize_diagnostics): Use XNEW, not xmalloc.
	* class.c (init_class_processing): Use XNEWVEC, not xmalloc.
	* g++spec.c (lang_specific_driver): Likewise.
	* mangle.c (save_partially_mangled_name): Likewise.
	* parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
	(cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
	(cp_parser_sizeof_operand): Likewise.
	* repo.c (open_repo_file, open_repo_file): Likewise.

2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* parser.c (cp_parser_make_typename_type): Call make_typename_type
	with tf_none instead of magic value 0.
	(cp_parser_explicit_instantiation): Call do_type_instantiation
	with tf_error instead of magic value 1.
	(cp_parser_elaborated_type_specifier): Call make_typename_type
	with tf_error instead of magic value 1.
	(cp_parser_class_name): Likewise.
	(cp_parser_lookup_name): Likewise.

2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
	not RID_MAX.

2005-11-30  Jason Merrill  <jason@redhat.com>

	PR c++/21123
	* cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
	parms in a thunk.

2005-11-30  Ben Elliston  <bje@au.ibm.com>

	* typeck.c (build_x_unary_op): Correct spelling in error message.

2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21166
	* class.c (check_field_decls): Only set DECL_PACKED on a field
	when its natural alignment is > BITS_PER_UNIT.

2005-11-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/24979
	* cp-tree.h (DECL_MAIN_P): Remove duplicate definition.

2005-11-26  Richard Henderson  <rth@redhat.com>

	* lex.c: Update for pragma_lex rename.
	* parser.c: Likewise.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/9278
	* decl.c (grokparms): Do not allow typedef-names in a '(void)'
	parmlist.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* typeck2.c (process_init_constructor_union): Remove check for
	unnamed union members.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* name-lookup.c (lookup_name_real): Merge two if's.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* pt.c (instantiate_class_template): Clean-up.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* pt.c (template_class_depth_real): Remove. Move functionality to ...
	(template_class_depth): ... here, replacing count_specializations
	with 0.  Adjust comment.

2005-11-24  Richard Guenther  <rguenther@suse.de>
	Dirk Mueller <dmueller@suse.de>

	PR c++/14024
	* typeck.c (build_reinterpret_cast_1): Use
	strict_aliasing_warning.

2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/24235
	* pt.c (check_instantiated_args): Reword diagnostic message about
	template argument involving local types.

2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/21667
	* typeck.c (build_array_ref): Avoid code duplicate.  Use common
	C/C++ diagnostic function warn_array_subscript_with_type_char.

2005-11-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/22238
	* error.c (resolve_virtual_fun_from_obj_type_ref): New.
	(dump_expr): Use it in <case CALL_EXPR>.

2005-11-21  Richard Henderson  <rth@redhat.com>

	* cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.

	* name-lookup.c (lookup_name): Remove prefer_type argument.
	(lookup_name_prefer_type): New.
	* decl.c (lookup_and_check_tag): Use them.
	* pt.c (tsubst_friend_class): Likewise.
	(lookup_template_class): Likewise.
	(tsubst_copy_and_build): Likewise.
	* name-lookup.h (lookup_name_prefer_type): New.
	(lookup_name): Remove declaration.

2005-11-18  Mark Mitchell  <mark@codesourcery.com>

	PR c++/8355
	* decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
	set_decl_namespace.
	* name-lookup.c (set_decl_namespace):

2005-11-18  Mike Stump  <mrs@apple.com>

	* cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
	* name-lookup.c (lookup_name_two): Remove.
	(lookup_name_one): Add.
	* name-lookup.h (lookup_name_two): Remove.
	(lookup_name_one): Add.

2005-11-15  Jason Merrill  <jason@redhat.com>

	PR c++/24580
	* method.c (locate_copy): Also use skip_artificial_parms here.
	(synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
	for RECORD_TYPE.
	(locate_ctor): Abort if we fail to find a default constructor.

2005-11-15  Mike Stump  <mrs@apple.com>

	* name-lookup.c (lookup_name_two): Add.
	* name-lookup.h: Likewise.

2005-11-15  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24667
	* typeck.c (check_for_casting_away_constness): Use the diag_fn.
	(build_const_cast_1): Call it, for C-style casts.

2005-11-14  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24687
	* pt.c (check_explicit_specialization): Don't check for C linkage.
	(push_template_decl_real): Likewise.
	* parser.c (cp_parser_explicit_specialization): Check here.
	(cp_parser_template_declaration_after_export): And here.

	* parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
	field.

2005-11-14  Jason Merrill  <jason@redhat.com>

	PR c++/24580
	* method.c (locate_ctor): Skip all artificial parms, not just
	'this'.

2005-11-14  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (eof_token): Add initializer for ambiguous_p.

2005-11-13  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24817
	* decl.c (check_redeclaration_exception_specification): New
	function.
	(duplicate_decls): Use it.
	* error.c (fndecl_to_string): Print the template parameter list.

	PR c++/20293
	* cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
	for namespaces.
	(pp_cxx_original_namespace_definition): Likewise.
	* name-lookup.c (ambiguous_decl): Don't issue error messages;
	instead return lists of ambiguous candidates.
	(select_decl): Handle ambiguous namespace lookups.
	* parser.c (cp_token): Add ambiguous_p.
	(cp_lexer_get_preprocessor_token): Set it.
	(cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
	when a qualified name uses an invalid scope.
	(cp_parser_primary_expression): Print ambiguous candidates.
	(cp_parser_type_parameter): Adjust comment to reflect new
	parameter name for cp_parser_lookup_name.
	(cp_parser_template_argument): Likewise.
	(cp_parser_elaborated_type_specifier): Likewise.
	(cp_parser_namespace_name): Likewise.
	(cp_parser_class_name): Print ambiguous candidates.
	(cp_parser_lookup_name): Rename ambiguous_p parameter to
	ambiguous_decls.  Use it to return a list of ambiguous candiates
	when a lookup is ambiguous.
	(cp_parser_lookup_name_simple): Adjust comment to reflect new
	parameter name for cp_parser_lookup_name.

2005-11-12  Jakub Jelinek  <jakub@redhat.com>

	PR c++/24780
	* typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
	and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
	of array type.

	PR c++/24761
	* pt.c (tsubst_copy_asm_operands): New function.
	(tsubst_expr) <case ASM_EXPR>: Use it.

2005-11-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/19450
	* decl.c (redeclaration_error_message): Issue diagnostics about
	olddecl and newdecl disagreement on __thread property.
	(grokdeclarator): Set DECL_TLS_MODEL on class static variables.

2005-11-08  Jason Merrill  <jason@redhat.com>

	PR c++/21123
	* method.c (use_thunk): Use build_cplus_new instead of
	force_target_expr.

2005-11-06  Jason Merrill  <jason@redhat.com>
	    James A. Morrison <phython@gcc.gnu.org>

	PR c++/17256
	* decl2.c (cp_finish_file): Fix conditions for undefined warning.
	Set TREE_NO_WARNING instead of TREE_PUBLIC.
	* pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
	a warning on a function we didn't instantiate because of excessive
	recursion.

2005-11-06  Mark Mitchell  <mark@codesourcery.com>

	* class.c (record_subobject_offsets): Don't record offsets past
	biggest empty class for non-empty base classes.
	(layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
	keeping track of the size of emptyclasses.

	PR c++/21308
	* class.c (sizeof_biggest_empty_class): New variable.
	(record_subobject_offsets): Don't record offsets past biggest
	empty class for data members.  Replace vbases_p parameter with
	is_data_member parameter.
	(build_base_field): Adjust call.
	(layout_class_type): Likewise.  Maintain
	sizeof_biggest_empty_class.

2005-11-05  Kazu Hirata  <kazu@codesourcery.com>

	* decl2.c, init.c, typeck.c: Fix comment typos.

2005-11-04  Richard Guenther  <rguenther@suse.de>

	PR c++/22487
	* init.c (build_vec_init): Build comparison of matching
	types.

2005-11-03  Josh Conner  <jconner@apple.com>

	PR c++/19989
	pt.c (tsubst): Accept zero-length array if tf_error is set
	in complain flags.  Change error message for negative-
	length array.

2005-11-04  Joseph S. Myers  <joseph@codesourcery.com>

	* cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
	parameter.

2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>

	PR c++/17964
	* error.c (cp_cpp_error): New function.
	* cp-tree.h (cp_cpp_error): Declare.
	* parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
	and error callback after lexing.

2005-11-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21627
	* pt.c (register_specialization): Update inline flags on clones.y

2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/24582
	* decl.c (declare_local_label): Return 0 for variables
	with error_mark_node as their types.

2005-11-02  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22434
	* call.c (build_conditional_expr): Do bad conversions, if there's
	no other choice.

	PR c++/24560
	* parser.c (cp_parser_postfix_dot_deref_expression): Improve error
	message for use of overloaded functions on LHS of "." operator.

	PR c++/19253
	* parser.c (cp_parser_postfix_expression): Use
	cp_parser_elaborated_type_specifier to handle typename-types in
	functional casts.
	(cp_parser_enclosed_argument_list): Skip ahead to the end of the
	template argument list if the closing ">" is not found.

	PR c++/24569
	* pt.c (instantiate_decl): Use cp_finish_decl, not
	finish_static_data_member_decl.

2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>

	* decl.c (grokfndecl): Remove the setting
	of the return type of the function type
	of main after erroring about must returning
	int.

2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>

	PR C++/23229
	* decl.c (grokfndecl): Create a new function type
	after erroring out about main not returning int.

2005-10-28  Josh Conner  <jconner@apple.com>

	PR c++/22153
	* parser.c (cp_parser_member_declaration): Detect and handle
	a template specialization.

2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>

	PR C++/23426
	* decl.c (start_decl): Check that the decl is an
	error_mark_node before getting the type.
	Remove the check for the decl's type being an
	error_mark_node.

2005-10-21  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24260
	* parser.c (cp_parser_init_declarator): Pass attributes to
	grokfield.

2005-10-20  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22618
	* search.c (accessible_p): Check access in the outermost set of
	template parameters.

2005-10-20  Richard Guenther  <rguenther@suse.de>

	* decl.c (grokdeclarator): Fix ambiguous pedwarn message.

2005-10-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/22293
	* decl.c (grokdeclarator): Reject unqualified destructors in
	friend declarations.

2005-10-18  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23293
	* pt.c (convert_template_argument): Use canonical type variants in
	template specializations.

2005-10-18  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21383
	* name-lookup.c (arg_assoc): Template args can be null in a
	template-id-expr.

	PR c++/22604
	* class.c (update_vtable_entry_for_fn): Don't process invalid
	covariant overriders.

	PR c++/23118
	* cp-tree.h (add_method): Add return value.
	* class.c (add_method): Return success indicator.
	* semantics.c (finish_member_declaration): Don't add an invalid
	method to the method list.

2005-10-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21908
	* call.c (build_new_method_call): Do not show VTT parameters to
	the user.

2005-10-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23440
	* parser.c (cp_parser_statement): If the parser reached CPP_EOF,
	only complain about missing statement.

2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/24386
	* cp-tree.h (BASELINK_QUALIFIED_P): New.
	* pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
	* typeck.c (finish_class_member_access_expr): Set it.

	PR c++/21353
	* decl.c (check_default_argument): Don't check
	processing_template_decl or uses_template_parms here.
	(grokparms): Only call check_default_argument when not processing
	a template decl.
	* parser.c (cp_parser_late_parsing_default_arg): Call
	check_default_argument when not processing a template decl.

2005-10-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24389
	* decl2.c (mark_used): Use uses_template_parms instead of
	dependent_type_p.
	* init.c (constant_value_1): Handle uninstantiated templates
	specially.
	* pt.c (instantiate_decl): Add sanity check.

2005-10-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22173
	* typeck.c (check_template_keyword): Fix thinko.

2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/23959
	* decl.c (pop_switch): Only call c_do_switch_warnings
	when not processing templates.

2005-10-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22173
	* cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
	(check_template_keyword): New function.
	(finish_id_expression): Change prototoype.
	(finish_qualified_id_expr): Change prototype.
	(build_qualified_name): New function.
	(finish_class_member_access_expr): Change prototype.
	* init.c (build_offset_ref): Use build_qualified_name.
	* mangle.c (write_expression): Likewise.
	* parser.c (cp_parser_primary_expression): Remove qualifying_class
	parameter.  Add address_p and template_arg_p.  Use
	build_qualified_name.
	(cp_parser_id_expression): Default *template_p to
	template_keyword_p.  Check for invalid uses of the template
	keyword.
	(cp_parser_postfix_expression): Eliminate special handling for
	qualified names.  Adjust call to cp_parser_primary_expression.
	(cp_parser_postfix_dot_deref_expression): Adjust call to
	cp_parser_id_expression and finish_class_member_access_expr.
	(cp_parser_template_argument_list): Add comment.
	(cp_parser_template_argument): Adjust use of
	cp_parser_primary_expression.  Remove call to
	finish_qualified_id_expr.
	(cp_parser_lookup_name): Use build_qualified_name.
	* pt.c (tsubst): Use build_qualified_name.
	(tsubst_qualified_id): Likewise.  Adjust call to
	finish_qualified_id_expr.
	(tsubst_copy): Use build_qualified_name.
	(tsubst_copy_and_build): Adjusts call to finish_id_expression and
	finish_class_member_access_expr.
	* semantics.c (finish_non_static_data_member): Use
	build_qualified_name.
	(finish_qualified_id_expr): Add template_p and template_arg_p
	parameters.
	(finish_id_expression): Remove qualifiying_class parameter.  Add
	template_p, done, address_p, and template_arg_p.  Use
	build_qualified_name.  Adjust calls to
	finish_class_member_acess_expr.
	* tree.c (build_qualified_name): New function.
	* typeck.c (check_template_keyword): New function.
	(finish_class_member_access_expr): Add template_p argument.  Check
	for invalid uses of the template keyword.

2005-10-15  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21347
	* class.c (maybe_warn_about_overly_private_class): Lazy
	constructors are public.

2005-10-14  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19565
	* call.c (convert_like_real): Rely on convert_and_check to issue
	warnings about overflow and conversion to unsigned.
	* decl.c (finish_enum): Use the location of the enumerators, not
	the closing brace of the enumeration, when reporting warnings
	about conversions.
	(build_enumerator): Use error_mark_node for erroneous values.
	* typeck2.c (digest_init): Remove reference to "signature pointer"
	from comment.

2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/17796
	* optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
	(maybe_clone_body): Track the first clone.

2005-10-13  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/23984
	* class.c (build_base_path): The vtable is always the first thing
	in the vtt.

2005-10-13  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20721
	* cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
	* decl.c (duplicate_decls): Merge it into new declarations.
	(decl_jump_unsafe): Use it, rather than DECL_INITIAL.
	(cp_finish_decl): Set it, when appropriate.

	PR c++/22180
	* call.c (build_new_method_call): Correct pretty-printing of
	destructor names.
	* pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
	identifier.

	PR c++/23694
	* decl.c (start_method): Return error_mark_node for errors.

	PR c++/23307
	* pt.c (push_template_decl_real): Complain about attempts to
	declare template variables.

	PR c++/22352
	* pt.c (tsubst_template_parms): Set processing_template_decl while
	processing the parameters.
	(tsubst_decl): Set processing_template_decl when substituting into
	a TEMPLATE_DECL.

	PR c++/22405
	* pt.c (most_specialized_instantiation): Robustify.

	PR c++/22464
	* semantics.c (finish_id_expression): Issue errors about uses of
	local variables in containing functions even in templates.

2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/21801
	PR target/23589
	* class.c (finish_struct_1): Call
	targetm.cxx.adjust_class_at_definition.


2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21592
	* pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
	with already looked up member functions.  Assert we're not
	returning a NON_DEPENDENT_EXPR with unknown type.
	* typeck.c (finish_class_member_access_expr):  We can get
	non-template-id-expr baselinks.  If the lookup finds a baselink,
	remember it even inside templates.

	PR c++/23797
	* parser.c (cp_parser_functional_cast): Cope when TYPE is not a
	TYPE_DECL.  Use dependent_type_p to check type.
	* pt.c (uses_template_parms_p): Use dependent_type_p for a
	TYPE_DECL.
	(type_dependent_expression_p): Assert we've not been given a
	TYPE_DECL.

	PR c++/21117
	* decl.c (check_function_type): Correctly overwrite incomplete
	return type with void type.
	* typeck.c (check_return_expr): If the function's return type is
	void, don't try and convert a return expr.

2005-10-12  David Edelsohn  <edelsohn@gnu.org>

	PR c++/23730
	* call.c (build_object_call): If BINFO is NULL, bypass
	lookup_fnfields and set fns to NULL_TREE.

2005-10-12  Paolo Bonzini  <bonzini@gnu.org>

	PR c++/24052
	* error.c (dump_expr): Pass LABEL_DECL to dump_decl.  Print
	an ADDR_EXPR of a LABEL_DECL as &&.

2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/19964
	* class.c (walk_subobject_offsets): Don't walk error_mark_node.

2005-10-11  Ian Lance Taylor  <ian@airs.com>

	PR c++/8057
	* cvt.c (convert_to_void): Don't warn about unused values when
	processing a template declaration.

2005-10-11  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21089
	* call.c (convert_like_real): Use decl_constant_value, not
	integral_constant_value.
	* init.c (constant_value_1): New function.
	(integral_constant_value): Use it.
	(decl_constant_value): Likewise.
	* typeck.c (decay_conversion): Use decl_constant_value, not
	integral_constant_value.

	PR c++/21369
	* parser.c (cp_parser_elaborated_type_specifier): Don't treat
	class types as templates if the type is not appearing as part of a
	type definition or declaration.

2005-10-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24277
	* pt.c (instantiate_decl): Call finish_static_data_member_decl for
	static data members.

2005-10-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
	    Mark Mitchell  <mark@codesourcery.com>

	PR c++/23437
	* parser.c (cp_parser_template_argument_list): Do not treat
	contents of argument list as part of a constant expression.

2005-10-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24139
	* decl.c (grokdeclarator): Do not require template parameter lists
	for explicitly specialized class.
	* error.c (dump_aggr_type): Do not dump template arguments for
	non-primary specializations.
	(dump_function_name): Likewise.

	PR c++/24275
	* pt.c (instantiate_decl): Instantiate the initializer of
	a static data member in the namespace containing the class
	containing the static data member.

2005-10-08  James A. Morrison  <phython@gcc.gnu.org>

	PR c++/22172
	* parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
	scopes as nondependent.

2005-10-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* call.c (resolve_args): Remove redundant test.

2005-10-05  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/21419
	PR tree-optimization/24146
	PR tree-optimization/24151

	* semantics.c (finish_asm_stmt): Call readonly_error if outputs are
	read-only.  Set ASM_VOLATILE_P for asms without outputs.

2005-10-05  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/23513
	* call.c (joust): Adjust length count to more_specialized_fn.
	* pt.c (more_specialized_fn): Cope with non-static member vs
	non-member.

2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/23125
	* decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
	instead of change_decl_assembler_name.

2005-10-03  Alexandre Oliva  <aoliva@redhat.com>

	* error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.

2005-10-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17775
	* repo.c: Include flags.h.
	(finish_repo): Add -frandom-seed to the arguments.

2005-10-02  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22621
	* parser.c (cp_parser_template_argument): Don't turn "T::f" into
	"(*this).T::f".
	* pt.c (convert_nontype_argument): Remove ??? comment.

	PR c++/23840
	* tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
	when class rvalues are lvalues.

2005-09-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16782
	* decl.c (grokdeclarator): Always pedwarn about overqualified
	member names.

2005-09-27  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22147
	* name-lookup.c (maybe_process_template_type_declaration): Don't
	treat forward declarations of classes as templates just because
	we're processing_template_decl.
	* pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
	functions.

2005-09-26  Jason Merrill  <jason@redhat.com>

	PR c++/13764
	* cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
	* name-lookup.c (pushdecl_maybe_friend): Check it.
	* decl.c (begin_function_body): Do nothing if it's false.
	(finish_function_body): Ditto.
	(outer_curly_brace_block): New fn.
	(finish_function): Use it.

2005-09-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/15855
	* decl2.c (do_static_destruction): Remove.
	(finish_static_initialization_or_destruction): Likewise.
	(DECL_EFFECTIVE_INIT_PRIORITY): New macro.
	(NEEDS_GUARD_P): Likewise.
	(do_static_initialization): Rename to
	do_static_initialization_or_destruction.  Process all
	initializers/destructors and handle common conditionalizing.
	(start_static_initialization_or_destruction): Rename to
	one_static_initialization_or_destruction.  Handle only
	decl-specific conditionalizing.
	(cp_finish_file): Call do_static_initialization_or_destruction.

2005-09-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/21983
	* class.c (find_final_overrider): Move diagnostic about no unique final
	overrider to...
	(update_vtable_entry_for_fn): ... here.

2005-09-21  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23993
	* init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.

2005-09-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23965
	* call.c (resolve_args): Return error_mark_node on arguments
	whose TREE_TYPE is error_mark_node.

2005-09-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/23947
	* rtti.c (get_pseudo_ti_init): Recompute ti pointer after
	get_tinfo_ptr calls.

2005-09-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23914
	* parser.c (cp_parser_enclosed_template_argument_list): Make sure
	skip_evaluation is false when processing template arguments.

	PR c++/21514
	* pt.c (check_instantiated_args): Treat uses of anonymous types as
	causing type-deduction failure.

2005-09-15  Jason Merrill  <jason@redhat.com>

	PR c++/23357
	* cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
	tcc_expression.

2005-09-15  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23896
	* pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
	processing template arguments.

	* pt.c (check_explicit_instantiation_namespace): Fix typo.

	PR c++/13140
	* decl.c (check_class_member_definition_namespace): New function.
	(grokfndecl): Use it.
	(grokvardecl): Likewise.
	(grokdecl): Improve documentation.
	* pt.c (check_explicit_instantiation_namespace): New function.
	(register_specialization): Call check_specialization_namespace
	when replacing an implicitly instantiated function.
	(check_explicit_specialization): Ensure that DECL_CONTEXT is set
	correctly for namespace-scope specializations.
	(do_decl_instantiation): Use
	check_explicit_instantiation_namespace.
	(do_type_instantiation): Likewise.

2005-09-15  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/23725
	* error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.

2005-09-13  Bastian Blank <waldi@debian.org>

	PR c++/16171
	* mangle.c (find_substitution): Do not use special substitutions
	for identifiers not in std::.

2005-09-13  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23839
	* typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
	for VAR_DECLs.

2005-09-13  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23842
	* pt.c (tsubst_default_argument): Do treat default argument
	expressions as occurring in the context of the function called.

2005-09-12  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23841
	* parser.c (cp_parser_primary_expression): Recognize the closing
	">" of a template-argument-list after a floating-point literal as
	the end of a cast expression.

2005-09-12  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23789
	* cvt.c (perform_qualification_conversions): Don't create
	unnecessary NOP_EXPRs.
	* pt.c (tsubst_template_arg): Use fold_non_dependent_expr.

2005-09-12  Ian Lance Taylor  <ian@airs.com>

	PR g++/7874
	* cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
	bitfield.  Make dummy bitfield one bit smaller.
	(DECL_HIDDEN_FRIEND_P): Define.
	(pushdecl_maybe_friend): Declare.
	(pushdecl_top_level_maybe_friend): Declare.
	* decl.c (duplicate_decls): Add newdecl_is_friend parameter.
	Change prototype and all callers.  Add assertion that a
	DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P.  Set
	DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
	appropriate.
	* name-lookup.c (supplement_binding): Don't ignore a
	DECL_HIDDEN_FRIEND_P.
	(pushdecl_maybe_friend): Break out contents of pushdecl.  Add
	is_friend parameter.  Set DECL_ANTICIPATED and
	DECL_HIDDEN_FRIEND_P for a friend function.
	(pushdecl): Just call pushdecl_maybe_friend.
	(pushdecl_with_scope): Add is_friend parameter.  Change prototype
	and all callers.
	(pushdecl_namespace_level): Likewise.
	(push_overloaded_decl): Likewise.  Check DECL_HIDDEN_FRIEND_P as
	well as DECL_ANTICIPATED when checking for a builtin.
	(do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
	DECL_ANTICIPATED when checking for a builtin.
	(do_nonmember_using_decl): Likewise.
	(pushdecl_top_level_1): Add is_friend parameter.  Change all
	callers.
	(pushdecl_top_level_maybe_friend): New function.
	(remove_hidden_names): New function.
	(struct arg_lookup): Add args field.
	(friend_of_associated_class_p): New static function.
	(arg_assoc_namespace): Ignore hidden functions which are not
	friends of an associated class of some argument.
	(lookup_arg_dependent): Remove hidden functions from list passed
	in.  Initialize k.args.
	* name-lookup.h (remove_hidden_names): Declare.
	* friend.c (do_friend): Call pushdecl_maybe_friend instead of
	pushdecl.
	* call.c (add_function_candidate): Change DECL_ANTICIPATED test to
	an assertion, with a check for DECL_HIDDEN_FRIEND_P.
	(build_new_function_call): Add koenig_p parameter.  Change
	prototype and callers.
	* pt.c (register_specialization): Add is_friend parameter.  Change
	all callers.
	(push_template_decl_real): Change is_friend parameter to bool.
	Change prototype and all callers.
	(tsubst_friend_class): Call pushdecl_top_level_maybe_friend
	instead of pushdecl_top_level.

2005-09-11  Richard Henderson  <rth@redhat.com>

	* decl2.c (build_anon_union_vars): Copy attributes from the base addr.
	* pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.

2005-09-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* parser.c (cp_parser_translation_unit): Simplify.  The while-block
	was actually executed at most once.

2005-09-09  Richard Henderson  <rth@redhat.com>

	PR debug/20998
	* cp-tree.def (ALIAS_DECL): Remove.
	* cp-lang.c (cp_init_ts): Remove support for it.
	* error.c (dump_decl): Likewise.
	* name-lookup.c (pushdecl): Likewise.
	* semantics.c (finish_id_expression): Likewise.
	* decl2.c (build_anon_union_vars): Use a VAR_DECL with
	DECL_VALUE_EXPR instead.

2005-09-09  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22252
	* decl.c (start_preparsed_function): Do not pay attention to
	#pragma interface for implicitly-defined methods.
	* decl2.c (cp_finish_file): Do not complain about uses of inline
	functions that have bodies, even if we decided not to emit the
	body in this translation unit.
	* semantics.c (note_decl_for_pch): Do not mess with linkage.
	(expand_or_defer_fn): Make inline, non-template functions COMDAT
	at this point.

2005-09-08  Richard Henderson  <rth@redhat.com>

	PR debug/23190
	* decl.c (wrapup_globals_for_namespace): Call
	emit_debug_global_declarations.
	* decl2.c (cp_finish_file): Likewise.

2005-09-08  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23691
	* decl2.c (mark_used): Instantiate static data members initialized
	by constants, even in a template.

2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>

	PR obj-c++/16816
	* parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
	two CPP_COLON.

2005-09-07  Richard Guenther  <rguenther@suse.de>

	* cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
	for EMPTY_CLASS_EXPR.

2005-09-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/23075
	* typeck.c (check_return_expr): Add no_warning argument.  Set
	*no_warning to true if "return-statement with no value, in function
	returning" warning has been issued.
	* cp-tree.h (check_return_expr): Adjust prototype.
	* semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
	check_return_expr set *no_warning to true.

2005-09-06  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (rvalue): New function.
	* call.c (build_conditional_expr): Use it.
	* init.c (build_new_1): Likewise.
	* rtti.c (build_dynamic_cast_1): Likewise.
	* tree.c (rvalue): New function.
	* typeck.c (build_unary_op): Use it.
	(build_static_cast_1): Likewise.

	PR c++/9782
	* init.c (build_new_1): Make sure the entire array type is
	complete, not just its element types.

2005-09-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* decl.c (check_elaborated_type_specifier): Remove redundant check.

2005-09-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/23056
	* typeck.c (ignore_overflows): New helper function.
	(build_static_cast_1): Use it.

2005-09-06  Kazu Hirata  <kazu@codesourcery.com>

	* cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
	Follow spelling conventions.

2005-09-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23667
	* pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
	copying a VAR_DECL.

2005-09-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21440
	* semantics.c (finish_stmt_expr_expr): Add an explicit
	initialization to the last statement in the statement-expression.
	* (finish_stmt_expr): Adjust accordingly.

2005-09-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23699
	* decl2.c (mark_used): Always instantiate static data members
	initialized by constant expressions.
	* pt.c (instantiate_decl): Instantiate the initializers for static
	data members initialized by constant expressions.

	PR c++/21687
	* semantics.c (expand_or_defer_fn): Do not call ggc_collect when
	finishing processing for a template function in a local class.
	Revert:
	2005-09-02  Mark Mitchell  <mark@codesourcery.com>
	* parser.c (cp_parser_class_specifier): Push/pop GC contexts
	around functions in local classes.

2005-09-02  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21687
	* parser.c (cp_parser_class_specifier): Push/pop GC contexts
	around functions in local classes.

2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>

	PR obj-c++/23640
	* decl2.c (cp_finish_file): If this is obj-c++ and we need a static
	init, call generate_ctor_or_dtor_function.

2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/13377
	* parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
	lookup_name_real on final parse.

2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23639
	* semantics.c (qualified_name_lookup_error): Do not complain again
	on invalid scope.

2005-08-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23586
	* parser.c (cp_parser_namespace_name): Move diagnostic for
	invalid namespace-name to here from ...
	* name-lookup.c (do_namespace_alias): ... here and ...
	(do_using_directive): ... here.  Remove dead code.

2005-08-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23099
	* cp-tree.h (saved_scope): Add skip_evaluation.
	* decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
	DECL_INITIAL, to determine whether or not a static data member was
	initialized in the class-specifier.
	(cp_finish_decl): Add comment.
	* init.c (integral_constant_value): Subtitute into the
	initializers for static data members in	templates.
	* name-lookup.c (push_to_top_level): Save skip_evaluation.
	(pop_from_top_level): Restore it.
	* pt.c (instantiate_class_template): Do not substitute into the
	intializers of static data members when instantiating a class.
	(regenerate_decl_from_template): Simplify.
	(instantiate_decl): Tidy.  Substitute into the initializer for a
	static data member even when the definition of the data member is
	not available.

2005-08-26  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19004
	* pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
	(type_dependent_expression_p): Allow BASELINKs whose associated
	functions are simply a FUNCTION_DECL.

	PR c++/23491
	* cp-tree.h (build_vec_init): Adjust prototype.
	* init.c (perform_member_init): Adjust call to build_vec_init.
	(build_aggr_init): Likewise.
	(build_new_1): Do not call build_default_init for array types.
	(build_vec_init): Add explicit_default_init_p parameter.  Perform
	default initialization of vector elements when set.
	* typeck.c (build_modify_expr): Adjust call to build_vec_init.

2005-08-25  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20817
	* typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
	->*.

2005-08-24  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/22454
	* parser.c (cp_lexer_peek_nth_token): Relax assert.

2005-08-23  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/23044
	* pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.

2005-08-22  James E Wilson  <wilson@specifix.com>

	PR tree-optimization/23426
	* decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
	array size check.

2005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/22233
	* pt.c (push_template_decl_real): Return error_mark_node if the
	number of template parameters does not match previous definition.

2005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23089
	* decl.c (require_complete_types_for_parms): Mark incomplete types
	as invalid.

2005-08-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* parser.c (cp_parser_nth_token_starts_template_argument_list_p):
	Fix typo in leading comment.

2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.

2005-08-15 Fariborz Jahanian <fjahanian@apple.com>

	* cp-tree.h (can_convert_arg, fn_type_unification): New argument.
	* call.c (add_template_candidate_real): Pass down 'flags' to
	fn_type_unification.
	(can_convert_arg): New 'flags' argument. Pass it to call to
	implicit_conversion instead of LOOKUP_NORMAL.
	(can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
	* class.c (resolve_address_of_overloaded_function): Ditto.
	(resolve_address_of_overloaded_function): Ditto.
	* decl.c (reshape_init, check_default_argument): Ditto.
	* typeck.c (build_ptrmemfunc): Ditto.
	* pt.c (type_unification_real): Add 'flags' argument.
	(fn_type_unification): Pass 'flags' to type_unification_real.
	(type_unification_real): Pass new 'flags' argument to call to
	can_convert_arg.

2005-08-12  Giovanni Bajo  <giovannibajo@libero.it>
	    Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21799
	PR c++/8271
	* pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
	explicitly.

2005-08-12  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21799
	Revert my 2005-07-08 patch
	* pt.c (type_unification_real): Remove is_method_argument and
	assoicated checks.
	(fn_type_unification, unify): Adjust type_unification_real calls.

2005-08-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23266
	* decl2.c (grokfield): Check that method is not static before
	marking it as pure.

2005-08-11  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/23219
	* name-lookup.c (pushtag): Process the template type before
	altering the identifier lookup fields.  Remove unreachable code
	creating an empty stub decl.

2005-08-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/20646
	* decl.c (grokdeclarator): Reset storage_class after error.

2005-08-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/22508
	* init.c (build_new_1): Check for empty candidate list.

2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23191
	* pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
	before calling build_exception_variant.

2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/19498
	* pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
	if substitution of template args did not succeed.

2005-08-06  Michael Matz  <matz@suse.de>

	* method.c (use_thunk): Call init_insn_lengths.

2005-08-05  James A. Morrison  <phython@gcc.gnu.org>

	PR c++/22514
	* name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
	sorrycount or errorcount are nonzero.

2005-08-05  Mark Mitchell  <mark@codesourcery.com>

	* name-lookup.c (pushtag): Remove accidental commit from:
	2004-12-21  Mark Mitchell  <mark@codesourcery.com>
	PR c++/19063
	* decl.c (grokdeclarator): Return error_mark_node, not
	void_type_node, to indicate errors.
	* parser.c (cp_parser_template_parameter_list): Robustify.
	(cp_parser_template_parameter): Likewise.

2005-08-01  Kazu Hirata  <kazu@codesourcery.com>

	* class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
	Fix comment typos.

2005-07-29  Kazu Hirata  <kazu@codesourcery.com>

	* method.c: Fix a comment typo.

2005-07-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22545
	* call.c (add_builtin_candidate): Adjust for changes in
	representation of pointer-to-member types.

2005-07-28  Mike Stump  <mrs@apple.com>

	* pt.c (check_explicit_specialization): Add visibility logic.
	(lookup_template_class): Likewise.
	(instantiate_class_template): Likewise.

2005-07-27  Devang Patel  <dpatel@apple.com>

	* name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.

2005-07-25  Ian Lance Taylor  <ian@airs.com>

	* ptree.c (cxx_print_identifier): Print a leading space if the
	indent level is 0.

2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* call.c (convert_for_arg_passing): Check function pointers when
	-Wmissing-format-attribute is activated.
	* typeck.c (convert_for_assignment): Likewise.

2005-07-22  Manfred Hollstein  <mh@suse.com>

	* parser.c (cp_parser_declaration): Fix unitialised warnings.

2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

	* class.c (build_base_path): Fix typo.

2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

	PR C++/22358
	* class.c (build_base_path): Convert BINFO_OFFSET to the correct type.

2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* call.c: Fix comment typo(s).
	* cxx-pretty-print.h: Likewise.
	* name-lookup.c: Likewise.
	* parser.c: Likewise.

2005-07-20  Douglas Gregor <doug.gregor@gmail.com>

	PR c++/2922
	* semantics.c (perform_koenig_lookup): For dependent calls, just
	return the set of functions we've found so far. Later, it will be
	augmented by those found through argument-dependent lookup.
	* name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
	the optimization that skips namespaces where the functions were
	originally found.

2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>

	Make CONSTRUCTOR use VEC to store initializers.
	* call.c (convert_default_arg): Update call to digest_init.
	* class.c (dump_class_hierarchy, dump_array): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
	(finish_compound_literal, digest_init): Update declaration.
	* decl.c (struct reshape_iter): New data type.
	(reshape_init_array): Rename to...
	(reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
	(reshape_init): Rewrite from scratch. Split parts into...
	(reshape_init_array, reshape_init_vector, reshape_init_class,
	reshape_init_r): New functions.
	(check_initializer): Update call to reshape_init. Remove obsolete
	code.
	(initialize_artificial_var, cp_complete_array_type): Update to cope
	with VEC in CONSTRUCTOR_ELTS.
	* decl2.c (grokfield): Update calls to digest_init.
	(mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
	* error.c (dump_expr_init_vec): New function.
	(dump_expr): Use dump_expr_init_vec.
	* init.c (build_zero_init, build_vec_init): Update to cope with VEC
	in CONSTRUCTOR_ELTS.
	(expand_default_init): Update call to digest_init.
	* parser.c  (cp_parser_postfix_expression): Use a VEC for the
	initializers.
	(cp_parser_initializer_list): Build a VEC of initializers.
	* pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
	in CONSTRUCTOR_ELTS.
	* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
	ptm_initializer, class_initializer, get_pseudo_ti_init): Use
	build_constructor_from_list instead of build_constructor.
	* semantics.c (finish_compound_literal): Update call to digest_init.
	* tree.c (stabilize_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* typeck.c (build_ptrmemfunc1): Likewise.
	* typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
	Likewise.
	(store_init_value): Use build_constructor_from_list and update call
	to digest_init.
	(digest_init): Rewrite.
	(process_init_constructor): Rewrite from scratch. Split into...
	(process_init_constructor_array, picflag_from_initializer,
	process_init_constructor_record, process_init_constructor_union):
	New functions.
	(PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
	New macros.
	(build_functional_cast): Use build_constructor_from_list instead of
	build_constructor.

2005-07-18  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22263
	* cp-tree.h (instantiate_decl): Change prototype.
	* decl2.c (mark_used): Adjust accordingly.
	* pt.c (do_decl_instantiation): Likewise.
	(instantiate_class_member): Likewise.
	(instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
	Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
	that has no definition available.
	(instantiate_pending_templates): Adjust call to instantiate_decl.

2005-07-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22139
	* cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
	* decl.c (duplicate_decls): Re-register template specializations
	for functions that have DECL_TEMLPLATE_INFO, even if they do not
	have DECL_TEMPLATE_INSTANTIATION set.

2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* call.c (diagnostic_fn_t): New.
	(build_temp, convert_like_real): Use diagnostic_fn_t.

2005-07-15  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22204
	* repo.c (repo_emit_p): Robustify.

2005-07-14  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR c++/22452
	* tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.

2005-07-15  Mark Mitchell  <mark@codesourcery.com>

	PR c++/22132
	* call.c (implicit_conversion): Add c_cast_p parameter.
	(standard_conversion): Likewise.  Allow conversions between
	differently-qualified pointer types when performing a C-style
	cast.
	(add_function_candidate): Adjust callee.
	(build_builtin_candidate): Likewise.
	(build_user_type_conversion_1): Likewise.
	(conditional_conversion): Likewise.
	(can_convert_arg): Likewise.
	(can_convert_arg_bad): Likewise.
	(perform_implicit_conversion): Likewise.
	* cp-tree.h (comp_ptr_ttypes_const): Declare.
	* typeck.c (comp_ptr_ttypes_const): Give it external linkage.
	Return bool.

2005-07-12  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
	    Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20172
	* pt.c (tsubst_template_parms): Check for invalid non-type
	parameters.

2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>

	* cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
	decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
	(cp_init_ts): Call init_shadowed_var_for_decl.
	Remove include of gt-cp-cp-lang.h.
	* cp-objcp-common.c (shadowed_var_for_decl,
	decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
	cp-lang.c.
	(init_shadowed_var_for_decl): New function to initialize
	shadowed_var_for_decl.
	Include gt-cp-cp-objcp-common.h.
	* Make-lang.in (gt-cp-lang.h): Remove.
	(gt-cp-cp-objcp-common.h): Add.
	(cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
	(cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
	* config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
	* cp-tree (init_shadowed_var_for_decl): Add prototype.

2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* Make-lang.in: Add gt-cp-lang.h.
	(cp-lang.o): Ditto.
	* class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
	the field.
	* config-lang.in: Add cp-lang.c to gtfiles.
	* cp-lang.c: Include hashtab.h.
	(cp_init_ts): New function.
	(LANG_HOOK_INIT_TS): Use macro.
	(decl_shadowed_for_var_lookup): New function.
	(decl_shadowed_for_var_insert): Ditto.
	* cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
	(NON_THUNK_FUNCTION_CHECK): Ditto.
	(DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
	(DECL_INIT_PRIORITY): Ditto.
	(DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
	(DECL_SHADOWED_FOR_VAR): Use hashtable.
	(SET_DECL_SHADOWED_FOR_VAR): Ditto.
	* decl.c (duplicate_decls): Update for new/updated structures.
	(poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
	* decl2.c (start_static_initialization_or_destruction): Deal with
	priority.
	* pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
	SET_DECL_RTL.
	* tree.c (handle_init_priority_attribute): Handle priority.

2005-07-08  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21799
	* pt.c (type_unification_real): Add is_method argument.  Use it
	for this pointer unification.
	(fn_type_unification): Adjust type_unification_real call.
	(unify): Likewise.

2005-07-07  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (type_unification_real): Remove allow_incomplete argument.
	Remove unreachable code.
	(fn_type_unification): Adjust call to type_unification_real.
	(unify): Likewise.

2005-07-05  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (class.o, decl2.o): Adjust dependencies.
	* class.c: Include tree-dump.h.
	* decl2.c: Include tree-dump.h.

2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* dump.c: Use dump_string_field.

2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>

	* cp-tree.h (GCC_DIAG_STYLE): #undef before defining.  Change
	minimum GCC version for format checking to 4.1.

2005-07-02  Kazu Hirata  <kazu@codesourcery.com>

	* Make-lang.in (cc1plus-checksum.c): Use
	build/genchecksum$(build_exeext), not build/genchecksum$(exeext).

2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>

	* name-lookup.c, parser.c: Use %q, %< and %> to quote in
	diagnostics.

2005-07-02  Zack Weinberg  <zack@codesourcery.com>
	    Joseph S. Myers  <joseph@codesourcery.com>

	* error.c (location_of): Add comment.
	(locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
	* cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
	* call.c, class.c, decl.c, decl2.c, friend.c, init.c,
	name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
	typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
	or cp_pedwarn_at.  Mark up some diagnostic strings with N_.

2005-06-30  Daniel Berlin  <dberlin@dberlin.org>

	* decl.c (require_complete_types_for_parms): Call relayout_decl
	instead of layout_decl.

2005-06-30  Zack Weinberg  <zack@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* cp-lang.c: No need to include cxx-pretty-print.h.
	* error.c (cp_printer): Update signature.  No need to process
	flags.
	(print_instantiation_partial_context): Output last newline
	with pp_base_newline.
	* Make-lang.in: Update dependencies.

2005-06-30  Steven Bosscher  <stevenb@suse.de>

	* decl.c (start_decl): Replace DECL_THREAD_LOCAL with
	DECL_THREAD_LOCAL_P.
	(cp_finish_decl): Likewise.
	(grokvardecl): Set the default DECL_TLS_MODEL here.

2005-06-28  Joseph S. Myers  <joseph@codesourcery.com>

	* cvt.c (ocp_convert): Use invalid_conversion hook.
	* typeck.c (build_binary_op): Use invalid_binary_op hook.
	(build_unary_op): Use invalid_unary_op hook.

2005-06-28  Paul Brook  <paul@codesourcery.com>

	* Make-lang.in (cp/except.o): Depend on $(TARGET_H)
	* except.c: Include target.h.
	(init_exception_processing): Initialize unwind_resume_libfunc.
	* doc/tm.texi: Document TARGET_ASM_TTYPE

2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* call.c (build_over_call): Pass in named argument list to
	`check_function_arguments'.
	* typeck.c (build_function_call): Likewise.

2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cp-tree.h (lang_check_failed): Add noreturn attribute.

2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>

	* all files: Update FSF address in copyright headers.

2005-06-23  Jason Merrill  <jason@redhat.com>

	PR c++/19317
	* semantics.c (simplify_aggr_init_expr): Use
	CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.

2005-06-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* pt.c (register_specialization): Remove superfluous assertion.

2005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* call.c (convert_like_real): Add format attribute.
	* typeck.c (check_for_casting_away_constness,
	build_static_cast_1): Likewise.
	* typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
	Likewise.

2005-06-17  Geoffrey Keating  <geoffk@apple.com>

	PR c++/17413
	* pt.c (type_unification_real): Apply template type deduction even
	to procedure parameters that are not dependent on a template
	parameter.

2005-06-16  Nathan Sidwell  <nathan@codesourcery.com>

	* rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
	change.
	(create_pseudo_type_info): First parameter is an int.

2005-06-15  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20678
	* error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
	null.

	* Make-lang.in: Reformat some long lines.
	(gt-cp-rtti.h): New target.
	(cp/rtti.o): Add dependency.
	* config-lang.in (gtfiles): Add cp/rtti.c.
	* cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
	CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
	CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
	CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
	CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
	(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
	ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
	class_desc_type_node, si_class_desc_type_node,
	vmi_class_desc_type_node, ptm_desc_type_node,
	base_desc_type_node): Remove.
	* decl.c: Adjust documentation of global trees.
	* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
	TINFO_REAL_NAME): Remove.
	(struct tinfo_s): New.
	(enum tinfo_kind): New.
	(tinfo_descs): New.
	(get_tinfo_decl): Adjust use of tinfo descriptor.
	(tinfo_base_init, generic_initializer, ptr_initializer,
	ptm_initializer, class_initializer): Likewise.
	(get_pseudo_ti_init): Take descriptor index. Adjust.
	(create_pseudo_type_info): Likewise.
	(get_pseudo_ti_desc): Return descriptor index. Adjust.
	(create_tinfo_types): Adjust use of create_pseudo_type_info.
	(emit_tinfo_decl): Adjust use of tinfo descriptor.

2005-06-14  Roger Sayle  <roger@eyesopen.com>

	* decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.

2005-06-13  Geoffrey Keating  <geoffk@apple.com>

	* Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
	(rule for installing g++.1 manpage): Does depend on installdirs.

2005-06-13  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20789
	* decl.c (cp_finish_decl): Clear runtime runtime initialization if
	in-class decl's initializer is bad.

	PR c++/21929
	* parser.c (struct cp_parser): Document that scope could be
	error_mark.
	(cp_parser_diagnose_invalid_type_name): Cope with error_mark for
	scope.
	(cp_parser_nested_name_specifier): Return NULL_TREE on error.
	(cp_parser_postfix_expression): Deal with null or error_mark
	scope.
	(cp_parser_elaborated_type_specifier): Adjust
	cp_parser_nested_name_specifier call.

	* parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.

2005-06-12  Roger Sayle  <roger@eyesopen.com>

	PR c++/21930
	* error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
	Treat CONVERT_EXPR identically to NOP_EXPR.

2005-06-10  Aldy Hernandez  <aldyh@redhat.com>

	PR c++/10611
	* cvt.c (build_expr_type_conversion): Same.
	* typeck.c (build_binary_op): Handle vectors.
	(common_type): Same.
	(type_after_usual_arithmetic_conversions): Same.

2005-06-08  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/19497
	* cp-tree.def (USING_DECL): Update documentation.
	* cp-tree.h (DECL_DEPENDENT_P): New.
	(USING_DECL_DECLS, USING_DECL_SCOPE): New.
	* class.c (handle_using_decl): Move most of the processing to ...
	* name-lookup.c (do_class_using_decl): ... here.  Make stricter.
	(push_using_decl): Use USING_DECL_SCOPE.
	(cp_emit_debug_info_for_using): Make extern.
	* cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
	* name-lookup.h (cp_emit_debug_info_for_using): Declare.
	* pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
	when tsubsting.
	(tsubst_expr): Use USING_DECL_SCOPE.
	* search.c (lookup_field_1): Use DECL_DEPENDENT_P.
	* semantics.c (finish_member_declaration): Likewise.

2005-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/19894
	* pt.c (tsubst): Reject pointer-to-member of type void.

	PR c++/20563
	* parser.c (cp_parser_label_declaration): Deal with invalid/missing
	identifiers.

2005-06-07  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.def (DEFAULT_ARG): Adjust documentation.
	* cp-tree.h (DEFARG_INSTANTIATIONS): New.
	(struct tree_default_arg): Add instantiations member.
	* parser.c (cp_parser_late_parsing_default_args): Adjust to use a
	VEC.
	* pt.c (tsubst_arg_types): Likewise.

	* parser.c (cp_parser_late_parsing_default_args): Fix overeager
	assert in previous patch.

2005-06-06  Jakub Jelinek  <jakub@redhat.com>

	* error.c (locate_error): Use gmsgid instead of msgid for argument
	name.
	(cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.

2005-06-06  Nathan Sidwell  <nathan@codesourcery.com>

	PR 21903
	* cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
	* parser.c (cp_parser_late_parsing_default_args): Propagate parsed
	argument to any early instantiations.
	* pt.c (tsubst_arg_types): Chain early instantiation of default arg.

	PR c++/20637
	* cp-tree.h (add_method): Add using_decl parameter.
	* class.c (add_method): Add using_decl parameter.  Adjust error
	messages.
	(handle_using_decl): Pass the using decl to add_method.
	(clone_function_decl): Adjust add_member calls.
	* decl2.c (check_classfn): Likewise.
	* method.c (lazily_declare_fn): Likewise.
	* semantics.c (finish_member_declaration): Likewise.

	* method.c (synthesize_method): Use inform, not warning.

2005-06-06  Hans-Peter Nilsson  <hp@axis.se>

	* config-lang.in (target_libs): Remove target-gperf.

2005-06-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21619
	* cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
	* parser.c (cp_parser_postfix_expression): Allow non-constant
	expressions as arguments to __builtin_constant_p.
	* tree.c (builtin_valid_in_constant_expr_p): Use
	DECL_IS_BUILTIN_CONSTANT_P.

2005-06-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21853
	* typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
	the pointed-to type for a pointer-to-member.

	PR c++/21336
	* cp-tree.h (grok_op_properties): Remove friendp parameter.
	* decl.c (grokfndecl): Adjust call.
	(grok_op_properties): Determine the class of which the function is
	a member by looking at its DECL_CONTEXT, not current_class_type.
	* pt.c (tsubst_decl): Adjust call to grok_op_properties.

2005-06-02  Nathan Sidwell  <nathan@codesourcery.com>

	* method.c (synthesize_method): Add addtional arg to warning call.

	PR c++/21280
	* Make-lang.in (method.o): Add diagnostic.h
	* decl.c (start_preparsed_function): Use decl's location for file
	info.
	* decl2.c (cp_finish_file): Set input_location before synthesizing
	a function.
	(mark_used): When deferring a synthesized function, save current
	location.  Do not set function's location when actually
	synthesizing it.
	* method.c: #include diagnostic.h.
	(synthesize_method): Set the functions source location.  Show
	needed location if errors are emitted.

	* decl.c (start_decl): Simplify specialization handling. Remove
	unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
	* mangle.c (discriminator_for_local_entity): Use VEC_index.

	PR c++/20350
	* decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.

	PR c++/21151
	* name-lookup.c (pushtag): Push local class even in a template.

2005-05-31  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21165
	* init.c (integral_constant_value): Check the type of the
	initializer, not the decl.

2005-05-30  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21784
	* name-lookup.c (do_nonmember_using_decl): Ignore builtin
	functions, even	when the used name is not a function.

2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>

	* operators.def, optimize.c: Update copyright.

2005-05-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21210
	* call.c (standard_conversion): Permit conversions to complex
	types if conversion to the corresponding scalar type would be
	permitted.

	PR c++/21340
	* method.c (implicitly_declare_fn): Clear processing_template_decl
	when generating implicit declaration.

2005-05-27  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21614
	* typeck.c (get_member_function_from_ptrfunc): Do not attempt
	conversions to base classes of incomplete types.

2005-05-27  Ian Lance Taylor  <ian@airs.com>

	* semantics.c (add_stmt): Add C++ frontend specific version.
	* cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
	(stmts_are_full_exprs_p): Declare.

2005-05-27  Roger Sayle  <roger@eyesopen.com>
	    Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
	* parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
	of CONVERT_EXPR.
	(cp_parser_unary_expression): Likewise.
	* typeck.c (build_unary_op): Likewise.
	* call.c (add_builtin_candidate, build_new_op): Likewise.
	* error.c (dump_expr): Likewise.
	* pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
	* decl.c (ambi_op_p, grok_op_properties): Likewise.
	* dump.c (dump_op): Likewise.
	* lex.c (init_operators): Likewise.
	* operators.def ("+"): Likewise.
	* cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
	conversion, if the result and argument types differ.
	* tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
	like a NOP_EXPR when !processing_template_decl.

	* cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
	(pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.

2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21455
	* typeck.c (get_delta_difference): Cope with incomplete but equal
	classes.  Reorder if.

	PR c++/21681
	* parser.c (cp_parser_late_parsing_for_member): Disable access
	checking for template functions.

2005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/21768
	* pt.c (redeclare_class_template): Change error message according
	to coding conventions.

2005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* call.c (build_op_delete_call): Fix quoting in error message.

2005-05-25  Richard Henderson  <rth@redhat.com>

	PR libgcj/21692
	* cp-tree.h (make_alias_for): Declare.
	* decl2.c (build_java_method_aliases): New.
	(cp_finish_file): Call it.
	* method.c (make_alias_for): Split out from ...
	(make_alias_for_thunk): ... here.

2005-05-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/21686
	* semantics.c (finish_id_expression): Fix quoting in error message.

2005-05-25  DJ Delorie  <dj@redhat.com>

	* decl.c (duplicate_decls): Move warning control from if() to
	warning(OPT_*).
	* name-lookup.c (parse_using_directive): Likewise.
	* parser.c (cp_parser_elaborated_type_specifier): Likewise.
	(cp_parser_init_declarator): Likewise.
	* tree.c (handle_com_interface_attribute): Likewise.

2005-05-24  Ziemowit Laski  <zlaski@apple.com>

	* class.c (layout_class_type): Do not issue C++ ABI warnings
	for ObjC structs.
	* decl.c (objc_mark_locals_volatile): Streamline by calling
	objc_volatilize_decl().
	* parser.c (cp_parser_objc_message_expression): Allow simple
	type specifiers (instead of merely type names) as message
	receivers.
	* pt.c (template_args_equal): Do not call objc_comptypes().
	* typeck.c (composite_pointer_type): If both pointers are
	ObjC-esque, arbitrarily choose the first; do not call
	objc_comptypes().
	(comptypes): Do not call objc_comptypes().
	(convert_for_assignment): Call objc_compare_types().
	(comp_ptr_ttypes_real): Call objc_type_quals_match() before
	concluding that types do not match.

2005-05-24  Andrew Pinski  <pinskia@physics.uc.edu>

	PR C++/21645
	* optimize.c (update_cloned_parm): Copy the TYPE also from the
	original one.

2005-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/21495
	* decl.c (grokdeclarator): Fix "storage class specified for"
	error reporting.

2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>

	* parser.c: Fix comment typos.

2005-05-18  Geoffrey Keating  <geoffk@apple.com>

	* Make-lang.in (cc1plus-dummy): New.
	(cc1plus-checksum.c): New.
	(cc1plus-checksum.o): New.
	(cc1plus): Add cc1plus-checksum.o.

2005-05-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR C++/19664
	* decl2.c (determine_visibility): Don't set visibility to
	hidden if it has been set explicitly by user.

2005-05-17  Ziemowit Laski  <zlaski@apple.com>
	    Mike Stump  <mrs@apple.com>

	Yet more Objective-C++...

	* cp-objcp-common.h (cxx_get_alias_set): Move from
	here...
	(cxx_warn_unused_global_decl): Likewise.
	(cp_expr_size): Likewise.
	(cp_tree_size): Likewise.
	(cp_var_mod_type_p): Likewise.
	(cxx_initialize_diagnostics): Likewise.
	(cxx_types_compatible_p): Likewise.
	* cp-tree.h: to here.
	(do_poplevel): Add.
	* lex.c (D_OBJC): Add.
	(init_reswords): Add.
	* Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
	* parser.c: Add c-common.h include.
	* pt.c: Add c-common.h and cp-objcp-common.h includes.
	(template_args_equal): Use objc_comptypes as well.
	(tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
	* semantics.c (do_poplevel): Remove static.

	* decl.c (objc_mark_locals_volatile): Don't change decls that are
	already ok.
	* decl2.c (generate_ctor_or_dtor_function): Add code to initialize
	Objective C++ early enough.
	* lex.c (struct resword reswords): Add Objective-C++ support.
	* parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
	(cp_parser_objc_message_receiver): Add.
	(cp_parser_objc_message_args): Likewise.
	(cp_parser_objc_message_expression): Likewise.
	(cp_parser_objc_encode_expression): Likewise.
	(cp_parser_objc_defs_expression): Likewise.
	(cp_parser_objc_protocol_expression): Likewise.
	(cp_parser_objc_selector_expression): Likewise.
	(cp_parser_objc_expression): Likewise.
	(cp_parser_objc_visibility_spec): Likewise.
	(cp_parser_objc_method_type): Likewise.
	(cp_parser_objc_protocol_qualifiers): Likewise.
	(cp_parser_objc_typename): Likewise.
	(cp_parser_objc_selector_p): Likewise.
	(cp_parser_objc_selector): Likewise.
	(cp_parser_objc_method_keyword_params): Likewise.
	(cp_parser_objc_method_tail_params_opt): Likewise.
	(cp_parser_objc_interstitial_code): Likewise.
	(cp_parser_objc_method_signature): Likewise.
	(cp_parser_objc_method_prototype_list): Likewise.
	(cp_parser_objc_method_definition_list): Likewise.
	(cp_parser_objc_class_ivars): Likewise.
	(cp_parser_objc_identifier_list): Likewise.
	(cp_parser_objc_alias_declaration): Likewise.
	(cp_parser_objc_class_declaration): Likewise.
	(cp_parser_objc_protocol_declaration): Likewise.
	(cp_parser_objc_protocol_refs_opt): Likewise.
	(cp_parser_objc_superclass_or_category): Likewise.
	(cp_parser_objc_class_interface): Likewise.
	(cp_parser_objc_class_implementation): Likewise.
	(cp_parser_objc_end_implementation): Likewise.
	(cp_parser_objc_declaration): Likewise.
	(cp_parser_objc_try_catch_finally_statement): Likewise.
	(cp_parser_objc_synchronized_statement): Likewise.
	(cp_parser_objc_throw_statement): Likewise.
	(cp_parser_objc_statement): Likewise.
	(cp_parser_primary_expression): Add Objective-C++.
	(cp_parser_statement): Likewise.
	(cp_parser_declaration): Likewise.
	(cp_parser_simple_type_specifier): Likewise.
	(cp_parser_type_name): Likewise.
	(cp_parser_parameter_declaration_list): Likewise.
	(cp_parser_member_declaration) Likewise.
	* tree.c: Include debug.h.
	* typeck.c (composite_pointer_type): Add Objective-C++ support.
	(finish_class_member_access_expr): Likewise.
	(build_function_call): Allow objc to rewrite FUNCTION_DECLs.
	(build_modify_expr): Allow objc to generate write barriers.

	* Make-lang.in (cp/tree.o): Add debug.h.
	* tree.c (lvalue_p_1, case CONST_DECL): Add.

2005-05-18  Jan Hubicka  <jh@suse.cz>

	* method.c: Include tree-pass.h
	(use_thunk): Lower body before expanding.

2005-05-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/21454
	* decl.c (maybe_deduce_size_from_array_init): Call
	cp_apply_type_quals_to_decl after completing array type.

2005-05-16  Richard Henderson  <rth@redhat.com>

	* decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
	(build_library_fn): ... here.

2005-05-12  Ian Lance Taylor  <ian@airs.com>

	* cp-tree.h (cp_stmt_codes): Don't define.
	(statement_code_p): Declare.
	(STATEMENT_CODE_P): Define.
	* lex.c (statement_code_p): Define.
	(cxx_init): Use actual codes in stmt_codes initializer, not
	cp_stmt_codes macro.  Initialize statement_code_p directly, rather
	than using INIT_STATEMENT_CODES.

2005-05-09  Mark Mitchell  <mark@codesourcery.com>

	* typeck.c (build_unary_op): Do not resort to address arithmetic
	when taking the address of a COMPONENT_REF.

2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>

	* class.c (vtbl_init_data_s): Change the type of fns to
	VEC(tree,gc)*.
	(build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
	Use VEC instead of VARRAY.

2005-05-07  Richard Sandiford  <rsandifo@redhat.com>

	* mangle.c: Remove a reference to the MIPS -mint64 option.

2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>

	* decl.c (wrapup_globals_for_namespace): Use VEC instead of
	VARRAY.
	* name-lookup.c (add_decl_to_level, begin_scope): Likewise.
	* name-lookup.h (cp_binding_level): Change the type of
	static_decls to VEC(tree,gc)*.

	* mangle.c (globals): Change the type of substitutions to
	VEC(tree,gc)*.
	(dump_substitution_candidates, add_substitution,
	find_substitution, finish_mangling, init_mangle): Use VEC
	instead of VARRAY.

2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>

	* decl2.c (spew_debug): Remove.

	* decl2.c (ssdf_decls, start_static_storage_duration_function,
	generate_ctor_or_dtor_function): Use VEC instead of VARRAY.

	* decl2.c (pending_statics, note_vague_linkage_var,
	cp_finish_file): Use VEC instead of VARRAY.
	(pending_statics_used): Remove.

2005-05-05  Kazu Hirata  <kazu@cs.umass.edu>

	* decl2.c (deferred_fns, note_vague_linkage_fn,
	cp_finish_file): Use VEC instead of VARRAY.

2005-05-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21352
	* pt.c (build_non_dependent_expr): Use is_overloaded_fn.

2005-05-05  Kazu Hirata  <kazu@cs.umass.edu>

	* pt.c: Fix a comment typo.

2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.h (language_function): Change the type of
	x_local_names to VEC.
	* decl.c (push_local_name): Adjust uses of local_names.

2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>

	* friend.c, lex.c, mangle.c, repo.c: Update copyright.

2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>

	* class.c (local_classes, init_class_processing): Use VEC
	instead of VARRAY.
	* cp-tree.h (local_classes): Likewise.
	* mangle.c (discriminator_for_local_entity): Likewise.
	* name-lookup.c (pushtag): Likewise.

	* class.c (current_lang_depth, push_lang_context,
	pop_lang_context): Use VEC instead of VARRAY.
	* cp-tree.h (saved_scope): Use VEC for lang_base instead of
	VARRAY.
	* name-lookup.c (push_to_top_level): Use VEC instead of
	VARRAY.

2005-05-02  Paolo Bonzini  <bonzini@gnu.org>

	* semantics.c (finish_call_expr): Call resolve_overloaded_builtin
	for BUILT_IN_MD built-ins.

2005-05-02  Michael Matz  <matz@suse.de>

	PR c++/19542
	* cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
	common frontend.
	(null_node): Remove.
	* lex.c (cxx_init): Move null_node initialisation to C common frontend.

2005-04-25  Ian Lance Taylor  <ian@airs.com>

	* cp-tree.def: Add EXPR_STMT.
	* cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
	(EXPR_STMT_EXPR): Define.
	* cp-gimplify.c: Include "flags.h".
	(gimplify_expr_stmt): New static function.
	(cp_gimplify_expr): Handle EXPR_STMT.
	* cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
	rather than pp_expression.
	(pp_cxx_statement): Handle EXPR_STMT.
	* dump.c (cp_dump_tree): Handle EXPR_STMT.
	* lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
	initializer.

2005-04-25  Andrew Pinski  <pinskia@physics.uc.edu>

	PR C++/21188
	* rtti.c (ifnonnull): Cast the zero comparison operand
	to the correct type.

2005-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/20991
	* class.c: Include cgraph.h.
	(cp_fold_obj_type_ref): Set node->local.vtable_method.
	* Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).

2005-04-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>

	* mangle.c (write_builtin_type): Handle integer types which are
	not one of the shared integer type nodes and emit a "vendor
	extended builtin type" with an encoding in the form of "u5int96".

2005-04-24  Ian Lance Taylor  <ian@airs.com>

	* cp-tree.def (USING_STMT): Change class to tcc_statement.
	(TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
	(IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
	(BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.

2005-04-23  DJ Delorie  <dj@redhat.com>

	* call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
	init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
	repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
	callers.

2005-04-22  Per Bothner  <per@bothner.com>

	* decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
	input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.

2005-04-22  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/21087
	* name-lookup.c (push_overloaded_decl): Do not overload with
	non-duplicate anticipated built-in.

2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
	VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.

2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h: Adjust for new VEC API.
	Define VEC(tree_pair_s,gc).
	(struct save_scope): Adjust.
	(struct lang_type_class): Adjust.
	(unemitted_tinfo_decls): Adjust.
	* class.c (add_method, resort_type_method_vec,
	finish_struct_methods, struct find_final_overrider_data,
	dfs_find_final_overrider_pre, find_final_overrider,
	get_vcall_index, warn_hidden, walk_subobject_offsets,
	check_methods, fixup_inline_methods, end_of_class,
	warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
	add_vcall_offset): Adjust.
	* decl.c (xref_basetypes, finish_method): Adjust.
	* decl2.c (check_classfn): Adjust.
	* init.c (sort_mem_initializers, push_base_cleanups): Adjust.
	* method.c (do_build_copy_constructor): Adjust.
	* name-lookup.c (new_class_binding, store_binding,
	store_bindings, store_class_bindings): Adjust.
	* name-lookup.h: Define VEC(cxx_saved_binding,gc),
	VEC(cp_class_binding,gc).
	(struct cp_binding_level): Adjust.
	* parser.c: Define VEC(cp_token_position,heap).
	(struct cp_lexer): Adjust.
	(cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
	cp_lexer_save_tokens): Adjust.
	* pt.c (retrieve_specialization,
	check_explicit_specialization): Adjust.
	* rtti.c (unemitted_tinfo_decls): Adjust.
	(init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
	get_pseudo_ti_desc): Adjust.
	* search.c (dfs_access_in_type, lookup_conversion_operator,
	lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
	dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
	* semantics.c: Define VEC(deferred_access,gc).
	(push_deferring_access_checks): Adjust.
	* typeck2.c (abstract_virtuals_error): Adjust.

2005-04-20  Ian Lance Taylor  <ian@airs.com>

	* cp-tree.def: Add STMT_EXPR.
	* cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
	(STMT_EXPR_STMT): Define.
	* cxx-pretty-print.c (pp_cxx_primary_expression): Handle
	STMT_EXPR.
	(pp_cxx_expression): Likewise.
	(pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
	* dump.c (cp_dump_tree): Handle STMT_EXPR.

2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>

	* decl.c (expand_static_init): Call build2 and build3 instead
	of build.

	* cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.

2005-04-17  Ian Lance Taylor  <ian@airs.com>

	* cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
	* cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
	ARROW_EXPR.
	(pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
	(pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
	ALIGNOF_EXPR.
	* typeck.c (cxx_sizeof_or_alignof_type): Update call to
	c_sizeof_or_alignof_type for change in parameter type.

2005-04-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/21025
	* typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
	which sizeof/alignof is dependent, rather than just whether we are
	processing_template_decl.

2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.h (LOOKUP_GLOBAL): Remove.
	(LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
	LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
	LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
	their values.

2005-04-15  Richard Henderson  <rth@redhat.com>

	PR middle-end/14311
	* semantics.c (finish_call_expr): Call resolve_overloaded_builtin.

2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.h (lang_type_class): Remove redefined.  Move
	java_interface into where redefined was.  Increment the width
	of dummy.
	(TYPE_REDEFINED): Remove.

2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
	CLASSTYPE_TEMPLATE_LEVEL): Remove.

2005-04-11  Mark Mitchell  <mark@codesourcery.com>

	* decl2.c (determine_visibility): Don't use export_class_data.
	(import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
	TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.

2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.h (cxx_alignof): Remove.

	* cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.

	* cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
	CONV_STATIC_CAST): Remove.

	* pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.

	* cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.

	* cp-tree.h (cp_deprecated): Remove.

2005-04-08  Ian Lance Taylor  <ian@airs.com>

	* cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
	CONTINUE_STMT, SWITCH_STMT.
	* cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
	BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
	(WHILE_COND, WHILE_BODY): Define.
	(DO_COND, DO_BODY): Define.
	(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
	(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
	* cp-gimplify.c (enum bc_t): Define.
	(struct cp_gimplify_ctx, ctxp): Define.
	(push_context, pop_context): New static functions.
	(begin_bc_block, finish_bc_block): New static functions.
	(build_bc_goto): New static function.
	(gimplify_cp_loop, gimplify_for_stmt): New static functions.
	(gimplify_while_stmt, gimplify_do_stmt): Likewise.
	(gimplify_switch_stmt): Likewise.
	(cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
	SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
	(cp_genericize): Call push_context and pop_context.
	* semantics.c (finish_break_stmt): Just call build_stmt
	(BREAK_STMT) rather than build_break_stmt.
	(finish_continue_stmt): Corresponding change.
	* decl.c (pop_switch): Update call to c_do_switch_warnings for new
	parameters.
	* cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
	WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
	* dump.c (cp_dump_tree): Likewise.

2005-04-08  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20905
	* parser.c (cp_parser_type_specifier_seq): Add is_condition
	parameter.
	(cp_parser_new_type_id): Pass it.
	(cp_parser_condition): Likewise.
	(cp_parser_conversion_type_id): Likewise.
	(cp_parser_type_id): Likewise.
	(cp_parser_type_specifier_seq): In a condition, do not allow
	invalid type-specifier combinations.
	(cp_parser_exception_declaration): Adjust call to
	cp_parser_type_specifier_seq.

	* cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
	* cp-tree.h (struct tinst_level): Add in_system_header_p.
	(TINST_IN_SYSTEM_HEADER_P): New macro.
	(make_tinst_level): Remove.
	* pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
	the instantiated class.
	(push_tinst_level): Do not use make_tinst_level.  Set
	TINST_IN_SYSTEM_HEADER_P.
	(pop_tinst_level): Likewise.
	(instantiate_class_template): Set in_system_header.
	(instantiate_pending_templates): Likewise.
	* tree.c (make_tinst_level): Remove.

2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>

	* decl.c (start_decl): Apply pending #pragma weak regardless of
	scope.

2005-04-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20212
	* pt.c (regenerate_decl_from_template): Copy attributes for
	parameters from the pattern to the instantiation.

2005-04-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20734
	* cp-tree.def (OFFSET_REF): Correct comments.
	* init.c (build_offset_ref): Remove misleading comment.
	* typeck.c (build_unary_op): Handle pointer-to-member creation
	here, rather than ...
	(unary_complex_lvalue): ... here.

2005-04-06  Jason Merrill  <jason@redhat.com>

	PR c++/19312
	* tree.c (stabilize_init): Don't bother trying to stabilize
	something with no side-effects.

2005-04-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20763
	* decl.c (grokdeclarator): Correct attribute handling.

2005-04-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19159
	* decl2.c (import_export_decl): Use non-COMDAT external linkage
	for virtual tables, typeinfo, etc. that will be emitted in only
	one translation unit on systems without weak symbols.

2005-04-04  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20679
	* parser.c (cp_parser_template_name): Fix thinko.

2005-04-04  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20746
	* method.c (use_thunk): Protect covariant pointer return
	adjustments from NULL pointers.

2005-04-04  Jan Hubicka  <jh@suse.cz>

	* decl2.c (finish_objects): Revert my previous patch.
	(cp_finish_file): Likewise.

2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>

	* pt.c: Fix comment typos.

2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20723
	* pt.c (more_specialized_fn): Member functions are unordered wrt
	non-members.  Conversion operators are unordered wrt other
	functions.

2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (add_template_candidates_real): Remove length parameter
	from fn_type_unification call.
	* class.c (resolve_address_of_overloaded_function): Likewise
	* cp-tree.h (fn_type_unification): Remove length parameter.
	* pt.c (get_bindings_overload): Remove.
	(get_bindings_real): Rename to ...
	(get_bindings): ... here.  Remove length and strict
	parameters. Change return type flag to boolean.  Remove original
	forwarding function.
	(determine_specialization): Adjust get_bindings call.
	(fn_type_unification): Remove length parameter.  Adjust.
	(type_unification_real): Remove length parameter.  Adjust.
	(resolve_overloaded_unification): Adjust get_bindings call.
	(try_one_overload): Simplify confusing cascaded if control flow.
	(unify): Remove length paramter from type_unification_real call.
	(most_specialized_instantiation): Adjust get_bindings calls.
	(most_specialized): Likewise.

2005-03-31  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/19203, implement DR 214
	* call.c (joust): Use more_specialized_fn.
	* cp-tree.h (DEDUCE_ORDER): Remove.
	(more_specialized): Replace with ...
	(more_specialized_fn): ... this.
	* pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
	case.
	(type_unification_real): Remove DEDUCE_ORDER case.
	(more_specialized): Replace with ...
	(more_specialized_fn): ... this.  Implement DR 214.
	(most_specialized_instantiation): Use get_bindings_real directly.

2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/18644
	* call.c (build_new_op): Remove check for -Wsynth.

2005-03-31  Jan Hubicka  <jh@suse.cz>

	* decl2.c (finish_objects): Mark ctor as needed.
	(cp_finish_file): Output variables only in nonunit-at-a-time.

2005-03-29  Richard Henderson  <rth@redhat.com>

	PR c/20519
	* decl.c (cp_complete_array_type): Rename from complete_array_type.
	Use the new complete_array_type in c-common.c.  Update all callers.
	* cp-tree.h (cp_complete_array_type): Update to match.

2005-03-24  Geoffrey Keating  <geoffk@apple.com>

	* typeck.c (build_static_cast_1): Allow scalar_cast between
	any integral, floating, or enumeration type.

2005-03-24  Steven Bosscher  <stevenb@suse.de>

	* typeck.c (comptypes): First determine if the types are compatible
	from a target-independent point of view.  Check target attributes
	last.

	* class.c (build_base_path):
	(build_vbase_offset_vtbl_entries):
	(add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
	* error.c (dump_expr): Likewise.
	* init.c (build_zero_init, expand_cleanup_for_base,
	build_vec_delete_1): Likewise.
	* mangle.c (write_integer_cst): Likewise.
	* method.c (thunk_adjust): Likewise.
	* pt.c (convert_nontype_argument, tsubst, unify): Likewise.
	* tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
	* typeck.c (build_ptrmemfunc_access_expr,
	(get_member_function_from_ptrfunc): Likewise.

2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>

	* cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.

2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>

	* cp-tree.h (perform_integral_promotions): Remove.
	(default_conversion): Add.

2005-03-22  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (cp_parser_warn_min_max): New function.
	(cp_parser_binary_expression): Use it.
	(cp_parser_assignment_operator_opt): Likewise.
	(cp_parser_operator): Likewise.

2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/19980
	* decl.c (start_preparsed_function): Robustify.

2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/20499
	* parser.c (cp_parser_class_head): Return NULL_TREE when
	encountering a redefinition.

2005-03-22  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20465
	PR c++/20381
	* typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
	template.

2005-03-21  Paolo Carlini  <pcarlini@suse.de>

	PR c++/20461
	PR c++/20536
	* init.c (emit_mem_initializers): Don't crash on undefined
	types.

2005-03-21  Paolo Carlini  <pcarlini@suse.de>

	PR c++/20147
	* semantics.c (finish_stmt_expr_expr): Return immediately
	if error_operand_p (expr).

2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>

	* cp-tree.h (lvalue_or_else, lvalue_p): New.
	* typeck.c (lvalue_or_else): New.  Call lvalue_error.

2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/20240
	* decl.c (decls_match): Compare context of VAR_DECL.

2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/20333
	* parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
	Check the return value of cp_parser_nested_name_specifier.

2005-03-18  Dale Johannesen <dalej@apple.com>

	* cp/tree.c (cp_tree_equal):  Handle SSA_NAME.

2005-03-18  Paolo Carlini  <pcarlini@suse.de>

	PR c++/20463
	* parser.c (cp_parser_diagnose_invalid_type_name):
	Check TYPE_BINFO (current_class_type) before attempting
	to emit inform messages.

2005-03-17  Paolo Carlini  <pcarlini@suse.de>

	PR c++/19966
	* cp-tree.h (grok_op_properties): Change return type to void.
	* decl.c (grok_op_properties): Return early - don't check the
	arity - in case of a static member or an operator that cannot
	be non-member; tidy a bit.

2005-03-17  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20186
	* pt.c (contains_dependent_cast_p): Remove.
	(fold_non_dependent_expr): Don't use it.
	(value_dependent_expression_p): Use a switch statement.
	reference_exprs can be dependent.

2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/4403
	PR c++/9783, DR433
	* name-lookup.c (pushtag): Skip template parameter scope when
	scope is ts_global.  Don't push tag into template parameter
	scope.
	* pt.c (instantiate_class_template): Reorder friend class
	template substitution to handle non-dependent friend class
	that hasn't been previously declared.

2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	Friend class name lookup 5/n
	PR c++/1016
	* cp-tree.h (pushtag): Adjust declaration.
	* decl.c (lookup_and_check_tag): Call lookup_type_scope if
	lookup_name fails.
	(xref_tag): Adjust call to pushtag.  Make hidden class visible.
	(start_enum): Adjust call to pushtag.
	* name-lookup.c (ambiguous_decl): Ignore hidden names.
	(qualify_lookup): Change return type to bool.
	(hidden_name_p): New function.
	(lookup_namespace_name, unqualified_namespace_lookup,
	lookup_name_real): Use it.
	(lookup_type_scope): Update comments.
	(maybe_process_template_type_declaration): Change parameter name
	from globalize to is_friend.
	(pushtag): Change globalize parameter of type int to tag_scope.
	Hide name if introduced by friend declaration.
	* name-lookup.h (hidden_name_p): Add declaration.
	* parser.c (cp_parser_lookup_name): Don't deal with hidden name
	here.
	* pt.c (push_template_decl_real): Make hidden class template
	visible.
	(lookup_template_class, instantiate_class_template): Adjust call
	to pushtag.
	* semantics.c (begin_class_definition): Likewise.
	* rtti.c (init_rtti_processing, build_dynamic_cast_1,
	tinfo_base_init, emit_support_tinfos): Use ts_current instead of
	ts_global.

2005-03-13  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20157
	* pt.c (determine_specialization): Reject non-specializations.

2005-03-11  Per Bothner  <per@bothner.com>

	* cp-tree.h (struct cp_declarator): New id_loc field.
	* cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
	location using c_lex_with_flags, instead of input_location.
	(cp_parser_direct_declarator): Set declarator's id_loc from
	cp_token's id_loc.

2005-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/18384, c++/18327
	* decl.c (reshape_init_array): Use UHWI type for max_index_cst
	and index.  Convert max_index to size_type_node if it isn't
	host_integerp (, 1).

2005-03-09  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20208
	* pt.c (tsubst_decl): Apply array-to-pointer and
	function-to-pointer conversions to function arguments.
	(regenerate_decl_from_template): Likewise.

2005-03-09  Paolo Carlini  <pcarlini@suse.de>

	PR c++/16859
	* decl.c (complete_array_type): In pedantic mode, return
	3 for an empty initializer list as the initializer for an
	array of unknown bound (8.5.1/4).
	(maybe_deduce_size_from_array_init): Fix final test to use
	the above.

2005-03-08  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20186
	* pt.c (contains_dependent_cast_p): New.
	(fold_non_dependent_expr): Call it.

2005-03-08  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20142
	* cp-tree.h (target_type): Remove.
	* decl.c (layout_var_decl): Remove #if 0'd code.
	(cp_finish_decl): Remove dead code.
	* init.c (build_vec_init): When determining whether or not the
	element type has an asignment operator, look through all array
	dimensions.
	* typeck.c (target_type): Remove.

2005-03-07  Mark Mitchell  <mark@codesourcery.com>

	* class.c (finish_struct_1): Do not warn about non-virtual
	destructors in Java classes.

2005-03-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/19311
	* init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
	* pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
	for OFFSET_TYPE.
	* typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
	Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
	(build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
	template.

2005-03-02  Alexandre Oliva  <aoliva@redhat.com>

	* name-lookup.c (push_overloaded_decl): Don't error if the new
	decl matches the old one.
	* decl.c (redeclaration_error_message): Likewise.

2005-03-01  Per Bothner  <per@bothner.com>

	* decl.c (finish_function): Use SET_EXPR_LOCATION instead of
	unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.

2005-03-01  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20232
	* class.c (update_vtable_entry_for_fn): Don't crash on invalid
	covariancy.

	* cp-tree.g (THUNK_TARGET): Expand comment.
	* method.c (use_thunk): Make sure we also use the target, if that
	is a thunk.

2005-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/20206
	* decl.c (cxx_comdat_group): Put thunks for
	TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
	comdat group as the thunk target.

2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
	parser.c: Fix comment typo(s).

2005-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/20175
	* decl.c (reshape_init): Don't warn about missing braces if STRING_CST
	initializes a char/wchar_t array.

2005-02-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19878
	* decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
	with internal linkage.

2005-02-23  Alexandre Oliva  <aoliva@redhat.com>

	* decl.c (grokvardecl): Don't exempt anonymous types from having
	linkage for variables that have linkage other than "C".

2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-objcp-common.h, error.c: Update copyright.

2005-02-22  Mark Mitchell  <mark@codesourcery.com>

	PR c++/20073
	* decl.c (start_decl_1): Don't clear TREE_READONLY.
	(cp_finish_decl): Likewise.
	(complete_vars): Call cp_apply_type_quals_to_decl.
	* typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
	cases where that's not valid.

	PR c++/19991
	* init.c (integral_constant_value): Iterate if the value of a decl
	is itself a constant.

	PR c++/20152
	* parser.c (cp_parser_class_head): Check for redefintions here.
	* semantics.c (begin_class_definition): Not here.

	PR c++/20153
	* decl2.c (build_anon_union_vars): Add type parameter.
	(finish_anon_union): Pass it.

	PR c++/20148
	* error.c (dump_expr): Do not print the body of a BIND_EXPR.
	Handle STATEMENT_LIST.

	PR c++/19883
	* parser.c (cp_parser_direct_declarator): Always complain about
	non-constant array bounds when in a function scope.
	* semantics.c (finish_id_expression): Do not mark dependent names
	as non-constant.

2005-02-21  Douglas Gregor  <dgregor@cs.indiana.edu>

	PR c++/19076
	PR c++/6628
	* cp-tree.h (cp_apply_type_quals_to_decl): Declared.
	* decl.c (grokdeclarator): Pedwarn about qualifying a function
	type.
	Add qualifiers when declaring a typedef of a function type.
	Member function pointers pick up the qualifiers of the typedef
	used to declare them.
	Don't complain about creating cv-qualified function types.
	Complain about qualified function typedefs that are used to
	declare non-static member functions or free functions.
	Use cp_apply_type_quals_to_decl.
	(start_preparsed_function): Use cp_apply_type_quals_to_decl.
	(grokclassfn): Use cp_apply_type_quals_to_decl.
	* error.c (dump_type_suffix): Print qualifiers for function
	types.
	* pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
	(tsubst): When substituting a function type into a member
	pointer type, pass along the qualifiers.
	(unify): Unify member pointers to member function pointers.
	* tree.c (cp_build_qualified_type_real): Function types may be
	qualified. This includes restrict qualifiers.
	* typeck.c (cp_apply_type_quals_to_decl): New function to replace
	use of c_apply_type_quals_to_decl. Drops qualifiers that are being
	added to function types.

2005-02-20  Zack Weinberg  <zack@codesourcery.com>

	PR 18785
	* cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
	c_common_to_target_charset.  Delete bogus comment.

2005-02-18  Richard Henderson  <rth@redhat.com>

	PR libstdc++/10606
	* except.c (do_get_exception_ptr): New.
	(expand_start_catch_block): Use it.

2005-02-19  Jakub Jelinek  <jakub@redhat.com>

	* decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
	if type is not error_mark_node.

2005-01-20  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/19508
	* decl2.c (grokfield): Do not apply attributes to template parameters
	as they are ignored by tsubst anyway.

2005-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/19813
	* decl.c (start_decl_1): Clear TREE_READONLY flag if
	its type has TYPE_NEEDS_CONSTRUCTING.
	(complete_vars): Likewise.

2005-02-17  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/20028
	* class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
	template along with TYPE_SIZE.

	PR c++/20022
	* semantics.c (perform_deferred_access_checks): Use
	get_deferred_access_checks to get the top of the stack.

2005-02-15  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/17788
	* class.c (add_implicitly_declared_members, check_field_decl)
	(check_field_decls, check_bases): Remove arguments, tests and
	assignments of cant_have_default_ctor-related variables.

2005-02-15  Alexandre Oliva  <aoliva@redhat.com>

	* decl2.c (mark_used): Set the source location of the used decl to
	the current input location here...
	* method.c (synthesize_method): ... not here.  Set input_location
	from the decl instead.

2005-02-14  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/19608
	* parser.c (cp_parser_late_parsing_for_member): Use
	current_function_decl as scope to push to and from.

	PR c++/19884
	* pt.c (check_explicit_specialization): Make sure namespace
	binding lookup found an overloaded function.
	(lookup_template_function): Just assert FNS is an overloaded
	function.

	PR c++/19895
	* decl.c (grokdeclarator): Check for error mark node in ptrmem
	construction.

2005-02-14  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/17816
	* decl.c (redeclaration_error_message): Report redefinition of
	pure virtual function.

2005-02-14  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/19891
	* class.c (build_simple_base_path): Build the component_ref
	directly.
	(update_vtable_entry_for_fn): Walk the covariant's binfo chain
	rather than using lookup_base.
	* search.c (dfs_walk_once): Add non-recursive assert check.
	* typeck.c (build_class_member_access_expr): It is possible for
	the member type to be both const and volatile.

2005-02-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/14479
	PR c++/19487
	* pt.c (maybe_check_template_type): Remove.
	* cp-tree.h (maybe_check_template_type): Remove prototype.
	* name-lookup.c (maybe_process_template_type_declaration): Don't
	use maybe_check_template_type.

2005-02-11  Richard Henderson  <rth@redhat.com>

	PR c++/19632
	* pt.c (get_mostly_instantiated_function_type): Save and restore
	flag_access_control instead of push/pop_access_scope.

2005-02-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19755
	* decl.c (reshape_init): Issue warnings about missing braces.

2005-02-11  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.def, except.c, ptree.c: Update copyright.

2005-02-09  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19811
	* call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
	attempting name lookup.

	* parser.c (cp_parser_unqualified_id): Initialize type_decl.

	PR c++/19787
	* call.c (initialize_reference): Robustify.

	PR ++/19732
	* decl.c (grokdeclarator): Check for invalid use of destructor
	names.

	PR c++/19762
	* parser.c (cp_parser_unqualified_id): Avoid creating destructor
	names with invalid types.

	PR c++/19826
	* parser.c (cp_parser_direct_declarator): Allow type-dependent
	expressions as array bounds.

	PR c++/19739
	* parser.c (cp_parser_attributes_list): Allow empty lists.

2005-02-08  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19733
	* class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
	(check_bases): Give warnings about a base class with a
	non-virtual destructor, even if it is implicit.
	(finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
	(maybe_warn_about_overly_private_class): Don't use
	TYPE_HAS_DESTRUCTOR.
	(finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
	(check_for_override): Give it external linkage.
	(add_implicitly_declared_members): Generate destructors lazily.
	(check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
	TYPE_HAS_DESTRUCTOR.
	(check_bases_and_members): Call check_methods before
	check_field_decls.
	(check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
	TYPE_HAS_DESTRUCTOR.
	(finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
	* cp-tree.def (PSEUDO_DTOR_EXPR): Document.
	* cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
	(lang_type_class): Add lazy_destructor.
	(CLASSTYPE_LAZY_DESTRUCTOR): New macro.
	(CLASSTYPE_DESTRUCTORS): Robustify.
	(TYPE_HAS_DESTRUCTOR): Remove.
	(check_for_override): Declare.
	(build_vbase_delete): Remove.
	* cvt.c (convert_to_void): Issue errors about pseudo-destructor
	expressions.
	* decl.c (cxx_maybe_build_cleanup): Remove dead code.
	* except.c (dtor_nothrow): Lazily create destructors if necessary.
	(build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
	* init.c (build_delete): Lazily create destructors, if necessary.
	(build_vbase_delete): Remove.
	* method.c (locate_dtor): Simplify.
	(implicitly_declare_fn): Add support for destructors.
	* parser.c (cp_parser_lookup_name): Lazily create destructors, if
	necessary.
	* pt.c (check_explicit_specialization): Don't use
	TYPE_HAS_DESTRUCTOR.
	(instantiate_class_template): Likewise.
	* ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
	* rtti.c (emit_support_tinfos): Robustify.
	* search.c (lookup_fnfields_1): Lazily create destructors.
	* typeck.c (build_class_member_access_expr): Remove
	PSEUDO_DTOR_EXPR handling.
	(lookup_destructor): Likewise.

2005-02-08  Kazu Hirata  <kazu@cs.umass.edu>

	* cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
	copyright.

2005-02-07  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
	on boolean variables.
	(cp_lexer_stop_debugging): Likewise.

2005-02-03  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/17401
	* parser.c (cp_parser_pure_specifier): Emit a specific error
	message with an invalid pure specifier.
	* decl2.c (grok_function_init): Remove.
	(grokfield): An initializer for a method is a always a pure
	specifier.

2005-02-02  Matt Austern  <austern@apple.com>

	PR c++/19628
	* cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
	* parser.c (cp_parser_postfix_expression): Accept function call in
	constant expression if builtin_valid_in_constant_expr_p is true
	for that function.
	* pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
	* semantics.c (finish_id_expression): Accept function call in constant
	expression if builtin_valid_in_constant_expr_p is true for that
	function.
	* tree.c (builtin_valid_in_constant_expr_p): New.

2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/17413
	* pt.c (check_instantiated_args): Improve error message.
	Fix logic when to print its second part.

2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* cp-tree.h (complete_type_or_else): Remove macro.
	(complete_type_or_diagnostic): Rename to complete_type_or_else
	and remove last argument.
	* typeck.c (complete_type_or_diagnostic): Rename to
	complete_type_or_else and remove last argument.

2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* cp-tree.h (commonparms): Remove prototype.
	(convert_arguments): Likewise.
	(PFN_FROM_PTRMEMFUNC): Remove.
	* typeck.c (commonparms): Make static.
	(convert_arguments): Add prototype. Make static.
	(PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.

2005-01-31  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (cp_parser_primary_expression): Don't complain about
	floating-point literals in integral constant expressions when
	!pedantic.

2005-02-01  Alexandre Oliva  <aoliva@redhat.com>

	* parser.c (cp_parser_template_id): Revert comment patch too.

	PR c++/18757
	PR c++/19366
	PR c++/19499
	* parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
	Issue an error when creating the template id.
	* pt.c (fn_type_unification): Return early if the explicit
	template arg list is an error_mark_node.

2005-01-31  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (build_enumerator): Do not issue duplicate error messages
	about invalid enumeration constants.
	* parser.c (cp_parser_non_integral_constant_expression): Always
	set parser->non_integral_constant_expression_p.
	(cp_parser_primary_expression): Add cast_p parameter.  Issue
	errors about invalid uses of floating-point literals in
	cast-expressions.
	(cp_parser_postfix_expression): Add cast_p parameter.
	(cp_parser_open_square_expression): Pass it.
	(cp_parser_parenthesized_expression_list): Add cast_p parameter.
	(cp_parser_unary_expression): Likewise.
	(cp_parser_new_placement): Pass it.
	(cp_parser_direct_new_declarator): Likewise.
	(cp_parser_new_initializer): Likewise.
	(cp_parser_cast_expression): Add cast_p parameter.
	(cp_parser_binary_expression): Likewise.
	(cp_parser_question_colon_clause): Likewise.
	(cp_parser_assignment_expression): Likewise.
	(cp_parser_expression): Likewise.
	(cp_parser_constant_expression): If an integral constant
	expression is invalid, return error_mark_node.
	(cp_parser_expression_statement): Pass cast_p.
	(cp_parser_condition): Likewise.
	(cp_parser_iteration_statement): Likewise.
	(cp_parser_jump_statement): Likewise.
	(cp_parser_mem_initializer): Likewise.
	(cp_parser_template_argument): Likewise.
	(cp_parser_parameter_declaration): Likewise.
	(cp_parser_initializer): Likewise.
	(cp_parser_throw_expression): Likewise.
	(cp_parser_attribute_list): Likewise.
	(cp_parser_simple_cast_expression): Likewise.
	(cp_parser_functional_cast): Likewise.
	(cp_parser_late_parsing_default_args): Likewise.
	(cp_parser_sizeof_operand): Save/restore
	non_integral_constant_expression_p.

2005-01-31  Mike Stump  <mrs@apple.com>

	* parser.c (cp_lexer_new_main): Get the first token, first, before
	doing anything.

2005-01-31  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (start_decl): Add missing parentheses.

2005-01-30  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19555
	* cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
	* decl.c (duplicate_decls): Do not discard
	DECL_IMPLICIT_INSTANTIATION when merging declarations.
	(start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
	variables that do not have DECL_USE_TEMPLATE.

	PR c++/19395
	* decl.c (grokdeclarator): Refactor code so that qualified names
	are never allowed as the declarator in a typedef.

	PR c++/19367
	* name-lookup.c (do_nonmember_using_decl): Avoid overloading
	builtin declarations.

	PR c++/19457
	* call.c (convert_like_real): Inline call to
	dubious_conversion_warnings here.
	* cp-tree.h (dubious_conversion_warnings): Remove.
	* semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
	setting TREE_NEGATED_INT.
	* typeck.c (dubious_conversion_warnings): Remove.

	PR c++/19349
	* name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
	memory.

2005-01-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19253
	* parser.c (cp_parser_diagnose_invalid_type_name): Commit to
	tentative parses.

	PR c++/19667
	* pt.c (redeclare_class_template): Robustify.

2005-01-27  Steven Bosscher  <stevenb@suse.de>

	* decl.c (finish_case_label): Use SWITCH_STMT accessor macros
	instead of SWITCH_EXPR ones.
	* pt.c (tsubst_expr): Likewise.
	* semantics.c (begin_switch_stmt, finish_switch_cond,
	finish_switch_stmt): Likewise.

2005-01-26  J"orn Rennecke <joern.rennecke@st.com>

	PR c++/18370
	* parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.

2005-01-25  Andrew Pinski  <pinskia@physics.uc.edu>

	* class.c (abort_fndecl_addr): New variable.
	(build_vtbl_initializer): If we have a pure virtual function
	share the abort function's address.
	Include gt-cp-class.h at the end.
	* config-lang.in (gtfiles): Add cp/class.c.

2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
	(pp_cxx_function_definition): Make static.
	* cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
	(pp_cxx_function_definition): Likewise.

2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* name-lookup.c (print_binding_level): Make static.
	(constructor_name_full): Make static inline.
	(current_decl_namespace): Make static.
	* name-lookup.h (constructor_name_full): Remove prototype.
	(print_binding_level): Likewise.
	(current_decl_namespace): Likewise.

2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* decl.h (debug_bindings_indentation): Remove.

2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* typeck.c: Fix a comment typo.

2005-01-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/19208
	* pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
	at least once.
	(tsubst): Use fold_decl_constant_value in place of a bare call to
	integral_constant_value.

2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>

	* typeck.c (more_qualified_p): Remove.
	* cp-tree.h: Remove the corresponding prototype.

2005-01-19  Matt Austern  <austern@apple.com>

	* typeck.c (comptypes): Handle return code from objc_comptypes
	correctly.

2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.h, name-lookup.h: Remove unused prototypes.

2005-01-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/19375
	* semantics.c (finish_id_expression): Disable access checking for
	already lookuped FIELD_DECL.

2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* decl.c (delete_block): Remove.
	* cp-tree.h: Remove the corresponding prototype.

	* decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
	walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
	Remove.
	* cp-tree.h: Remove the corresponding prototypes.

	* tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
	cp_update_decl_after_saving, name_p): Remove.
	* cp-tree.h: Remove the corresponding prototypes.

2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/19472
	* semantics.c (finish_asm_stmt): Strip nops off
	input memory operands.

2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
	typeck2.c: Update copyright.

2005-01-16  Kazu Hirata  <kazu@cs.umass.edu>

	* class.c (get_enclosing_class): Remove.
	* cp-tree.h: Remove the corresponding prototypes.

	* cvt.c (convert_lvalue): Remove.
	* cp-tree.h: Remove the corresponding prototype.

	* pt.c (tinst_for_decl): Remove.
	* cp-tree.h: Remove the corresponding prototypes.

	* tree.c (hash_chainon): Remove.
	* cp-tree.h: Remove the corresponding prototypes.

2005-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/19263
	* typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
	of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.

2005-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Make-lang.in (cp-warn): Don't append $(WERROR).

2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.h: Fix a comment typo.

2005-01-07  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/19298
	* pt.c (tsubst_qualified_id): Call convert_from_reference.

2005-01-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19244
	* class.c (add_implicitly_declared_members): Remove dead code.
	* decl.c (grokfndecl): Add sfk parameter.  Use it do set
	DECL_CONSTRUCTOR_P.
	(grokdeclarator): Adjust calls to grokfndecl.
	* method.c (implicitly_declare_fn): Improve documentation.
	* parser.c (cp_parser_direct_declarator): Do not consider a
	function to be a constructor if the containing class was
	originally anonymous.

2005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/17154
	* search.c (lookup_field_1): Handle using declaration in
	class template partial specialization.

2005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/19258
	* pt.c (push_access_scope): Handle friend defined in class.
	(pop_access_scope): Likewise.

2005-01-06  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/19270
	* pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
	(tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
	array-new handling code.  Use build_x_binary_op.

2005-01-05  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/19030
	* cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
	* name-lookup.h (push_scope): Return pushed scope, not flag.
	* name-lookup.c (push_scope): Return scope that should be popped,
	not a flag.
	* decl.c (start_decl): Adjust.
	(grokfndecl): Adjust scope push and pop.
	* decl2.c (check_classfn): Likewise.
	* parser.c (cp_parser_condition, cp_parser_conversion_function_id,
	cp_parser_init_declarator, cp_parser_direct_declarator,
	cp_parser_class_specifier, cp_parser_class_head,
	cp_parser_lookup_name,
	cp_parser_constructor_declarator_p): Likewise.
	* pt.c (instantiate_class_template,
	resolve_typename_type): Likewise.

2005-01-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/14136
	* parser.c (cp_parser_unqualified_id): Do not issue error message
	for typedef-name as destructor declarator when performing an
	uncommitted tentative parse.

2005-01-01  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/17544
	* decl.c (finish_function): Fix comment.  Annotate the compiler
	generated return with the current file name and line 0.


Copyright (C) 2005 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
