2006-12-04  Geoffrey Keating  <geoffk@apple.com>

	Radar 4311680
	* decl2.c (determine_visibility): Don't set
	DECL_VISIBILITY_SPECIFIED for -fvisibility-inlines-hidden.

2006-03-01  Mike Stump  <mrs@apple.com>

	PR darwin/25908
	* decl2.c (import_export_decl): Fix ABI breakage on darwin.

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-07-02  Kazu Hirata  <kazu@codesourcery.com>

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

2006-07-20  Mike Stump  <mrs@apple.com>

	Radar 4634676
	* decl2.c (determine_visibility_from_class): Don't use hidden
	visibility for explicit instantiations.

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-12-02  Mark Mitchell  <mark@codesourcery.com>

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

2006-02-24  Geoffrey Keating  <geoffk@apple.com>

	Radar 4086777
	* except.c (expand_start_catch_block): Handle
	flag_use_cxa_get_exception_ptr.

2006-01-21  Mark Mitchell  <mark@codesourcery.com>

	PR c++/25895
	* class.c (build_base_path): Generate a NOP_EXPR instead of a
	COMPONENT_REF if the base and derived classes are at the same
	address.

	PR c++/25856
	* decl.c (begin_destructor_body): Robustify.

	PR c++/25858
	* parser.c (cp_parser_direct_declarator): Robustify.

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-19  Mark Mitchell  <mark@codesourcery.com>

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

2006-01-17  Eric Christopher  <echristo@apple.com>

        * call.c (convert_like_real): When issuing conversion
        warnings, depend on warn_conversion.
        * cvt.c (build_expr_type_conversion): Ditto.

2006-01-04  Chris Lattner  <clattner@apple.com>

        * typeck2.c (split_nonconstant_init_1):  Set TREE_CONSTANT to true.

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

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

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-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-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-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-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-07-07  Release Manager

	* GCC 4.0.1 released.

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

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

	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): Change synthesize error to warning
	for previous patch.

	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.

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

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

	PR c++/20350
	* decl.c (duplicate_decls): Copy all of DECL_USE_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-28  Mark Mitchell  <mark@codesourcery.com>

	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  Nathan Sidwell  <nathan@codesourcery.com>

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

	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  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

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

2005-05-20  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-05-19  Jakub Jelinek  <jakub@redhat.com>

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

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

	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-05-05  Mark Mitchell  <mark@codesourcery.com>

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

2005-05-01  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  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-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-20  Release Manager

	* GCC 4.0.0 released.

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-14  Dale Johannesen  <dalej@apple.com>

	* tree.c (cp_tree_equal):  Handle SSA_NAME.

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.

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

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

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

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

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

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-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-22  Paolo Carlini  <pcarlini@suse.de>

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

2005-03-22  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-21  Paolo Carlini  <pcarlini@suse.de>

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

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-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): Reference_exprs can be dependent.

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

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

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-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
	* init.c (build_vec_init): When determining whether or not the
	element type has an asignment operator, look through all array
	dimensions.

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-06  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  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-aaachen.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.

2004-12-31  Richard Henderson  <rth@redhat.com>

	PR middle-end/17799
	* call.c (make_temporary_var_for_ref_to_temp): Set DECL_IGNORED_P.
	* class.c (build_vtable): Don't conditionallize setting it
	based on DWARF2_DEBUG.
	(layout_class_type): Set DECL_IGNORED_P.
	* decl2.c (get_guard): Likewise.
	* rtti.c (get_tinfo_decl, build_lang_decl): Likewise.
	* tree.c (build_local_temp): Likewise.

2004-12-30  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (cp_declarator): Split "name" field into
	qualifying_scope and unqualified_name.
	* decl.c (get_scope_of_declarator): Adjust accordingly.
	(grokdeclarator): Likewise.
	* decl2.c (grokfield): Likewise, and adjust call to
	do_class_using_decl.
	* name-lookup.c (do_class_using_decl): Split "decl" into
	"scope" and "name".  Remove unnecessary code.
	* name-lookup.h (do_class_using_decl): Adjust declaration.
	* parser.c (make_id_declarator): Split "id" into qualifying_scope
	and unqualified_name.
	(cp_parser_using_declaration): Adjust call to do_class_using_decl.
	(cp_parser_direct_declarator): Adjust to handle the fact that
	cp_parser_declarator_id no longer returns a SCOPE_REF.
	(cp_parser_direct_declarator): Likewise.
	(cp_parser_declarator_id): Do not create a SCOPE_REF for qualified
	names.
	(cp_parser_member_declaration): Adjust call to make_id_declarator.
	(cp_parser_check_declarator_template_parameters): Do not expect a
	SCOPE_REF.

	* decl.c (duplicate_decls): Call ggc_free on declarations we will
	not be needing any longer.

	PR c++/19190
	* cvt.c (convert_to_void): Do not use STRIP_NOPs.

2004-12-28  Richard Henderson  <rth@redhat.com>

	PR inline-asm/15740
	* semantics.c (finish_asm_stmt): Resolve asm names.  Validate input
	constraints.  Mark memory inputs addressable.

2004-12-27  Jason Merrill  <jason@redhat.com>

	* decl.c (expand_static_init): Don't use shortcut if
	targetm.relaxed_ordering.

2004-12-27  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19149
	* decl.c (check_tag_decl): Robustify.

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

	PR c++/17595
	* parser.c (cp_parser_error): Issue better messages about
	#pragma in locations where it is not permitted.

	PR c++/17413
	* pt.c (check_instantiated_args): Remove bogus SFINAE code.

	* cvt.c (convert_to_void): Fix typo in comment.

2004-12-23  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/18962
	* pt.c (check_explicit_specialization): Use the argument list from
	the definition in a template function specialization definition.

2004-12-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/18733
	* pt.c (check_explicit_specialization): Use special logic to validate
	befriended specializations.

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

	* rtti.c (emit_support_tinfos): Avoid using C99 semantics.

	PR c++/18464
	* call.c (build_this): In templates, do not bother with
	build_unary_op.
	* typeck.c (unary_complex_lvalue): In a template, always refuse
	simplifications.

	PR c++/18492
	* cp-gimplify.c (cp_genericize): Relax assertion.

	PR c++/11224
	* cvt.c (convert_to_void): Warn about unused values.

	PR c++/18257
	* rtti.c (emit_support_tinfos): On systems without weak symbols,
	emit the runtime library type-info objects as non-COMDAT.

2004-12-21  Mark Mitchell  <mark@codesourcery.com>

	PR c++/18378
	* call.c (convert_like_real): Do not permit the use of a copy
	constructor to copy a packed field.

	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.

	PR c++/19034
	* tree.c (cp_tree_equal): Handle OVERLOAD.

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

	* decl.c (define_label): Use POP_TIMEVAR_AND_RETURN.
	* name-lookup.c (pushdecl_class_level): Likewise.

2004-12-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* name-lookup.c (pushtag): Add missing POP_TIMEVAR_AND_RETURN.

2004-12-21  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/18984
	* cp-gimplify.c (cp_genericize_r): Don't insert first but instead
	check to see if contains the pointer.  Insert the statement before
	returning.

2004-12-21  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/14075
	* decl.c (check_initializer): Check string initializer of array is
	not parenthesized.
	* cp-tree.h (PAREN_STRING_LITERAL_P): New.
	* semantics.c (finish_parenthesized_expr): Mark a STRING_CST.
	* error.c (dump_expr): <STRING_CST case> Add parens, if needed.

	* cp-tree.def (TEMPLATE_TYPE_PARM,
	BOUND_TEMPLATE_TEMPLATE_PARM, TYPE_OF_TYPE, TYPENAME_TYPE): Reorder
	for better code efficiency.
	* cp-tree.h (CLASS_TYPE_P): Short circuit IS_AGGR_TYPE check.
	(CAN_HAVE_FULL_LANG_DECL_P): Reorder for better optimization.
	(INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P,
	INTEGRAL_OR_ENUMERATION_TYPE_P, SCALAR_TYPE_P,
	CP_AGGREGATE_TYPE_P, TYPE_PTROB_P, TYPE_REF_OBJ_P,
	TYPE_PTROBV_P): Likewise.

	PR c++/18975
	* method.c (do_build_copy_constructor): Refactor. Don't const
	qualify a mutable field.
	(do_build_assign_ref): Likewise.

2004-12-20  Matt Austern <austern@apple.com>

	PR c++/19044
	* decl.c (make_rtl_for_nonlocal_decl): Use
	set_builtin_user_assembler_name.

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

	* cp-tree.h (note_decl_for_pch): New function.
	* class.c (build_clone): Call note_decl_for_pch.
	* semantics.c (finish_member_declaration): Likewise.
	(note_decl_for_pch): New function.

2004-12-17  Steven Bosscher  <stevenb@suse.de>

	* init.c (build_zero_init): max_index is the number of
	elements, minus 1.

2004-12-17  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18721
	* class.c (add_method): Do not push conversion operators into a
	binding level.

	* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE_TYPE): Reformat.
	* error.c (dump_decl): <TYPE_DECL case> Remove extraneous braces.

2004-12-16  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18905
	* cp-tree.h (integral_constant_value): Declare.
	* call.c (null_ptr_cst_p): Use integral_constant_value, not
	decl_constant_value.
	(convert_like_real): Likewise.
	* class.c (check_bitfield_decl): Likewise.
	* cvt.c (ocp_convert): Likewise.
	(convert): Remove unnecessary decl_constant_value call.
	* decl.c (compute_array_index_type): Use integral_constant_value,
	not decl_constant_value.
	(build_enumerator): Likewise.
	* decl2.c (grokfield): Likewise.
	* init.c (decl_constant_value): Simplify.
	(integral_constant_value): New.
	* pt.c (fold_decl_constant_value): Use integral_constant_value,
	remove subsequent check.
	(tsubst): Use integral_constant_value, not decl_constant_value.
	(tsubst_copy, unify): Likewise.
	* typeck.c (decay_conversion): Likewise.
	(build_compound_expr): Remove unnecessary decl_constant_value
	calls.
	(build_static_cast_1, build_reinterpret_cast_1):
	(convert_for_assignment): Remove comment about not calling
	decl_constant_value.

2004-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/18825
	* pt.c (instantiate_class_template): Set input_location for
	friend function.
	(tsubst_friend_function): Don't set input_location here.
	Make sure the context is complete if necessary.

2004-12-15  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18981
	* parser.c (cp_parser_lookup_name): Remove unneeded TYPENAME_TYPE
	flag setting.

2004-12-14  Mark Mitchell  <mark@codesourcery.com>

	PR c++/18738
	* decl.c (make_typename_type): Do not handle namespace-scoped
	names here.
	(tag_name): Handle typename_type.
	(check_elaborated_type_specifier): Handle typenames.
	* parser.c (cp_parser_diagnose_invalid_type_name): Improve
	comment.
	(cp_parser_elaborated_type_specifier): Use
	cp_parser_diagnose_invalid_type_name.

2004-12-14  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/18965
	* init.c (build_zero_init): If the max_index is 0, there is no
	need to create a RANGE_EXPR.

2004-12-14  Mark Mitchell  <mark@codesourcery.com>

	PR c++/18793
	* cp-objcp-common.c (cp_expr_size): Loosen assertion.

2004-12-14  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18949
	* pt.c (tsubst_copy_and_build): <INDIRECT_REF case> Check that a
	REFERENCE_REF_P is dereferencing a reference type.
	* typeck.c (build_static_cast): Convert from reference even in a
	template.
	(build_reinterpret_cast, build_const_cast, build_c_cast): Likewise.

2004-12-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* parser.c (cp_parser_uncommitted_to_tentative_parse_p): New function.
	(cp_parser_name_lookup_error): Use it.
	(cp_parser_check_for_invalid_template_id): Likewise.
	(cp_parser_skip_to_closing_parenthesis): Likewise.
	(cp_parser_nested_name_specifier_opt): Likewise.
	(cp_parser_simple_declaration, cp_parser_template_id): Likewise.
	(cp_parser_parameter_declaration_list): Likewise.
	(cp_parser_parameter_declaration): Likewise.
	(cp_parser_template_name): Let cp_parser_simulate_error perform
	the checking.
	(cp_parser_committed_to_tentative_parse): Remove.

2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/18968
	* class.c (build_base_path): Convert the zero constant to the correct
	type when comparing.

2004-12-13  Mark Mitchell  <mark@codesourcery.com>

	PR c++/18925
	* class.c (layout_class_type): Determine the visibility of static
	data members.

2004-12-12  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/12454
	* cp-gimplify.c (gimplify_if_stmt): Optimize the case where the
	condition is a constant and the unexecuted clause is empty.

2004-12-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/18731
	* parser.c (cp_parser_class_head): Reject typedef-name in class head.

2004-12-09  Matt Austern  <austern@apple.com>

	PR c++/18514
	* name-lookup.c (do_nonmember_using_decl): A real function
	declaration takes precedence over an anticipated declaration.

2004-12-09  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* parser.c (cp_parser_member_declaration): Fix comment typo.

2004-12-09  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/18757
	* parser.c (cp_parser_template_id): Don't create a CPP_TEMPLATE_ID
	if parsing failed.

2004-12-09  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/18073
	* typeck.c (build_reinterpret_cast_1): Allow cast from vector type.

2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/16681
	* init.c (build_zero_init): Build a RANGE_EXPR for an array
	initializer.

2004-12-08  Kelley Cook  <kcook@gcc.gnu.org>

	* typeck.c: Remove DOS line endings.

2004-12-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/18100
	* decl.c (lookup_and_check_tag): Diagnose nested class with
	the same name as enclosing class.

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

	PR c++/18803
	* cp-tree.h (REFERENCE_REF_P): New.
	(CPTI_TYPE_INFO_TYPE): Rename to ...
	(CPTI_CONST_TYPE_INFO_TYPE): ... here.
	(CPTI_TYPE_INFO_REF_TYPE): Remove.
	(type_info_type_node): Rename to ...
	(const_type_info_type_node): ... here.
	(type_info_ref_type): Remove.
	* call.c (build_user_type_conversion): Reformat.
	(resolve_args): Do not convert_from_reference.
	(build_object_call): Call convert_from_reference.
	(prep_operand): Do not convert_from_reference.
	(build_new_method_call): Likewise.
	* class.c (build_vfield_ref): Likewise.
	* cvt.c (convert_to_reference): Likewise.
	(convert_from_reference): Build INDIRECT_REF here, not with
	build_indirect_ref.
	(convert_force): Do not convert_from_reference.
	(build_expr_type_conversion): Likewise.
	* decl.c (grok_reference_init): Likewise.
	* decl2.c (delete_sanity): Likewise.
	* except.c (initialize_handler_parm): Use POINTER_TYPE_P.
	* init.c (build_dtor_call): Do not convert_from_reference.
	* parser.c (cp_parser_template_argument): Unwrap indirected
	reference. Allow TEMPLATE_PARM_INDEX as an object parm.
	* pt.c (tsubst_copy_and_build) <case INDIRECT_REF>: Use
	convert_from_reference, if indicated.
	<case CALL_EXPR>: Do not convert_from_reference.
	<case PARM_DECL, VAR_DECL>: Convert_from_reference if needed.
	(tsubst_initializer_list): Do not convert_from_reference.
	* rtti.c (init_rtti_processing): Adjust node creation.
	(throw_bad_typeid): Use const_type_info_type_node.
	Do not convert_from_reference.
	(typeid_ok_p): Use const_type_info_type_node.
	(build_typeid, get_typeid): Always return type_info typed node.
	(build_dynamic_cast_1): Dont convert_from_reference. Refactor.
	* semantics.c (finish_stmt_expr_expr): Do not
	convert_from_reference.
	(finish_id_expression): Convert_from_reference as appropriate.
	* typeck.c (decay_conversion): Do not convert_from_reference.
	(finish_class_member_access_expr): Likewise.
	(build_indirect_ref): Use POINTER_TYPE_P.
	(convert_arguments): Do not convert_from_reference.
	(build_modify_expr): Likewise.
	(convert_for_initialization): Likewise.
	* typeck2.c (build_x_arrow): Likewise.

2004-12-07  Ziemowit Laski  <zlaski@apple.com>

	* cp-tree.h (struct lang_type_class): Rename 'objc_protocols'
	field to 'objc_info'.

2004-12-07  Kazu Hirata  <kazu@cs.umass.edu>

	* pt.c: Replace a use of first_rtl_op with TREE_CODE_LENGTH.

2004-12-07  Roger Sayle  <roger@eyesopen.com>

	* name-lookup.c (leave_scope): We only need to update
	class_binding_level when leaving a class scope.

2004-12-06  Ziemowit Laski  <zlaski@apple.com>

	* cp-tree.h (struct lang_type_class): Add 'objc_protocols' field.

2004-12-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/17011, c++/17971
	* pt.c (tsubst_copy) <FIELD_DECL case>: Check and diagnose
	invalid field.
	(tsubst_copy_and_build) <COMPONENT_REF case>: Check
	error_mark_node after member substitution.
	* semantics.c (finish_id_expression): Call
	finish_non_static_data_member for non-dependent FIELD_DECL.

2004-12-03  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18782
	* decl.c (grokdeclarator): Make sure class in pointer to member is
	not a namespace.

2004-12-02  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18318
	* parser.c (cp_parser_new_type_id): Move array size expression
	checks from here ...
	* init.c (build_new): ... to here.

2004-12-02  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18758
	* parser.c (cp_parser_class_head): Return NULL_TREE when
	push_template_decl fails.  Update comment.

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

	PR c++/15664, c++/18276
	* pt.c (tsubst_decl) <TEMPLATE_DECL case>: Reorganize.  Correctly
	tsubst TEMPLATE_DECL that is a TEMPLATE_TEMPLATE_PARM.

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

	PR c++/18123
	* parser.c (cp_parser_type_specifier): Catch template declaration
	of enum.

2004-12-01  Matt Austern  <austern@apple.com>

	* name-lookup.c (namespace_binding): Omit alias check for global
	namespace.

2004-12-01  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18729
	* parser.c (cp_parser_class_name): Check decl's type is not
	error_mark_node.

	PR c++/17431
	* call.c (standard_conversion): Add FLAGS parameter. Do not allow
	derived to base conversion when checking constructor
	accessibility.
	(implicit_conversion): Pass FLAGS to standard_conversion.
	(check_constructir_callable): Disallow conversion functions.

2004-11-30  Kazu Hirata  <kazu@cs.umass.edu>

	* parser.c: Fix comment typos.

2004-11-27  Mark Mitchell  <mark@codesourcery.com>

	PR c++/18368
	* parser.c (cp_parser_check_for_definition_in_return_type): Take
	the defined type as a parameter, and inform the user about the
	possibility of a missing semicolon.
	(cp_parser_explicit_instantiation): Adjust call to
	cp_parser_check_for_definition_in_return_type.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_member_declaration): Likewise.

	PR c++/18674
	* cp-tree.def (TYPENAME_TYPE): Remove discussion of implicit
	typename from comments.
	* cp-tree.h (TYPENAME_IS_ENUM_P): New macro.
	(TYPENAME_IS_CLASS_P): Likewise.
	(make_typename_type): Change prototype.
	* decl.c (struct_typename_info): New type.
	(typename_compare): Expect the second argument to be a
	typename_info, not a tree.
	(build_typename_type): Add tag_type parameter.  Do not create a
	new type until necessary.
	(make_typename_type): Add tag_type parameter.
	* error.c (TYPENAME_TYPE): Print tags other than "typename" if
	appropriate.
	* friend.c (make_friend_class): Adjust call to make_typename_type.
	* parser.c (cp_parser_make_typename_type): Likewise.
	(cp_parser_primary_expression): Adjust call to
	cp_parser_lookup_name.
	(cp_parser_unqualified_id): Adjust calls to cp_parser_class_name.
	(cp_parser_class_or_namespace_name): Likewise.
	(cp_parser_postfix_expression): Adjust calls to
	make_typename_type.
	(cp_parser_mem_initializer_id): Adjust calls to
	cp_parser_class_name.
	(cp_parser_type_parameter): Adjust calls to cp_parser_lookup_name.
	(cp_parser_template_name): Likewise.
	(cp_parser_template_argument): Likewise.
	(cp_parser_type_name): Adjust call to cp_parser_class_name.
	(cp_parser_elaborated_type_specifier): Adjust calls to
	make_typename_type and cp_parser_lookup_name.
	(cp_parser_namespace_name): Likewise.
	(cp_parser_class_name): Replace type_p parameter with tag_type.
	Adjust calls to make_typename_type and cp_parser_lookup_name.
	(cp_parser_class_head): Adjust calls to cp_parser_class_name.
	(cp_parser_base_specifier): Likewise.
	(cp_parser_lookup_name): Replace is_type parameter with tag_type.
	Adjust calls to make_typename_type and lookup_qualified_name.
	(cp_parser_lookup_name_simple): Adjust call to
	cp_parser_lookup_name.
	(cp_parser_constructor_declarator_p): Adjust call to
	cp_parser_class_name.
	* pt.c (convert_template_argument): Adjust all to
	make_typename_type.
	(tsubst_decl): Do not pre-substitute the type of the declaration.
	(tsubst): Hand off declarations more quickly.  Adjust call to
	make_typename_type.

	PR c++/18512
	* parser.c (cp_parser_postfix_dot_deref_expression): Robustify.

2004-11-29  Daniel Jacobowitz  <dan@codesourcery.com>

	PR c/7544
	* Make-lang.in (cp/decl2.o): Update dependencies.
	* decl2.c (finish_file): Call maybe_apply_pending_pragma_weaks.

2004-11-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/18652
	* name-lookup.c (pushtag): Change return type to tree.
	* cp-tree.h (pushtag): Adjust declaration.
	* decl.c (xref_tag, start_enum): Use return value of pushtag.
	* pt.c (push_template_decl_real): Return immediately if
	pushdecl_namespace_level returns error_mark_node.

2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>

	* pt.c: Fix a comment typo.

2004-11-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	Friend class name lookup 4/n
	* class.c (pushclass): Don't call cxx_remember_type_decls.
	* cp-tree.h (clear_anon_tags): Remove declaration.
	* decl.c (grokdeclarator): Don't call lookup_tag_reverse.
	* name-lookup.c (binding_entry_free, binding_table_free): Comment
	out functions.
	(binding_table_find_anon_type, binding_table_reverse_maybe_remap,
	binding_table_remove_anonymous_types, cxx_remember_type_decls,
	bt_print_entry, clear_anon_tags, follow_tag_typedef, lookup_tag,
	lookup_tag_reverse): Remove
	(begin_scope, leave_scope, kept_level_p, print_binding_level):
	Don't use type_decls field in cp_binding_level.
	(maybe_process_template_type_declaration, pushtag): Set
	CLASSTYPE_NESTED_UTDS directly.
	* name-lookup.h (binding_table_remove_anonymous_types,
	cxx_remember_type_decls, lookup_tag, lookup_tag_reverse): Remove
	declaration.
	(cp_binding_level): Remove type_decls field.

2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>

	* typeck.c: Fix a comment typo.

2004-11-25  Mark Mitchell  <mark@codesourcery.com>

	PR c++/18445
	* class.c (instantiate_type): Treat NON_DEPENDENT_EXPRs with
	unknown_type as non matching.  Tidy up.
	* pt.c (build_non_dependent_expr): Do not build a
	NON_DEPENDENT_EXPR for a VAR_DECL.

	PR c++/18001
	* cp-tree.h (lvalue_or_else): Remove declaration.
	* tree.c (lvalue_or_else): Remove.
	* typeck.c (build_unary_op): Adjust call to lvalue_or_else.
	(build_modify_expr): Likewise.

	PR c++/18625
	* decl.c (duplicate_decls): Return error_mark_node on error, as
	specified.

	PR c++/18466
	* decl.c (grokvardecl): Keep track of whether or not a there was
	explicit qualification.
	* name-lookup.c (set_decl_namespace): Complain about explicit
	qualification of a name within its own namespace.

	PR c++/18545
	* typeck.c (check_return_expr): Robustify.

2004-11-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	Friend class name lookup 3/n, PR c++/3332
	* name-lookup.c (push_inner_scope, pop_inner_scope): New functions.
	(lookup_type_scope): Don't deal with name from user declaration
	specially.
	* name-lookup.h (push_inner_scope, pop_inner_scope): Add declarations.
	* parser.c (cp_parser_class_specifier): Use push_inner_scope and
	pop_inner_scope.

2004-11-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	Friend class name lookup 2/n, PR c++/14513, c++/15410
	* name-lookup.c (lookup_name_real): Simplify.
	(lookup_type_scope): Add SCOPE parameter.  Handle friend class
	lookup.
	* name-lookup.h (tag_scope): New enum type.
	(lookup_type_scope): Adjust declaration.
	* decl.c (lookup_and_check_tag, xref_tag, xref_tag_from_type):
	Change bool parameter GLOBALIZED to TAG_SCOPE parameter SCOPE.
	(start_enum): Likewise.  Add assertion test that NAME is
	IDENTIFIER_NODE.  Use anonymous name for dummy ENUMERAL_TYPE in
	case of error.
	* cp-tree.h (xref_tag, xref_tag_from_type): Adjust declarations.
	* parser.c (cp_parser_elaborated_type_specifier,
	cp_parser_class_head): Adjust call to xref_tag.
	* pt.c (lookup_template_class, instantiate_class_template):
	Likewise.
	* rtti.c (init_rtti_processing, build_dynamic_cast_1,
	tinfo_base_init, emit_support_tinfos): Likewise.

2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>

	* g++spec.c, lex.c: Avoid ` as left quote in diagnostics.

2004-11-24  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17473
	* name-lookup.c (supplement_binding): Do not allow typedefs to be
	redefined in class scope.

	PR c++/18285
	* parser.c (cp_parser_set_decl_type_spec): Do not try to allow
	redefinitions of builtin types other that "bool" or "wchar_t".

2004-11-24  Steven Bosscher  <stevenb@suse.de>

	* decl.c (cxx_init_decl_processing): Don't clear
	flag_inline_functions.

2004-11-24  Mark Mitchell  <mark@codesourcery.com>

	* pt.c (tsubst_function_type): Do not permit function types which
	return arrays or functions.

	PR c++/18586
	* parser.c (cp_parser_init_declarator): Do not pop scope twice.

	PR c++/18530
	* cp-tree.h (CTOR_NAME): Remove.
	(DTOR_NAME): Remove.
	* decl.c (initialize_predefined_identifiers): Add spaces to the
	end of constructor and destructor names.

2004-11-24  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/8929
	* decl.c (start_decl): Check for invalid specialization headers.

2004-11-24  Paolo Bonzini  <bonzini@gnu.org>

	PR c++/16882

	* call.c (standard_conversion): Move check for conversions between
	vector pointers...
	* typeck.c (ptr_reasonably_similar): ... here.

2004-11-23  Ben Elliston  <bje@au.ibm.com>

	* cp-tree.h (context_as_string): Remove extern.
	* error.c (context_as_string): Remove.

	* cp-tree.h (cp_type_qual_from_rid): Remove extern.
	* lex.c (cp_type_qual_from_rid): Remove.

	* cp-tree.h (do_poplevel): Remove extern.
	(check_multiple_declarators): Likewise.
	* semantics.c (do_poplevel): Make static.
	(check_multiple_declarators): Remove.

	* cp-tree.h (check_final_overrider): Remove extern.
	* search.c (check_final_overrider): Make static.

	* cp-tree.h (build_artificial_parm): Remove extern.
	* decl2.c (build_artificial_parm): Make static.

2004-11-22  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/18354
	* typeck.c (build_unary_op) <CONVERT_EXPR, NEGATE_EXPR>: Unify code.
	Make sure the result is always a rvalue.

2004-11-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* decl.c (start_preparsed_function): Call check_function_type even
	in templates.
	(require_complete_types_for_parms): Skip dependent types.
	(check_function_type): Likewise.

2004-11-16  Steven Bosscher  <stevenb@suse.de>

	* Make-lang.in (cp/decl.o, cp/search.o): Don't depend on stack.h.
	* search.c: Don't include it.

2004-11-15  Andrew Pinski  <pinskia@physics.uc.edu>

	* cp-gimplify.c: Include pointer-set.h
	(cp_genericize_r): Use pointer_sets instead of a hashtable.
	Also instert the new statement for CLEANUP_STMT.
	(cp_genericize): Use pointer_sets instead of a hashtable.
	* Make-lang.in (cp-gimplify.o): Depend on pointer-set.h.

2004-11-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	Friend class name lookup 1/n, PR c++/18471
	* decl.c (lookup_and_check_tag): New function.
	(xref_tag, start_enum): Use it.
	(check_elaborated_type_specifier): Move TEMPLATE_TYPE_PARM check
	before !DECL_IMPLICIT_TYPEDEF_P.  Also display previously declared
	location.
	* name-lookup.c (lookup_name_current_level): Rename to ...
	(lookup_name_innermost_nonclass_level): ... this.
	(lookup_type_scope): New function.
	* name-lookup.h (lookup_name_current_level): Rename to ...
	(lookup_name_innermost_nonclass_level): ... this.
	(lookup_type_scope): Add declaration.

2004-11-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/17344
	* pt.c (coerce_template_parms): Only emit error message about
	invalid template argument when TF_ERROR.

2004-11-12  Mark Mitchell  <mark@codesourcery.com>

	PR c++/18389
	* decl.c (start_decl): Make sure to set *pop_scope_p.  Return
	error_mark_node to indicate errors.

	PR c++/18429
	* parser.c (cp_parser_direct_declarator): Disallow non-constant
	array bounds when not inside a function.

	PR c++/18436
	* pt.c (tsubst_copy_and_build): Do not do Koenig lookup when an
	unqualified name resolves to a member function.

	PR c++/18407
	* pt.c (tsubst_copy_and_build): Handle qualified names used from a
	derived class correctly.

	* decl2.c (import_export_decl): Fix typo in comment.
	* tree.c (pod_type_p): Likewise.

2004-11-10  Andrew Pinski  <pinskia@physics.uc.edu>

	* typeck.c (cxx_mark_addressable): Add braces around the first if.

2004-11-10  Adam Nemet  <anemet@lnxw.com>

	PR middle-end/18160
	* typeck.c (cxx_mark_addressable): Issue an error if address of an
	explicit register variable is requested.

2004-11-10  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18143
	* cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK): New.
	(struct lang_decl_flags): Add thunk_p flag.
	(struct lang_decl): Remove separate fixed_offset. Place
	cloned_function and fixed_offset into union.
	(DECL_CLONED_FUNCTION_P, DECL_CLONED_FUNCTION): Adjust.
	(DECL_THUNK_P, SET_DECL_THUNK_P): Adjust.
	(THUNK_FIXED_OFFSET): Adjust.
	* method.c (make_thunk): Adjust.

2004-11-09  Mark Mitchell  <mark@codesourcery.com>

	PR c++/18369
	* init.c (build_new_1): Handle parenthesized type-ids that name an
	array type.  Tidy.

2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>

	* call.c, class.c, decl.c, decl2.c, error.c, mangle.c, parser.c,
	pt.c, search.c, semantics.c, typeck.c: Use %q, %< and %> for
	quoting in diagnostics.
	* parser.c (cp_parser_sizeof_operand): Use '' instead of `' for
	quoting in printf format.
	* decl.c (duplicate_decls, start_decl): Use %qD instead of
	unquoted %D.

2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>

	* class.c, decl.c, lex.c, name-lookup.c, parser.c, pt.c,
	search.c, typeck2.c: Fix comment formatting.

2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>

	PR tree-optimization/18184
	* cp-objcp-common.c (cxx_types_compatible_p): Do not treat pointers
	of different modes or alias-all flags as equivalent.
	* typeck.c (comptypes): Likewise.

2004-11-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	DR 49, 100
	* cp-tree.h (TYPE_REF_OBJ_P): New macro.
	(TYPE_PTR_P, TYPE_PTROB_P, TYPE_PTROBV_P, TYPE_PTRFN_P,
	TYPE_REFFN_P): Document.
	(fold_decl_constant_value): New prototype.
	* pt.c (convert_nontype_argument_function): Rewrite and extract
	parts into...
	(fold_decl_constant_value, convert_nontype_argument_function): New.
	(lookup_template_class): Add comment about useless double call.
	* mangle.c (write_expression): Strip conversions before lowering
	pointer to members.
	* cvt.c (ocp_convert): Check LOOKUP_COMPLAIN for a pedwarn. Disallow
	enum to enum conversion.

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

	PR c++/18124
	* parser.c (cp_parser_type_parameter): Robustify.

	PR c++/18155
	* parser.c (cp_parser_single_declaration): Disallow template
	typedefs.

	PR c++/18177
	* typeck.c (build_const_cast): Use error_operand_p.

2004-11-02  Ziemowit Laski  <zlaski@apple.com>

	* cp-lang.c (cxx_types_compatible_p): Remove prototype and definition.
	(LANG_HOOKS_TYPES_COMPATIBLE_P): Move to cp-objcp-common.h.
	* cp-objcp-common.c (cxx_types_compatible_p): Moved definition here
	from cp-lang.c.
	* cp-objcp-common.h (cxx_types_compatible_p): Moved prototype here
	from cp-lang.c.
	(LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from cp-lang.c.

2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18064
	* search.c (check_final_overrider): Deprecate gnu covariant extension.

2004-10-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert diagnostics to use quoting flag q 9/n
	* typeck.c (build_x_unary_op, convert_member_func_to_ptr,
	get_delta_difference):  Use new quotation style.
	* repo.c (reopen_repo_file_for_write): Likewise.
	* pt.c (do_type_instantiation): Likewise.
	* parser.c (cp_parser_diagnose_invalid_type_name):
	* name-lookup.c (push_overloaded_decl, set_decl_namespace):
	* error.c (cp_print_error_function,
	print_instantiation_full_context): Likewise.
	* decl.c (define_label, grok_reference_init,
	maybe_deduce_size_from_array_init, revert_static_member_fn):
	* decl2.c (check_classfn): Likewise.
	* class.c (add_method, check_field_decls, layout_class_type,
	resolve_address_of_overloaded_function): Likewise.
	* call.c (build_x_va_arg, build_over_call): Likewise.

2004-10-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert diagnostics to use quoting flag q 8/n
	* cvt.c (cp_convert_to_pointer, warn_ref_binding,
	convert_to_reference, ocp_convert, convert_to_void
	cp_convert_to_pointer): Use new quotation style.

2004-10-31  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15172
	* typeck2.c (store_init_value): Use split_nonconstant_init even
	for types that require construction.

1004-10-28  Matt Austern  <austern@apple.com>

	PR c++/17542
	* cp-tree.h (class_key_or_enum_as_string): Declare.
	* error.c (class_key_or_enum): Rename to class_key_or_enum_as_string
	and remove static qualifier.
	* decl.c (shadow_tag): Warn about ignored attributes in class/struct/
	union/enum declaration.

2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>

	* pt.c: Fix a comment typo.

2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck.c (composite_pointer_type): Remove comment about DR 195.
	(build_reinterpret_cast_1): Revert DR195 patch. Only emit a
	warning when being pedantic.
	(build_reinterpet_cast, build_c_cast): Adjust.

2004-10-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17695
	* decl.c (grokdeclarator): Mark TYPE_DECLs as abstract when they
	appear in a constructor/destructor that will be cloned.

1004-10-28  Matt Austern  <austern@apple.com>

	PR c++/14124
	* decl.c (finish_enum): Handle packed attribute.
	* parser.c (cp_parser_enum_specifier): Process trailing attributes.

2004-10-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17132
	* pt.c (instantiate_class_template): Increment
	processing_template_decl when substituting into a member class
	template.

2004-10-27  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17435
	* call.c (convert_like_real): Fix formatting.
	(initialize_reference): When binding a temporary to a base class,
	ensure that the nominal copy made is to the derived class, not the
	base class.

	PR c++/18140
	* parser.c (cp_parser_next_token_ends_template_argument_p): Do not
	include ">>".

2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>

	* decl.c (bad_specifiers): Move the q after the %.

2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>

	* parser.c (cp_parser_diagnose_invalid_type_name): Move the q after
	the %.

2004-10-26  Mark Mitchell  <mark@codesourcery.com>

	* name-lookup.c (do_namespace_alias): Use FROB_CONTEXT.
	* search.c (current_scope): Fix prototype.

	PR c++/18093
	* search.c (current_scope): Return the innermost non-block scope,
	not the innermost non-block, non-namespace scope.
	(at_namespace_scope_p): Adjust accordingly.
	(dfs_accessible_post): Do not pass namespaces to is_friend.
	(dfs_walk_once_accessible_r): Likewise.
	* decl.c (grokvardecl): Adjust call to current_scope.
	(build_enumerator): Likewise.
	* parser.c (cp_parser_using_declaration): Likewise.
	(cp_parser_direct_declarator): Use at_namespace_scope_p instead of
	current_scope.
	(cp_parser_class_head): Adjust call to current_scope.
	* name-lookup.c (do_namespace_alias): Set the DECL_CONTEXT for the
	alias.

	PR c++/18020
	* pt.c (tusbst_copy_and_build): Resolve enumeration constants to
	their underlying values.

	PR c++/18161
	* typeck.c (build_binary_op): Honor build_type, even when in a
	template.

2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>

	* parser.c (cp_lexer_get_preprocessor_token): Remove unneeded
	padding token checking.

2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/18121
	* decl.c (grokdeclarator) <case cdk_array>: Remove the call
	layout_type as it is already done by create_array_type_for_decl.

2004-10-22  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/18095
	* parser.c (eof_token): Make const, correctly initialize rid and
	location fields.
	(struct cp_lexer): Replace buffer_end pointer with buffer_length
	count. Adjust.
	(cp_lexer_new_main): Directly grow lexer's buffer here.  Don't
	zero it out.
	(cp_lexer_new_from_tokens): Adjust.
	(cp_lexer_grow_buffer): Remove.
	(cp_lexer_peek_nth_token, cp_lexer_consume_token,
	cp_lexer_purge_token): Add const casts.

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

	PR c++/18073
	PR c++/10841
	* cp-tree.h (convert_to_base): Change prototype.
	(build_ptrmemfunc): Likewise.
	(convert_ptrmem): New function.
	* call.c (struct conversion): Adjust documentation for base_p.
	(standard_conversion): Set base_p for ck_pmem conversions as
	appropriate.
	(convert_like_real): Use convert_to_base for ck_pmem and ck_ptr
	conversions.
	* class.c (convert_to_base): Handle both pointers and objects.
	Add nonnull parameter.
	(build_vfield_ref): Adjust call to convert_to_base.
	* cvt.c (cp_convert_to_pointer): Adjust call to build_ptrmemfunc.
	(convert_force): Likewise.
	* typeck.c (build_unary_op): Likewise.
	(convert_ptrmem): New function.
	(build_static_cast_1): Use it.
	(build_reinterpret_cast): Allow conversions to vector types.
	(get_delta_difference): Add c_cast_p parameter.
	(build_ptrmemfunc): Likewise.  Adjust calls to
	get_delta_difference.

2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/13560
	* error.c (cp_error_at): Output the context as it might be
	different file as the other location.

2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>

	* typeck.c: Fix a comment typo.

2004-10-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13495
	* decl.c (make_unbound_class_template): Add PARM_LIST parameter.
	* cp-tree.h (make_unbound_class_template): Adjust prototype.
	* parser.c (cp_parser_lookup_name): Adjust call to
	make_unbound_class_template.
	(cp_parser_single_declaration): Handle member class of class
	template as template friend parsing correctly.
	* friend.c (is_friend): Call is_specialization_of_friend for
	template friend class.
	(make_friend_class): Handle member class of class template as
	template friend.
	* pt.c (is_specialization_of_friend): Likewise.
	(instantiate_class_template): Likewise.
	(tsubst): Adjust call to make_unbound_class_template.

2004-10-20  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck.c (composite_pointer_type): Add comment about DR 195
	(build_reinterpret_cast_1): Add for_reinterpret_cast_p parameter.
	Allow function pointer conversions that DR195 suggests.
	(build_reinterpret_cast, build_c_cast): Update
	build_reinterpret_cast_1 calls.

2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>

	* call.c, typeck.c: Fix comment typos.

2004-10-20  Nathan Sidwell  <nathan@codesourcery.com>

	* parser.c (cp_token_position): New typedef. Define VEC thereof.
	(struct cp_lexer): Allow buffer and buffer_end to be NULL. Make
	next_token and last_token cp_token_position. Make saved_tokens a
	VEC(cp_token_position).
	(eof_token): New static variable.
	(CP_SAVED_TOKENS_SIZE): Rename to ...
	(CP_SAVED_TOKEN_STACK): ... here.
	(cp_lexer_new_main): Adjust main lexer creation and buffer
	filling.
	(cp_lexer_new_from_tokens): Do not copy the tokens, merely point
	to the parent buffer.  Do not append eof token.
	(cp_lexer_destroy): Only free buffer if non-NULL. Free token
	stack.
	(cp_lexer_next_token, cp_lexer_prev_token): Remove.
	(cp_lexer_token_position, cp_lexer_token_at): New.
	(cp_lexer_saving_tokens): Adjust. Make inline.
	(cp_lexer_advance_token, cp_lexer_token_difference): Remove.
	(cp_lexer_peek_token_emit_debug_info): Fold into ...
	(cp_lexer_peek_token): ... here.
	(cp_lexer_peek_nth_token): Don't peek past EOF.
	(cp_lexer_consume_token): Set next_token to eof_token, if reaching
	EOF.
	(cp_lexer_purge_token): Adjust eof setting.
	(cp_lexer_purge_tokens_after): Likewise.
	(cp_lexer_save_tokens): Push next_token directly.
	(cp_lexer_commit_tokens): Adjust.
	(cp_lexer_rollback_tokens): Pop next_token directly.
	(cp_parser_check_for_invalid_template_id): Adjust token purging.
	(cp_parser_translation_unit): Do not consume the EOF.
	(cp_parser_nested_name_specifier_opt): Adjust token purging.
	(cp_parser_template_id, cp_parser_template_name): Likewise.

2004-10-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14035
	* call.c (struct conversion): Add base_p.
	(convert_like): Add c_cast_p argument.
	(convert_like_with_conversion): Likewise.
	(build_conv): Clear base_p.
	(standard_conversion): Set it, for derived-to-base conversions.
	(convert_like_real): Add c_cast_p parameter.  Handle pointer
	conversions directly rather than relying on ocp_convert.
	(perform_direct_initialization_if_possible): Add c_cast_p
	parameter.
	* cp-tree.h (perform_direct_initialization_if_possible): Change
	prototype.
	(convert_member_func_to_ptr): New function.
	* typeck.c (check_for_casting_away_constness): Add diag_fn
	parameter.
	(build_static_cast_1): New function, split out from ...
	(build_static_cast): ... here.  Use build_static_cast_1.
	(build_reinterpret_cast_1): New function, split out from ...
	(build_reinterpret_cast): ... here.  Use build_reinterpret_cast_1.
	(build_const_cast_1): New function, split out from ...
	(build_const_cast): ... here.  Use build_const_cast_1.
	(build_c_cast): Rewrite to use build_const_cast_1,
	build_static_cast_1, and build_reinterpret_cast_1.
	(convert_member_func_to_ptr): New function.

2004-10-19  Paolo Bonzini  <bonzini@gnu.org>

	PR c++/18047
	* parser.c (enum cp_parser_prec): Give relational expressions
	a higher precedence than equality expressions.

2004-10-15  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (UNIQUELY_DERIVED_FROM_P): Adjust lookup_base call.
	(ACCESSIBLY_UNIQUELY_DERIVED_P): Remove.
	(PUBLICLY_UNIQUELY_DERIVED_P): Adjust lookup_base call.
	(enum base_access): Reorganize.
	(accessible_base_p, accessible_p): Add consider_local_p parameter.
	* call.c (standard_conversion): Update comment about
	DERIVED_FROM_P.
	(enforce_access): Adjust accessible_p call.
	(build_over_call): Adjust accessible_base_p call.
	* class.c (convert_to_base): Adjust lookup_base call.
	(build_vtbl_ref_1): Likewise.
	(warn_about_ambiguous_bases): Likewise. Add early exit.
	* cvt.c (convert_to_pointer_force) Adjust lookup_base call.
	* search.c (accessible_base_p): Add consider_local_p parameter.
	(lookup_base): Pass consider_local_p to accessible_base_p call.
	(friend_accessible_p): Check whether scope is a class member.
	Remove unnecessary class template check.
	(accessible_p): Add consider_local_p parameter. Use it.
	(adjust_result_of_qualified_name_lookup): Adjust lookup_base call.
	* tree.c (maybe_dummy_object): Likewise.
	* typeck.c (comp_except_type): Use PUBLICLY_UNIQUELY_DERIVED_P.
	(build_class_member_access_expr): Adjust lookup_base call.
	* typeck2.c (binfo_or_else): Likewise.
	* rtti.c (build_dynamic_cast_1): Access can consider friendship
	and current scope.

2004-10-17  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/17743
	* decl2.c (grokfield): Apply attributes also to TYPE_DECLs.

2004-10-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/10479
	* parser.c (cp_parser_parenthesized_expression_list): Fold
	non-dependent expressions in attribute lists.

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

	PR c++/17042
	* decl.c (declare_global_var): Use the return value from pushdecl.

	PR c++/14667
	* parser.c (cp_parser_simple_declaration): Do not diagnose invalid
	type names if we have already found a valid type.
	(cp_parser_member_declaration): Likewise.

	PR c++/17916
	* parser.c (cp_parser_member_specification_opt): Handle
	CPP_PRAGMA.

2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>

	* dump.c, g++spec.c, repo.c: Update copyright.

2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>

	* decl.c: Fix a comment typo.

2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/16301
	* name-lookup.c (parse_using_directive): If we have a
	error_mark_node, do not set the decl namespace associations
	on it.

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

	PR c++/17976
	* decl.c (cp_finish_decl): Do not call expand_static_init more
	than once for a single variable.

2004-10-14  Matt Austern  <austern@apple.com>

	* Make-lang.in (pt.o): depends on pointer-set.h
	* cp-tree.h (cp_walk_subtrees): Last argument is pointer_set_t* now.
	* pt.c (struct pair_fn_data): Use pointer_set_t, not htab_t
	(for_each_template_parm): Convert from htab_t to pointer_set_t.
	* tree.c (cp_walk_subtrees): Last argument is pointer_set_t* now.

2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/17661
	* semantics.c (finish_for_expr): Convert expression to void
	so that we don't create temporaries for a?b:c.

2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>

	* search.c: Fix a comment typo.

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

	* class.c (dfs_modify_vtables): Simplify condition. Return
	dfs_skip_bases as appropriate.
	(modify_all_vtables): Walk in pre-order.
	* search.c (dfs_walk_all, dfs_walk_once_r,
	dfs_walk_once_accessible_r): Assert post order function never
	returns dfs_skip_bases.

	* search.c (struct lookup_base_data_s): New.
	(lookup_base_r): Replace with ...
	(dfs_lookup_base): ... this.
	(lookup_base): Use dfs_walk_all.

2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>

	* search.c: Fix comment typos.

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

	PR c++/15786
	* parser.c (cp_parser_declarator): Add member_p parameter.
	(cp_parser_condition): Adjust calls to cp_parser_declarator.
	(cp_parser_explicit_instantiation): Likewise.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_direct_declarator): Add member_p parameter.  Do not
	parse tentatively when parsing the parameters to a member.
	(cp_parser_type_id): Adjust calls to cp_parser_declarator.
	(cp_parser_parameter_declaration): Likewise.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_exception_declaration): Likewise.

	PR c++/17936
	* cp-tree.h (CLASSTYPE_TEMPLATE_SPECIALIZATION): Add a comment.
	* pt.c (optimize_specialization_lookup_p): Do not optimize lookups
	for members of partial or explicit specializations.

	PR c++/17929
	* decl2.c (finish_anon_union): Robustify.

2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (get_dynamic_cast_base_type): Rename to ...
	(dcast_base_hint): ... here.
	* rtti.c (build_dynamic_cast_1): Use dcast_base_hint.
	* search.c (struct dcast_data_s): New.
	(dynamic_cast_base_recurse): Remove. Replace with ...
	(dfs_dcast_hint_pre, dfs_dcast_base_post): ... these. New.
	(get_dynamic_cast_base_type): Rename to ...
	(dcast_base_hint): ... here.  Use dfs_walk_once_accessible.
	(accessible_r): Remove.
	(dfs_accessible_post): New, broken out of accessible_r.
	(accessible_p): Use dfs_walk_once_accessible.
	(dfs_walk_once_accessible_r): New. From accessible_r.
	(dfs_walk_once_accessible): New. From acessible_p.

	* cp-tree.h (SAME_BINFO_TYPE_P): New.
	* class.c (build_base_path): Use SAME_BINFO_TYPE_P to compare
	binfo types.
	(convert_to_base_statically, determine_primary_bases,
	update_vtable_entry_for_fn, dfs_modify_vtables, build_vtt_inits,
	dfs_build_secondary_vptr_vtt_inits, build_ctor_vtbl_group,
	accumulate_vtbl_inits, dfs_accumulate_vtbl_inits,
	build_vtbl_initializer, add_vcall_offset_vtbl_entries_1): Likewise.
	* init.c (expand_member_init): Likewise.
	* search.c (lookup_base_r, dynamic_cast_base_recurse,
	binfo_via_virtual, copied_binfo, binfo_for_vbase,
	original_binfo): Likewise.
	* tree.c (copy_binfo): Likewise.

2004-10-11  Kazu Hirata  <kazu@cs.umass.edu>

	* semantics.c: Fix comment typos.

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

	PR c++/17554
	part of c++/17657
	middle-end/17703
	* semantics.c (maybe_cleanup_point_expr): Call
	fold_build_cleanup_point_expr.
	(maybe_cleanup_point_expr_void): New function.
	(add_decl_expr): Call maybe_cleanup_point_expr_void.
	(finish_expr_stmt): Likewise.
	(finish_return_stmt): Likewise.
	(finish_for_expr): Likewise.
	(finish_asm_stmt): Likewise.
	* typeck.c (condition_conversion): Call
	fold_build_cleanup_point_expr.

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

	PR c++/17907
	* semantics.c (add_decl_expr): If the decl has a size which
	has side effects then the decl expression needs a cleanup point.

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

	PR c++/17393
	* decl.c (grokdeclarator): Robustify error-recovery on invalid
	declarations.

2004-10-10  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert diagnostics to use quoting flag q 7/n
	* typeck.c (composite_pointer_type_r, composite_pointer_type,
	cxx_sizeof_or_alignof_type, cxx_sizeof_or_alignof_expr,
	string_conv_p, build_class_member_access_expr,
	build_class_member_access_expr, lookup_destructor,
	finish_class_member_access_expr, build_indirect_ref,
	get_member_function_from_ptrfunc, build_function_call,
	convert_arguments, build_binary_op, pointer_diff, build_unary_op,
	check_for_casting_away_constness, build_static_cast,
	build_reinterpret_cast, build_const_cast, build_c_cast,
	build_modify_expr, get_delta_difference, build_ptrmemfunc,
	dubious_conversion_warnings, convert_for_assignment,
	convert_for_initialization,
	maybe_warn_about_returning_address_of_local, check_return_expr):
	Use quoting marks.

	* typeck2.c (error_not_base_type, readonly_error,
	abstract_virtuals_error, cxx_incomplete_type_diagnostic,
	store_init_value, digest_init, build_x_arrow,
	build_m_component_ref, require_complete_eh_spec_types): Likewise.

	* tree.c (cp_build_qualified_type_real,
	handle_java_interface_attribute, handle_init_priority_attribute):
	Likewise.

	* semantics.c (finish_asm_stmt, finish_non_static_data_member,
	finish_pseudo_destructor_expr,
	check_template_template_default_arg, begin_class_definition,
	finish_base_specifier, qualified_name_lookup_error,
	finish_id_expression, finish_typeof): Likewise.

	* search.c (lookup_base, check_final_overrider,
	look_for_overrides_r): Likewise.

	* rtti.c (get_tinfo_decl, build_dynamic_cast_1): Likewise.

2004-10-09  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17867
	* error.c (dump_expr): Correct handling of AGGR_INIT_EXPRs using a
	constructor.

	PR c++/17670
	* init.c (build_new): Correct comments.
	* parser.c (cp_parser_new_expression): Use NULL_TREE for nelts in
	the non-array case.

	PR c++/17821
	* parser.c (cp_parser_postfix_dot_deref_expression): If the
	pseduo-destructor-name production does not work, fall back to the
	ordinary production.

	PR c++/17826
	* tree.c (cp_tree_equal): Handle a BASELINK.

	PR c++/17524
	* cp-tree.h (check_var_type): New function.
	* decl.c (check_var_type): New function, split out from ...
	(grokdeclarator): ... here.
	* pt.c (tsubst_decl): Use check_var_type.

	PR c++/17685
	* decl.c (grokdeclarator): Disallow declarations of operators as
	non-functions.

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

	PR c++/17868
	* error.c (dump_expr): Add missing case for RDIV_EXPR.

2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>

	* pt.c, search.c: Fix comment typos.

2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (dfs_walk, dfs_walk_real, dfs_unmark, markedp,
	unmarkedp): Remove.
	(dfs_skip_bases, dfs_walk_all, dfs_walk_once): New.
	* class.c (struct find_final_overrider_data): Remove most_derived,
	vpath_list and vpath fields.  Add path field.
	(dfs_find_final_ocerrider_1): Add DEPTH parameter. Adjust.
	(dfs_find_final_overrider): Rename to ...
	(dfs_find_final_overrider_pre): ... here. Adjust.
	(dfs_find_final_overrider_post): Adjust.
	(dfs_find_final_overrider_q): Fold into
	dfs_find_final_overrider_pre.
	(find_final_overrider): Adjust dfs searching.
	(dfs_modify_vtables): Don't mark binfo here.
	(modify_all_vtables): Use dfs_walk_once.
	(build_vtt_inits): Likwise. Use dfs_walk_all.
	(dfs_build_secondary_vptr_vtt_inits): Don't mark binfo here.
	Return dfs_skip_bases as appropriate.
	(dfs_fixup_binfo_vtbls): Return dfs_skip_bases as appropriate.
	* init.c (dfs_initialized_vtbl_ptrs): Return dfs_skip_bases as
	appropriate. Don't mark binfo here.
	(initialize_vtbl_ptrs): Use dfs_walk_once.
	* search.c (struct vbase_info): Remove unused struct.
	(access_in_type): Use dfs_walk_once.
	(dfs_access_in_type): Don't mark binfo here.
	(dfs_accessible_queue_p, dfs_accessible_p) Remove.
	Fold into ...
	(accessible_r): ... here. New. Specialize dfs_walk_once.
	(accessible_p): Use accessible_r.
	(lookup_field_queue_p): Remove. Fold into ...
	(lookup_field_r): ... here. Adjust.
	(lookup_member): Use dfs_walk_all.
	(dfs_walk_real, dfs_walk): Replace with ...
	(dfs_walk_all, dfs_walk_once): ... these.
	(dfs_walk_once_r, dfs_unmark_r): Workers for dfs_walk_once.
	(dfs_unmark, unmarkedp, markedp): Remove.
	(dfs_get_pure_virtuals): Don't mark binfo here.
	(get_pure_virtuals): Use dfs_walk_once.
	(dfs_debug_unmarked_p): Remove. Fold into ...
	(dfs_debug_mark): ... here.
	(note_debug_info_needed): Use dfs_walk_all.

2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>

	* pt.c (tsubst_expr) <case ASM_EXPR>: Look passed the
	CLEANUP_POINT_EXPR to get the asm expression.

2004-10-07  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (ICS_USER_FLAG): Remove comment about obsolete flag.
	(DECL_MEMBER_TEMPLATE_P): New macro.
	(is_member_template): Remove.
	(class_method_index_for_fn): New function.
	* pt.c (build_over_call): Use DECL_MEMBER_TEMPLATE_P.
	* class.c (finish_struct_methods): Remove out-of-date comment.
	* decl.c (copy_fn_p): Use DECL_MBMER_TEMPLATE_P.
	* decl2.c (check_classfn): Use DECL_MEMBER_TEMPLATE_P and
	class_method_index_for_fn.
	* pt.c (is_member_template): Remove.
	(is_member_template_class): Likewise.
	(optimize_specialization_lookup_p): New function.
	(retrieve_specialization): Optimize lookups for members that are
	not member templates.
	(register_specialization): Adjust accordingly.
	(build_template_decl): Add member_template_p parameter.  Set
	DECL_MEMBER_TEMPLATE_P.
	(process_partial_specialization): Adjust call to
	retrieve_specialization.
	(push_template_decl_real): Determine whether the template is a
	member template.
	(lookup_template_class): Use retrieve_specialization.
	(tsubst_decl): Adjust call to retrieve_specialization.
	(tsubst_exception_specification): New function.
	(tsubst): Use it.
	(tsubst_copy): Use DECL_MEMBER_TEMPLATE_P.
	(instantiate_template): Adjust call to retrieve_specialization.
	(regenerate_decl_from_template): Do not actually generate a new
	DECL.
	(instantiate_decl): Adjust call to retrieve_specialization.
	(class_method_index_for_fn): New method.

2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>

	* parser.c (cp_parser_asm_definition): Look passed the
	CLEANUP_POINT_EXPR to get the asm expression.

2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/17368
	* semantics.c (finish_asm_stmt): Asm expressions need cleanup
	also.

2004-10-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert diagnostics to use quoting flag q 6/n
	* pt.c (finish_member_template_decl, check_specialization_scope,
	maybe_process_partial_specialization, determine_specialization,
	check_explicit_specialization, maybe_check_template_type,
	process_partial_specialization, check_default_tmpl_args,
	push_template_decl_real, redeclare_class_template,
	convert_nontype_argument, coerce_template_parms,
	lookup_template_class, push_tinst_level,
	instantiate_class_template, tsubst_arg_types,
	tsubst_function_type, tsubst, tsubst_qualified_id,
	tsubst_copy_and_build, check_instantiated_args,
	do_decl_instantiation, do_type_instantiation,
	invalid_nontype_parm_type_p, check_specialization_namespace,
	convert_template_argument, determine_specialization,
	check_template_shadow, tsubst_decl
	instantiate_pending_templates): Use quoting marks.

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

	PR c++/17829
	* parser.c (cp_parser_postfix_expression): Inhibit Koenig when
	unqualified lookup finds a member function.

2004-10-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert diagnostics to use quoting flag q 5/n
	* parser.c (cp_parser_name_lookup_error,
	cp_parser_diagnose_invalid_type_name,
	cp_parser_primary_expression, cp_parser_unqualified_id,
	cp_parser_nested_name_specifier_opt, cp_parser_labeled_statement,
	cp_parser_jump_statement, cp_parser_simple_declaration,
	cp_parser_decl_specifier_seq, cp_parser_mem_initializer_id,
	cp_parser_type_parameter, cp_parser_template_id,
	cp_parser_template_name, cp_parser_direct_declarator,
	cp_parser_parameter_declaration_list, cp_parser_class_head,
	cp_parser_base_specifier, cp_parser_lookup_name,
	cp_parser_late_parsing_default_args,
	cp_parser_optional_template_keyword
	cp_parser_elaborated_type_specifier, cp_parser_check_class_key,
	cp_parser_check_access_in_redeclaration): Use quoting marks.

	* name-lookup.c (supplement_binding, pushdecl,
	check_for_out_of_scope_variable, validate_nonmember_using_decl,
	do_nonmember_using_decl, lookup_tag, set_decl_namespace,
	push_namespace, do_namespace_alias, do_using_directive,
	ambiguous_decl, lookup_namespace_name, add_function): Likewise.

	* method.c (use_thunk): Likewise.

	* lex.c (unqualified_name_lookup_error,
	unqualified_fn_lookup_error): Likewise.

2004-10-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert diagnostics to use quoting flag q 4/n
	* except.c (decl_is_java_type, build_throw,
	is_admissible_throw_operand, check_handlers_1, check_handlers):
	Use quoting formats.
	* friend.c (add_friend, make_friend_class, do_friend): Likewise.
	* init.c (sort_mem_initializers, emit_mem_initializers,
	member_init_ok_or_else, expand_member_init, is_aggr_type,
	build_offset_ref, build_java_class_ref): Likewise.

2004-10-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert diagnostics to use quoting flag q 3/n
	* decl.c (pop_label, duplicate_decls, redeclaration_error_message,
	redeclaration_error_message, lookup_label, check_goto,
	make_typename_type, make_unbound_class_template,
	fixup_anonymous_aggr, check_tag_decl, start_decl, start_decl_1,
	grok_reference_init, layout_var_decl, maybe_commonize_var,
	check_for_uninitialized_const_var, reshape_init_array,
	reshape_init, check_initializer, cp_finish_decl,
	member_function_or_else, bad_specifiers, grokfndecl, grokvardecl,
	check_static_variable_definition, compute_array_index_type,
	create_array_type_for_decl, check_special_function_return_type,
	grokdeclarator, check_default_argument, grokparms,
	grok_ctor_properties, grok_op_properties,
	check_elaborated_type_specifier, xref_tag, finish_enum,
	build_enumerator, check_function_type, start_preparsed_function,
	store_parm_decls): Use quoting formats.
	* decl2.c (grok_array_decl, delete_sanity, check_member_template,
	check_java_method, check_classfn, finish_static_data_member_decl,
	grokfield, grokbitfield, grok_function_init,
	build_anon_union_vars, coerce_new_type, coerce_delete_type,
	check_default_args): Likewise.
	* parser.c (cp_parser_decl_specifier_seq): Likewise.

2004-10-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert diagnostics to use quoting flag q 2/n
	* class.c (build_base_path, add_method, alter_access,
	handle_using_decl, check_bases,
	maybe_warn_about_overly_private_class, find_final_overrider,
	warn_hidden, finish_struct_anon, add_implicitly_declared_members,
	check_bitfield_decl, check_field_decls, layout_empty_base,
	build_base_field, check_methods, layout_virtual_bases,
	warn_about_ambiguous_bases, layout_class_type, finish_struct_1,
	resolve_address_of_overloaded_function, instantiate_type,
	note_name_declared_in_class): Use format flag "q" for quoting.

2004-10-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert diagnostics to use quoting flag q 1/n
	* error.c (locate_error): Ignore quoting flag q.
	* call.c (build_user_type_conversion_1, build_operator_new_call,
	build_object_call, op_error, build_conditional_expr,
	build_new_op, build_op_delete_call, enforce_access,
	convert_like_real, convert_arg_to_ellipsis, build_x_va_arg,
	convert_default_arg, build_over_call, build_new_method_call,
	joust, perform_implicit_conversion, initialize_reference): Use the
	quoting flag q.

2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/17797
	* typeck.c (build_reinterpret_cast): Return if the inner type
	is error_mark_node.

2004-10-01  Jan Hubicka  <jh@suse.cz>

	* semantics.c (expand_body): Update call of tree_rest_of_compilation.

2004-09-30  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (struct lang_decl): Shrink by reordering fields and
	turning operator_code and fixed_offset into bitfields.

2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>

	* decl.c (duplicate_decls): Merge TREE_DEPRECATED.

2004-09-29  Jason Merrill  <jason@redhat.com>

	PR tree-optimization/17697
	* decl.c (duplicate_decls): Copy TREE_NOTHROW from newdecl to olddecl.

2004-09-28  Jason Merrill  <jason@redhat.com>

	PR middle-end/17525
	* class.c (build_base_field): Set TYPE_MODE.

2004-09-28  Roger Sayle  <roger@eyesopen.com>

	PR driver/17537
	* g++spec.c (lang_specific_driver): Unrecognized libraries, other
	than -lc and -lm, may require linking against libstc++.

2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>

	* tree.c: Fix a comment typo.

2004-09-28  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): Remove.
	(struct secondary_vptr_vtt_init_data_s): New.
	(build_vtt_inits): Adjust dfs_walkers.
	(dfs_build_secondary_vptr_vtt_inits): Caller data is a
	secondary_vptr_vtt_init_data_s structure. Adjust.
	(dfs_ctor_vtable_bases_queue_p): Remove.
	(dfs_fixup_binfo_vtbls): No need to clear BINFO_MARKED. Simplify.

	* pt.c (struct get_template_base_data_s): Remove.
	(get_template_base_r): Fold into get_template_base.
	(get_template_base): Walk base binfos directly in inheritance
	graph order.

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

	PR c++/17642
	* cp-tree.h (fold_if_not_in_template): New function.
	* call.c (build_conditional_expr): Use fold_if_not_in_template.
	(build_cxx_call): Likewise.
	* cvt.c (convert_to_complex): Likewise.
	(ocp_convert): Likewise.
	(convert): Likewise.
	(convert_force): Likewise.
	* decl.c (compute_array_index_type): Clear
	processing_template_decl while folding array bounds.
	* pt.c (convert_nontype_argument): Clear
	processing_template_decl while processing non-type argument
	initialization.
	* tree.c (fold_if_not_in_template): New function.
	* typeck.c (build_class_member_access_expr): Use
	fold_if_not_in_template.
	(build_array_ref): Likewise.
	(build_binary_op): Likewise.  Do not try to optimize computations
	when processing templates.
	(cp_pointer_int_sum): Use fold_if_not_in_template.
	(pointer_diff): Likewise.
	(build_unary_op): Likewise.
	(build_reinterpret_cast): Likewise.
	(get_delta_difference): Likewise.
	(expand_ptrmemfunc_cst): Likewise.
	(dubious_conversion_warnings): Likewise.

2004-09-27  Matt Austern  <austern@apple.com>

	* cp/parser.c (struct cp_token): New one-bit field , implicit_extern_c
	(cp_lexer_get_preprocessor_token): Set implicit_extern_c for
	tokens that come from headers that are implicitly extern "C".
	(struct cp_parser): new one-bit field, implicit_extern_c.
	(cp_parser_new): Set parser's implicit_extern_c to false.
	(cp_parser_translation_unit): Pop lang context if we were in a
	header that was implicitly extern "C".
	(cp_parser_declaration_seq_opt): Push/pop lang context as
	required by the token's and parser's implicit_extern_c.

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

	PR c++/17585
	* cp-tree.h (shared_member_p): Declare.
	* search.c (shared_member_p): Give it external linkage.
	* semantics.c (finish_qualified_id_expr): Use it.
	(finish_id_expression): Likewise.

	PR c++/17585
	* semantics.c (finish_id_expression): Do not add "this->" to
	static member functions.

2004-09-27  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/17681
	* error.c (dump_type): Change TREE_VEC case into TREE_BINFO.

	* class.c (struct count_depth_data): Remove.
	(dfs_depth_post, dfs_depth_q): Remove.
	(find_final_overrider): Use number of vbase classes as depth
	bound.

	* cp-tree.h (types_overlap_p): Remove.
	* search.c (struct overlap_info): Remove.
	(dfs_check_overlap, dfs_no_overlap_yet, types_overlap_p): Remove.

	* pt.c (GTB_VIA_VIRTUAL, GTB_IGNORE_TYPE): Remove.
	(get_template_base_recursive): Remove. Replace with ...
	(get_template_base_r): ... this.
	(struct get_template_base_data_s): New.
	(get_template_base): Use get_template_base_r via dfs_walk.  Always
	return NULL on failure.
	(unify): Remove error_mark_node check from get_template_base result.

2004-09-24  Paolo Bonzini  <bonzini@gnu.org>

	* parser.c (cp_parser_expression_stack): Clarify why it is
	an array of NUM_PREC_VALUES elements.
	(cp_parser_binary_expression): Clarify why we do not need to
	handle stack overflow.

2004-09-24  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/16889
	* search.c (lookup_field_queue_p): Correct check for hidden base.

	* search.c (bfs_walk): Remove.
	(lookup_member): Use dfs_walk_real.
	(dfs_walk_real): Move and adjust documentation from bfs_walk.

2004-09-23  Zack Weinberg  <zack@codesourcery.com>

	* decl.c (grokfndecl): If ::main is found not to return int,
	correct it after issuing a diagnostic.
	(grokdeclarator): If the incoming type was error_mark_node, do
	not complain about declaring something with no type.
	(start_function): Change check for ::main not returning int to
	an assertion, as grokfndecl now catches this when the user did it.
	* init.c (perform_member_init, sort_mem_initializers)
	(emit_mem_initializers): Make most diagnostics be issued on
	the line of current_function_decl, not whatever the current
	input line is.
	* parser.c (cp_lexer_peek_token_emit_debug_info): Surround
	definition and declaration with #ifdef ENABLE_CHECKING.
	Avoid unnecessary use of fprintf.
	(cp_lexer_print_token, cp_lexer_debug_stream): Adjust stub
	definitions to avoid warnings.
	(cp_lexer_new_main): Add assertion that first token is not a
	padding token.
	(cp_lexer_new_from_token_array): Fold into ...
	(cp_lexer_new_from_tokens): ... here.  Add assertion that
	first token is not a padding token.
	(cp_lexer_set_source_position_from_token): Move nearer to callers.
	Remove unused lexer argument.
	(cp_lexer_peek_token): Just print debugging report (if enabled)
	and return lexer->next_token.
	(cp_lexer_skip_purged_tokens): Delete.
	(cp_lexer_next_token_is, cp_lexer_next_token_is_not): Make
	inline, simplify bodies.
	(cp_lexer_peek_nth_token): Add debugging report a la
	cp_lexer_peek_token.
	(cp_lexer_consume_token): Correct commentary.  Advance over
	purged tokens here.  Set current source position here, from
	token to be returned.  Avoid unnecessary use of fprintf.
	(cp_lexer_purge_token): Advance next_token pointer over this and
	subsequent purged tokens.
	(cp_parser_error): Adjust source position to that of the
	peeked token.
	(cp_parser_push_lexer_for_tokens, cp_parser_pop_lexer): New functions.
	(cp_parser_string_literal): Remove some excessive cleverness.
	(cp_parser_enum_specifier): Call start_enum before consuming
	the opening brace.
	(cp_parser_member_declaration): Make the "extra semicolon"
	diagnostic consistently-worded with the other place this is
	diagnosed.  Explicitly set the diagnostic location to the
	location of the offending semicolon.
	(cp_parser_enclosed_template_argument_list): Use %</%> quoting
	in diagnostics.  Do not use cp_parser_require.  Set location
	of diagnostics about improper use of '>>' to location of
	offending token.
	(cp_parser_late_parsing_for_member):
	Use cp_parser_push_lexer_for_tokens and cp_parser_pop_lexer.
	(cp_parser_late_parsing_default_args): Likewise.  Manually
	move some logic outside the loop.

2004-09-23  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/17618
	* cvt.c (cp_convert_to_pointer): Return early when the type is
	an error_mark_node.

2004-09-21 Fariborz Jahanian <fjahanian@apple.com>

	PR c++/13989
	PR c++/9844
	* decl.c (grokfndecl): Add new argument "attrlist", use it
	to call cplus_decl_attributes.
	(start_function): Remove call to cplus_decl_attributes.
	* cvt.c (ocp_convert): Add support to use type conversion
	function to vector type.
	* parser.c (cp_parser_conversion_type_id): Add attributes, if any,
	to the parsed type.

2004-09-23  Paolo Bonzini  <bonzini@gnu.org>

	PR c++/17596

	* parser.c (cp_parser_token_tree_map_node,
	cp_parser_pm_expression, cp_parser_additive_expression,
	cp_parser_multiplicative_expression, cp_parser_shift_expression,
	cp_parser_relational_expression, cp_parser_equality_expression,
	cp_parser_and_expression, cp_parser_exclusive_or_expression,
	cp_parser_inclusive_or_expression,
	cp_parser_logical_and_expression,
	cp_parser_logical_or_expression): Removed.
	(enum cp_parser_prec, struct cp_parser_token_tree_map_node,
	binops, binops_by_token): New.
	(cp_parser_assignment_expression): Use cp_parser_binary_expression.
	(cp_parser_new): Initialize binops_by_token.
	(cp_parser_binary_expression): Rewritten.
	(N_CP_TTYPES): New.

2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>

	* parser.c: Fix a comment typo.

2004-09-23  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/17620
	* decl.c (xref_basetypes): Look through typedefs before checking
	for duplicate base.

2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (unemitted_tinfo_decls): Make a VEC(tree).
	* decl2.c (cp_finish_file): Adjust tinfo decl emission loop.
	* rtti.c (unemitted_tinfo_decls): Make a VEC(tree).
	(init_rtti_processing): Initialize it to something realistic.
	(get_tinfo_decl): Adjust pushing the new decl.

	* cp-tree.h (struct lang_type_class): Remove marked flags, add
	diamond_shaped and repeated_base flags.  Reorder to keep 8-bit blocks.
	(TYPE_MARKED_P): New.
	(CLASSTYPE_DIAMOND_SHAPED_P, CLASSTYPE_REPEATED_BASE_P): New.
	(CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N,
	CLEAR_CLASSTYPE_MARKED_N): Remove.
	(CLASSTYPE_MARKED_*, SET_CLASSTYPE_MARKED_*,
	CLEAR_CLASSTYPE_MARKED_*): Remove.
	* decl.c (xref_basetypes): Use TYPE_MARKED_P. Determine diamond
	shaped and repeated base properties.
	* lex.c (cxx_make_type): Don't clear TYPE_ALIAS_SET.
	* rtti.c (dfs_class_hint_mark, dfs_class_hint_unmark,
	class_hint_flags): Remove.
	(get_pseudo_ti_init): Use CLASSTYPE_REPEATED_BASE_P and
	CLASSTYPE_DIAMOND_SHAPED_P.

2004-09-21  Ziemowit Laski  <zlaski@apple.com>

	* cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved here from
	cp-objcp-common.h.
	(objcp_tsubst_copy_and_build): Reformat function signature.
	* cp-objcp-common.h (objcp_tsubst_copy_and_build): Likewise.
	(LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved to cp-lang.c.

2004-09-21  Zack Weinberg  <zack@codesourcery.com>

	* parser.c (cp_lexer_peek_token, cp_lexer_consume_token):
	Don't handle CPP_PRAGMA tokens specially.
	(cp_lexer_handle_pragma): Use cp_lexer_consume_token.  Don't
	purge the token; do clear token->value after processing.  Add
	assertion at beginning that token->value is nonzero.
	(cp_parser_statement, cp_parser_declaration_seq_opt): Handle
	CPP_PRAGMA as a full statement or declaration in its own right.

2004-09-21  Matt Austern  <austern@apple.com>

	PR c++/15049
	* decl.c (grokvardecl): Accept declarations of global variables
	using anonymous types.

2004-09-21  Roger Sayle  <roger@eyesopen.com>

	PR c++/7503
	* tree.c (lvalue_p_1):  Disallow MIN_EXPR and MAX_EXPR as lvalues
	if either operand has side-effects.
	* typeck.c (rationalize_conditional_expr): Assert that neither
	operand of MIN_EXPR or MAX_EXPR has side-effects.
	(build_modify_expr):  Add support for MIN_EXPR and MAX_EXPR.
	Check that the "lhs" is a valid lvalue, i.e. that neither operand
	of a MIN_EXPR or MAX_EXPR has a side-effect.

2004-09-21  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (struct lang_type_header): Remove
	uses_multiple_inheritance field.
	(TYPE_USES_MULTIPLE_INHERITANCE): Remove.
	(TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P): Remove.
	(TYPE_USES_VIRTUAL_BASECLASSES): Remove.
	(DECL_NEEDS_VTT_PARM_P): Use CLASSTYPE_VBASECLASSES.
	(TYPE_CONTAINS_VPTR_P): Likewise.
	* call.c (add_template_candidate_real): Use
	CLASSTYPE_VBASECLASSES.
	(build_special_member_call): Likewise.
	* class.c (finish_struct_bits): Remove
	TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P & TYPE_USES_VIRTUAL_BASECLASSES
	bookkeeping.
	(check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
	(create_vtable_ptr): Remove TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P
	bookkeeping.
	(build_vtt_inits): Use CLASSTYPE_VBASECLASSES.
	(accumulate_vtbl_inits, build_vbase_offset_vtbl_entries):
	Likewise.
	* decl.c (xref_basetypes): Remove TYPE_USES_MULTIPLE_INHERITANCE,
	TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P, TYPE_USES_VIRTUAL_BASECLASSES
	bookkeeping.
	(cxx_maybe_build_cleanup): Use CLASSTYPE_VBASECLASSES.
	* decl2.c (maybe_retrofit_in_chrg): Likewise.
	* init.c (expand_member, push_base_cleanups): Likewise.
	* pt.c (instantiate_class_template): Remove
	TYPE_USES_MULTIPLE_INHERITANCE,
	TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P, TYPE_USES_VIRTUAL_BASECLASSES
	bookkeeping.
	* ptree.c (cxx_print_type): Remove TYPE_USES_MULTIPLE_INHERITANCE
	check.
	* typeck2.c (process_init_constructor): Replace some sorrys with
	asserts.

2004-09-21  Andreas Tobler  <a.tobler@schweiz.ch>

	* decl.c (reshape_init_array): Initialize max_index_cst to fix
	bootstrap failure.

2004-09-20  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17530
	* pt.c (tsubst): Fix parentheses to accomodate emacs.
	(tsubst_baselink): If we get a single function, mark it as used.

2004-09-20  Matt Austern <austern@apple.com>
	    Zack Weinberg  <zack@codesourcery.com>

	* decl.c (make_rtl_for_nonlocal_decl, start_preparsed_function):
	Apply lbasename to input_filename before passing to get_fileinfo.
	* semantics.c (begin_class_definition): Likewise.
	* lex.c (handle_pragma_interface): Apply get_fileinfo to the
	correct filename.  Rename variables to be less confusing.
	(handle_pragma_implementation): Likewise.  Disable "appears
	after file is included" diagnostic.

	* parser.c (struct cp_token): Add in_system_header fiag.
	(CP_TOKEN_BLOCK_NUM_TOKENS, struct cp_token_block)
	(CP_TOKEN_BUFFER_SIZE, cp_token_cache_push_token)
	(CPP_NONE, cp_lexer_read_token): Delete.
	(struct cp_lexer): Remove first_token, string_tokens,
	main_lexer_p fields.  Clarify comments.
	(struct cp_token_cache): Now just a pair of pointers.
	(CP_LEXER_BUFFER_SIZE): New #define.
	(CPP_PURGED): New fake token type.
	(cp_lexer_new_from_token_array, cp_lexer_destroy)
	(cp_lexer_peek_token_emit_debug_info, cp_lexer_skip_purged_tokens)
	(cp_lexer_handle_pragma, cp_token_cache_new, cp_parser_string_literal):
	New functions.
	(cp_lexer_new_from_tokens): Now a simple wrapper around
	cp_lexer_new_from_token_array.
	(cp_lexer_set_source_position_from_token): Also update
	in_system_header.
	(cp_lexer_next_token, cp_lexer_prev_token, cp_lexer_advance_token):
	Don't wrap round.
	(cp_lexer_token_difference): Dont handle wrapping round.
	(cp_lexer_new_main): Enable pragma deferral and raw strings,
	read the entire translation unit through c_lex_with_flags into
	this lexer's buffer, then turn raw strings back off again.
	(cp_lexer_grow_buffer): Adjust for buffer no longer being circular.
	(cp_lexer_get_preprocessor_token): No need to handle not being
	the main lexer.  Set token->in_system_header too.
	(cp_lexer_peek_token): Skip purged tokens.  Feed pragma tokens
	to cp_lexer_handle_pragma.  No need to call cp_lexer_read_token.
	(cp_lexer_peek_nth_token): Likewise.
	(cp_lexer_purge_token): Mark the token PURGED, don't shift all
	the other tokens down.
	(cp_lexer_purge_tokens_after): Likewise.
	(cp_lexer_save_tokens, cp_lexer_rollback_tokens): Don't worry
	about there being no tokens.
	(cp_lexer_print_token): Revise to give useful information on
	all tokens.
	(struct cp_parser): Add field translate_strings_p.
	(cp_parser_new): Initialize it.
	(cp_parser_translation_unit): Destroy the lexer when done.
	(cp_parser_parameter_declaration): Restructure saving of
	default arguments.
	(cp_parser_save_member_function_body): Likewise.
	(cp_parser_check_for_invalid_template_id)
	(cp_parser_nested_name_specifier_opt, cp_parser_template_id):
	Adjust calls to cp_lexer_advance_token.
	(cp_parser_skip_to_closing_parenthesis, cp_parser_declaration):
	No need to fiddle c_lex_string_translate.
	(cp_parser_primary_expression, cp_parser_linkage_specification)
	(cp_parser_asm_definition, cp_parser_asm_specification_opt)
	(cp_parser_asm_operand_list, cp_parser_asm_clobber_list)
	Use cp_parser_string_literal.
	(cp_parser_attribute_list): Save and restore
	parser->translate_strings_p, not c_lex_string_translate.
	(cp_parser_cache_group): Delete.
	(cp_parser_cache_group_1): Rename cp_parser_cache_group.  Do
	not take a cache argument.

2004-09-20  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14179
	* decl.c (reshape_init): Extract array handling into...
	(reshape_init_array): New function. Use integers instead of trees
	for indices. Handle out-of-range designated initializers.

2004-09-20  Steven Bosscher  <stevenb@suse.de>

	* lex.c (cxx_init): Don't set the ridpointer for RID_NULL
	to null_node.

2004-09-19  Mark Mitchell  <mark@codesourcery.com>

	* decl2.c (determine_visibility): Allow class visibility
	directives to override targetm.cxx.export_class_data.

2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>

	* call.c, semantics.c: Follow spelling conventions.
	* class.c: Fix a comment typo.

2004-09-16  Geoffrey Keating  <geoffk@apple.com>

	PR pch/13361
	* cp/lex.c (handle_pragma_interface): Duplicate string from tree.
	(handle_pragma_implementation): Likewise.

2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
	    Zack Weinberg  <zack@codesourcery.com>

	* cp-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c
	* mangle.c, pt.c, semantics.c, tree.c, typeck.c:
	Update for new tree-class enumeration constants.

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

	PR c++/16002
	* parser.c (cp_parser_simple_declaration): Commit to tentative
	parses after seeing a decl-specifier.
	(cp_parser_simple_declaration): Eliminate spurious message.
	(cp_parser_init_declarator): Adjust error message.

	PR c++/16029
	* lex.c (unqualified_name_lookup_error): Mark the dummy
	declaration as used.

	PR c++/17501
	* parser.c (cp_parser_nested_name_specifier): Do not resolve
	typename types if the user explicitly said "typename".

2004-09-16  Andrew MacLeod  <amacleod@redhat.com>

	* error.c (dump_decl): Make sure there is lang_specific info before
	checking for DTOR and CTOR decls.

2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (copy_virtuals): Remove.
	(build_primary_vtable): Use copy_list directly.
	(build_secondary_vtable): Likewise.
	(update_vtable_entry_for_fn): Clear BV_CALL_INDEX here.
	(create_vtable_ptr): Likewise.

2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>

	* search.c: Follow spelling conventions.

2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (struct lang_type_class): Make pure_virtuals a
	VEC(tree).
	(CLASSTYPE_INLINE_FRIENDS, CLASSTYPE_PURE_VIRTUALS): Update
	comments.
	* call.c (build_new_method_call): Don't confirm a pure virtual is
	in CLASSTYPE_PURE_VIRTUALS.  Reorder checks. Make it a warning.
	* class.c (check_methods): CLASSTYPE_INLINE_FRIENDS is a VEC(tree).
	(fixup_inline_methods, finish_struct): Likewise.
	* decl.c (finish_method): Likewise.
	* search.c (dfs_get_pure_virtuals, get_pure_virtuals):
	CLASSTYPE_PURE_VIRTUALS is a VEC(tree).
	* typeck2.c (abstract_virtuals_error): Likewise. Truncate the
	vector to avoid repeating the list in error messages.

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

	* cp-objcp-common.h (LANG_HOOKS_COMDAT_GROUP): Define.
	* cp-tree.h (cxx_comdat_group): Declare.
	* decl.c (cxx_comdat_group): New function.

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

	* search.c (get_pure_virtuals): Remove unused variables.

	* cp-tree.h (struct lang_decl_flags): Remove
	needs_final_overrider.
	(DECL_NEEDS_FINAL_OVERRIDER_P): Remove.
	* decl.c (duplicate_decls): Do not copy DECL_NEEDS_FINAL_OVERRIDER_P.
	* class.c (finish_struct_bits): Correct comment about
	CLASSTYPE_PURE_VIRTUALS.
	* search.c (get_pure_virtuals): Remove useless loop.

2004-09-14  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17324
	* mangle.c (partially_mangled_name): New variable.
	(partially_mangled_name_len): Likewise.
	(save_partially_mangled_name): New function.
	(restore_partially_mangled_name): Likewise.
	(write_encoding): Save and restore partially mangled names around
	calls to get_mostly_instantiated_function_type.
	(write_unqualified_name): Likewise.

2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (unify): Replace gcc_unreachable with gcc_assert.

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

	PR c++/16162
	* parser.c (cp_parser_id_expression): Correct value for
	is_declarator.
	(cp_parser_nested_name_specifier_opt): Look through typenames as
	necessary.
	(cp_parser_template_name): Honor check_dependency_p.

	PR c++/16716
	* parser.c (cp_parser_parse_and_diagnose_invalid_type_name):
	Robustify.

	PR c++/17327
	* pt.c (unify): Add ENUMERAL_TYPE case.  Replace sorry with
	gcc_unreacable.

2004-09-12  Richard Henderson  <rth@redhat.com>

	PR c++/16254
	* semantics.c (maybe_cleanup_point_expr): Don't call fold.
	* typeck.c (condition_conversion): Likewise.

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

	PR c++/17404
	* pt.c (cur_stmt_expr): Move from tsubst_expr.
	(tsubst_expr) <case STMT_EXPR>: Move ...
	(tsubst_copy_and_build): ... here.

2004-09-10  Zack Weinberg  <zack@codesourcery.com>

	* cp-tree.h (interface_only, interface_unknown): Delete declarations;
	comment explaining them moved to c-common.h.
	* lex.c (interface_only, interface_unknown, extract_interface_info):
	Delete definitions.
	(cxx_finish): Don't reset interface_unknown.
	(handle_pragma_interface): Don't set interface_only and
	interface_unknown; just the like-named fields in finfo.
	(handle_pragma_implementation): Adjust comment.
	* decl2.c (cp_finish_file): Don't reset interface_only and
	interface_unknown.
	* method.c (synthesize_method): Don't reset interface_unknown or
	call extract_interface_info.
	* pt.c (pop_tinst_level): Don't call extract_interface_info.
	* decl.c (start_cleanup_fn): Don't save or restore interface_only
	and interface_unknown.
	(make_rtl_for_nonlocal_decl): Call get_fileinfo on input_filename
	and use the result instead of the interface_only/interface_unknown
	globals.
	(start_preparsed_function): Likewise.
	* lex.c (cxx_make_type): Likewise.
	* semantics.c (begin_class_definition): Likewise.
	(expand_body): Don't call extract_interface_info.

2004-09-10  Ziemowit Laski  <zlaski@apple.com>

	* decl.c (objc_mark_locals_volatile): Make description of
	routine more descriptive; only mark VAR_DECLs at each
	binding level.

2004-09-10  Richard Henderson  <rth@redhat.com>

	PR c++/17386
	* call.c (build_vfield_ref): Move...
	* class.c (build_vfield_ref): ... here.  Convert datum to the
	primary base containing the vptr.
	(make_new_vtable): Simplify build_primary_vtable arguments.
	(finish_struct_1): Do not duplicate TYPE_VFIELD.
	* typeck.c (build_class_member_access_expr): Don't warn for
	null object access to base fields.

2004-09-10  Ziemowit Laski  <zlaski@apple.com>

	* decl.c (objc_get_current_scope, objc_mark_locals_volatile):
	New functions, to be called from ObjC++.

2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>

	* class.c, cp-tree.h, decl.c, decl2.c, mangle.c,
	name-lookup.h, parser.c, search.c, semantics.c, typeck2.c: Fix
	comment typos.

2004-09-09  Ziemowit Laski  <zlaski@apple.com>

	* typeck.c (build_c_cast): Preserve the cast if casting
	to and from an Objective-C type.

2004-09-09  Ziemowit Laski  <zlaski@apple.com>

	* Make-lang.in (cp/typeck.o): Depend on c-common.h.
	* typeck.c: Include c-common.h.
	(comptypes): For RECORD_TYPEs, call objc_comptypes() and
	return the result if nonnegative.

2004-09-09  Zack Weinberg  <zack@codesourcery.com>

	* decl2.c (import_export_class)
	* lex.c (handle_pragma_interface):
	Test MULTIPLE_SYMBOL_SPACES with if, not #ifdef.

2004-09-08  Ziemowit Laski  <zlaski@apple.com>

	* Make-lang.in (cp/semantics.o): Depend on c-common.h.
	* semantics.c: Include c-common.h.
	(finish_compound_stmt): Call objc_clear_super_receiver().

2004-09-08  Ziemowit Laski  <zlaski@apple.com>

	* cp-tree.h (do_poplevel): New prototype.
	* semantics.c (do_poplevel): Make externally visible.

2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (tree_pair_s): Define a GC'd vector.
	* name-lookup.h (cxx_saved_binding, cp_class_binding): Likewise.
	* semantics.c (deferred_access): Likewise.

2004-09-06  Daniel Jacobowitz  <dan@debian.org>

	* semantics.c (expand_body): Assert that we are not nested.

2004-09-06  Zack Weinberg  <zack@codesourcery.com>

	* decl.c (build_enumerator): Use add_double and int_fits_type_p
	instead of cp_build_binary_op, to avoid creating short-lived trees.
	* parser.c (cp_parse_type_specifier <RID_ENUM>): Use two-token
	lookahead instead of backtracking.  Move some code to avoid a
	conditional branch.
	(cp_parser_enum_specifier): Avoid duplication of effort with caller.
	Use cp_lexer_next_token_is/cp_lexer_next_token_is_not as appropriate.
	(cp_parser_enumerator_list, cp_parser_enumerator_definition):
	Use cp_lexer_next_token_is/cp_lexer_next_token_is_not as appropriate.

2004-09-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* decl.c (grok_declarator): Remove a redundant semicolon.

	* parser.c (cp_parser_decl_specifier_seq, cp_parser_type_specifier):
	Correct comments describing function parameters.

2004-09-03  Matt Austern  <austern@apple.com>
	Compile speed improvement.
	* parser.c (cp_lexer_print_token): Only define if ENABLE_CHECKING set.
	Otherwise define a stub macro that expands to nothing.
	(cp_lexer_debugging_p): Only define if ENABLE_CHECKING set.  Otherwise
	define a stub macro that expands to 0.
	(cp_lexer_start_debugging): Only define if ENABLE_CHECKING set.
	(cp_lexer_stop_debugging): Likewise.
	(cp_lexer_debug_stream): Only define if ENABLE_CHECKING set.  Otherwise
	define a stub macro that expands to NULL.
	(cp_lexer_new_main): Only set debugging_p if ENABLE_CHECKING set.
	(cp_lexer_new_from_tokens): Likewise.

2004-09-03  Jan Hubicka  <jh@suse.cz>

	* decl.c (finish_function): Clean out pointers we no longer need.

2004-09-03  Jan Beulich  <jbeulich@novell.com>

	* g++spec.c (MATH_LIBRARY_PROFILE): Default to MATH_LIBRARY rather
	than "-lm".

2004-09-02  Paul Brook  <paul@codesourcery.com>

	* decl2.c (determine_visibility): Only check data visibility
	for VAR_DECLS.

2004-08-31  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (DECL_CONSTRUCTION_VTABLE_P): New macro.
	* class.c (build_ctor_vtbl_group): Set DECL_CONSTRUCTION_VTABLE_P.
	* decl2.c (determine_visibility): Honor
	TARGET_CXX_EXPORT_CLASS_DATA.

	* class.c (key_method): Rename to ...
	(determine_key_method): ... this.
	(finish_struct_1): Adjust accordingly.
	* cp-tree.h (key_method): Declare.
	* decl2.c (maybe_emit_vtables): Determine the key method here if
	it has not already been done.

2004-08-31  Ziemowit Laski  <zlaski@apple.com>

	* Make-lang.in (CXX_AND_OBJCXX_OBJS): Add cp/cp-objcp-common.o.
	(cp/cp-lang.o): Depend on debug.h, gtype-cp.h and cp/cp-objcp-common.h.
	(cp/cp-decl.c): Do not depend on gtype-cp.h.
	(cp/cp-objcp-common.o): New target.
	* cp-lang.c: Include debug.h, cp-objcp-common.h and gtype-cp.h.
	(cxx_get_alias_set, cxx_warn_unused_global_decl, cp_expr_size,
	cp_tree_size, cp_var_mod_type_p, cxx_initialize_diagnostics): Move
	prototypes and definitions to cp-objcp-common.h and cp-objcp-common.c,
	respectively.
	(LANG_HOOKS_TREE_SIZE, LANG_HOOKS_FINISH,
	LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_INIT_OPTIONS,
	LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
	LANG_HOOKS_HANDLE_FILENAME, LANG_HOOKS_MISSING_ARGUMENT,
	LANG_HOOKS_POST_OPTIONS, LANG_HOOKS_GET_ALIAS_SET,
	LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_EXPAND_EXPR,
	LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_PARSE_FILE,
	LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, LANG_HOOKS_TRUTHVALUE_CONVERSION,
	LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, LANG_HOOKS_MARK_ADDRESSABLE,
	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
	LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_PRINT_ERROR_FUNCTION,
	LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, LANG_HOOKS_WRITE_GLOBALS,
	LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
	LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
	LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
	LANG_HOOKS_ATTRIBUTE_TABLE, LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
	LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
	LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
	LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P,
	LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
	LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P,
	LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
	LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN, LANG_HOOKS_EXPR_SIZE,
	LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR,
	LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_MAKE_TYPE,
	LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE,
	LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, LANG_HOOKS_INCOMPLETE_TYPE_ERROR,
	LANG_HOOKS_TYPE_PROMOTES_TO, LANG_HOOKS_REGISTER_BUILTIN_TYPE,
	LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_FOLD_OBJ_TYPE_REF): Move
	hooks to cp-objcp-common.h.
	(finish_file): New function.
	* cp-objcp-common.c: New file.
	* cp-objcp-common.h: New file.
	* cp-tree.h (cp_finish_file): New prototype.
	* decl.c: Do not include gtype-cp.h.
	* decl2.c (finish_file): Rename to cp_finish_file.

2004-08-31  Richard Henderson  <rth@redhat.com>

	PR c++/17221
	* pt.c (tsubst_expr): Move OFFSETOF_EXPR handling ...
	(tsubst_copy_and_build): ... here.

2004-08-30  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (initialize_artificial_var): Declare.
	* decl.c (initialize_artifical_var): New function.
	* class.c (initialize_array): Remove.
	(initialize_vtable): Use initialize_artificial_var.
	(build_vtt): Likewise.
	(build_ctor_vtbl_group): Likewise.

2004-08-30  Richard Henderson  <rth@redhat.com>

	* class.c (build_base_path): Use build_address directly.
	* typeck.c (build_unary_op): Don't lower &a.b to pointer
	arithmetic directly.
	* typeck2.c (store_init_value): Don't assume !TREE_CONSTANT
	means !initializer_constant_valid_p.

2004-08-30  Richard Henderson  <rth@redhat.com>

	* class.c (fixed_type_or_null): Use get_base_address before
	assuming an ADDR_EXPR is non-null.

2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>

	* name-lookup.c (pop_binding, pushdecl,
	set_identifier_type_value_with_scope, push_overloaded_decl,
	arg_assoc_type): Replace abort with gcc_assert or gcc_unreachable.
	* parser.c (cp_parser_diagnose_invalid_type_name,
	cp_parser_postfix_expression, cp_parser_unary_expression,
	cp_parser_check_declarator_template_para): Likewise.
	* pt.c (push_inline_template_parms_recursive,
	check_explicit_specialization, convert_nontype_argument,
	coerce_template_template_parms, uses_template_parms,
	instantiate_class_template, tsubst_decl, tsubst, tsubst_copy,
	tsubst_expr, instantiate_template,
	maybe_adjust_types_for_deduction, type_unification_real,
	resolve_overloaded_unification, template_decl_level,
	type_dependent_expression_p): Likewise.
	* search.c (lookup_base_r): Likewise.
	* semantics.c (finish_stmt_expr, simplify_aggr_init_expr): Likewise.
	* tree.c (lvalue_p_1, count_functions, cxx_printable_name,
	verify_stmt_tree_r, get_type_decl, stabilize_call): Likewise.
	* typeck.c (common_type, get_member_function_from_ptrfunc,
	build_binary_op, build_unary_op, expand_ptrmemfunc_cst): Likewise.
	* typeck2.c (cxx_incomplete_type_diagnostic,
	split_nonconstant_init_1, store_init_value,
	process_init_constructor): Likewise.

2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (check_dtor_name): Replace abort with gcc_assert or
	gcc_unreachable.
	(build_call, add_builtin_candidate, build_new_op,
	convert_like_real, build_over_call, in_charge_arg_for_name,
	source_type, joust): Likewise.
	* class.c (build_simple_base_path, get_vcall_index,
	finish_struct_1, instantiate_type, get_enclosing_class,
	add_vcall_offset_vtbl_entries_1, cp_fold_obj_type_ref): Likewise.
	* cp-gimplify.c (cp_genericize): Likewise.
	* cp-lang.c (cp_expr_size, cp_tree_size): Likewise.
	* cvt.c (cp_convert_to_pointer, ocp_convert): Likewise.
	* decl.c (poplevel, make_unbound_class_template, reshape_init,
	check_special_function_return_type, grokdeclarator,
	grok_op_properties, tag_name, xref_tag, start_preparsed_function,
	finish_function): Likewise.
	* decl2.c (grokfield, maybe_emit_vtables):Likewise.
	* error.c (dump_global_iord, dump_decl, dump_template_decl,
	language_to_string): Likewise.
	* except.c (choose_personality_routine): Likewise.
	* friend.c (do_friend): Likewise.
	* g++spec.c (lang_specific_driver): Likewise.
	* init.c (build_zero_init, expand_default_init, build_new_1,
	build_vec_delete_1, build_vec_init, build_dtor_call): Likewise.
	* lex.c (retrofit_lang_decl, cp_type_qual_from_rid): Likewise.
	* mangle.c (add_substitution, write_unscoped_name,
	write_template_prefix, write_identifier,
	write_special_name_destructor, write_type, write_builtin_type,
	write_expression, write_template_param,
	write_java_integer_type_codes): Likewise.
	* method.c (implicitly_declare_fn): Likewise.

2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (BINFO_PRIMARY_P): Use a binfo flag.
	(BINFO_INDIRECT_PRIMARY_P): Remove.
	* class.c (determine_primary_base): Rename to ...
	(determine_primary_bases): ... here.  Set all primary bases.
	(set_primary_base): Remove.
	(mark_primary_bases): Remove.
	(build_simple_base_path, walk_subobject_offsets,
	propagate_binfo_offsets, end_of_class): Adjust.
	(layout_class_type): Rename determine_primary_base call.
	(dump_class_hierarchy_r, dump_vtable): Adjust. Don't pass a binfo
	to type_as_string.
	(dfs_build_secondary_vptr_vtt_inits, dfs_accumulate_vtbl_inits,
	build_rtti_vtbl_entries): Adjust.
	* init.c (build_vtbl_address): Adjust.

	* cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Use gcc_assert.

2004-08-28  Ziemowit Laski  <zlaski@apple.com>

	* Make-lang.in (CXX_OBJS): Split up into CXX_OBJS and
	CXX_AND_OBJCXX_OBJS.
	(CXX_C_OBJS): Include in CXX_AND_OBJCXX_OBJS instead of listing
	separately on the link line.

2004-08-28  Jason Merrill  <jason@redhat.com>

	* decl.c (expand_static_init): Avoid bogus warnings.

2004-08-27  Jason Merrill  <jason@redhat.com>

	PR c++/16851
	* tree.c (stabilize_init): See through a COMPOUND_EXPR.

	PR c++/13684
	* decl.c (expand_static_init): Use thread-safety API.
	(register_dtor_fn): Return the call, don't expand it.
	* tree.c (add_stmt_to_compound): New fn.
	(stabilize_call): Use it.

2004-08-27  Richard Henderson  <rth@redhat.com>

	* cp-tree.def (OFFSETOF_EXPR): New.
	* parser.c (cp_parser_builtin_offsetof): Either built an
	OFFSETOF_EXPR, or call fold_offsetof immediately.
	* pt.c (tsubst_expr): Handle OFFSETOF_EXPR.

2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (validate_conversion_obstack): Replace
	my_friendly_assert with gcc_assert or gcc_unreachable.
	(direct_reference_binding, merge_conversion_sequences,
	build_user_type_conversion_1, perform_overload_resolution,
	build_op_delete_call, enforce_access, call_builtin_trap,
	build_over_call, build_special_member_call, build_new_method_call,
	initialize_reference): Likewise.
	* class.c (build_base_path, build_primary_vtable, alter_access,
	check_bases, update_vtable_entry_for_fn, layout_empty_base,
	clone_function_decl, adjust_clone_args,
	type_requires_array_cookie, include_empty_classes,
	finish_struct_1, resolve_address_of_overloaded_function,
	instantiate_type, get_vtbl_decl_for_binfo, build_vtt_inits,
	dfs_build_secondary_vptr_vtt_inits, build_ctor_vtbl_group,
	accumulate_vtbl_inits, build_vtbl_initializer,
	build_vbase_offset_vtbl_entries, build_rtti_vtbl_entries): Likewise.
	* cvt.c (build_up_reference, convert_to_reference): Likewise.
	* decl.c (poplevel, duplicate_decls, make_typename_type,
	cxx_init_decl_processing, reshape_init, check_initializer,
	make_rtl_for_nonlocal_decl, initialize_local_var, cp_finish_decl,
	expand_static_init, grokfndecl, grokvardecl, build_ptrmem_type,
	grokdeclarator, copy_fn_p, grok_op_properties, xref_tag,
	xref_basetypes, start_preparsed_function, save_function_data,
	finish_function, finish_method, maybe_register_incomplete_var,
	complete_vars): Likewise.
	* decl2.c (grok_array_decl, check_member_template,
	check_classfn, finish_static_data_member_decl, coerce_new_type,
	coerce_delete_type, import_export_class, decl_needed_p,
	determine_visibility, import_export_decl, build_cleanup,
	start_static_initialization_or_destructi, do_static_destruction,
	prune_vars_needing_no_initialization,
	build_offset_ref_call_from_tree): Likewise.
	* error.c (dump_decl, dump_expr): Likewise.
	* init.c (finish_init_stmts, build_zero_init,
	expand_virtual_init, expand_default_init, expand_aggr_init_1,
	build_offset_ref, build_new_1, build_delete, build_vbase_delete):
	Likewise.
	* mangle.c (write_method_parms, write_template_args,
	write_expression, write_template_arg): Likewise.
	* method.c (make_thunk, finish_thunk, use_thunk): Likewise.
	* name-lookup.c (pop_binding, begin_scope, leave_scope,
	resume_scope, push_using_decl, validate_nonmember_using_decl,
	is_ancestor, poplevel_class, set_inherited_value_binding_p,
	push_class_level_binding, do_class_using_decl, push_namespace,
	pop_namespace, add_using_namespace, ambiguous_decl,
	lookup_namespace_name, lookup_type_current_level,
	maybe_process_template_type_declaration): Likewise.
	* parser.c (cp_lexer_peek_nth_token,
	cp_parser_parse_and_diagnose_invalid_typ,
	cp_parser_translation_unit, cp_parser_template_id,
	cp_parser_lookup_name, cp_parser_late_parsing_for_member): Likewise.
	* pt.c (push_access_scope, finish_member_template_decl,
	push_inline_template_parms_recursive, add_outermost_template_args,
	get_innermost_template_args, begin_explicit_instantiation,
	end_explicit_instantiation, retrieve_specialization,
	is_specialization_of, is_specialization_of_friend,
	register_specialization, check_explicit_specialization,
	comp_template_parms, process_template_parm,
	process_partial_specialization, convert_nontype_argument,
	coerce_template_template_parms, coerce_template_parms,
	mangle_class_name_for_template, lookup_template_function,
	lookup_template_class, instantiate_class_template, tsubst_decl,
	tsubst_function_type, tsubst, tsubst_qualified_id, tsubst_copy,
	instantiate_template, fn_type_unification, type_unification_real,
	get_template_base, regenerate_decl_from_template,
	template_for_substitution, instantiate_decl,
	get_mostly_instantiated_function_type, dependent_scope_ref_p,
	value_dependent_expression_p, resolve_typename_type): Likewise.
	* repo.c (repo_emit_p): Likewise.
	* rtti.c (build_headof, get_tinfo_decl, get_pseudo_ti_init,
	create_tinfo_types, emit_tinfo_decl): Likewise.
	* search.c (lookup_base_r, lookup_base, lookup_field_1,
	dfs_access_in_type, build_baselink, lookup_member,
	adjust_result_of_qualified_name_lookup, copied_binfo): Likewise.
	* semantics.c (perform_or_defer_access_check,
	finish_non_static_data_member, finish_stmt_expr_expr,
	finish_stmt_expr, finish_call_expr, finish_pseudo_destructor_expr,
	finish_template_template_parm, finish_member_declaration,
	emit_associated_thunks): Likewise.
	* tree.c (build_target_expr_with_type, force_target_expr,
	copy_binfo, get_first_fn, cp_tree_equal): Likewise.
	* typeck.c (type_after_usual_arithmetic_conversions, comptypes,
	cxx_sizeof_or_alignof_type, perform_integral_promotions,
	build_class_member_access_expr, finish_class_member_access_expr,
	build_ptrmemfunc_access_expr, build_unary_op,
	unary_complex_lvalue, cxx_mark_addressable, build_modify_expr,
	build_ptrmemfunc, expand_ptrmemfunc_cst, check_return_expr
	* typeck2.c (complete_type_check_abstract,
	abstract_virtuals_error, process_init_constructor,
	add_exception_specifier): Likewise.

2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (build_vtbl_initializer): Use ssize_int.
	* decl.c (complete_array_type): Likewise.
	* method.c (finish_thunk): Likewise.
	* search.c (get_dynamic_base_type): Likewise.

2004-08-26  Richard Henderson  <rth@redhat.com>

	* cp-tree.h (DECL_FIELD_IS_BASE): New.
	* class.c (build_base_field): Set it.
	(build_simple_base_path): Use it.
	(fixed_type_or_null): Don't consider base fields definitive.

2004-08-25  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/16693
	PR tree-optimization/16372
	* decl.c (finish_enum): Make the precision of the enumerated type
	the same width as the underlying integer type.

2004-08-25  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17155
	* lex.c (build_lang_decl): Set DECL_NO_STATIC_CHAIN for all C++
	functions.

	* mangle.c (get_identifier_nocopy): Add cast.

	* cp-tree.h (mangle_type): Remove.
	* mangle.c (globals): GTY it.
	(mangle_obstack): New variable.
	(name_obstack): Likewise.
	(name_base): Likewise.
	(write_char): Adjust accordingly.
	(write_chars): Likewise.
	(write_string): Likewise.
	(start_mangling): Initialize G.substitutions only one.  Add
	ident_p parameter.
	(finish_mangling): Use VARRAY_CLEAR to reclaim
	storage in G.substitutions.  Use obstack_finish.
	(init_mangle): Adjust for changes to variable names above.
	Initialize G.substitutions.
	(mangle_decl_string): Adjust call to start_mangling.
	(get_identifier_nocopy): New function.
	(mangle_decl): Use it.
	(mangle_type_string): Adjust call to start_mangling.
	(mangle_special_for_type): Likewise.
	(mangle_vtt_for_type): Likewise.
	(mangle_ctor_vtbl_for_type): Likewise.
	(mangle_thunk): Likewise.
	(mangle_guard_variable): Likewise.
	(mangle_ref_init_variable): Likewise.

2004-08-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/14428
	* pt.c (redeclare_class_template): Check the type of non-type and
	template template parameter.

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

	* call.c (convert_class_to_reference): Adjust build_int_cst calls.
	(build_user_type_conversion_1, convert_like_real,
	build_java_interface_fn_ref, build_special_member_call): Likewise.
	* class.c (finish_struct_1, build_vtbl_initializer): Likewise.
	* cp-gimplify.c (cp_gimplify_expr): Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	* decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
	* decl2.c (start_static_initialization_or_destruction,
	generate_ctor_or_dtor_function): Likewise.
	* except.c (build_throw): Likewise.
	* mangle.c (write_integer_cst): Likewise.
	* method.c (finish_thunk): Likewise.
	* rtti.c (build_headof, get_tinfo_decl_dynamic,
	build_dynamic_cast_1, ptr_initializer, ptm_initializer,
	get_pseudo_ti_init): Likewise.
	* search.c (get_dynamic_cast_base_type): Likewise.

2004-08-25  Zack Weinberg  <zack@codesourcery.com>

	* class.c, search.c: Remove references to DWARF_DEBUG.

2004-08-25  Adam Nemet  <anemet@lnxw.com>

	* repo.c (extract_string): Reset backquote after one character.
	(get_base_filename): Fix indentation.

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

	* decl.c (cxx_init_decl_processing): Adjust
	build_common_tree_nodes call.

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

	PR c++/16889
	* (is_subobject_of_p): Resurrect & optimize.
	(lookup_field_r): Use it.

2004-08-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/16706
	* search.c (friend_accessible_p): Increment processing_template_decl
	when deal with TEMPLATE_DECL of SCOPE.

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

	PR c++/17149
	* semantics.c (check_accessibility_of_qualified_id): Defer check
	if qualifying_type is a template parameter.

2004-08-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17163
	* pt.c (instantiate_decl): Do not try to apply
	DECL_DECLARED_INLINED_P to a VAR_DECL.

	* search.c (build_baselink): Fix typo in comment.

2004-08-22 Andrew Pinski  <apinski@apple.com>

	Revert:
	2004-08-22  Andrew Pinski  <apinski@apple.com>
	PR c++/14029
	* typeck.c (build_unary_op): Use &a.b if the folded lowered
	expression is not constant.

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

	* name-lookup.c (pushdecl): Rename build_type_copy call.
	* tree.c (cp_build_qualified_type_real,
	build_exception_variant, handle_java_interface_attribute): Likewise.

2004-08-22  Andrew Pinski  <apinski@apple.com>

	PR c++/14029
	* typeck.c (build_unary_op): Use &a.b if the folded lowered
	expression is not constant.

2004-08-20  Mark Mitchell  <mark@codesourcery.com>

	PR c++/17121
	* decl.c (expand_static_init): Use DECL_FUNCTION_SCOPE_P.

2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c++/17120
	* pt.c (tsubst_copy_and_build): Avoid clearing TREE_NO_WARNING for
	MODOP_EXPR.

2004-08-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c (register_specialization): Check DECL_TEMPLATE_SPECIALIZATION
	before calling comp_template_args.

2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (build_vtbl_initializer): Use build_int_cst for
	negative size types.
	* decl.c (complete_array_type): Likewise.
	* method.c (finish_thunk): Likewise.

2004-08-20  Andreas Tobler  <a.tobler@schweiz.ch>

	* tree.c: Remove unused mark_local_for_remap_r.

2004-08-19  Eric Christopher  <echristo@redhat.com>

	* cp-tree.h (cxx_unsave_expr_now): Delete prototype.
	* tree.c (cxx_unsave_expr_now): Delete.
	(cp_unsave_r): Ditto.

2004-08-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15890
	* pt.c (push_template_decl_real): Disallow template allocation
	functions with fewer than two parameters.

2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (build_shared_int_cst): Remove.
	* tree.c (shared_int_cache): Remove.
	(build_shared_int_cst): Remove.
	* class.c (finish_struct_1): Use build_int_cst.

2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (finish_enum): Do not copy value node early, copy
	later.
	* lex.c (cxx_init): Force null_node to be unique.

2004-08-19  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c++/17041
	* pt.c (tsubst_copy, tsubst_copy_and_build): Copy TREE_NO_WARNING
	from input for MODOP_EXPR.

2004-08-18  Mark Mitchell  <mark@codesourcery.com>

	* pt.c (dependent_template_p): Fix typo in commment.

	PR c++/17068
	* pt.c (dependent_template_p): Treat IDENTIFIER_NODEs as
	dependent.

2004-08-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16246
	* pt.c (unify): Tidy ARRAY_TYPE handling.  Make sure that non-type
	arguments have the same type as the corresponding parameter.

	PR c++/16215
	* parser.c (cp_parser_name_lookup_error): If parser->object_scope
	is set use it for diagnostic purposes.
	(cp_parser_pseudo_destructor_name): Remove special-case error
	message.

	PR c++/15871
	* semantics.c (expand_or_defer_fn): Honor -fkeep-inline-functions.

	PR c++/16965
	* cp-tree.h (qualified_name_lookup_error): Add parameter.
	* name-lookup.c (do_class_using_decl): Restrict set of entities
	passed to cp_emit_debug_info_for_using more carefully.
	(lookup_qualified_name): Allow lookup_member to return sets of
	ambiguous entries.
	* parser.c (cp_parser_lookup_name): Add ambiguous_p parameter.
	(cp_parser_primary_expression): Handle ambiguous lookups.
	(cp_parser_template_name): Adjust use of cp_parser_lookup_name.
	(cp_parser_template_argument): Likewise.
	(cp_parser_elaborate_type_specifier): Likewise.
	(cp_parser_namespace_name): Likewise.
	(cp_parser_class_name): Likewise.
	(cp_parser_lookup_name_simple): Likewise.
	* pt.c (tsubst_qualified_id): Handle ambiguous results.
	(tsubst_expr): Likewise.
	* semantics.c (qualified_name_lookup_error): Add decl paramter.
	For ambiguous lookups, print candidates.

2004-08-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/6749
	* pt.c (instantiate_pending_templates): Add int parameter.  Don't
	return anything.
	* cp-tree.h (instantiate_pending_templates): Adjust prototype.
	* decl2.c (finish_file): Adjust call to
	instantiate_pending_templates.

2004-08-15  Roger Sayle  <roger@eyesopen.com>

	* call.c (build_vfield_ref, build_call, build_conditional_expr,
	convert_arg_to_ellipsis, build_x_va_arg, build_over_call,
	build_java_interface_fn_ref, build_special_member_call,
	build_new_method_call, initialize_reference): Replace calls to
	build with calls to buildN.
	* class.c (build_base_path, convert_to_base_statically,
	build_vfn_ref, instantiate_type, dfs_accumulate_vtbl_inits,
	build_vtbl_initializer): Likewise.
	* cp-gimplify.c (genericize_try_block, genericize_catch_block,
	gimplify_if_stmt, cp_genericize_r): Likewise.
	* cvt.c (convert_to_void): Likewise.
	* decl.c (check_initializer, finish_constructor_body,
	finish_destructor_body): Likewise.
	* error.c (dump_expr): Likewise.
	* except.c (build_exc_ptr, expand_start_catch_block, build_throw):
	Likewise.
	* init.c (perform_member_init, expand_virtual_init,
	expand_cleanup_for_base, build_init, expand_default_init,
	build_offset_ref, decl_constant_value, build_new, build_new_1,
	build_vec_delete_1, build_vec_init, build_delete,
	push_base_cleanups, build_vec_delete): Likewise.
	* mangle.c (write_integer_cst): Likewise.
	* method.c (thunk_adjust, do_build_copy_constructor,
	do_build_assign_ref): Likewise.
	* pt.c (lookup_template_function, tsubst, tsubst_copy_and_build,
	unify, build_non_dependent_expr): Likewise.
	* rtti.c (build_headof, build_typeid, ifnonnull,
	build_dyanmic_cast_1, tinfo_base_init): Likewise.
	* semantics.c (begin_compound_stmt, finish_call_expr,
	finish_pseudo_destructor_expr, finish_id_expression,
	simplify_aggr_init_expr, finalize_nrv_r): Likewise.
	* tree.c (build_target_expr, build_cplus_new, array_type_nelts_top,
	array_type_nelts_total, stabilize_call): Likewise.
	* typeck.c (decay_conversion, build_class_member_access_expr,
	lookup_destructor, build_ptrmemfunc_access_expr, build_array_ref,
	get_member_function_from_ptrfunc, build_binary_op, pointer_diff,
	build_x_unary_op, build_unary_op, unary_complex_lvalue,
	build_compound_expr, build_modify_expr, expand_ptrmemfunc_cst,
	check_return_expr): Likewise.
	* typeck2.c (split_nonconstant_1, split_nonconstant_init_1,
	split_nonconstant_init, store_init_value, build_m_component_ref):
	Likewise.

2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (convert_class_to_reference,
	build_user_type_conversion_1, convert_like_real,
	build_java_interface_fn_ref, build_special_member_call): Use
	build_int_cst.
	* class.c (build_vtbl_initializer): Likewise.
	* cp-gimplify.c (cp_gimplify_expr): Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	* decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
	* decl2.c (start_static_initialization_or_destruction,
	generate_ctor_or_dtor_function): Likewise.
	* except.c (build_throw): Likewise.
	* lex.c (cxx_init): Likewise.
	* mangle.c (write_integer_cst): Likewise.
	* rtti.c (build_headof, get_tinfo_decl_dynamic,
	build_dynamic_cast_1, ptr_initializer, ptm_initializer,
	get_pseudo_ti_init): Likewise.
	* search.c (get_dynamic_cast_base_type): Likewise.
	* tree.c (build_shared_int_cst): Likewise.

2004-08-12  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16273
	* class.c (count_depth_data): New type.
	(dfs_depth_post): New function.
	(dfs_depth_q): Likewise.
	(find_final_overrider_data_s): Change type of vpath.
	Add vpath_list.
	(dfs_find_final_overrider_1): New function.
	(dfs_find_final_overrider): Use it.
	(dfs_find_final_overrider_q): Adjust use of vpath.
	(dfs_find_final_overrider_post): Likewise.
	(find_final_overrider): Use dfs_depth.  Allocate and deallocate
	vpath_list.

2004-08-12 Jan Beulich <jbeulich@novell.com>

	* parser.c (cp_parser_asm_definition): Properly consume scope operator
	tokens preceding the clobbers. Don't check for scope operator
	following inputs. Simplify inputs handling to match that now used for
	clobbers.

2004-08-11  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16698
	* except.c (build_throw): Allocate cleanup_type and the function
	for __cxa_throw separately.

	PR c++/16853
	* call.c (standard_conversion): Do not accept conversions between
	pointers to members if the class types are unrelated.

	PR c++/16618
	* parser.c (cp_parser_builtin_offsetof): Cast to "const volatile
	char &" instead of just "char &".

	PR c++/16870
	* pt.c (tsubst): Just return the unknown_type_node.

2004-08-11  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16964
	* parser.c (cp_parser_class_specifier): Robustify.

	PR c++/16904
	* pt.c (tsubst_copy_and_build): Complain about invalid
	qualification.

	PR c++/16929
	* pt.c (tsubst_default_argument): Clear out current_class_ptr and
	current_class_ref while tsubsting.

2004-08-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16971
	* parser.c (cp_parser_init_declarator): Robustify.

2004-08-06  Richard Sandiford  <rsandifo@redhat.com>

	* typeck2.c (process_init_constructor): Guard the missing field warning
	with warn_missing_field_initializers rather than extra_warnings.

2004-08-06  Paolo Bonzini  <bonzini@gnu.org>

	* class.c (instantiate_type) <ENTRY_VALUE_EXPR>: Do not handle.

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

	* decl.c (start_preparsed_function): Move determine_visibility
	call.
	* decl2.c (determine_visibility): Incorporate dllexport testing.

2004-08-05  Geoffrey Keating  <geoffk@apple.com>

	* g++spec.c (lang_specific_driver): An -Xlinker or -Wl, option
	means that libstdc++ is needed.

2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>

	* cvt.c (cp_convert_to_pointer): Adjust force_fit_type call.

2004-08-04  Geoffrey Keating  <geoffk@apple.com>

	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_ASSEMBLER_NAME rather
	than passing it as a parameter to rest_of_decl_compilation.
	* decl2.c (grokfield): Use set_user_assembler_name.

2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (complete_array_type): Don't gratuitously copy
	maxindex. Its type is always set.

2004-08-04  Paul Brook  <paul@codesourcery.com>

	* Make-lang.in (cp/semantics.o, cp/optimize.o): Depend on TARGET_H.
	* cp-tree.h (struct language_function): Rename x_dtor_label to
	x_cdtor_label.
	(dtor_label): Rename ...
	(cdtor_label): ... to this.
	* decl.c (begin_constructor_body): Remove.
	(check_special_function_return_type): Maybe change the return type.
	(grokdeclarator): Pass the class type.
	(start_preparsed_function): Constructors may need a return label.
	(finish_constructor_body, finish_destructor_body): Set the return
	value.
	(begin_function_body): Don't call begin_constructor_body.
	(finish_function): Don't warn for constructors or destructors.
	(implicitly_declare_fn): Maybe change the return type.
	* optimize.c: Include target.h.
	(maybe_clone_body): Remap the function result.
	* semantics.c: Include target.h.
	(finish_return_stmt): Maybe jump to return label for constructors.

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

	* class.c (build_vtable): Do not set DECL_VISIBILITY here.
	(check_field_decls): Or here.
	(check_methods): Or here.
	(initialize_array): Don't mess with DECL_CONTEXT.
	* cp-tree.h (start_decl): Adjust prototype.
	(determine_visibility): New function.
	* decl.c (duplicate_decls): Remove checks for hidden "operator
	new".
	(build_library_fn_1): Give all library functions default
	visibility.
	(start_decl): Add pop_scope_p parameter.  Tidy.
	(cp_finish_decl): Do not pop scopes here.  Call
	determine_visibility for variable definitions.
	(start_preparsed_function): Call determine_visibility.
	* decl2.c (determine_visibility): New function.
	* method.c (use_thunk): Fix formatting.
	* parser.c (cp_parser_condition): Adjust calls to start_decl.
	(cp_parser_init_declarator): Likewise.
	* pt.c (instantiate_decl): Always call pop_nested_class.
	* rtti.c (get_tinfo_decl): Do not set DECL_VISIBILITY.
	(tinfo_base_init): Likewise.

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

	PR c++/16707
	* name-lookup.c (validate_nonmember_using_decl): Robustify.

2004-08-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16224
	* name-lookup.c (decl_namespace): Remove.
	(current_decl_namespace): Use decl_namespace_context instead of
	decl_namespace.
	(push_decl_namespace): Likewise.
	(arg_assoc_class): Likewise.
	(arg_assoc_type): Likewise.
	* pt.c (check_specialization_namespace): New function.
	(maybe_process_partial_specialization): Use it.
	(register_specialization): Likewise.

	PR c++/16489
	* cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): New macro.
	* call.c (null_ptr_cst_p): Handle variables with constant
	initializers.
	* pt.c (convert_nontype_argument): Use
	DECL_INTEGRAL_CONSTANT_VAR_P.
	* semantics.c (finish_id_expression): Likewise.

	PR c++/16529
	* decl.c (duplicate_decls): Reject duplicate namespace
	declarations.

	PR c++/16810
	* typeck.c (build_ptrmemfunc): Loosen assertion.

2004-08-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* call.c (z_candidate::template_decl): Rename from template.
	(add_template_candidate_real): Adjust member reference.
	(joust): Likewise.

2004-07-29  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (IDENTIFIER_REPO_CHOSEN): Define.
	(lang_decl_flags): Narrow the width of "languages".  Add
	repo_available_p.
	(DECL_NEEDED_P): Remove.
	(FOR_EACH_CLONE): New macro.
	(DECL_REPO_AVAILABLE_P): Likewise.
	(DECL_TINFO_P): Likewise.
	(set_linkage_according_to_type): Declare.
	(import_export_vtable): Remove.
	(import_export_tinfo): Likewise.
	(mark_needed): New function.
	(decl_needed_p): Likewise.
	(note_vauge_linkage_fn): Likewise.
	(init_repo): Change prototype.
	(repo_template_used): Remove.
	(repo_template_instantiated): Likewise.
	(repo_emit_p): New function.
	(repo_export_class_p): Likewise.
	(no_linkage_check): Change prototype.
	* class.c (set_linkage_according_to_type): New function.
	(build_vtable): Use it.  Do not call import_export_vtable.  Set
	DECL_IGNORED_P if appropriate.
	* decl.c (duplicate_decls): Preserve DECL_REPO_AVAILABLE_P.
	(make_rtL_for_nonlocal_decls): Check for template instantiations
	explicitly.
	(grokfndecl): Adjust call to no_linkage_check.
	(set_linkage_for_static_data_member): New function.
	(grokvardecl): Use it.  Adjust call to no_linkage_check.
	(grokdeclarator): Use set_linkage_for_static_data_member.
	* decl2.c (note_vague_linkage_fn): New function.
	(note_vague_linkage_var): Likewise.
	(finish_static_data_member_decl): Use it.
	(import_export_vtable): Remove.
	(import_export_class): Use repo_export_class_p.
	(var_finalized_p): Simplify.
	(maybe_emit_vtables): Simplify.
	(mark_needed): New function.
	(decl_needed_p): Likewise.
	(import_export_decl): Add documentation and consistency checks.
	Use repo_emit_p.  Handle virtual tables and RTTI information
	here.
	(import_export_tinfo): Remove.
	(write_out_vars): Call import_export_decl.
	(cxx_callgraph_analyze_expr): Ensure that all vtables are emitted
	whenever one is.
	(finish_file): Use decl_needed_p.  Do not call import_export_decl
	for undefined static data members.  Do not warn about undefined
	inlines when using a repository.
	(mark_used): Use note_vague_linkage_fn.  Always defer template
	instantiations.
	* lex.c (cxx_init): Adjust call to init_repo.  Always set
	flag_unit_at_a-time.
	* method.c (synthesize_method): Remove unncessary
	import_export_decl call.
	(implicitly_declare_fn): Use set_linkage_according_to_type.
	* optimize.c (maybe_clone_body): Use FOR_EACH_CLONE.
	* pt.c (instantiate_class_template): Don't redundantly add classes
	to keyed_classes.  Don't call repo_template_used.
	(tsubst_decl): Set DECL_INTERFACE_KNOWN for instantiations of
	templates with internal linkage.
	(check_instantiated_args): Adjust call to no_linkage_check.
	(instantiate_template): Use FOR_EACH_CLONE.
	(mark_definable): New function.
	(mark_decl_instantiated): Use it.
	(do_decl_instantiation): Adjust tests for explicit instantiation
	after "extern template".
	(instantiate_class_member): Do not use repo_template_instantiated.
	(do_type_instantiation): Simplify.
	(instantiate_decl): Use mark_definable.  Check repo_emit_p.
	Simplify.
	* repo.c (repo_get_id): Remove.
	(original_repo): Remove.
	(IDENTIFIER_REPO_USED): Remove.
	(IDENTIFIER_REPO_CHOSEN): Remove.
	Remove all #if 0'd code.
	(repo_template_used): Remove.
	(repo_template_instantiated): Remove.
	(temporary_obstack_initialized_p): New variable.
	(init_repo): Register with lang_post_pch_load.  Avoid creating
	identifiers unnecessarily.  Don't use original_repo.  Close the
	file here.
	(reopen_repo_file_for_write): Not here.
	(finish_repo): Always write out a new repository file.
	(repo_emit_p): New function.
	(repo_export_class_p): Likewise.
	* rtti.c (get_tinfo_decl): Use set_linkage_according_to_type.
	(involves_incomplete_p): New function.
	(tinfo_base_init): Use it.
	(ptr_initializer): Remove non_public_ptr parameter.
	(ptm_initializer): Likewise.
	(get_pseudo_ti_init): Likewise.
	(unemitted_tinfo_decl_p): Remove.
	(emit_tinfo_decl): Use import_export_decl.
	* semantics.c (expand_body): Move updates of static_ctors and
	static_dtors to ...
	(expand_or_defer_fn): ... here.
	* tree.c (no_linkage_check): Add relaxed_p parameter.

2004-07-28  Eric Christopher  <echristo@redhat.com>

	* cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.

2004-07-28  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (struct tree_pair_s): New.
	(typedef tree_pair_p): New.
	(DEF_VEC_O(tree_pair_s)): New.
	(struct lang_type_class): Make vcall_indices a VEC(tree_pair_s).
	(CLASSTYPE_VCALL_INDICES): Update documentation.
	* class.c (get_vcall_index): Adjust.
	(add_vcall_offset): Adjust.

2004-07-27  Kelley Cook  <kcook@gcc.gnu.org>

	* pt.c, typeck.c: Remove spurious carriage returns.

2004-07-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/14429
	* pt.c (coerce_template_template_parms) <PARM_DECL case>: Only check
	when the type of ARG is not dependent.

2004-07-26  Geoffrey Keating  <geoffk@apple.com>

	* g++spec.c (LIBSTDCXX_PROFILE): Default to LIBSTDCXX.
	(lang_specific_driver): If the C++ or math library options don't
	start with '-l', don't count them as added libraries.

2004-07-26  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (xref_basetypes): Adjust base access vector creation.
	* rtti.c (get_pseudo_ti_init, get_pseudo_ti_desc): Adjust base
	access accesses.
	* search.c (dynamic_cast_base_recurse, dfs_access_in_type): Likewise.

2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
	    Brian Ryner  <bryner@brianryner.com>

	PR c++/15000
	PR c++/9283
	* class.c (check_field_decls): Apply hidden visibility if
	-fvisibility-inlines-hidden and inlined unless otherwise specified
	(build_vtable): Set vtable visibility to class visibility.
	(check_field_decls): Default static member visibility to class
	visibility.
	(check_methods): Default method visibility to class visibility.
	* cp-tree.h: Added CLASSTYPE_VISIBILITY and
	CLASSTYPE_VISIBILITY_SPECIFIED macro.
	* decl.c (duplicate_decls): New logic for merging definition decls
	with declaration decls. Added ignore & warning when non default
	applied to global operator new or delete.
	* method.c, optimize.c, rtti.c: Added setting of VISIBILITY_SPECIFIED
	wherever VISIBILITY was changed
	* rtti.c (get_tinfo_decl): Set typeinfo visibility to class
	visibility.
	(tinfo_base_init): Set typeinfo name visibility to class visibility.

2004-07-25  Bernardo Innocenti  <bernie@develer.com>

	* decl.c: Rename all identifiers named `class' to `cl'.
	* cp-tree.h: Likewise.

2004-07-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Use GGC_CNEW.
	* typeck2.c (abstract_virtuals_error): Use GGC_NEW.
	* name-lookup.c (binding_entry_make): Use GGC_NEW.
	(binding_table_construct): Use GGC_CNEWVEC.
	(binding_table_new): Use GGC_NEW.
	(cxx_binding_make): Likewise.
	(begin_scope): Likewise.
	(push_to_top_level): Use GCC_CNEW.
	* parser.c (cp_token_cache_new): Likewise.
	(cp_token_cache_push_token): Likewise.
	(cp_lexer_new_main): Likewise.
	(cp_lexer_new_from_tokens): Likewise.
	(cp_parser_context_new): Likewise.
	(cp_parser_new): Likewise.
	(cp_lexer_new_from_tokens): Use GGC_NEWVEC.
	* lex.c (cxx_make_type): Use GGC_CNEW.
	(retrofit_lang_decl): Use GGC_NEWVAR.
	(cxx_dup_lang_specific_decl): Likewise.
	(copy_lang_type): Likewise.
	* decl.c (use_label): Use GGC_NEW instead of ggc_alloc.
	(save_function_data): Likewise.
	(lookup_label): Use GGC_CNEW instead of ggc_alloc_cleared.
	(cxx_push_function_context): Likewise.

2004-07-25  Richard Henderson  <rth@redhat.com>

	* decl.c (start_preparsed_function): Set DECL_ARTIFICIAL and
	DECL_IGNORED_P on RESULT_DECL.
	* semantics.c (finalize_nrv): Copy them too.

2004-07-23  Nathan Sidwell  <nathan@codesourcery.com>

	* search.c (lookup_conversion_operator): Avoid two loops.
	(add_conversions): Remove.
	(check_hidden_convs, split_conversions,
	lookup_conversions_r):	New.
	(lookup_conversions): Use lookup_conversions_r.

2004-07-22  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (get_template_base): Check type is completable.

2004-07-21  Eric Christopher  <echristo@redhat.com>

	* decl.c (poplevel): Inline unused variable checking.
	Change formatting.

2004-07-21  Paolo Bonzini  <bonzini@gnu.org>

	* typeck.c (build_binary_op): Do not use RDIV_EXPR for
	integer vectors.

2004-07-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14497
	* pt.c (check_explicit_specialization): Remove extension to accept
	specializations without template headers. Fall-through to normal
	processing.

2004-07-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/509
	* pt.c (determine_specialization): New parameter template_count.
	Disambiguate between member templates and member functions counting
	the template headers.
	(check_explicit_specialization): Update caller.
	(tsubst_friend_function): Likewise.

2004-07-20  Steven Bosscher  <stevenb@suse.de>

	* cp-tree.def (TINST_LEVEL): Make it an 'x' node.
	* cp-tree.h (tinst_level_t): New tree type.
	(union lang_tree_node): Handle it.
	(TINST_LOCATION): New accessor macro.
	(make_tinst_level): New prototype.
	* cp-lang.c (cp_tree_size): Handle TINST_LEVEL.
	* decl.c (cp_tree_node_structure): Likewise.
	* error.c (print_instantiation_full_context): Use TINST_LOCATION.
	(print_instantiation_partial_context): Likewise.
	* pt.c (pop_tinst_level): Likewise.
	 (push_tinst_level): Use make_tinst_level.
	* tree.c (make_tinst_level): New function.
	(cp_walk_subtrees): Walk TINST_DECL for a TINST_LEVEL node.

2004-07-20  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (cp_parser_simple_type_specifier): Fix typo.

	PR c++/16637
	* parser.c (cp_parser_simple_type_specifier): Do not record usage
	of globally-qualified names.

2004-07-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/16175
	* error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output
	cv qualifier.

2004-07-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16623
	* cp-tree.h (lang_type_class): Add lazy_assignment_op.
	(CLASSTYPE_LAZY_ASSIGNMENT_OP): New macro.
	* class.c (add_implicitly_declared_members): Use
	CLASSTYPE_LAZY_ASSIGNMENT_OP.
	* method.c (lazily_declare_fn): Clear
	CLASSTYPE_LAZY_ASSIGNMENT_OP.
	* search.c (lookup_fnfields_1): Check it.

2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (vec_binfo_member): Remove.
	* tree.c (vec_binfo_member): Remove.

	* cp-tree.h (struct lang_type_class): Remove vfields field.
	(CLASSTYPE_VFIELDS): Remove.
	(SET_BINFO_NEW_VTABLE_MARKED): Adjust.
	* class.c (determine_primary_base): Remove CLASSTYPE_VFIELDS
	handling.
	(dfs_modify_vtables): Use TYPE_CONTAINS_VPTR_P.
	(finish_struct_1): Remove CLASSTYPE_VFIELDS handling.
	* init.c (dfs_initialize_vtbl_ptrs): Use TYPE_CONTAINS_VPTR_P.

2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (DEF_VEC_P(tree)): Remove here.
	(BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
	Moved to common.
	(BINFO_LANG_SLOTS): Remove.
	* tree.c (copy_binfo): Adjust BINFO creation and accessors.
	* decl.c (xref_basetypes): Adjust BINFO creation and accessors.
	* class.c (check_bases): Adjust BINFO accessors.
	(determine_primary_base, finish_struct_bits,
	maybe_warn_about_overly_private_class, warn_hidden,
	walk_subobject_offsets, propagate_binfo_offsets, end_of_class,
	warn_about_ambiguous_bases, get_vfield_name,
	dump_class_hierarchy_r, build_vtt_inits, accumulate_vtbl_inits,
	add_vcall_offset_vtbl_entries_r): Likewise.
	* dump.c (cp_dump_tree): Likewise.
	* init.c (sort_mem_initializers, expand_member_init, build_delete,
	push_base_cleanups): Likewise.
	* method.c (do_build_copy_constructor, do_build_assign_ref,
	synthesize_exception_spec): Likewise.
	name-lookup.c (arg_assoc_class): Likewise.
	* pt.c (instantiate_class_template,
	get_template_base_recursive): Likewise.
	* rtti.c (get_pseudo_ti_init, get_pseudo_ti_desc): Likewise.
	* typeck2.c (process_init_constructor): Likewise.
	* search.c (lookup_base_r, dynamic_cast_base_recurse,
	dfs_access_in_type, dfs_walk_real, look_for_overrides,
	types_overlap_p, copied_binfo, original_binfo): Likewise.
	(binfo_for_vtable): Remove

2004-07-20  Steven Bosscher  <stevenb@suse.de>

	* cp-tree.h (struct lang_decl_flags): Unify the template_info and
	thunk_alias, and the access and virtual_offset fields.
	(THUNK_VIRTUAL_OFFSET, THUNK_ALIAS): Adjust.
	* decl.c (finish_case_label): Update c_add_case_node call.

2004-07-19  Mark Mitchell  <mark@codesourcery.com>

	Revert patch for PR c++/16623.

2004-07-19  Kelley Cook  <kcook@gcc.gnu.org>

	* except.c: Remove two spurious carriage returns.

2004-07-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16623
	* cp-tree.h (lang_type_class): Add lazy_assignment_op.
	(CLASSTYPE_LAZY_ASSIGNMENT_OP): New macro.
	* class.c (add_implicitly_declared_members): Use
	CLASSTYPE_LAZY_ASSIGNMENT_OP.
	* method.c (lazily_declare_fn): Clear
	CLASSTYPE_LAZY_ASSIGNMENT_OP.
	* search.c (lookup_fnfields_1): Check it.

2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (add_method): Delay adding the slot until the end.
	(determine_primary_base): Adjust VEC_iterate invokation.
	(resort_type_method_vec, finish_struct_methods, warn_hidden,
	walk_subobject_offsets, end_of_class, warn_about_ambiguous_bases,
	build_vtbl_initializer): Likewise.
	* init.c (sort_mem_initializers, build_delete, push_base_cleanups,
	build_vbase_delete): Likewise.
	* method.c (do_build_copy_constructor): Likewise.
	* name-lookup.c (new_class_binding, print_binding_level,
	poplevel_class, store_class_bindings, push_to_top_level,
	pop_from_top_level): Likewise.
	* pt.c (check_explicit_specialization): Likewise.
	* search.c (lookup_conversion_operator, lookup_fnfields_1,
	get_pure_virtuals, add_conversions, dfs_check_overlap,
	binfo_for_vbase): Likewise.

2004-07-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/12170
	* pt.c (unify) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Use only
	innermost set of template arguments during deduction.  Simplify.

2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>

	* typeck.c (build_modify_expr, build_x_modify_expr): Set
	TREE_NO_WARNING on assignments with an operator other than '='.

2004-07-10  Steven Bosscher  <stevenb@suse.de>
	    Joseph S. Myers  <jsm@polyomino.org.uk>

	* cp-tree.h (C_SET_EXP_ORIGINAL_CODE): Remove.
	* decl2.c (grokfield): Don't check current_class_depth via
	unused TREE_COMPLEXITY.
	* semantics.c (finish_parenthesized_expr): Set TREE_NO_WARNING
	to avoid the missing parentheses warning.
	Don't set C_SET_EXP_ORIGINAL_CODE.

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

	* tree.c (no_linkage_helper): Remove.
	(no_linkage_check): Don't use walk_tree_without_duplicates.

	* mangle.c (write_expression): Issue a sorry for zero-operand
	functional casts.

2004-07-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13092
	* init.c (build_offset_ref): Build SCOPE_REF with non-null
	TREE_TYPE for non-dependent names.
	* typeck.c (build_x_unary_op): Handle non-dependent SCOPE_REF.
	* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
	unknown_type_node as its TREE_TYPE.
	* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
	* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
	(dump_expr) <SCOPE_REF case>: Likewise.

2004-07-17  Jason Merrill  <jason@redhat.com>

	PR c++/16115
	* call.c (type_passed_as): Make the invisible reference type
	__restrict.
	* cp-gimplify.c (gimplify_cleanup_stmt): Rename to
	cp_genericize_r.  Handle invisible reference lowering.
	(is_invisiref_parm): New fn.
	(cp_genericize): Adjust the types of invisible reference parms.
	Don't repeat the walk for clones.
	* decl.c (store_parm_decls): Don't generate any code for clones.

2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>

	* cp-tree.h (builtin_function): Declare.

2004-07-16  Mark Mitchell  <mark@codesourcery.com>

	* class.c (finish_struct_methods): Remove unncessary code.
	(add_implicitly_declared_members): Create declarations for default
	constructors and copy constructors lazily.
	* cp-tree.h (lang_type_class): Remove lazy_default_ctor and
	lazy_copy_ctor.
	(CLASSTYPE_LAZY_DEFAULT_CTOR): New macro.
	(CLASSTYPE_LAZY_COPY_CTOR): Likewise.
	* decl2.c (check_classfn): Robustify.
	(locate_dtor): Handle empty CLASSTYPE_METHOD_VEC.
	(locate_ctor): Handle lazy default constructors.
	(locate_copy): Handle lazy copy constructors.
	(implicitly_declare_fn): Make sure we're looking at the
	TYPE_MAIN_VARIANT for a class before creating functions.  Don't
	set TYPE_HAS_CONSTRUCTOR.
	(lazily_declare_fn): New function.
	* name-lookup.c (constructor_name_full): Simplify.
	* search.c (lookup_fnfields_1): Lazily create methods, as
	necessary.
	(lookup_for_overrides): Handle empty CLASSTYPE_METHOD_VEC.

2004-07-16  Steven Bosscher  <stevenb@suse.de>

	* cp-tree.h (struct lang_type): Don't have three GTY options on a
	single bit GTY desc.

2004-07-16  Richard Henderson  <rth@redhat.com>

	* cp-lang.c (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING): Die.
	* cp-tree.h (cp_copy_res_decl_for_inlining): Remove.
	* tree.c (cp_copy_res_decl_for_inlining): Remove.

2004-07-16  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (finish_struct_bits): Use for loop.
	(propagate_binfo_offsets): Do primary binfo outside of loop.

	PR c++/16583
	* dump.c (cp_dump_tree): Don't dump the bases if there's no
	binfo.

	* pt.c (tsubst) <TREE_BINFO case>: We should never get here.

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

	* cp-tree.h (lang_type_class): Remove has_real_assign_ref and
	has_abstract_assign_ref.  Make methods a VEC(tree) *.
	(TYPE_HAS_CONST_ASSIGN_REF): Add documentation.
	(CLASSTYPE_CONSTRUCTORS): Adjust for changes to CLASSTYPE_METHOD_VEC.
	(CLASSTYPE_DESTRUCTORS): Likewise.
	(TYPE_HAS_REAL_ASSIGN_REF): Remove.
	(TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
	(add_method): Change prototoype.
	* class.c (add_method): Remove error_p parameter.  Adjust for
	changes to CLASSTYPE_METHOD_VEC.
	(handle_using_decl): Adjust call to add_method.
	(maybe_warn_about_overly_private_class): Adjust for
	changes to CLASSTYPE_METHOD_VEC.
	(resort_type_method_vec): Likewise.
	(finish_struct_methods): Likewise.
	(check_for_override): Likewise.
	(warn_hidden): Likewise.
	(add_implicitly_declared_members): Defer creation of assignment
	operators.  Adjust call to add_method.
	(clone_function_decl): Adjust call to add_method.
	(check_bases_and_members): Don't set TYPE_HAS_REAL_ASSIGN_REF.
	(finish_struct_1): Use CLASSTYPE_DESTRUCTORS.
	* decl.c (grok_special_member_properties): Don't set
	TYPE_HAS_ABSTRACT_ASSIGN_REF.
	* decl2.c (check_classfn): Adjust for
	changes to CLASSTYPE_METHOD_VEC.
	* method.c (locate_dtor): Use CLASSTYPE_DESTRUCTORS.
	(locate_ctor): Use CLASSTYPE_CONSTRUCTORS.
	(locate_copy): Adjust for changes to CLASSTYPE_METHOD_VEC.
	(implicitly_declare_fn): Set DECL_SOURCE_LOCATION.  Do not call
	cp_finish_decl.
	* pt.c (check_explicit_specialization): Adjust for
	changes to CLASSTYPE_METHOD_VEC.
	(instantiate_class_template): Do not set
	TYPE_HAS_ABSTRACT_ASSIGN_REF.
	* ptree.c (cxx_print_type): Don't try to print
	CLASSTYPE_METHOD_VEC.
	* rtti.c (emit_support_tinfos): Use CLASSTYPE_DESTRUCTORS.
	* search.c (lookup_field_r): Adjust for
	changes to CLASSTYPE_METHOD_VEC.
	(lookup_fnfields): Likewise.
	(lookup_conversion_operator): Likewise.
	(lookup_fnfields_1): Likewise.  Create assignment operators
	lazily.
	(look_for_overrides_here): Adjust for
	changes to CLASSTYPE_METHOD_VEC.
	(add_conversions): Likewise.
	* semantics.c (finish_member_declaration): Adjust call to add_method.

2004-07-15  Jason Merrill  <jason@redhat.com>

	* cp-lang.c (cxx_types_compatible_p): To the middle-end,
	references and pointers are compatible.

2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (xref_basetypes): Refactor.
	* tree.c (copy_base_binfos): Replace with ...
	(copy_binfo): ... this. Deep copy the given binfo, (not the just
	bases of the given base).
	* cp-tree.h (copy_base_binfo): Remove.
	(copy_binfo): Declare.

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

	* name-lookup.c (set_inherited_value_binding_p): Add class_type
	parameter.
	(get_class_binding): Adjust.
	(push_class_level_binding): Don't use set_inherited_value_binding_p.

2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (finish_struct_bits): Don't set TYPE_HAS_CONVERSION here.
	* decl.c (xref_basetypes): Set it here.

	* class.c (check_bases): Don't set CLASSTYPE_NON_AGGREGATE here.
	Don't check for incomplete base.
	(get_vfield_name): Simplify while loop.
	* decl.c (xref_basetypes): Set CLASSTYPE_NON_AGGREGATE here.

2004-07-14  Mark Mitchell  <mark@codesourcery.com>

	* lex.c (cxx_make_type): Remove call to get_pointer_type.

	* cp-tree.h (IDENTIFIER_VALUE): Remove.
	(BINFO_PUSHDECLS_MARKED): Likewise.
	(maybe_inject_for_scope_var): Likewise.
	(push_class_decls): Likewise.
	* name-lookup.h (push_class_binding): Remove.
	(innermost_non_namespace_value): New function.
	(outer_binding): Likewise.
	* class.c (add_method): Push bindings before adding to
	TYPE_METHODS.
	(restore_class_cache): Do not restore class_shadowed.
	(pushclass): Do not add USING_DECLs.  Do not call
	push_class_decls.
	* config-lang.in (gtfiles): Remove $(srcdir)/cp/search.c.
	* decl.c (pushdecl): Use outer_binding.
	(poplevel): Set the scope for an out-of-scope for-loop declaration
	appropriately.
	(cp_finish_decl): Don't call maybe_inject_for_scope_var.
	* name-lookup.c (new_class_binding): New function.
	(push_binding): Use it.
	(pushdecl): Use innermost_non_namespace_value.
	(maybe_inject_for_scope_var): Remove.
	(push_class_binding): Remove.
	(set_inherited_value_binding_p): New function.
	(get_class_binding): New function.
	(push_class_level_binding): Assert that the current_class_type is
	being defined.
	(outer_binding): New function.
	(innermost_non_namespace_value): Likewise.
	(lookup_name_real): Use outer_binding.
	(lookup_name_current_level): Ignore out-of-scope variables.
	* pt.c (check_template_shadow): Use innermost_non_namespace_value.
	(lookup_template_class): Likewise.
	* search.c (dfs_push_type_decls): Remove.
	(dfs_push_decls): Likewise.
	(setup_class_bindings): Likewise.
	(lookup_field_1): Handle USING_DECLs from dependent scopes.
	(marked_pushdecls_p): Remove.
	(unmarked_pushdecls_p): Remove.
	(marked_identifiers): Remove.
	(setup_class_bindings): Remove.
	(dfs_push_type_decls): Remove.
	(dfs_push_decls): Remove.
	(push_class_decls): Remove.

2004-07-13  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16518
	PR c++/16337
	* decl.c (grokvardecl): Make declspecs parameter const.
	(grokdeclarator): Likewise.  Adjust accordingly.
	* decl.h (grokdeclarator): Adjust declaration.
	* parser.c (cp_parser_init_declarator): Do not clear
	decl_specifiers->attributes.

	* cp-tree.h (lang_identifier): Remove class_value.
	(IDENTIFIER_CLASS_VALUE): Remove.
	(pop_class_decls): Likewise.
	(init_search_processing): Likewise.
	* class.c (handle_using_decl): Use lookup_member, not
	IDENTIFIER_CLASS_VALUE.
	(restore_class_cache): New function, split out from ...
	(pushclass): ... here.  Do not call clear_identifier_class_values.
	(invalidate_class_lookup_cache): Do not clear
	IDENTIFIER_CLASS_VALUE.
	(popclass): Do not call pop_class_decls.
	(maybe_note_name_used_in_class): Do not save names looked up after
	the class is complete.  Use lookup_member, not
	IDENTIFIER_CLASS_VALUE.
	* config-lang.in (gtfiles): Add $(srcdir)/cp/search.c.
	* decl.c (cxx_init_decl_processing): Do not call
	init_search_processing.
	* method.c (do_build_copy_constructor): Remove unnecessary code.
	(do_build_assign_ref): Likewise.
	* name-lookup.c (pushdecl): Use lookup_member, not
	IDENTIFIER_CLASS_VALUE.
	(set_identifier_type_value_with_scope): Set TREE_TYPE on the
	type_shadowed list.
	(poplevel_class): Do not restore IDENTIFIER_CLASS_VALUE.
	(push_class_binding): Do not set it.
	(clear_identifier_class_values): Remove.
	(push_class_level_binding): Do not set IDENTIFIER_CLASS_VALUE.
	(store_binding): Do not save it.
	(pop_from_top_level): Do not restore it.
	* name-lookup.h (cxx_saved_binding): Remove class_value.
	(clear_identifier_class_values): Remove.
	* ptree.c (cxx_print_identifier): Do not print
	IDENTIFIER_CLASS_VALUE.
	* search.c (search_obstack): Remove.
	(push_stack_level): Remove.
	(pop_stack_level): Remove.
	(search_level): Remove.
	(search_stack): Remove.
	(lookup_member): Don't check IDENTIFIER_CLASS_VALUE.
	(setup_class_bindings): Use IDENTIFIER_MARKED, not
	IDENTIFIER_CLASS_VALUE.
	(marked_identifiers): New variable.
	(push_class_decls): Clear IDENTIFIER_MARKED.
	(pop_class_decls): Don't call pop_search_level.
	(init_search_processing): Remove.

2004-07-12  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (get_aggr_typedef): Remove.
	* init.c (get_aggr_typedef): Likewise.

	* name-lookup.c (push_class_level_binding): Simplify.

2004-07-12  Andrew Pinski  <apinski@apple.com>

	PR c++/16475
	Revert:
	2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
		PR c++/16276
		* rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
		is not public.

2004-07-12  Eric Christopher  <echristo@redhat.com>

	* parser.c (cp_parser_class_head): Remove unused variable.

2004-07-12  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* decl.c (grok_op_properties): Reject [de-]allocation functions
	declared in a namespace, or declared as static.

2004-07-12  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (make_binfo): Remove.
	* decl.c (xref_basetypes): Use make_tree_binfo directly.
	* tree.h (copy_base_binfos): Likewise.
	(make_binfo): Remove.

	* call.c (build_user_type_conversion_1, build_new_op,
	check_constructor_callable, build_temp,
	perform_direct_initialization_of_possible): Pass type directly to
	lookup_fnfields & build_special_member_call.
	(build_special_member_call): Accept a type, and complete it.
	* class.c (finish_stuct_bits): Copy the BINFOs here.
	* cvt.c (ocp_convert): Pass type directly to
	build_special_member_call.
	* decl.c (build_ptrmemfunc_type): Call xref_bastypes here.
	(xref_basetypes): Allocate the binfo here. Adjust.
	* init.c (build_init, build_new_1): Pass type directly to
	build_special_member_call.
	* lex.c (cxx_make_type): Do not allocate binfo here.
	* name-lookup.c (arg_assoc_class): Incomplete types have no binfo.
	* parser.c (cp_parser_class_head): Always call xref_basetypes.
	* pt.c (instantiate_class_template): Likewise. Inhibit access
	checking for template friends.
	* ptree.c (cxx_print_type): Adjust record printing.
	* search.c (lookup_base): When taking a type, complete it before
	looking for a binfo.
	(lookup_member): Delay completing a type.
	(push_class_decls): Don't walk an incomplete type.
	(lookup_conversions): Likewise.
	* semantics.c (finish_stmt_expr_expr): Pass type directly to
	build_special_member_call.
	* tree.c (copy_base_binfos): Adjust.
	(make_binfo): Likewise.
	* typeck.c (build_modify_expr): Pass type directly to
	build_special_member_call.
	* typeck2.c (process_init_constructor): Check a binfo exists.
	(build_m_component_ref): Allow accessing an incomplete type.
	(build_functional_cast): Pass type directly to
	build_special_member_call.

2004-07-12  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/2204
	* config-lang.in (gtfiles): Add typeck2.c.
	* Make-lang.in: Tweak typeck2.c dependencies, and add rule for
	gt-cp-typeck2.h.
	* cp-tree.h: Declare complete_type_check_abstract.
	* typeck2.c (pat_calc_hash, pat_compare,
	complete_type_check_abstract): New functions.
	(abstract_virtuals_error): If the type is abstract, register the
	declaration within abstract_pending_vars for further checks.
	Inspect also dependent types. Handle IDENTIFIER_NODEs as decl.
	* decl.c (cp_finish_decl): Do not strip array types.
	(create_array_type_for_decl): Check for abstractness of the element
	type.
	(complete_vars): Call complete_type_check_abstract.
	* class.c (finish_struct): Prepare a list of virtual functions for
	template types, and call complete_vars on it to check for abstractness.

2004-07-12  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/14107
	* decl.c (finish_function): Remove temporary band-aid.

2004-07-11  Mark Mitchell  <mark@codesourcery.com>

	* call.c (build_operator_new_call): Avoid using push_to_top_level.
	(build_new_op): Adjust call to lookup_function_nonclass.
	* name-lookup.c (identifier_type_value): Adjust call to
	lookup_name_real.
	(lookup_name_real): Add block_p parameter.
	(lookup_name_nonclass): Adjust call to lookup_name_real.
	(lookup_function_nonclass): Likewise.
	(lookup_name): Likewise.
	* name-lookup.h (lookup_name_real): Change prototype.
	(lookup_name_nonclass): Likewise.
	* parser.c (cp_parser_lookup_name): Likewise.

	* cp-tree.h (saved_scope): Make old_bindings a vector.
	(unuse_fields): Remove.
	* name-lookup.h (cxx_saved_binding): Define it.
	* class.c (pushclass): Don't use unuse_fields.
	* name-lookup.c (cxx_saved_binding_make): Remove.
	(store_binding): Add new bindings to a vector, using an
	accumulator style, rather than adding them to a list.
	(store_bindings): Adjust accordingly.
	(store_class_bindings): Likewise.
	(push_to_top_level): Likewise.
	(pop_from_top_level): Likewise.
	* optimize.c (maybe_clone_body): Must push_to_top_level and
	pop_from_top_level calls outside of loop.
	* parser.c (cp_parser_class_specifier): Move push_scope/pop_scope
	calls here from cp_parser_late_parsing_default_args.
	(cp_parser_save_default_args): Record the class type in which the
	function is declared.
	(cp_parser_late_parsing_default_args): Do not call
	push_nested_class/pop_nested_class.
	* search.c (dfs_unuse_fields): Remove.
	(unuse_fields): Remove.

2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>

	* cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP, LANG_HOOKS_PUSHLEVEL,
	LANG_HOOKS_POPLEVEL, LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Remove.
	* cp-tree.h (poplevel): Declare.
	(set_block): Remove.
	* decl.c (set_block): Remove.

2004-07-10  Mike Stump  <mrs@apple.com>

	* decl2.c (import_export_class): Never export/import vtables
	with inline key functions.

2004-07-09  Steven Bosscher  <stevenb@suse.de>

	* typeck.c (c_expand_asm_operands): Remove.

2004-07-09  Mike Stump  <mrs@apple.com>

	* typeck.c (build_class_member_access_expr): Skip null deref
	warning when we don't dereference it.

2004-07-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/8211
	PR c++/16165
	* class.c (check_field_decls): Improve -Weffc++ warning: do not
	warn for pointers to functions/members, or for classes without
	destructors.

2004-07-08  Mark Mitchell  <mark@codesourcery.com>

	* name-lookup.h (struct cp_binding_level): Update documentation
	for class_shadowed.

2004-07-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/16169
	* typeck.c (check_return_expr): Improve -Weffc++ warning: handle
	returning CALL_EXPR, and non-reference return type.

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

	* name-lookup.c (push_binding): Use VEC_reserve.

2004-07-08  Richard Henderson  <rth@redhat.com>

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

2004-07-07  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (saved_scope): Remove x_previous_class_type and
	x_previous_class_values; add x_previous_class_level.
	(previous_class_type): Remove.
	(previous_class_values): Remove.
	(previous_class_level): New macro.
	* class.c (pushclass): Restore the identifier cache more
	expeditiously.
	(invalidate_class_lookup_cache): Use vector for class_shadowed and
	previous_class_values.
	* decl.c (poplevel): Likewise.
	* name-lookup.c (cxx_binding_init): New function.
	(cxx_binding_make): Use it.
	(push_binding): For a binding in a class level, use a vector of
	cp_class_binding nodes.
	(push_binding_level): New function.
	(begin_scope): Use it.
	(leave_scope): Do not put class binding levels on the free list.
	(print_binding_level): Adjust for the fact that class_shadowed is
	a vector.
	(poplevel_class): Likewise.
	(clear_identifier_class_values): Likewise.
	(push_class_level_binding): Likewise.
	(set_class_shadows): Remove.
	(store_binding): New function.
	(store_class_bindings): New function.
	(push_to_top_level): Use store_class_bindings as appropriate.
	(pop_from_top_level): Use previous_class_level, not
	previous_class_type.
	* name-lookup.h (cp_class_binding): New type.
	(cp_binding_level): Use a vector object for class_shadowed.
	(push_binding_level): Declare.
	(set_class_shadows): Remove.

2004-07-07  Andrew Pinski  <apinski@apple.com>

	* class.c (instantiate_type): BUFFER_REF is dead.
	* lex.c (init_operators): IN_EXPR is dead.

2004-07-07  Jason Merrill  <jason@redhat.com>

	PR c++/16334
	* call.c (build_new_op): Give overload warnings for built-in
	candidates.

2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/16276
	* rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
	is not public.

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

	* cp-tree.h (CLASSTYPE_N_BASECLASSES): Remove.
	* class.c (build_primary_vtable, check_bases,
	determine_primary_base, finish_struct_bits,
	maybe_warn_about_overly_private_class, dfs_find_final_overrider_q,
	get_basefndecls, warn_hidden, walk_subobject_offsets,
	build_base_fields, create_vtable_ptr, propagate_binfo_offsets,
	layout_virtual_bases, end_of_class, warn_about_ambiguous_bases,
	finish_struct_1, get_vfield_name, contains_empty_class_p,
	dump_class_hierarchy_r, finish_vtbls, build_vtt_inits,
	dfs_ctor_vtable_bases_queue_p, accumulate_vtbl_inits,
	add_vcall_offset_vtbl_entries_r, cp_fold_obj_type_ref): Adjust
	BINFO macros.
	* decl.c (xref_basetypes): Likewise.
	* dump.c (cp_dump_tree): Likewise.
	* error.c (dump_expr): Likewise.
	* init.c (sort_mem_initializers, expand_member_init,
	push_base_cleanups): Likewise.
	* method.c (do_build_copy_constructor, do_build_assign_reg,
	synthesize_exception_spec): Likewise.
	* name-lookup.c (arg_assoc_class): Likewise.
	* pt.c (instantiate_class_template, tsubst,
	get_template_base_recursive): Likewise.
	* ptree.c (cxx_print_type): Likewise.
	* rtti.c (get_psuedo_ti_init, get_pseudo_ti_desc): Likewise.
	* search.c (lookup_base_r, dynamic_cast_base_recurse,
	dfs_access_in_type, access_in_type, lookup_field_queue_p,
	bfs_walk, dfs_walk_real, look_for_overrides, markedp, unmarkedp,
	marked_pushdecls_p, unmarked_pushdecls_p, dfs_debug_markedp,
	dfs_debug_unmarkedp, dfs_check_overlap, dfs_no_overlap_yet,
	binfo_for_vtable, copied_binfo, original_binfo): Likewise
	* tree.c (copy_base_binfos, make_binfo): Likewise.
	* typeck.c (commmon_base_type): Likewise
	* typeck2.c (process_init_constructor): Likewise

2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>

	* decl.c (check_tag_decl): Name redeclared type in diagnostic.

2004-07-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/3671
	* pt.c (convert_nontype_argument): Disallow conversions between
	different enumeration types.

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

	* cp-tree.h (BINFO_MARKED): Remove.
	(BINFO_VTABLE_PATH_MARKED, BINFO_NEW_VTABLE_MARKED,
	BINFO_DEPENDENT_BASE_P, BINFO_LOST_PRIMARY_P,
	BINFO_INDIRECT_PRIMARY_P): Use appropriate BINFO_FLAG_n.
	(SET_BINFO_NEW_VTABLE_MARKED): Use BINFO_VIRTUAL_P.
	* class.c (build_base_path): Use BINFO_VIRTUAL_P.
	(mark_primary_bases, determine_primary_base, base_derived_from,
	dfs_find_final_overrider, dfs_find_final_overrider_q,
	dfs_find_inal_overrider_post, update_vtable_entry_for_fn,
	dfs_modify_vtables, walk_subobject_offsets,
	layout_nonempty_base_or_field, build_base_field,
	build_base_fields, propagate_binfo_offsets, layout_virtual_bases,
	end_of_class, get_vfield_name, dump_class_hierarchy, dump_vtable,
	finish_vtbls, build_vtt_inits, dfs_build_secondary_vptr_vtt_inits,
	build_ctor_vtbl_group, accumulate_vtble_inits,
	dfs_accumulate_vtbls_inits, build_vbase_offset_vtbl_entries,
	build_vcall_offset_vtbl_entries, add_vcall_offset_vtbl_entries_r,
	add_vcall_offset_vtbl_entries_1): Likewise.
	* decl.c (xref_basetypes): Incomming virtual base indicated by
	TREE_TYPE. Adjust.
	* dump.c (cp_dump_tree): Use BINFO_VIRTUAL_P.
	* init.c (finish_init_stmts, sort_mem_initializers,
	emit_mem_initializers, build_vtble_address, expand_member_init,
	push_base_cleanups): Likewise.
	* method.c (do_build_copy_constructor): Likewise.
	* pt.c (instantiate_class_template,
	get_template_base_recursive): Likewise.
	* rtti.c (dfs_class_hint_mark, get_pseudo_ti_init,
	get_pseudo_ti_desc): Likewise.
	* search.c (lookup_base_r, dynamic_cast_base_recurse,
	binfo_from_vbase, binfo_via_virtual, copied_binfo,
	original_binfo): Likewise.
	* semantics.c (finish_base_specifier): Virtualness is indicated
	by TREE_TYPE.
	* tree.c (copy_base_binfos): Use BINFO_VIRTUAL_P.

2004-07-06  Mark Mitchell  <mark@codesourcery.com>

	Revert:
	2004-06-24  Jason Merrill  <jason@redhat.com>
	PR c++/16115
	* decl.c (grokparms): Give the PARM_DECL reference type if the
	parameter is passed by invisible reference.

2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* cp-lang.c (cp_var_mod_type_p): Add extra arg.
	* decl.c (grokdeclarator): Extra arg to variably_modified_type_p.
	* pt.c (check_instantiated_args, unify): Likewise.

2004-07-05  Phil Edwards  <phil@codesourcery.com>

	* Make-lang.in (check-c++, lang_checks):  Add some comments.

2004-07-05  Zack Weinberg  <zack@codesourcery.com>

	* cp-mudflap.c: Delete file.
	* Makefile.in: Remove all references to cp-mudflap.o.

2004-07-05  Zack Weinberg  <zack@codesourcery.com>

	* decl.c (cxx_init_decl_processing): Call
	build_common_tree_nodes before creating the global NAMESPACE_DECL.

2004-07-05  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/2518
	* call.c (build_operator_new_call): Look only at global scope.

2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (enforce_access): Expect TREE_BINFO.
	* class.c (binfo_ctor_vtable): Check TREE_BINFO.
	* cp-tree.h (RECORD_OR_UNION_TYPE_CHECK): Remove.
	(BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
	Adjust.
	(BINFO_LANG_ELTS): Remove.
	(BINFO_LANG_SLOTS): New.
	(TYPE_RAISES_EXCEPTIONS, ENUM_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1.
	(CLASSTYPE_TEMPLATE_INFO): Adjust.
	* pt.c (tsubst): Split TREE_BINFO case from TREE_VEC case.
	* search.c (lookup_member): Check TREE_BINFO.
	* semantics.c (perform_or_defer_access_check): Likewise.
	(check_accessibility_of_qualified_id): Check
	deferred_access_no_check.
	* tree.c (make_binfo): Use make_tree_binfo.

2004-07-04  Mark Mitchell  <mark@codesourcery.com>

	* method.c (implicitly_declare_fn): Set linkage of generated
	functions.

2004-07-04  Richard Henderson  <rth@redhat.com>

	* typeck.c (cxx_mark_addressable): Don't put_var_into_stack.

2004-07-03  Scott Brumbaugh  <scottb.lists@verizon.net>

	PR c++/3761
	* name-lookup.c (push_class_level_binding): Don't pass a
	TREE_LIST of ambiguous names to check_template_shadow as it
	only handles declarations. Instead, pull the declaration
	out and pass that.

2004-07-03  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14971
	* pt.c (check_explicit_specialization): Clarify error message.

2004-07-02  Richard Henderson  <rth@redhat.com>

	* tree.c (cp_unsave_r): Update remap_save_expr call.

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

	PR c++/16240
	* mangle.c (write_template_arg): Correct mangling.

	PR c++/16297
	* decl.c (grokdeclarator): Robustify.

2004-07-01  Richard Henderson  <rth@redhat.com>

	* class.c (fixed_type_or_null): Don't handle RTL_EXPR.
	* method.c (synthesize_method): Don't clear_last_expr.
	* name-lookup.c (maybe_push_cleanup_level): Likewise.

2004-07-01  Nick Clifton  <nickc@redhat.com>

	* decl2.c (import_export_class): Invoke the
	import_export_class field in the gcc_target structure if it is not
	empty.

2004-06-30  Richard Henderson  (rth@redhat.com>

	* decl.c (start_preparsed_function): Don't set immediate_size_expand.
	* method.c (use_thunk): Likewise.

2004-06-30  Joseph S. Myers  <jsm@polyomino.org.uk>

	* call.c (build_over_call), typeck.c (build_function_call): Call
	check_function_arguments instead of check_function_format.

2004-06-30  Joseph S. Myers  <jsm@polyomino.org.uk>

	* call.c (build_over_call), typeck.c (build_function_call): Update
	calls to check_function_format.

2004-06-30  Richard Henderson  <rth@redhat.com>

	* call.c (build_over_call): Use __builtin_memcpy for copying
	CLASS_AS_BASE rather than funny casting.

2004-06-30  Richard Henderson  <rth@redhat.com>

	* init.c (build_new_1): Fill in TYPE_DOMAIN, TYPE_SIZE and
	TYPE_SIZE_UNIT of full_type.

2004-06-30  Per Bothner  <per@bothner.com>

	Conditionally compile support for --enable-mapped_location.
	* decl.c (pop_label):  Handle (imperfectly) USE_MAPPED_LOCATION case.
	* decl2.c:  If USE_MAPPED_LOCATION, don't do some line number
	adjustments - which I don't understand.
	* error.c (dump_decl):  Rename "<interrnal>" to "<built-in>".
	* error.c:  Use LOCATION_FILE and EXPR_LOCATION macros.
	(print_instantiation_partial_context):  Use expand_location.
	* decl.c (duplicate_decl):  Use new DECL_IS_BUILTIN macro.
	* name-lookup.c:  Likewise.
	* lex.c (cxx_init):  Likewise.  Also use BUILTINS_LOCATION.
	* name-lookup.c:  Use input_line macro.
	* parser.c (cp_lexer_get_preprocessor_token):  Use UNKNOWN_LOCATION.
	(cp_parser_statement):  Rename locaal variable statement_locus to
	statement_location and use SET_EXPR_LOCATION macro.
	* pt.c:  Handle USE_MAPPED_LOCATION case.  Use new macros.
	* tree.c (cp_walk_subtrees):  Likewise.

2004-06-29  Per Bothner  <per@bothner.com>

	* tree.c (build_min_nt, build_min, build_min_non_dep):
	Don't set TREE_COMPLEXITY from input_line.

2004-06-29  Paul Brook  <paul@codesourcery.com>

	* init.c: Include target.h.
	(get_cookie_size): Remove and replace with target hook.
	Update callers.
	(build_new_1): Store the element size in the cookie.

2004-06-29  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/16260
	* parser.c (cp_parser_template_declaration_after_export): Disable
	access checks here ...
	(cp_parser_class_specifier): ... not here.

2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
	VAR_FUNCTION_OR_PARM_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
	BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Use appropriate
	TREE_CHECK macro.

2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (struct deferred_access): Move to ...
	* semantics.c (struct deferred_access): ... here. Adjust.
	(deferred_access_stack): Make a VEC(deferred_access),
	(deferred_access_free_list): Remove.
	(deferred_access_no_check): New.
	(push_deferring_access_checks, resume_deferring_access_checks,
	stop_deferring_access_checks, pop_deferring_access_checks,
	get_deferred_access_checks, pop_to_parent_deferring_access_checks,
	perform_deferred_access_checks, perform_or_defer_access_check): Adjust.

2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/16174
	* call.c (build_temp): Declare.
	(check_constructor_callable): New.
	(reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for
	CONSTRUCTOR_CALLABLE.
	(convert_like_real, initialize_reference): Use
	check_constructor_callable.
	* cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): New.
	(LOOKUP_*): Renumber.

2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>

	* friend.c (add_friend): Only perform access checks when context
	is a class.
	* lex.c (cxx_make_type): Only create a binfo for aggregate types.
	* parser.c (cp_parser_class_specifier): Disable access checks here
	when parsing the body of a templated class.
	* semantics.c (perform_or_defer_access_checks): Reorder to allow
	NULL binfos when not checking access.

2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>

	Use vector API for vbase list.
	* cp-tree.h: Include vec.h
	(DEF_VEC_P (tree)): New type.
	(struct lang_type_class): Change vbase's member type.
	(binfo_for_vbase): Declare.
	* class.c (determine_primary_base, base_derived_from,
	update_vtable_entry_for_fn, walk_subobject_offsets, end_of_class,
	warn_about_ambiguous_bases, dfs_accumulate_vtbl_inits,
	build_vtbl_initializer): Adjust.
	* decl.c (xref_basetypes): Adjust, accumulate upper bound of
	vbases.
	* init.c (sort_mem_initializers, expand_member_init,
	push_base_cleanups): Adjust.
	* method.c (do_build_copy_constructor): Adjust.
	* search.c (get_pure_virtuals, copied_binfo, original_binfo): Adjust.
	(binfo_for_vbase): New.
	* tree.c (copy_base_binfos): Adjust.

2004-06-28  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (cp_parser_set_decl_spec_type): Fix thinko.

2004-06-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/14123
	* cxx-pretty-print.c (pp_cxx_ptr_operator): Properly put
	paranthesis in case of pointers to array members.
	* error.c (dump_type_prefix): Likewise.
	(dump_type_suffix): Maybe issue a whitespace when printing
	ARRAY_TYPE.

2004-06-27  Mark Mitchell  <mark@codesourcery.com>

	PR c++/16193
	* parser.c (cp_parser_set_decl_spec_type): Refine test for
	redefinition of built-in types.

2004-06-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* error.c (pp_template_argument_list_start): Remove.
	(pp_template_argument_list_end): Likewise.
	(pp_separate_with_comma): Use pp_cxx_separate_with.
	(reinit_global_formatting_buffer): Remove.
	(pp_non_consecutive_character): Likewise.
	(dump_scope): Use pp_cxx_colon_colon.
	(dump_template_parameter): Use pp_cxx_identifier,
	pp_cxx_tree_identifier and pp_cxx_whitespace.
	(dump_templat_bindings): Replace use of pp_string with sequence
	of pp_cxx_whitespace and pp_equal.
	(dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
	pp_cxx_colon_colon, pp_cxx_whitespace throughout.  Don't set
	padding here.
	(dump_aggr_type): Use pp_cxx_identifier amd pp_cxx_tree_identifier.
	(dump_type_prefix): Don't set padding.  Use pp_cxx_whitespace,
	pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star troughout.
	(dump_type_suffix): Use pp_cxx_right_paren, pp_cxx_left_bracket,
	pp_cxx_right_bracket, pp_cxx_identifier throughout,
	(dump_decl): Likewise.
	(dump_template_decl): Likewise.
	(dump_function_decl): Likewise.  Set padding as appropriate.
	(dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier and
	pp_cxx_right_paren.
	(dump_exception_spec): Likewise.
	(dump_function_name): Use pp_cxx_tree_identifier and
	pp_cxx_identifier.
	(dump_template_parms): Use pp_cxx_begin_template_argument_list and
	pp_cxx_end_template_argument_list.
	(dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
	pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier and
	pp_cxx_whitespace throughout.
	(dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
	pp_cxx_right_paren.
	(dump_unary_op): Likewise.
	(reinit_cxx_pp): New function.
	(type_as_string); Use it.
	(expr_as_string): Likewise.
	(decl_as_string); Likewise.
	(context_as_string): Likewise.
	(lang_decl_name): Likewise.
	(decl_to_string): Likewise.
	(expr_to_string): Likewise.
	(parm_to_string): Likewise.
	(type_to_string): Likewise.
	(args_to_string): Likewise.
	(cv_to_string): Likewise.

2004-06-26  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (cp_cv_quals): New type.
	(cp_declarator): Use it instead of "tree" as appropriate.
	(grok_method_quals): Adjust prototype.
	(grokclassfn): Likewise.
	(do_friend): Likewise.
	* decl.c (grokfndecl): Use cp_cv_quals, not tree.
	(grokdeclarator): Likewise.
	* decl2.c (grok_method_quals): Likewise.
	(grokclassfn): Likewise.
	* friend.c (do_friend): Likewise.
	* method.c (implicitly_declare_fn): Adjust call to grokclassfn.
	* parser.c (make_call_declarator): Use cp_cv_quals, not tree.
	(make_pointer_declarator): Likewise.
	(make_reference_declarator): Likewise.
	(make_ptrmem_declarator): Likewise.
	(cp_parser_ptr_operator): Likewise.
	(cp_parser_cv_qualifier_seq_opt): Likewise.
	(cp_parser_cv_qualifier_opt): Remove.
	(cp_parser_new_declarator_opt): Adjust call to
	cp_parser_ptr_operator.
	(cp_parser_conversion_declaration_opt): Likewise.
	(cp_parser_declarator): Use cp_cv_quals, not tree.
	(cp_parser_direct_declarator): Likewise.

2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* call.c, cp-tree.h, cxx-pretty-print.c, decl.c, decl2.c:
	Rename DECL_STMT to DECL_EXPR.
	* init.c, name-lookup.c, parser.c, pt.c, semantics.c: Likewise.
	* cp-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
	* tree.c (cp_walk_subtrees): Don't call c_walk_subtrees.

2004-06-26  Jan Hubicka  <jh@suse.cz>

	PR C++/14865
	* decl2.c (maybe_emit_vtables):  Always import_export_vtable for the
	reachability analysis.

2004-06-25  Mark Mitchell  <mark@codesourcery.com>

	* cp-mudflap.c (mflang_flush_calls): Fix thinkos resulting from
	2004-06-23 change.

2004-06-25  Paul Brook  <paul@codesourcery.com>

	* decl2.c (get_guard): Call targetm.cxx.guard_type.
	(get_guard_bits, get_guard_cond): Call targetm.cxx.guard_mask_bit.

2004-06-24  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (grokdeclarator): Restore error messages about __thread.
	* parser.c (cp_parser_decl_specifier_seq): Likewise.

2004-06-24  Jason Merrill  <jason@redhat.com>

	PR c++/16115
	* decl.c (grokparms): Give the PARM_DECL reference type if the
	parameter is passed by invisible reference.

2004-06-24  Andreas Schwab  <schwab@suse.de>

	* cp-tree.h (enum cp_storage_class): Remove trailing comma.

2004-06-23  Mark Mitchell  <mark@codesourcery.com>

	* Make-lang.in (cp/lex.o): Do not depend on cp/lex.h.
	(cp/decl.o): Likewise.
	(cp/decl2.o): Likewise.
	(cp/pt.o): Likewise.
	(cp/semantics.o): Likewise.
	* config-lang.in (gtfiles): Do not reference cp/lex.h.
	* class.c: Do not include lex.h.
	(add_implicitly_declared_members): Do not use
	adding_implicit_members.
	(check_bases_and_members): Do not talk about grok_x_components.
	* cp/cp-tree.h (adding_implicit_members): Remove.
	(cp_storage_class): New type.
	(cp_decl_spec): Likewise.
	(cp_decl_specifier_seq): Likewise.
	(cp_parameter_declarator): Use it for the decl_specifiers field.
	(check_tag_decl): Adjust prototype.
	(shadow_tag): Likewise.
	(groktypename): Likewise.
	(start_decl): Likewise.
	(start_function): Likewise.
	(start_method): Likewise.
	(grok_x_components): Remove.
	(grokfield): Adjust prototype.
	(grokbitfield): Likewise.
	(finish_member_class_template): Remove.
	* decl.c: Do not include lex.h.
	(adding_implicit_members): Do not define.
	(check_tag_decl): Do not use trees to represent decl-specifiers.
	(shadow_tag): Likewise.
	(groktypename): Likewise.
	(start_decl): Likewise.
	(grokvardecl): Likewise.
	(grokdeclarator): Likewise.
	(grokparms): Likewise.
	(start_function): Likewise.
	(start_method): Likewise.
	* decl.h (grokdeclarator): Adjust prototype.
	* decl2.c: Do not include lex.h.
	(grok_x_components): Remove.
	(grokfield): Do not use trees to represent decl-specifiers.
	(grokbitfield): Likewise.
	* lex.c: Do not include lex.h.
	* lex.h: Remove.
	* parser.c: Include target.h.
	(clear_decl_specs): New function.
	(cp_parser_translation_unit): Do not use trees to represent
	decl-specifiers.
	(cp_parser_postfix_expression): Likewise.
	(cp_parser_new_type_id): Likewise.
	(cp_parser_condition): Likewise.
	(cp_parser_simple_declaration): Likewise.
	(cp_parser_decl_specifier_seq): Likewise.
	(cp_parser_function_specifier_opt): Likewise.
	(cp_parser_conversion_type_id): Likewise.
	(cp_parser_template_parameter): Likewise.
	(cp_parser_explicit_instantiation): Likewise.
	(cp_parser_type_specifier): Likewise.
	(cp_parser_simple_type_specifier): Likewise.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_type_id): Likewise.
	(cp_parser_type_specifier_seq): Likewise.
	(cp_parser_parameter_declaration): Likewise.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_exception_declaration): Likewise.
	(cp_parser_function_definition_from_specifiers_and_declarator):
	Likewise.
	(cp_parser_single_declaration): Likewise.
	(cp_parser_save_member_function_body): Likewise.
	(cp_parser_friend_p): Likewise.
	(cp_parser_set_storage_class): New function.
	(cp_parser_set_decl_spec_type): Likewise.
	* pt.c: Do not include lex.h.
	* semantics.c: Likewise.
	(finish_member_class_template): Remove.

2004-06-23  Roger Sayle  <roger@eyesopen.com>

	* call.c (build_cxx_call): Don't call expand_tree_builtin.  No
	longer take both "args" and "convert_args" as arguments.
	(build_op_delete_call): Update call to build_cxx_call.
	(build_over_call): Likewise, update call to build_cxx_call.
	* cp-tree.h (build_cxx_call): Update funtion prototype.
	* typeck.c (build_function_call): Don't call expand_tree_builtin.
	* rtti.c (throw_bad_cast): Update call to build_cxx_call.
	(throw_bad_typeid): Likewise.
	(build_dynamic_cast_1): Likewise.

2004-06-22  Richard Henderson  <rth@redhat.com>

	* class.c (build_vfn_ref): Take a pointer not object.  Build
	an OBJ_TYPE_REF.
	(cp_fold_obj_type_ref): New.
	* call.c (build_over_call): Update build_vfn_ref call.
	* cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
	* cp-tree.h (cp_fold_obj_type_ref): Declare.

2004-06-21  Jason Merrill  <jason@redhat.com>

	PR c++/16112
	* cp-gimplify.c (cp_gimplify_init_expr): Look through
	CLEANUP_POINT_EXPR.

2004-06-21  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.def (NEW_EXPR): Add a fourth slot.
	* cp-tree.h (PARMLIST_ELLIPSIS_P): Remove.
	(TREE_PARMLIST): Likewise.
	(CALL_DECLARATOR_PARMS): Likewise.
	(CALL_DECLARATOR_QUALS): Likewise.
	(CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
	(cp_declarator_kind): New type.
	(cp_parameter_declarator): Likewise.
	(cp_declarator): Likewise.
	(cp_error_declarator): Likewise.
	(no_parameters): Likewise.
	(groktypename): Change prototype.
	(start_decl): Likewise.
	(start_handler_parms): Likewise.
	(get_scope_of_declarator): Likewise.
	(start_function): Likewise.
	(start_preparsed_function): New function.
	(start_function): Change prototype.
	(start_method): Likewise.
	(grokfield): Likewise.
	(grokbitfield): Likewise.
	(build_new): Likewise.
	(make_pointer_declarator): Remove.
	(make_reference_declarator): Likewise.
	(make_call_declarator): Likewise.
	(set_quals_and_spec): Likewise.
	(process_template_parm): Change prototype.
	(begin_function_definition): Remove.
	(finish_parmlist): Remove.
	* decl.c (groktypename): Do not use trees to represent
	declarators.
	(start_decl): Likewise.
	(start_handler_parms): Remove.
	(get_scope_of_declarator): Reimplement.
	(grokdeclarator): Do not use trees to represent	declarators.
	(grokparms): Likewise.
	(start_function): Likewise.
	(start_method): Likewise.
	(build_void_list_mode): Do not use TREE_PARMLIST.
	* decl.h (grokdeclarator): Change prototype.
	* decl2.c (grok_method_quals): Robustify.
	(grok_x_components): Do not use trees to represent declarators.
	(grokfield): Likewise.
	(grokbitfield): Likewise.
	(start_objects): Build FUNCTION_DECLs, not declarators.
	(start_static_storage_duration_function): Likewise.
	* init.c (build_new): Simplify.
	* lex.c (make_pointer_declarator): Remove.
	(make_reference_declarator): Likewise.
	(make_call_declarator): Likewise.
	(set_quals_and_spec): Likewise.
	* method.c (use_thunk): Use start_preparsed_function.
	(synthesize_method): Likewise.
	(implicitly_declare_fn): Build FUNCTION_DECLs, not declarators.
	* optimize.c (maybe_clone_body): Use start_preparsed_function.
	* parser.c (cp_error_declarator): New variable.
	(declarator_obstack): Likewise.
	(alloc_declarator): New function.
	(make_declarator): Likewise.
	(make_id_declarator): Likewise.
	(make_pointer_declarator): Likewise.
	(make_reference_declarator): Likewise.
	(make_ptrmem_declarator): Likewise.
	(make_call_declarator): Likewise.
	(make_array_declarator): Likewise.
	(no_parameters): New variable.
	(make_parameter_declarator): Likewise.
	(cp_parser_check_for_definition_in_return_type): Do not use trees
	to represent declarators.
	(cp_parser_translation_unit): Likewise.
	(cp_parser_new_expression): Likewise.
	(cp_parser_new_type_id): Likewise.
	(cp_parser_new_declarator_opt): Likewise.
	(cp_parser_direct_new_declarator): Likewise.
	(cp_parser_condition): Likewise.
	(cp_parser_declaration_statement): Likewise.
	(cp_parser_declaration): Likewise.
	(cp_parser_conversion_type_id): Likewise.
	(cp_parser_conversion_declarator_opt): Likewise.
	(cp_parser_template_parameter_list): Likewise.
	(cp_parser_template_parameter): Likewise.
	(cp_parser_explicit_instantiation): Likewise.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_declarator): Likewise.
	(cp_parser_direct_declarator): Likewise.
	(cp_parser_type_id): Likewise.
	(cp_parser_parameter_declaration_clause): Likewise.
	(cp_parser_parameter_declaration_list): Likewise.
	(cp_parser_parameter_declaration): Likewise.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_exception_declaration): Likewise.
	(cp_parser_check_declarator_template_parameters): Likewise.
	(cp_parser_function_definition_from_specifiers_and_declarator):
	Likewise.
	(cp_parser_save_member_function_body): Likewise.
	* pt.c (process_template_parm): Add is_non_type parameter.
	(convert_template_argument): Adjust call to groktypename.
	(tsubst_call_declarator_parms): Remove use of TREE_PARMLIST.
	(tsubst): Do not expect declarators.
	(tsubst_copy_and_build): Adjust NEW_EXPR case to handle additional
	argument.
	(instantiate_decl): Use start_preparsed_function.
	* semantics.c (begin_function_definition): Remove.
	(finish_parmlist): Remove.
	* cp-mudflap.c (mflang_flush_calls): Build FUNCTION_DECLs, not
	declarators.

2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* call.c (build_vfield_ref): Add new operand for COMPONENT_REF.
	(build_new_method_call): Likewise.
	* decl.c (local_variable_p_walkfn): Don't walk into types.
	* decl2.c (grok_array_decl): Add new operands for ARRAY_REF.
	(build_anon_union_vars): Add new operand for COMPONENT_REF.
	* init.c (buld_new): Add new operand for ARRAY_REF.
	* method.c (do_build_copy_constructor): New op for COMPONENT_REF.
	(do_build_assign_ref): Likewise.
	* parser.c (cp_parser_direct_new_declarator): Add new operands
	for ARRAY_REF.
	(cp_parser_direct_declarator): Likewise.
	* pt.c (tsubst): Likewise.
	(tsubst_copy, tsubst_copy_and_build): Likewise; also add new operand
 	for COMPONENT_REF.
	* semantics.c (finish_non_static_data_member): Add new operand
	for COMPONENT_REF.
	* typeck.c (build_class_member_access_expr): Likewise.
	(build_class_member_access_expr, finish_class_member_access_expr):
	Likewise.
	(build_ptrmemfunc_access_expr): Likewise.
	(build_array_ref): Add new operands for ARRAY_REF.
	* typeck2.c (split_nonconstant_init_1): Likewise; COMPONENT_REF too.
	* tree.c (count_trees_r, no_linkage_helper): Don't walk in types.

2004-06-21  Richard Henderson  <rth@redhat.com>

	* dump.c (cp_dump_tree): Don't use dump_next_stmt.
	* parser.c (cp_parser_jump_statement): Update commentary.
	* pt.c (tsubst_expr): Use RETURN_EXPR.
	* semantics.c (finish_return_stmt): Likewise.
	(finalize_nrv_r): Likewise.
	* typeck.c, typeck2.c: Update file start commentary.

2004-06-21  Richard Henderson  <rth@redhat.com>

	* semantics.c (finish_expr_stmt): Call verify_sequence_points.

2004-06-20  Richard Henderson  <rth@redhat.com>

	* cp-tree.h (add_decl_stmt): Declare.
	* pt.c (tsubst_copy): Abort for CLEANUP_POINT_EXPR.
	* semantics.c (maybe_cleanup_point_expr): New.
	(add_decl_stmt, finish_expr_stmt, finish_return_stmt,
	finish_for_expr, finish_switch_cond): Use it.
	(finalize_nrv_r): Don't build an EXPR_STMT.  Don't frob TREE_CHAIN.

2004-06-20  Richard Henderson  <rth@redhat.com>

	* cp-tree.def (CLEANUP_STMT, IF_STMT): Move from c-common.def.
	* cp-gimplify.c (gimplify_if_stmt): Move from c-gimplify.c.
	(cp_gimplify_expr): Call it.
	(gimplify_cleanup_stmt): Move from c-gimplify.c.
	(cp_genericize): New.
	* decl.c (finish_function): Call it.
	* cp-tree.h (cp_stmt_codes): Add CLEANUP_STMT, IF_STMT.
	(CLEANUP_BODY, CLEANUP_EXPR, CLEANUP_DECL): Move from c-common.h.
	(IF_COND, THEN_CLAUSE, ELSE_CLAUSE): Likewise.
	(cp_genericize): Declare.
	* cxx-pretty-print.c (pp_cxx_statement): Add CLEANUP_STMT, IF_STMT.
	* dump.c (cp_dump_tree): Likewise.
	* semantics.c (push_cleanup): Move from c-semantics.c.

2004-06-20  Zack Weinberg  <zack@codesourcery.com>

	* cp-lang.c (has_c_linkage): Implement.

	* cp-tree.h (set_mangled_name_for_decl): Don't prototype.
	* decl.c (duplicate_decls): Use COPY_DECL_RTL.
	(builtin_function_1): Don't call make_decl_rtl.
	(build_cp_library_fn): Don't call set_mangled_name_for_decl.
	(grokvardecl): Don't call mangle_decl.
	* except.c (nothrow_libfn_p): Look at DECL_NAME, not
	DECL_ASSEMBLER_NAME.
	* method.c (set_mangled_name_for_decl): Delete.
	* name-lookup.c (pushdecl): When a local extern shadows a
	file-scope declaration of the same object, give both DECLs the
	same DECL_UID.
	* typeck.c (cxx_mark_addressable): Don't set TREE_ADDRESSABLE
	on DECL_ASSEMBLER_NAME.

2004-06-19  Richard Henderson  <rth@redhat.com>

	* cp-gimplify.c: Remove unnecessary prototypes.
	(cp_gimplify_stmt): Merge into ...
	(cp_gimplify_expr): ... here.  Move to end of file.  Handle
	stmts_are_full_exprs_p frobbing.
	* cp-tree.h (cp_gimplify_stmt): Remove.
	* pt.c (tsubst_expr): Merge prep_stmt and unify.
	* tree.c (init_tree): Don't set lang_gimplify_stmt.

2004-06-18  Richard Henderson  <rth@redhat.com>

	PR c++/16034
	* semantics.c (begin_cond): New.
	(finish_cond): Rewrite to handle template DECL_STMTs specially.
	Assume that non-template decls go land before the conditional.
	(simplify_loop_decl_cond): Likewise.
	(begin_if_stmt, finish_if_stmt_cond, begin_while_stmt,
	finish_while_stmt_cond, finish_for_init_stmt, finish_for_cond,
	begin_switch_stmt, finish_switch_cond): Update to match.

2004-06-17  Jason Merrill  <jason@redhat.com>

	PR c++/16015
	* semantics.c (simplify_aggr_init_expr): Don't return the slot.
	(finish_stmt_expr_expr): Update type after conversions.
	(finish_stmt_expr): Wrap initializer in CLEANUP_POINT_EXPR.
	Handle void initializer.
	* tree.c (build_cplus_new): Make AGGR_INIT_EXPRs void.

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

	* class.c (build_clone): Don't call defer_fn, let mark_used do it.
	* cp-tree.h (defer_fn): Delete.
	* decl2.c (defer_fn): Delete.
	(finish_file): Simplify deferred_fns loops; check that
	only used inline functions get into deferred_fns.
	(mark_used): Inline previous contents of defer_fn.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* cp-tree.h (COMPOUND_STMT_TRY_BLOCK, COMPOUND_STMT_BODY_BLOCK): Kill.
	(BIND_EXPR_TRY_BLOCK, BIND_EXPR_BODY_BLOCK): New.
	* cxx-pretty-print.c (pp_cxx_function_definition): Move handling
	of CTOR_INITIALIZER ...
	(pp_cxx_statement): ... here.
	* decl.c (begin_function_body): Don't set COMPOUND_STMT_BODY_BLOCK.
	(finish_function): Use alloc_stmt_list to zap entire function.
	* parser.c (cp_parser_compound_statement): Update commentary.
	* pt.c (tsubst_expr): Use BIND_EXPR instead of COMPOUND_STMT.
	* semantics.c (begin_compound_stmt, finish_compound_stmt): Likewise.
	(finish_stmt_expr): Don't look through COMPOUND_STMT.

2004-06-16  Geoffrey Keating  <geoffk@apple.com>

	* pt.c (mark_decl_instantiated): Don't call defer_fn.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* parser.c (cp_parser_labeled_statement): Update commentary.
	* pt.c (tsubst_expr): Use CASE_LABEL_EXPR.
	* tree.c (mark_local_for_remap_r): Likewise.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* parser.c (cp_parser_asm_definition): Update commentary.
	* pt.c (tsubst_expr): Use ASM_EXPR.
	* semantics.c (finish_asm_stmt): Likewise.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* decl.c (finish_destructor_body): Use LABEL_EXPR.
	* parser.c (cp_parser_statement): Update commentary.
	* pt.c (tsubst_expr): Use LABEL_EXPR, GOTO_EXPR.
	* semantics.c (finish_goto_stmt, finish_label_stmt): Likewise.
	* tree.c (mark_local_for_remap_r): Likewise.

2004-06-16  Richard Henderson  <rth@redhat.com>

	PR c++/16012
	* semantics.c (begin_for_stmt, begin_for_stmt): Do put the init
	statement in FOR_INIT_STMT for templates.

2004-06-15  Richard Henderson  <rth@redhat.com>

	* call.c (initialize_reference): Don't build CLEANUP_STMT here.
	* cp-gimplify.c (cp_gimplify_stmt): Remove next_p argument.
	(genericize_try_block): Use gimplify_stmt.
	(genericize_catch_block, genericize_eh_spec_block): Likewise.
	(cp_gimplify_init_expr): Remove STMT_EXPR special case.
	(gimplify_must_not_throw_expr): Update voidify_wrapper_expr call.
	* cp-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
	(cp_tree_chain_matters_p): Remove.
	* cp-tree.h (COMPOUND_STMT_TRY_BLOCK): New.
	(COMPOUND_STMT_BODY_BLOCK): New.
	(STATEMENT_LIST_NO_SCOPE, STATEMENT_LIST_TRY_BLOCK): New.
	(EXPR_STMT_STMT_EXPR_RESULT): New.
	(building_stmt_tree): Check cur_stmt_list.
	(tf_stmt_expr_cmpd, tf_stmt_expr_body): Remove.
	(BCS_NO_SCOPE, BCS_TRY_BLOCK, BCS_FN_BODY): New.
	* decl.c (poplevel): Use pop_stmt_list for minding cleanups.
	(cp_finish_decl): Use push_cleanup.
	(start_function, finish_function): Use statement lists.
	(finish_stmt): Do nothing.
	* except.c (begin_eh_spec_block): Use statement lists.
	(check_handlers_1, check_handlers): Likewise.
	* init.c (construct_virtual_base): Don't add extra compound stmts.
	(build_vec_init): Likewise.
	* name-lookup.c (maybe_push_cleanup_level): Use statement lists.
	* name-lookup.h (struct cp_binding_level): Add statement_list.
	* parser.c (cp_parser_statement): Take the STMT_EXPR node, not a bool.
	(cp_parser_labeled_statement, cp_parser_expression_statement,
	cp_parser_statement_seq_opt): Likewise.
	(cp_parser_compound_statement): Likewise.  Take bool for try block.
	(cp_parser_selection_statement): Tidy if processing.
	(cp_parser_already_scoped_statement): Rewrite to do what it says.
	* pt.c (tsubst_copy): Move STMT_EXPR to tsubst_expr.
	(tsubst_expr): Rewrite STMT_EXPR processing.  Handle STATEMENT_LIST.
	Mind COMPOUND_STMT_TRY_BLOCK, EXPR_STMT_STMT_EXPR_RESULT.
	* semantics.c (do_poplevel, do_pushlevel): Use statement lists.
	(finish_cond): New, rewritten from FINISH_COND.
	(simplify_loop_decl_cond): New.
	(finish_expr_stmt): Avoid nested EXPR_STMTs.
	(begin_if_stmt, finish_if_stmt_cond, finish_then_clause,
	begin_else_clause, finish_else_clause, finish_if_stmt,
	begin_while_stmt, finish_while_stmt_cond, finish_while_stmt,
	begin_do_stmt, finish_do_body, begin_for_stmt, finish_for_init_stmt,
	finish_for_cond, finish_for_stmt, begin_switch_stmt,
	finish_switch_cond, finish_switch_stmt, begin_try_block,
	finish_try_block, finish_cleanup_try_block, finish_function_try_block,
	finish_handler_sequence, finish_function_handler_sequence,
	begin_handler, finish_handler_parms, finish_handler,
	begin_stmt_expr, finish_stmt_expr_expr, finish_stmt_expr): Rewrite
	using statement lists.
	(begin_compound_stmt): Replace has_no_scope argument with flags.
	Update all callers.  Use statement lists.
	(finish_compound_stmt): Likewise.
	(finish_decl_cleanup, finish_eh_cleanup): Use push_cleanup.
	(current_scope_stmt_stack): Remove.
	(simplify_aggr_init_expr): Don't muck with TREE_CHAIN.
	* typeck2.c (split_nonconstant_init_1, split_nonconstant_init):
	Rewrite with statement lists.

2004-06-15  Alexandre Oliva  <aoliva@redhat.com>

	* parser.c: Change all assignments of c_lex_string_translate
	to true and false to 1 and 0.
	(cp_lexer_read_token): Convert type of the translated string.
	(cp_parser_skip_to_closing_parentheses): Preserve original
	value of c_lex_string_translate, and set it to -1 while
	running.
	(cp_parser_cache_group): Likewise.
	(cp_parser_cache_group_1): Renamed.
	(cp_parser_asm_operand_list): Remove redundant setting of
	c_lex_string_translate.
	(cp_parser_primary_expression) [CPP_STRING, CPP_WSTRING]:
	Handle chained strings.

2004-06-12  Andrew Pinski  <apinski@apple.com>

	PR c++/14639
	Revert:
	2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>

		* cp-tree.h: Fix typo.

		* cp-tree.h: Include cgraph.h
		(DECL_NEEDED_P): Use cgraph_*node on the decl instead of
		TREE_SYMBOL_REFERENCED on the DECL_ASSEMBLER_NAME of the decl.

2004-06-12  Jason Merrill  <jason@redhat.com>

	PR tree-optimization/14107
	* decl.c (finish_function): Warn about no return in all functions.

2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* cp-tree.h (struct language_function): Remove cannot_inline.
	* decl.c (save_function_data): cannot_inline is no more.
	(cxx_push_function_context): Likewise.
	* decl2.c (start_objects, start_static_storage_duration_function):
	Reset DECL_INLINE, set DECL_UNINLINABLE.

2004-06-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/15967
	* search.c (lookup_field): Propagate the ambiguity list.
	(lookup_fnfields): Likewise.

2004-06-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/15947
	* parser.c (cp_parser_template_name): Ctors/dtors never need a
	template keyword to disambiguate.

2004-06-14  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15096
	* decl.c (grokdeclarator): Ignore pointer-to-members when
	computing template depth.

	PR c++/14930
	* name-lookup.c (pushtag): Do not try to put class declarations in
	explicit specialization scopes.

2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>

	* decl.c (grokdeclarator): Do not depend on C99's _Bool's behavior.

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

	PR c++/15862
	* name-lookup.c (unqualified_namespace_lookup): Do not ignore type
	bindings for undeclared built-ins.

2004-06-11  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* typeck2.c (abstract_virtual_errors): Reword diagnostics, make them
	appear at the correct location.

2004-06-10  Jason Merrill  <jason@redhat.com>

	PR c++/15875
	Revert:
	2004-06-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
	* init.c (build_offset_ref): Build SCOPE_REF with non-null
	TREE_TYPE for non-dependent names.
	* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
	unknown_type_node as its TREE_TYPE.
	* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
	* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
	(dump_expr) <SCOPE_REF case>: Likewise.

2004-06-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15227
	* parser.c (cp_parser_direct_declarator): Robustify.

	PR c++/15877
	* pt.c (tsubst_copy): Use decl_constant_value on enumeration
	constants in non-dependent contexts.

	PR c++/14211
	PR c++/15076
	* typeck.c (build_static_cast): Wrap casts in NON_LVALUE_EXPR when
	necessary.

2004-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/14791
	* decl.c (duplicate_decls): Handle fileptr_type_node arguments
	specially.

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

	Revert:
	PR c++/15815
	2004-06-07  Mark Mitchell  <mark@codesourcery.com>
	* lex.c (handle_pragma_interface): Deprecate.
	(handle_pragma_implementation): Likewise.

2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>

	* g++spec.c (lang_specific_driver): Remove check for -lm
	and -lmath when check it see if it was the math library.

2004-06-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/7841
	* parser.c (cp_parser_direct_declarator): Reject constructor named
	as qualified template-id.

2004-06-07  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15815
	* lex.c (handle_pragma_interface): Deprecate.
	(handle_pragma_implementation): Likewise.

2004-06-07  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15766
	* parser.c (cp_parser_iteration_statement): Fix typo in error
	message.

	PR c++/14777
	* pt.c (tsubst_default_argument): Do not defer access checks
	while substituting into the default argument.

	PR c++/15554
	* pt.c (tsubst_copy): Do not try to substitute for an enumeration
	constant in a non-dependent context.

	PR c++/15057
	* except.c (build_throw): Ensure that temp_expr has been
	initialized.

2004-06-06  Roger Sayle  <roger@eyesopen.com>

	* cp/cp-tree.h (lvalue_or_else): Add function prototype.

2004-06-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/15503
	* parser.c (cp_parser_mem_initializer_id): Gracefully reject
	'typename', and accept 'template'.

2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
	    Jan Hubicka  <jh@suse.cz>

	PR c++/14639
	* method.c (use_think): Do not mark thunk as referenced.

2004-06-03  Matt Austern  <austern@apple.com>

	PR c++/15428
	* decl2.c (maybe_emit_vtables): If TARGET_WEAK_NOT_IN_ARCHIVE_TOC
	is nonzero, and if we see a noninline definition of a key method,
	make the vtables nonweak.

2004-06-02  Matt Austern  <austern@apple.com>

	* cp-tree.h (instantiate_decl): new boolean parameter,
	undefined_ok. Current behavior is equivalent to its being 0.
	* decl2.c (mark_used): Add new argument when calling instantiate_decl
	* pt.c (mark_decl_instantiated): Unconditionally make
	instantiations explicit unconditionally
	(do_decl_instantiation): Don't call SET_DECL_EXPLICIT_INSTANTIATION,
	since mark_decl_instantiated now does it.
	(instantiate_class_member): New.  Instantiate a member of an
	explicitly instantiated class template.
	(do_type_instantiation): Explicitly instantiate members of an
	explicitly instantiated class template.
	(instantiate_decl): if undefined_ok is nonzero, and if we're
	trying to explicitly instantiated a template with no definition,
	change it to an implicit instantiation.
	(instantiate_pending_templates): Add new argument to instantiate_decl.
	* tree.c (cp_cannot_inline_tree_fn): Likewise.

2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>

	* cp-tree.h: Fix typo.

	* cp-tree.h: Include cgraph.h
	(DECL_NEEDED_P): Use cgraph_*node on the decl instead of
	TREE_SYMBOL_REFERENCED on the DECL_ASSEMBLER_NAME of the decl.

2004-06-01  Jason Merrill  <jason@redhat.com>

	PR c++/15142
	* call.c (call_builtin_trap): Remove type parm.
	(convert_arg_to_ellipsis): Change a non-POD argument to integer type.
	(build_x_va_arg): Dereference a null pointer for a non-POD argument.

2004-06-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13092
	* init.c (build_offset_ref): Build SCOPE_REF with non-null
	TREE_TYPE for non-dependent names.
	* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
	unknown_type_node as its TREE_TYPE.
	* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
	* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
	(dump_expr) <SCOPE_REF case>: Likewise.

2004-06-01  Richard Henderson  <rth@redhat.com>
	    Andrew Pinski  <pinskia@physics.uc.edu>

	* lex.c (reswords): Rename "__offsetof" to "__builtin_offsetof".
	* parser.c (struct cp_parser): Remove in_offsetof.
	(cp_parser_new): Don't set it.
	(cp_parser_unary_expression): Don't check it.
	(cp_parser_postfix_open_square_expression): Split out from ...
	(cp_parser_postfix_expression): ... here.
	(cp_parser_postfix_dot_deref_expression): Likewise.
	(cp_parser_builtin_offsetof): New.
	(cp_parser_primary_expression): Use it.

2004-06-01  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14932
	* parser.c (cp_parser_postfix_expression): Allow subscript
	operator in offsetof.

2004-05-31  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15701
	* friend.c (add_friend): Do not try to perform access checks for
	functions from dependent classes.

2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.c (pp_cxx_colon_colon): Expor.
	(pp_cxx_begin_template_argument_list): Turn into a function.
	(pp_cxx_end_template_argument_list): Likewise.
	(pp_cxx_separate_with): Define.
	(pp_cxx_unqualified_id): Tidy.
	(pp_cxx_primary_expression): Likewise.
	(pp_cxx_postfix_expression): Likewise.
	(pp_cxx_expression): Likewise.
	(pp_cxx_simple_type_specifier): Likewise.
	(pp_cxx_type_specifier_seq): Likewise.
	(pp_cxx_parameter_declaration_clause): Likewise.
	(pp_cxx_exception_specification): Likewise.
	(pp_cxx_direct_declarator): Likewise.
	(pp_cxx_type_id): Likewise.
	* cxx-pretty-print.h (pp_cxx_whitespace): Export from
	cxx-pretty-print.c.
	(pp_cxx_left_paren): Likewise.
	(pp_cxx_right_paren): Likewise.
	(pp_cxx_left_brace): Likewise.
	(pp_cxx_right_brace): Likewise.
	(pp_cxx_left_bracket): Likewise.
	(pp_cxx_right_bracket): Likewise.
	(pp_cxx_dot): Likewise.
	(pp_cxx_identifier): Likewise.
	(pp_cxx_tree_identifier): Likewise.
	(pp_cxx_ampersand): New macro.
	(pp_cxx_star): Likewise.
	(pp_cxx_arrow): Likewise.
	(pp_cxx_semicolon): Likewise.
	(pp_cxx_complement): Likewise.
	(pp_cxx_begin_template_argument_list): Declaree.
	(pp_cxx_end_template_argument_list): Likewise.
	(pp_cxx_colon_colon): likewise.

2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* parser.c (cp_parser_simple_type_specifier): Explicitly test
	against NULL_TREE.

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

	* call.c, class.c, cp-tree.def, decl2.c, name-lookup.c, pt.c,
	typeck.c: Fix comment formatting.

2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>

	* cp-lang.c (cp_expand_decl): Remove.
	(LANG_HOOKS_EXPAND_DECL): Use c_expand_decl.

2004-05-30  Andreas Jaeger  <aj@suse.de>

	* lang-specs.h: Add missing initializers for .ii.

2004-05-28  Aldy Hernandez  <aldyh@redhat.com>

	* decl.c (cp_make_fname_decl): Free return value from
	fname_as_string.

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

	PR c++/15083
	* decl2.c (delete_sanity): Set TREE_SIDE_EFFECTS on a DELETE_EXPR,
	even in a templat.e
	* init.c (build_new): Likewise.

	PR c++/15640
	* name-lookup.c (arg_assoc): Robustify.

	PR c++/15471
	* typeck.c (unary_complex_lvalue): Use context_for_name_lookup
	when determining the scope to use for a pointer to member.
	(lookup_anon_field): Give it external linkage.
	* cp-tree.h (lookup_anon_field): Declare it.
	* expr.c (cplus_expand_constant): Use it.

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

	PR c++/14668
	* parser.c (cp_parser_simple_type_specifier): Call
	maybe_note_name_used_in_class.

2004-05-28  Tom Marshall  <tmarshall@real.com>

	PR c++/15214
	* class.c (finish_struct_1): Warn only if the dtor is non-private or
	the class has friends.

2004-05-27  Adam Nemet  <anemet@lnxw.com>

	PR c++/12883
	* decl.c (complete_array_type): Set TYPE_NEEDS_CONSTRUCTING and
	TYPE_HAS_NONTRIVIAL_DESTRUCTOR based on the underlying type.

2004-05-24  Geoffrey Keating  <geoffk@apple.com>

	* method.c (implicitly_declare_fn): Don't call defer_fn; abort
	if it might be needed.
	* pt.c (mark_decl_instantiated): Only call defer_fn if
	the function actually needs processing in finish_file.
	* decl2.c (finish_file): Add check that elements in
	deferred_fns_used are really needed there.  Remove unnecessary
	test of DECL_SAVED_TREE.

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* Make-lang.in: No need to specify $(LIBCPP).

2004-05-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15044
	* parser.c (cp_parser_class_head): Robustify.

	PR c++/15317
	* parser.c (cp_parser_decl_specifier_seq): Correct error in
	comment.
	(cp_parser_constructor_declarator_p): Treat attributes
	as decl-specifiers.

	PR c++/15329
	* typeck.c (build_unary_op): Do not attempt to resolve casts to
	base classes in templates.

2004-05-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15165
	* pt.c (instantiate_template): Robustify.

2004-05-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15025
	* decl.c (xref_tag): Issue errors about redeclaring template
	classes as non-template classes.

2004-05-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14821
	* name-lookup.c (supplement_binding): Allow redefinitions of
	namespace aliases.

	PR c++/14883
	* parser.c (cp_parser_template_argument): Robustify.

2004-05-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* class.c (alter_access): Use %E format specifier to print an
	identifier node.  Avoid looking at the IDENTIFIER_POINTER.
	(push_lang_context): Likewise.
	* decl.c (lookup_label): Likewise.
	(grokdeclarator): Likewise.
	* parser.c (cp_parser_check_for_invalid_template_id): Likewise.
	* pt.c (do_type_instantiation): Likewise.
	* tree.c (handle_java_interface_attribute): Likewise.
	(handle_com_interface_attribute): Likewise.
	(handle_init_priority_attribute): Likewise.

2004-05-22  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15285
	PR c++/15299
	* pt.c (build_non_dependent_expr): Expand the set of tree nodes
	recognized as overloaded functions.

2004-05-22  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15507
	* class.c (layout_nonempty_base_or_field): Do not try to avoid
	layout conflicts for unions.

	PR c++/15542
	* typeck.c (build_x_unary_op): Instantiate template class
	specializations before looking for "operator &".

	PR c++/15427
	* typeck.c (complete_type): Layout non-dependent array types, even
	in templates.

	PR c++/15287
	* typeck.c (build_unary_op): Do not optimize "&x[y]" when in a
	template.

2004-05-22  Roger Sayle  <roger@eyesopen.com>

	* name-lookup.c (check_for_out_of_scope_variable): Avoid ICE by
	returning when TREE_TYPE is error_mark_node.
	* typeck.c (require_complete_type): Return error_mark_node if
	value's type is an error_mark_node.

2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>

	* optimize.c (calls_setjmp_r): Remove.
	(calls_setjmp_p): Remove.
	* cp-tree.c (calls_setjmp_p): Remove.
	* decl.c (finish_function): Do not call calls_setjmp_p.

2004-05-18  Zack Weinberg  <zack@codesourcery.com>

	* decl.c (cp_finish_decl): Use mark_decl_referenced.
	* decl2.c (maybe_make_one_only): Likewise.
	* method.c (use_thunk): Likewise.

2004-05-18  Jason Merrill  <jason@redhat.com>

	* class.c (build_base_path): Tidy a bit.

2004-05-14  Geoffrey Keating  <geoffk@apple.com>

	* name-lookup.c (struct scope_binding): New.
	(EMPTY_SCOPE_BINDING): New.
	(lookup_using_namespace): Take a scope_binding instead of a
	cxx_binding.
	(qualified_lookup_using_namespace): Likewise.
	(cxx_binding_clear): Delete.
	(do_nonmember_using_decl): Use a scope_binding instead of a
	cxx_binding.
	(lookup_tag): Don't call select_decl.
	(ambiguous_decl): Don't return anything (and change callers to match).
	Take a scope_binding as the second parameter.
	(lookup_namespace_name): Use a scope_binding instead of a
	cxx_binding.
	(unqualified_namespace_lookup): Likewise.
	(lookup_qualified_name): Likewise.
	(select_decl): Take a scope_binding instead of a cxx_binding.
	Use macros rather than hand-coding tests for type-ness.

2004-05-13  Diego Novillo  <dnovillo@redhat.com>

	* cp-gimplify.c: Rename from cp-simplify.c.
	* Make-lang.in, optimize.c: Update.

2004-05-13  Diego Novillo  <dnovillo@redhat.com>

	Merge from tree-ssa-20020619-branch.  See
	ChangeLog.tree-ssa for details.

	* Make-lang.in, call.c, class.c, cp-lang.c, cp-tree.def,
	cp-tree.h, cvt.c, decl.c, decl2.c, error.c, except.c,
	expr.c, init.c, name-lookup.h, optimize.c, parser.c,
	pt.c, rtti.c, semantics.c, tree.c, typeck.c, typeck2.c:
	Merged.
	* cp-mudflap.c: New file.
	* cp-simplify.c:: New file.

2004-05-03  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14389
	* decl2.c (check_classfn): For member templates, compare also the
	template parameters to match the declaration.
	* cp-tree.h: Adjust declaration of check_classfn.
	* decl.c (start_decl, grokfndecl): Adjust callers of check_classfn.
	* friend.c (do_friend): Likewise.
	* pt.c (tsubst_friend_function): Likewise.

2004-05-01  Zack Weinberg  <zack@codesourcery.com>

	* decl.c (reshape_init): Do not apply TYPE_DOMAIN to a VECTOR_TYPE.
	Instead, dig into the representation type to find the array bound.

2004-04-30  Jason Merrill  <jason@redhat.com>

	Refer to base members using COMPONENT_REFs where possible.
	* class.c (build_simple_base_path): New fn.
	(build_base_path): Use it for non-virtual base references.
	(layout_class_type): Change base fields to their real type
	after layout is done.
	* cp-tree.h (IS_FAKE_BASE_TYPE): New macro.
	* cp-lang.c (cxx_get_alias_set): Use it.

2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>

	* class.c, cp-tree.h, decl.c, decl2.c, pt.c, rtti.c: Fix
	comment typos.

2004-04-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/15064
	* parser.c (cp_parser_postfix_expression): typeid operator cannot be
	used in integral constant expressions.

2004-04-22  Mark Mitchell  <mark@codesourcery.com>

	* init.c (build_aggr_init): Fix accidental use of C99 construct in
	previous change.

	* class.c (initialize_array): Don't set TREE_HAS_CONSTRUCTOR on
	braced initializer.
	* cp-tree.h (BRACE_ENCLOSED_INITIALIZER_P): New macro.
	* decl.c (reshape_init): Use it.
	* init.c (perform_member_init): Remove redundant condition.
	(build_aggr_init): Adjust to handle brace-enclosed initializers
	correctly.
	(expand_default_init): Use BRACE_ENCLOSED_INITIALIZER_P.

	* parser.c (cp_parser_initializer_clause): Do not set
	TREE_HAS_CONSTRUCTOR on the initializer.
	* rtti.c (tinfo_base_init): Likewise.
	(generic_initializer): Likewise.
	(ptr_initializer): Likewise.
	(ptm_initializer): Likewise.
	(class_initializer): Likewise.
	(get_pseudo_ti_init): Likewise.
	* typeck2.c (digest_init): Use BRACE_ENCLOSED_INITIALIZER_P.

2004-04-22  Alan Modra  <amodra@bigpond.net.au>

	* name-lookup.c (anonymous_namespace_name): Make static.

2004-04-19  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/14531
	* class.c (build_base_path): Call fold whilst building the NULL
	pointer check expression trees.

2004-04-15  Bryce McKinlay  <mckinlay@redhat.com>

	* init.c (build_new_1): Don't use type size argument for Java
	_Jv_AllocObject call.

2004-04-09  Danny Smith  <dannysmith@users.sourceforge.net>

	* method.c (make_alias_for_thunk): Remove preprocessor guard on
	declaration and definition.

2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>

	PR c++/14808
	* method.c (use_thunk): Test TARGET_USE_LOCAL_THUNK_ALIAS_P rather
	than ASM_OUTPUT_DEF.

2004-04-08  Jakub Jelinek  <jakub@redhat.com>

	* decl2.c (mark_used): Don't segfault if cfun != NULL but
	current_function_decl == NULL.

2004-04-05  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/3518
	* pt.c (check_cv_quals_for_unify): Ignore bogus CV quals at outer
	level.

2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* init.c (decl_constant_value): Don't look at DECL_INITIAL
	of PARM_DECL.
	* tree.c (bot_manip, build_min): Don't look at TREE_CONSTANT
	or TREE_SIDE_EFFECTS of a type.

2004-04-02  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/14007
	* pt.c (check_cv_quals_for_unify): Correct logic for disallowed
	cv-qualifier unification.
	* tree.c (cp_build_qualified_type_real): Renable DR295 logic.

2004-04-02  Jan Hubicka  <jh@suse.cz>

	* cp-lang. (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Define.
	* cp-tree.h (cp_update_decl_after_saving): Declare.
	* tree.c (cp_update_decl_after_saving): Define.

2004-04-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14803
	* typeck.c (get_delta_difference): Call fold before returning the
	value.

2004-04-01  Richard Henderson  <rth@redhat.com>

	PR c++/14804
	* decl.c (cp_finish_decl): Preserve TREE_READONLY more often.
	* typeck2.c (split_nonconstant_init): Clear TREE_READONLY.

2004-04-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14810
	* name-lookup.c (maybe_push_cleanup_level): Robustify.

2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* class.c (VTT_TOP_LEVEL_P): Use unsigned_flag directly.

2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* call.c (joust): Use TYPE_UNSIGNED, not TREE_UNSIGNED.
	* class.c (check_bitfield_decl): Likewise.
	* cvt.c (type_promotes_to): Likewise.
	* decl.c (finish_enum): Likewise.
	* mangle.c (write_builtin_type): Likewise.
	* semantics.c (finish_switch_cond, finish_unary_op_expr): Likewise.
	* typeck.c (type_after_usual_arithmetic_conversions): Likewise.
	(build_binary_op): Likewise.

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

	* tree.h (optimize_function): Kill prototype.
	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
	* semantics.c (expand_body): Kill.

2004-03-30  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14724
	* decl.c (start_decl_1): Do not decide whether or not to create a
	new cleanup level until after the type has been completed.

	PR c++/14763
	* pt.c (tsubst_default_argument): Clear current_function_decl.

2004-03-30  Zack Weinberg  <zack@codesourcery.com>

	* name-lookup.c, parser.c: Use new shorter form of GTY markers.

2004-03-29  Zack Weinberg  <zack@codesourcery.com>

	* error.c (dump_function_name): If T's DECL_LANG_SPECIFIC
	is null, just print the literal name and return.

2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>

	* cxx-pretty-print.c: Fix comment typos.

2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>

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

2004-03-23  Ziemowit Laski  <zlaski@apple.com>

	* Make-lang.in (cp/mangle.o): Depend on $(TARGET_H).
	* mangle.c (write_type): Add call to 'mangle_fundamental_type'
	target hook.

2004-03-23  Zack Weinberg  <zack@codesourcery.com>

	PR 12267, 12391, 12560, 13129, 14114, 14133
	* cp-lang.c (c_reset_state): Delete.
	(push_file_scope, pop_file_scope): New stubs.
	* parser.c (c_parse_file): Call sorry() here if called more than once.

2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
	for INTEGER_CST.

2004-03-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.c (pp_cxx_parameter_declaration_clause): Declare.

2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* error.c (enum pad): Remove.
	(dump_qualifiers): Likewise.
	(dump_type): Replace dump_qualifiers with pp_cxx_cv_qualifier_seq.
	(dump_aggr_type): Likewise.
	(dump_type_suffix): Likewise.
	(dump_simple_decl): Likewise.
	(dump_function_decl): Likewise.
	(cv_to_string): Likewise.
	(dump_type_prefix): Likewise.  Adjust return void.
	* cxx-pretty-print.c (pp_cxx_cv_qualifier_seq): Move to
	cxx_pretty_print.h.
	(pp_cxx_template_keyword_if_needed): Document.
	(pp_cxx_qualified_id): Document case FUNCTION_DECL.  Tidy.
	(pp_cxx_expression): Handle NON_DEPENDENT_EXPR and
	MUST_NOT_THROW_EXPR.

2004-03-21  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14616
	* decl.c (cp_finish_decl): Compute the size of arrays declared in
	templates, if their type is non-dependent.

2004-03-19  Mark Mitchell  <mark@codesourcery.com>

	* call.c (build_op_delete_call): Do not forget the placement
	arguments when iterating through mutiple delete operators.

	* cp-tree.h (svaed_scope): Remove last_parms.
	(NEW_DELETE_OPNAME_P): New macro.
	(last_function_parms): Remove.
	(do_friend): Adjust prototype.
	* decl.c (grokparms): Return the PARM_DECLs directly, rather than
	using last_function_parms.
	(grokfndecl): Take the PARM_DECLs as an argument, rather than
	using last_function_parms.
	(grokdeclarator): Adjust accordingly.  Do not form METHOD_TYPEs
	for class-specific operator new and operator delete.
	(grok_op_properties): Do not look for allocation functions with
	METHOD_TYPEs.
	(start_function): Use DECL_ARGUMENTS instead of
	last_function_parms.
	* decl.h (last_function_parms): Do not declare.
	* decl2.c (grokclassfn): Do not use last_function_parms.
	* friend.c (do_friend): Remove parmdecls parameter.
	* name-lookup.c (push_to_top_level): Do not save last_function_parms.
	(pop_from_top_level): Do not restore it.
	* pt.c (check_explicit_specialization): Do not adjust
	last_function_parms.

	* name-lookup.c (do_local_using_decl): Create a local binding for
	types brought in via using declarations.

	* name-lookup.c (lookup_arg_dependent): Handle block-scope
	function declarations correctly.

	* semantics.c (finish_id_expression): Correct handling of
	conversion operators to dependent types.

	* typeck.c (lookup_destructor): Allow the use of destructors from
	base classes.

2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* cxx-pretty-print.c (pp_cxx_unqualified_id): Use
	TEMPLATE_TYPE_PARM_INDEX instead of TYPE_FIELDS.
	* search.c (dfs_unuse_fields): Add two more TREE_CODES that mean
	the field is named TEMPLATE_TYPE_PARM_INDEX.

2004-03-19  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14545
	* parser.c (cp_parser_functional_cast): A cast to anything
	but integral or enumaration type is not an integral constant
	expression.
	* pt.c (value_dependent_expression_p): Handle cast expressions
	without operands (such as "int()").

2004-03-18  Mark Mitchell  <mark@codesourcery.com>

	* semantics.c (finish_pseudo_destructor_expr): Allow differing
	cv-qualification between the type named by the
	pseudo-destructor-name and the object-type.

	* search.c (accessible_base_p): Handle non-proper bases.

	* name-lookup.c (do_nonmember_using_decl): If a using declaration
	refers to a single overloaded function, set the type of the
	function.
	* tree.c (lvalue_type): Simplify.
	* typeck.c (type_unknown_p): Do not assume all OVERLOADs have an
	unknown type.
	(build_unary_op): Handle OVERLOADs with known types.

	* decl.c (duplicate_decls): Do not destroy DECL_ARGUMENTS for
	function templates.

	* parser.c (cp_parser_postfix_expression): Handle the use of
	"typename" in non-dependent contexts.  Convert appropriately when
	when using a qualified name after "->" or ".".

	* call.c (conditional_conversion): Honor the requirement that some
	conversions refer to the original object.

2004-03-18  Mark Mitchell  <mark@codesourcery.com>

	* call.c (build_conditional_expr): Do not call force_rvalue for
	operands of void_type when the conditional expression itself has
	void type.
	* name-lookup.c (pushdecl): Don't consider a declaration of a
	function named "main" to be an overload of a type named "main".
	* parser.c (cp_parser_template_name): Perform name lookup when the
	template name is proceeded by "template" if the qualifying scope
	is non-dependent.
	* typeck.c (composite_pointer_type_r): Correctly handle
	pointer-to-member types.
	(build_const_cast): Likewise.

2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* cp-tree.def (TEMPLATE_TYPE_PARM, TYPEOF_TYPE): Update comments.
	* cp-tree.h (NEW_EXPR_USE_GLOBAL, DELETE_EXPR_USE_GLOBAL): Add check.
	(DELETE_EXPR_USE_VEC, COMPOUND_EXPR_OVERLOADED): Likewise.
	(KOENIG_LOOKUP_P, PTRMEM_OK_P, TEMPLATE_TYPE_PARM_INDEX): Likewise.
	(TYPENAME_TYPE_FULLNAME): Add check and use type.values.
	(TYPEOF_TYPE_EXPR): New macro.
	* class.c (finish_struct_bits): Use TYPE_VFIELD and TYPE_METHODS.
	* error.c (dump_type): Use TYPEOF_TYPE_EXPR.
	* pt.c (tsubst): Likewise.
	* semantics.c (finish_typeof): Likewise.
	* search.c (dfs_unuse_fields): Handle TYPENAME_TYPE, TYPEOF_TYPE,
	and TEMPLATE_TYPE_PARM.
	* typeck.c (comptypes): Use TYPE_ORIG_SIZE_TYPE, not TYPE_DOMAIN.
	(build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.

2004-03-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14586
	* cp-tree.h (build_new_op): Change prototype.
	(build_x_binary_op): Likewise.
	* call.c (build_new_op): Add overloaded_p parameter.
	* decl2.c (grok_array_decl): Adjust call to build_new_op.
	* parser.c (cp_parser_binary_expression): Note that uses of
	overloaded operators prevents an expression from being considered
	an integral constant.
	* pt.c (tsubst_copy_and_build): Adjust calls to build_new_op and/or
	build_x_binary_op.
	* semantics.c (finish_call_expr): Likewise.
	* typeck.c (rationalize_conditional_expr): Likewise.
	(build_x_indirect_ref): Likewise.
	(build_x_binary_op): Likewise.
	(build_x_unary_op): Likewise.
	(build_x_compound_expr): Likewise.
	(build_modify_expr): Likewise.
	* typeck2.c (build_x_arrow): Likewise.

2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-lang.c, ptree.c: Update copyright.

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

	PR c++/14550
	* parser.c (cp_parser_non_integral_constant_expression): Encode
	more of the idiom that surrounded calls to this function within
	the function itself
	(cp_parser_primary_expression): Adjust accordingly.
	(cp_parser_postfix_expression): Likewise.
	(cp_parser_unary_expression): Likewise.
	(cp_parser_cast_expression): Likewise.
	(cp_parser_assignment_expression): Likewise.
	(cp_parser_expression): Likewise.
	(cp_parser_new_expression): Note that new-expressions are not
	allowed in integral constant expressions.
	(cp_parser_delete_expression): Likewise.

2004-03-12  Matt Austern  <austern@apple.com>

	* decl2.c (maybe_make_one_only): Look at
	TARGET_EXPLICIT_INSTANTIATION_ONE_ONLY when deciding whether
	to make an explicit instantiation weak.
	* method.c (use_thunk): Make sure we call comdat_linkage
	when appropriate.
	* pt.c (do_type_instantiation): On systems where weak symbols
	don't go in a static archive's TOC, explicit instantiation of a
	class must imply *explicit* instantiation of its memeber.

2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>

	* call.c, cp-tree.h, pt.c: Fix comment typos.

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

	PR c++/14510
	* decl.c (xref_tag): Disregard non-type declarations when
	looking up a tagged type.

2004-03-09  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/14397
	* call.c (convert_like_real): Build a const qualified temporary,
	when testing ctor access.

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

	* call.c (initialize_reference): Fix typo.

2004-03-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14409
	* pt.c (determine_specialization): For member templates, match also
	constness.

	PR c++/14448
	* parser.c (cp_parser_initializer_clause): Fold initializer if it is
	non-dependent.
	* pt.c (tsubst_copy_and_build): Handle NOP_EXPRs.

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

	PR c++/14230
	* call.c (initialize_reference): Handle initializers that are
	class-member access expressions applies to rvalues.

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

	PR c++/14432
	* name-lookup.c (supplement_binding): Ignore functions that are
	marked DECL_ANTICIPATED.

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

	PR c++/14401
	* class.c (check_field_decls): Complain about non-static data
	members of reference type in unions.  Propagate
	CLASSTYPE_REF_FIELDS_NEED_INIT and
	CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
	data members.
	* init.c (perform_member_init): Complain about mbmers with const
	type that are not explicitly initialized.

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

	* class.c (check_methods): Don't use IDENTIFIER_ERROR_LOCUS.
	* cp-tree.h (DECL_INVALID_OVERRIDER_P): New macro.
	(lang_identifier): Remove implicit_decl and error_locus.
	(IDENTIFIER_IMPLICIT_DECL): Remove.
	(SET_IDENTIFIER_IMPLICTI_DECL): Likewise.
	(IDENTIFIER_ERROR_LOCUS): Likewise.
	(SET_IDENTIFIER_ERROR_LOCUS): Likewise.
	(TYPE_ASSEMBLER_NAME_STRING): Likewise.
	(TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
	(implicitly_declare): Remove.
	* decl.c (warn_extern_redeclared_static): Remove check of
	IDENTIFIER_IMPLICIT_DECL.
	(duplicate_decls): Don't check IDENTIFIER_ERROR_LOCUS.
	(implicitly_declare): Remove.
	(grok_ctor_properties): Don't set IDENTIFIER_ERROR_LOCUS.
	(start_function): Don't check IDENTIFIER_IMPLICIT_DECL.
	(start_method): Don't check IDENTIFIER_ERROR_LOCUS.
	* lex.c (unqualified_name_lookup_error): Create a dummy VAR_DECL
	in the innermost scope, rather than at namespace scope.
	* name-lookup.c (push_local_binding): Give it external linkage.
	(pushdecl): Remove dead code.
	* name-lookup.h (push_local_binding): Declare it.
	* ptree.c (cxx_print_identifier): Don't print
	IDENTIFIER_IMPLICIT_DECL or IDENTIFIER_ERROR_LOCUS.
	* search.c (check_final_overrider): Use DECL_INVALID_OVERRIDER_P,
	not IDENTIFIER_ERROR_LOCUS.
	* typeck.c (build_function_call): Remove dead code.

2004-03-08  Jason Merrill  <jason@redhat.com>

	PR c++/13170
	* decl.c (xref_tag): Remove attribute handling.
	* cp-tree.h: Adjust prototype.
	* decl.c, parser.c, rtti.c: Adjust callers.
	* parser.c (cp_parser_class_head): Pass back attributes in the
	class head.
	(cp_parser_class_specifier): Adjust.

2004-03-08  Matt Austern  <austern@apple.com>

	PR debug/14079
	* name-lookup.c (add_decl_to_level): Add extern variables, as well
	as static, to static_decls array.

2004-03-05  Jason Merrill  <jason@redhat.com>

	* tree.c (list_hash_pieces): s/TYPE_HASH/TREE_HASH/.

2004-03-04  Geoffrey Keating  <geoffk@apple.com>

	* decl.c (grokfndecl): Update old incorrect comment.
	(grokvardecl): Diagnose C++ variables of type with no linkage.

2004-03-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14369
	* pt.c (build_non_dependent_expr): Do not create a
	NON_DEPENDENT_EXPR for a THROW_EXPR.

2004-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/14369
	* error.c (dump_expr): Handle THROW_EXPR.

2004-03-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14360
	* parser.c (cp_parser_postfix_expression): Do not perform Koenig
	lookup if ordinary name-lookup finds a non-function.
	* pt.c (tsubst_copy_and_build): Likewise.

	PR c++/14361
	* parser.c (cp_parser_late_parsing_default_args): Check that there
	are no extra tokens after the end of the default-argument
	expression.

2004-03-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14324
	* lex.c (retrofit_lang_decl): Treat entities with no linkage as
	having C++ linkage for name-mangling purposes.

	PR c++/14260
	* parser.c (cp_parser_direct_declarator): Recognize constructor
	declarators that use a template-id to name the class being
	constructed.

	PR c++/14337
	* pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
	(tsubst_expr): Do not call tsubst_copy, even when
	processing_template_decl.

2004-03-01  Jeff Law  <law@redhat.com>

	* init.c (build_vec_delete_1): Convert 2nd argument to NE_EXPR to
	the proper type.

2004-02-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14138
	* name-lookup.h (push_scope): Change prototype.
	* name-lookup.c (push_scope): Do not reenter the current class
	scope.
	* decl.c (grokfndecl): Check return code from push_scope before
	calling pop_scope.
	* decl2.c (check_classfn): Likewise.
	* parser.c (cp_parser_conversion_function_id): Likewise.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_direct_declarator): Likewise.
	(cp_parser_class_specifier): Likewise.
	(cp_parser_class_head): Likewise.
	(cp_parser_lookup_name): Likewise.
	(cp_parser_constructor_declarator_p): Likewise.
	* pt.c (instantiate_class_template): Likewise.
	(resolve_typename_type): Likewise.

2004-02-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14267
	* typeck.c (build_modify_expr): Remove more of the cast-as-lvalue
	extension.

	PR debug/12103
	* class.c (update_vtable_entry_for_fn): Do not go through
	covariance machinery if the type returned by an overrider is the
	same as the original.

2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>

	* call.c: Fix a comment typo.

2004-02-27  Ziemowit Laski  <zlaski@apple.com>

	* tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.

2004-02-26  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14278
	* parser.c (cp_parser_parameter_declaration_list): Commit
	to fewer tentative parses.

2004-02-26  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14284
	* pt.c (dependent_type_p_r): A template template parameter is a
	dependent type.

2004-02-26  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14246
	* mangle.c (write_template_arg_literal): Don't rely on identity for
	boolean constants.

2004-02-24  Jason Merrill  <jason@redhat.com>

	* tree.c (build_exception_variant): Use check_qualified_type.

2004-02-23  Zack Weinberg  <zack@codesourcery.com>
	    Kazu Hirata  <kazu@cs.umass.edu>

	* decl.c (cxx_init_decl_processing): Don't check
	flag_writable_strings.

2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/14156
	* typeck.c (maybe_warn_about_returning_address_of_location):
	Change check for VAR_DECL to use DECL_P instead.

2004-02-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14250
	* cvt.c (build_expr_type_conversion): Type must be complete before
	looking up for conversions.

2004-02-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14143
	* name-lookup.c	(arg_assoc_class): Don't look into template
	arguments if it is not a primary template.

2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR c++/12007
	* method.c (use_thunk): Always clone function argument tree.

2004-02-20  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14199
	* pt.c (tsubst_copy): Call mark_used for a PARM_DECL.

	PR c++/14173
	* semantics.c (begin_class_definition): Set TYPE_PACKED correctly
	for all type variants.

2004-02-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13927
	* decl.c (duplicate_decls): Return error_mark_node for invalid
	redeclarations.
	* name-lookup.c (push_namespace): Ignore the return value from
	pushdecl.
	* pt.c (push_template_decl_real): Robustify.

	PR c++/14186
	* name-lookup.c (push_class_level_binding): Do not complain about
	adding a binding for a member whose name is the same as the
	enclosing class if the member is located in a base class of the
	current class.

2004-02-19  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14181
	* parser.c (cp_parser_new_expression): Parse an ill-formed
	direct-new-declarator after a parenthesized type-id to emit good
	diagnostic.

2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.def, cvt.c: Update copyright.

2004-02-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/11326
	* cp-tree.h (abi_version_at_least): Remove.
	* mangle.c: Include flags.h.

2004-02-15  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13971
	* call.c (build_conditional_expr): Handle conversions between
	class types which result in differently cv-qualified type
	variants.

	PR c++/14086
	* class.c (delete_duplicate_fields_1): Remove.
	(delete_duplicate_fields): Likewise.
	(finish_struct_anon): Remove check for members with the same name
	as their enclosing class.
	(check_field_decls): Do not call duplicate_fields.
	* decl.c (grokdeclarator): Remove check for static data members
	with the same name as their enclosing class.
	* name-lookup.c (push_class_level_binding): Check for members with
	the same name as their enclosing class.

2004-02-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/14085
	* error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.

2004-02-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13635
	* pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
	has full set of arguments.

2004-02-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/13927
	* error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.

2004-02-13  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14122
	* cp-tree.h (delete_sanity): Change prototype.
	* decl2.c (delete_sanity): Make doing_vec a bool, not an int.
	Remove dead code.  Adjust code to warn about deleting an array.
	* typekc.c (decay_conversion): Use build_address and build_nop.

	PR c++/14108
	* search.c (accessible_p): Do not check access in thunks.

	PR c++/14083
	* call.c (build_conditional_expr): Call force_rvalue on the
	non-void operand in the case that one result is a throw-expression
	and the other is not.

2004-02-13  Ian Lance Taylor  <ian@wasabisystems.com>

	PR c++/9851
	* parser.c (cp_parser_pseudo_destructor_name): Check for errors on
	the type name and look ahead for ::~, and bail out early with a
	better error message if the parse is going to fail.

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

	* call.c (conversion_kind): New type.
	(conversion_rank): Likewise.
	(conversion): Likewise.
	(CONVERSION_RANK): New macro.
	(conversion_obstack): New variable.
	(obstack_initialized): Likewise.
	(z_candidate): Change type of convs and second_conv.
	(candidate_warning): New type.
	(IDENTITY_RANK): Remove.
	(EXACT_RANK): Likewise.
	(PROMO_RANK): Likewise.
	(STD_RANK): Likewise.
	(PBOOL_RANK): Likewise.
	(USER_RANK): Likewise.
	(ELLIPSIS_RANK): Likewise.
	(BAD_RANK): Likewise.
	(ICS_RANK): Likewise.
	(ICS_STD_RANK): Likewise.
	(ICS_USER_FLAG): Likewise.
	(ICS_ELLIPSIS_FLAG): Likewise.
	(ICS_THIS_FLAG): Likewise.
	(ICS_BAD_FLAG): Likewise.
	(NEED_TEMPORARY_P): Likewise.
	(CHECK_COPY_CONSTRUCTOR_P): Likewise.
	(USER_CONV_CAND): Likewise.
	(USER_CONV_FN): Likewise.
	(conversion_obstack_alloc): New function.
	(alloc_conversion): Likewise.
	(validate_conversion_obstack): Likewise.
	(alloc_conversions): Likewise.
	(build_conv): Adjust to deal with new conversion data structures.
	(build_identity_conv): New function.
	(build_ambiguous_conv): Likewise.
	(standard_conversion): Adjust to deal with new conversion data
	structures.
	(convert_class_to_reference): Likewise.
	(direct_reference_binding): Likewise.
	(reference_binding): Likewise.
	(implicit_conversion): Likewise.
	(add_candidate): Likewise.
	(add_function_candidate): Likewise.
	(add_conv_candidate): Likewise.
	(build_builtin_candidate): Likewise.
	(print_z_candidate): Likewise.
	(merge_conversion_sequences): Likewise.
	(build_user_type_conversion_1): Likewise.
	(build_user_type_conversion): Likewise.
	(build_new_function_call): Likewise.
	(build_object_call): Likewise.
	(conditional_conversion): Likewise.
	(build_conditional_expr): Likewise.
	(build_new_op): Likewise.
	(build_op_delete_call): Likewise.
	(convert_like_real): Likewise.
	(build_over_call): Likewise.
	(build_new_method_call): Likewise.
	(is_subseq): Likewise.
	(maybe_handle_implicit_object): Likewise.
	(maybe_handle_ref_bind): Likewise.
	(compare_ics): Likewise.
	(source_type): Likewise.
	(add_warning): Likewise.
	(joust): Likewise.
	(can_convert_arg): Likewise.
	(can_convert_arg_bad): Likewise.
	(perform_implicit_conversion): Likewise.
	(perform_direct_initialization_if_possible): Likewise.
	(initialize_reference): Likewise.
	* cp-lang.c (cp_tree_size): Do not handle WRAPPER.
	* cp-tree.def (WRAPPER): Likewise.
	(IDENTITY_CONV): Remove.
	(LVALUE_CONV): Likewise.
	(QUAL_CONV): Likewise.
	(STD_CONV): Likewise.
	(PTR_CONV): Likewise.
	(PMEM_CONV): Likewise.
	(BASE_CONV): Likewise.
	(REF_BIND): Likewise.
	(USER_CONV): Likewise.
	(AMBIG_CONV): Likewise.
	(RVALUE_CONV): Likewise.
	* cp-tree.h (tree_wrapper): Remove.
	(WRAPPER_ZC): Remove.
	(lang_tree_node): Remove wrapper.
	(LOOKUP_SPECULATIVELY): Remove.
	(build_op_delete_call): Adjust prototype.
	(validate_conversion_obstack): Declare.
	(build_zc_wrapper): Remove.
	* cvt.c (convert_to_reference): Remove dead code.
	(ocp_convert): Likewise.
	* decl.c (redeclaration_error_message): Correct handling of
	templates.
	(finish_destructor_body): Do not use LOOKUP_SPECULATIVELY.
	(cp_tree_node_structure): Remove WRAPPER case.
	* decl2.c (finish_file): Call validate_conversion_obstack.
	* init.c (build_new_1): Remove use of LOOKUP_SPECULATIVELY.
	(build_op_delete_call): Likewise.
	(build_x_delete): Likewise.
	(build_delete): Adjust call to build_op_delete_call.
	* pt.c (tsubst_friend_declaration): Adjust code to determine
	whether or not a friend template is a definition.
	(tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
	* tree.c (build_zc_wrapper): Remove.

2004-02-12  Zack Weinberg  <zack@codesourcery.com>

	* cp-lang.c: Don't define LANG_HOOKS_BUILTIN_TYPE_DECLS.
	* cp-tree.h: Don't declare cxx_builtin_type_decls.
	* decl.c (builtin_type_decls, cxx_builtin_type_decls): Delete.
	(record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.

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

	* typeck.c (lookup_destructor): Fix typo in error message.

2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>

	* call.c, parser.c, tree.c: Fix comment typos.

2004-02-07  Zack Weinberg  <zack@codesourcery.com>

	Bug 13856
	* optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
	* decl.c (duplicate_decls, start_function): Likewise.

2004-02-07  Zack Weinberg  <zack@codesourcery.com>

	* name-lookup.c (pushdecl): Issue shadow warnings directly.
	* parser.c (free_parser_stacks): Delete.

2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>

	* rtti.c: Update copyright.

2004-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14033
	* decl.c (require_complete_types_for_parms): Do not insert
	error_mark_node in the parameter list.

2004-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14028
	* parser.c (cp_parser_enclosed_template_argument_list): Emit straight
	error when terminator can not be found.

2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>

	Make-lang.in (po-generated):  Delete.

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

	* call.c (type_passed_as): Replace PROMOTE_PROTOTYPES with
	targetm.calls.promote_prototypes.

2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR middle-end/13750
	Revert:
	2004-01-15  Geoffrey Keating  <geoffk@apple.com>
	PR pch/13361
	* cp/lex.c (handle_pragma_interface): Duplicate string from tree.
	(handle_pragma_implementation): Likewise.

2004-02-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13714
	* typeck.c (lookup_destructor): Tweak error message.

2004-02-05  Jan Hubicka  <jh@suse.cz>

	* tree.c (cp_cannot_inline_tree_fn):  Allow inlining of comdat
	functions.

2004-02-05  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/14008
	* parser.c (cp_parser_diagnose_invalid_typename): Removed parsing
	code, only emits the diagnostic now. Added lookup of the identifier
	and support for qualified ids.
	(cp_parser_parse_and_diagnose_invalid_type_name): New function.
	Parse an (invalid) type name as id-expression within a declarator.
	(cp_parser_simple_declaration): Use it.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_make_typename_type): New function. Handle errors through
	cp_parser_diagnose_invalid_typename.
	(cp_parser_elaborated_type_specifier): Use it.

2004-02-04  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13932
	* call.c (convert_like_real): Use "converting" rather than
	"argument" as the descriptive keyword to
	dubious_conversion_warnings.
	* typeck.c (convert_for_assignment): Do not call
	dubious_conversion_warnings.

2004-02-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/13086
	* init.c (build_delete): Emit a more informative error message in
	case of an incomplete type, and on the correct source line.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* error.c, search.c: Update copyright.

2004-02-04  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9941
	* rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
	linkage for the typeinfo name string.

2004-02-04  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13969
	* cp-tree.h (fold_non_dependent_expr): New function.
	* parser.c (cp_parser_fold_non_dependent_expr): Remove.
	(cp_parser_template_argument): Use fold_non_dependent_expr.
	(cp_parser_direct_declarator): Likewise.
	* pt.c (fold_non_dependent_expr): New function.
	(convert_nontype_argument): Use it.
	(tsubst_qualified_id): Simplify.
	(tsubst_copy_and_build): Likewise.

2004-02-04  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (cxx_push_function_context): Do not set
	current_function_is_thunk.
	* method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
	actual function.

2004-02-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/13997
	* pt.c (more_specialized_class): Increase processing_template_decl
	while partial ordering.

2004-02-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13925
	* decl.c (start_function): Do not call pushdecl for any
	instantiation or specialization of a primary template.

2004-02-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13950
	* parser.c (cp_parser_class_name): Robustify.

	PR c++/13970
	* parser.c (cp_parser_cache_group): Do not consume the EOF token.

	PR c++/14002
	* semantics.c (finish_id_expression): Do not return an
	IDENTIFIER_NODE when lookup finds a PARM_DECL.

2004-02-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13978
	* pt.c (build_non_dependent_expr): Do not build
	NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.

	PR c++/13968
	* semantics.c (finish_id_expression): Do not return an
	IDENTIFIER_NODE when lookup finds a VAR_DECL.

	PR c++/13975
	* parser.c (cp_parser_simple_declaration): When skipping to the
	end of the statement swallow the terminating semicolon.

2004-02-02  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13113
	* init.c (build_offset_ref): Improve error recovery for invalid
	uses of non-static member functions.

	PR c++/13854
	* cp-tree.h (cp_build_type_attribute_variant): New function.
	* class.c (build_clone): Use cp_build_type_attribute_variant.
	* decl.c (duplicate_decls): Likewise.
	* pt.c (copy_default_args_to_explicit_spec): Likewise.
	(tsubst_function_type): Likewise.
	* tree.c (build_exception_variant): Check attributes before
	concluding that two types are the same.
	(cp_build_type-attribute_variant): New method.
	* typeck.c (merge_types): Use cp_build_type_attribute_variant.

	PR c++/13907
	* call.c (convert_class_to_reference): Keep better track of
	pedantically invalid user-defined conversions.

2004-02-01  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/13957
	* pt.c (tsubst_qualified_id): Improved error message when a type
	is expected but	not found.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* class.c: Fix comment typos.
	* decl.c: Likewise.
	* error.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* search.c: Likewise.
	* typeck.c: Likewise.

2004-01-30  Richard Henderson  <rth@redhat.com>

	PR c++/13693
	* method.c (use_thunk): Don't force_target_expr for void thunks.
	* tree.c (build_target_expr_with_type): Assert non-void type.
	(force_target_expr): Likewise.

2004-01-30  Michael Matz  <matz@suse.de>

	* parser.c (cp_parser_labeled_statement): Accept case ranges.

2004-01-30  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	DR206
	PR c++/13813
	* decl.c (grokdeclarator): Check immediatly type completeness for
	non-dependent types.

2004-01-30  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/13683
	* call.c (convert_arg_to_ellipsis): Don't emit a warning if within
	a sizeof expression.block

2004-01-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13883
	* mangle.c (write_encoding): Correct encoding of member template
	constructors.

2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* parser.c (cp_parser_template_id): Parse tentatively `[:' after a
	template name as it was `<::' (digraph typo).
	(cp_parser_nth_token_starts_template_argument_list_p): New function.
	(cp_parser_id_expression): Use it.
	(cp_parser_nested_name_specifier_opt): Likewise.
	(cp_parser_template_name): Likewise.
	(cp_parser_class_name): Likewise.
	(cp_lexer_get_preprocessor_token): Use c_lex_with_flags.

2004-01-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13791
	* typeck.c (merge_types): Do not merge attributes into
	TYPENAME_TYPEs.

	PR c++/13736
	* parser.c (cp_parser_direct_declarator): Do not prevent
	backtracking inside a parenthesized declarator.
	(cp_parser_parameter_declaration): Fix typo in comment.

2004-01-28  Jan Hubicka  <jh@suse.cz>

	* semantics.c (expand_body)  Do emit_associated_thunks before
	expansion.

2004-01-27  Devang Patel  <dpatel@apple.com>

	* name-lookup.c: Include "debug.h"
	(do_namespace_alias): Invoke debug_hooks to emit debug info
	for namespace alias.
	(do_local_using_decl): Invoke debug_hooks to emit debug info
	for using decl.
	(do_class_using_decl): Same.
	(do_toplevel_using_decl): Same.
	(do_using_directive): Same.
	(cp_emit_debug_info_for_using): New function.
	* Make-lang.in (cp/parser.o): Depend on debug.h
	(cp/name-lookup.o): Same.

2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cp-tree.h (language_function, lang_type_header): Use
	BOOL_BITFIELD.
	* name-lookup.h (cp_binding_level): Likewise.

2004-01-26  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13663
	* semantics.c (finish_for_expr): Check for unresolved overloaded
	functions.

	* class.c (add_method): Just check processing_template_decl to
	determine whether or not we are within a template.
	* decl2.c (maybe_retrofit_in_chrg): Likewise.
	* init.c (decl_constant_value): Check the type of the declaration,
	not TREE_READONLY.
	* name-lookup.c (maybe_push_to_top_level): Rename to ...
	(push_to_top_level): ... this.
	* name-lookup.h (maybe_push_to_top_level): Do not declare it.
	* pt.c (push_template_decl_real): Reorder condition for speed.
	(convert_template_argument): Use dependency-checking functions in
	place of uses_template_parms.
	(lookup_template_class): Avoid calling uses_template_parms more
	than once.
	(uses_template_parms): Reimplement, using dependency-checking
	functions.
	(instantiate_class_template): Use push_to_top_level, not
	maybe_push_to_top_level.
	(type_unification_real): Simplify.
	(type_dependent_expression_p): Handle OFFSET_REFs and
	TEMPLATE_DECLs.
	(any_dependent_template_arguments_p): Handle multiple levels of
	template argument.
	* semantics.c (expand_or_defer_fn): Do not check
	uses_template_parms for template instantiations.
	* typeck.c (comptypes): Avoid calling cp_type_quals.

2004-01-25  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13833
	* call.c (build_over_call): Do not convert arguments when
	processing a template.
	* pt.c (build_non_dependent_expr): Do not build a
	NON_DEPENDENT_EXPR for arithmetic constants.

2004-01-25  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/13810
	* parser.c (cp_parser_type_parameter): When cp_parser_id_expression
	returns a TYPE_DECL. no further lookup is required.
	* semantics.c (check_template_template_default_arg): A TYPE_DECL
	is invalid. Rework to give better diagnostics.

2004-01-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13797
	* pt.c (instantiate_class_template): Add an error_mark_node
	check.
	(tsubst_decl) <TEMPLATE_DECL case>: Likewise.

2004-01-23  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/13701
	* decl.c (finish_function): Move the call to
	finish_fname_decls below the call to
	finish_eh_spec_block.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* optimize.c, typeck2.c: Update copyright.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* Make-lang.in, call.c, class.c, decl2.c, except.c, expr.c,
	init.c, mangle.c, typeck.c: Update copyright.

2004-01-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* parser.c (cp_parser_class_specifier): Prevent garbage collection.

2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>

	* Make-lang.in: Replace $(docdir) with doc.
	(c++.info, c++.srcinfo): Dummy entry.
	(c++.man, c++.srcman): New rules.
	(c++.install-man): Revamp rule.

2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>

	* Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
	CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
	immediate $(shell) instead of deferred backquote.

2004-01-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13651
	* parser.c (cp_parser_postfix_expression): When encountering
	incomplete type on left-hand side of "->" or ".", treat the entire
	expression as erroneous.

	PR c++/13592
	* call.c (build_field_call): Remove.
	(n_build_method_call): Likewise.
	(build_method_call): Likewise.
	(build_new_method_call): Do not call build_field_call.
	* class.c (n_build_method_call): Remove.
	(print_class_statistics): Do not print it.
	* cp-tree.h (build_method_call): Remove declaration.
	(finish_object_call_expr): Likewise.
	(build_new_1): Do not use build_method_call.
	* parser.c (cp_parser_postfix_expression): Use finish_call_expr
	when the function appearing on the right-hand-side of "." or "->"
	is not actually a function.
	* pt.c (tsubst_copy_and_build): Likewise.
	* semantics.c (finish_object_call_expr): Remove.

2004-01-18  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13710
	* pt.c (tsubst): Use finish_typeof.

2004-01-18  Jason Merrill  <jason@redhat.com>

	PR c++/11725
	* except.c (build_throw): In a template, set
	current_function_returns_abnormally.

2004-01-17  Fred Fish  <fnf@intrinsity.com>

	PR c++/11895
	* decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
	except don't call array_type_nelts() with a VECTOR_TYPE.

2004-01-16  Jan Hubicka  <jh@suse.cz>

	* mangle.c (write_mangled_name): Remove inline modifier.

2004-01-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13574
	* decl.c (compute_array_index_type): Fix grammar in comment.
	* init.c (build_zero_init): Handle zero-sized arrays correctly.

	PR c++/13178
	* call.c (name_as_c_string): Print conversion operator names
	correctly.

	PR c++/13478
	* call.c (initialize_reference): Pass -1 for inner parameter to
	convert_like_real.

2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/13407
	* parser.c (cp_parser_base_specifier): Check for an invalid
	keyword `typename' and emit an user-friendly error message.

2004-01-15  Geoffrey Keating  <geoffk@apple.com>

	PR pch/13361
	* cp/lex.c (handle_pragma_interface): Duplicate string from tree.
	(handle_pragma_implementation): Likewise.

2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/9259
	* typeck.c (build_class_member_access_expr): Allow to access members
	of the currently open class.
	(finish_class_member_access_expr): Likewise.

2004-01-15  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/13659
	* name-lookup.c (validate_nonmember_using_decl): Take scope and
	name by value, instead of computing them.
	(do_local_using_decl, do_toplevel_using_decl): Add scope and name
	arguments.  Pass them to validate_nonmember_using_decl.
	* name-lookup.h (do_local_using_decl): Adjust.
	(do_toplevel_using_decl): Likewise.
	* parser.c (cp_parser_using_declaration): Likewise.
	* pt.c (tsubst_expr): Likewise.

2004-01-15  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/13594
	PR c++/13658
	* name-lookup.c (qualified_lookup_using_namespace): Search
	strongly-associated namespaces first, and only then try other
	namespaces.

2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

	* Make-lang.in (c++.srcextra): Dummy entry.

2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/8856
	* parser.c (cp_parser_template_name): Don't try to parse a
	conversion-function-id, as it cannot be a template-name.
	(cp_parser_simple_type_specifier): Check for invalid template-ids
	even after a built-in type.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	PR c++/12850
	* pt.c (instantiate_decl):  Do not increase function_depth.

2004-01-14  Danny Smith  <dannysmith@users,sourceforge.net>

	PR c++/9021
	PR c++/11005
	* parser.c (cp_parser_elaborated_type_specifier): Warn about
	attributes and discard.
	* decl.c (xref_tag): Don't overwite existing attributes with
	NULL_TREE.

2004-01-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/12335
	* parser.c (cp_parser_lookup_name): Return error_mark_node if there
	is no destructor while looking up a BIT_NOT_EXPR.

2004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>

	* cxxfilt.c: Remove unused file.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	Partial fix to PR c++/12850
	* decl2.c (mark_used): Do not proactively instantiate templates
	when compiling in unit-at-a-time or not optimizing.
	* optimize.c (maybe_clone_body): Do not increase function depth.

2004-01-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/13474
	* pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.

2004-01-12  Steven Bosscher  <stevenb@suse.de>

	PR c++/13558
	* parser.c (cp_parser_member_declaration): Any non-type is also
	not a class or a function.

2004-01-12  Jason Merrill  <jason@redhat.com>

	PR c++/12815
	* class.c (build_base_path): Do not mark vtable references as
	TREE_CONSTANT.
	(build_vtbl_ref_1): Likewise.

2004-01-12  Richard Henderson  <rth@redhat.com>

	PR opt/10776
	* typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
	(store_init_value): Use it.
	* decl.c (check_initializer): Expect full initialization code
	from store_init_value.
	* init.c (expand_aggr_init_1): Likewise.
	* decl2.c (maybe_emit_vtables): Abort if runtime init needed.

2004-01-12  Mark Mitchell  <mark@codesourcery.com>

	* class.c (layout_class_type): For non-POD class types, also copy
	the DECL_SIZE and DECL_MODE of fields to the base class type.

2004-01-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13289
	* pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
	calling regenerate_decl_from_template.

2004-01-12  Scott Brumbaugh  <scottb.lists@verizon.net>

	PR c++/4100
	* parser.c (cp_parser_decl_specifier_seq): Add check for a friend
	decl-specifier occurring along with a class definition.

2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>

	* parser.c (cp_parser_decl_specifier_seq): Add parenthetical
	clauses to comments describing declares_class_or_enum.
	(cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
	false.

2004-01-12  Jan Hubicka  <jh@suse.cz>

	* pt.c (for_each_template_parm): Do not check for duplicates.
	(for_each_template_parm): Use walk_tree duplicate checking code.

2004-01-11  Ian Lance Taylor  <ian@wasabisystems.com>

	PR c++/3478
	* parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
	is error_mark_node, don't add any more decl_specs.
	(cp_parser_init_declarator): After committing to a declaration, if
	the decl_specifiers start with error_mark_node, issue an error and
	change the type to "int".

2004-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR bootstrap/7817
	* Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.

2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	DR 337
	PR c++/9256
	* pt.c (tsubst): Substitution must fail if we are attempting to
	create an array with element type that is an abstract class type.
	* decl.c (cp_finish_decl): Strip pointers and array types recursively
	before calling abstract_virtuals_error.

2004-01-09  Alexandre Oliva  <aoliva@redhat.com>

	* name-lookup.c (qualified_lookup_using_namespace): Consider
	strong using directives even if we've already found a binding.

2004-01-09  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (cxx_expand_expr): Change prototype.
	* expr.c (cxx_expand_expr): Add alt_rtl parameter.

2004-01-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/12573
	* pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
	looking into them recursively. They can be there because of the
	new __offsetof__ extension.

2004-01-07  Zack Weinberg  <zack@codesourcery.com>

	* parser.c (cp_parser_save_member_function_body): Mark the
	definition static.

2004-01-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13057
	* class.c (build_clone): Copy type attributes from the original
	function to the clone.

	PR c++/12815
	* class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
	references as constant.

	PR c++/12132
	* parser.c (cp_parser_explicit_instantiation): Improve error
	recovery.
	(cp_parser_require): Improve indication of the error location.

	PR c++/13451
	* parser.c (cp_parser_class_head): Reorder logic to check for
	invalid qualification.

2004-01-04  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13157
	* name-lookup.c (lookup_using_namespace): Remove spacesp
	parameter.
	(unqualified_namespace_lookup): Likewise.
	(lookup_qualified_name): Adjust accordingly.
	(lookup_name_real): Likewise.
	(lookup_arg_dependent): Do not eliminate the namespace of the
	functions found by unqualified name lookup unless that is the
	current namespace.

2004-01-04  Andrew Pinski  <pinskia@physics.uc.edu>

	* semantics.c (push_deferring_access_checks): Fix format.
	(resume_deferring_access_checks): Likewise.
	(stop_deferring_access_checks): Likewise.
	(pop_deferring_access_checks): Likewise.
	(get_deferred_access_checks): Likewise.
	(pop_to_parent_deferring_access_checks): Likewise.
	(perform_deferred_access_checks): Likewise.
	(perform_or_defer_access_check): Likewise.

2004-01-04  Richard Henderson  <rth@redhat.com>

	* call.c (build_over_call): Don't create a save_expr of an
	aggregate, but rather its address.

2004-01-04  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13529
	* parser.c (cp_parser_postfix_expression): Allow "." to appear in
	an offsetof expression.

	* parser.c (cp_parser_parameter_declaration): Fix comment.

	PR c++/12226
	* call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
	(reference_binding): Set it when appropriate.
	(build_temp): New function, split out from ...
	(convert_like_real): ... here.  Honor CHECK_COPY_CONSTRUCTOR_P.
	(initialize_reference): Likewise.

	PR c++/13536
	* parser.c (cp_parser): Add in_type_id_in_expr_p.
	(cp_parser_new): Initialize it.
	(cp_parser_postfix_expression): Set it.
	(cp_parser_sizeof_operand): Likewise.
	(cp_parser_parameteR_declaration): Do not commit early to tenative
	parsers when in_type_id_in_expr_p is set.

2004-01-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13094
	* parser.c (cp_parser_template_argument): Don't call
	make_unbound_class_template directly.
	(cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
	UNBOUND_CLASS_TEMPLATE tree node.

2004-01-02  Richard Sandiford  <rsandifo@redhat.com>

	PR target/12729
	* method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.

2004-01-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13520
	* cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
	(DECL_FUNCTION_TEMPLATE_P): Use it.
	(DECL_CLASS_TEMPLATE_P): Likewise.
	* parser.c (cp_parser_lookup_name): Add is_template parameter.
	(cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
	(cp_parser_template_name): Likewise.
	(cp_parser_elaborated_type_specifier): Likewise.
	(cp_parser_namespace_name): Likewise.
	(cp_parser_class_name): Likewise.
	(cp_parser_lookup_name_simple): Likewise.

See ChangeLog.3 for earlier changes.
