2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/13507
	* decl.c (duplicate_decls): Use build_type_attribute_variant to
	merge attributes.

	PR c++/13494
	* tree.c (build_cplus_array_type_1): Only build a minimal array
	type for dependent types or domains.

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

	PR c++/12774
	* typeck.c (comp_array_types): Fold non-dependent domains for
	ABI-1.

2003-12-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13289
	* semantics.c (finish_id_expression): Only check if the type of
	a template argument is integral or enumeration when it is not
	dependent.

2003-12-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/12403
	* parser.c (cp_parser_template_declaration_after_export): Set up
	template specialization scope in case of explicit specialization.

2003-12-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13081
	* decl.c (duplicate_decls): Preserve inline-ness when redeclaring
	a function template.

	PR c++/12613
	* decl.c (reshape_init): Reject GNU colon-style designated
	initializers in arrays.

	PR c++/13009
	* call.c (build_special_member_call): Do not assume that we have a
	pointer to the complete object in an assignment operator.

2003-12-28  Roger Sayle  <roger@eyesopen.com>

	PR c++/13070
	* decl.c (duplicate_decls): When setting the type of an anticipated
	declaration, merge the existing type attributes.

2003-12-25  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/13268, c++/13339
	* class.c (add_method): Return early when method is error_mark_node.
	* pt.c (tsubst_friend_function): Return early when new_friend is
	error_mark_node.

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

	* cp-lang.c (cp_expr_size): Return zero for empty classes.

	* cp-tree.h (warn_if_uknown_interface): Remove unused function.
	* decl2.c (warn_if_unknown_interface): Likewise.

2003-12-23  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/13387
	* cp-lang.c (cxx_get_alias_set): Correct logic for a base type.

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

	* decl.c (start_function): Do not check
	flag_alt_external_templates or flag_external_templates.
	* decl2.c (warn_if_unknown_interface): Likewise.
	* lex.c (extract_interface_info): Likewise.
	* pt.c (lookup_template_class): Likewise.

	PR c++/12862
	* name-lookup.c (pushdecl): Look up all namespace-scope entities
	in their corresponding namespace.

	PR c++/12397
	* typeck.c (finish_class_member_access_expr): Don't tree
	IDENTIFIER_NODEs as non-dependent expressions.

2003-12-22  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/5050
	* tree.c (cp_start_inlining): Remove.
	(cp_end_inlining): Remove.
	* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Do not define.
	(LANG_HOOKS_TREE_INLINING_END_INLINING): Do not define.
	* cp-tree.h (cp_start_inlining): Do not declare.
	(cp_end_inlining): Do not declare.

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

	PR c++/12479
	* parser.c (cp_parser_declaration_seq_opt): Only issue "extra ;"
	pedwarn when not in a system header.

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

	* cp-tree.h (cp_tree_index): Remove CPTI_RECORD_TYPE,
	CPTI_UNION_TYPE, CPTI_ENUM_TYPE.
	(record_type_node): Remove.
	(union_type_node): Likewise.
	(enum_type_node): Likewise.
	* decl.c: Remove mention of above tree nodes in comment.
	* lex.c (cxx_init): Do not assign to record_type_node,
	union_type_node, or enum_type_node.  Simplify handling of
	class_type_node.

	PR c++/11554
	* init.c (sort_mem_initializers): Add warning.

2003-12-21  Kazu Hirata  <kazu@cs.umass.edu>

	* call.c: Fix comment formatting.
	* class.c: Likewise.
	* cp-tree.h: Likewise.
	* cvt.c: Likewise.
	* cxx-pretty-print.c: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* error.c: Likewise.
	* except.c: Likewise.
	* init.c: Likewise.
	* name-lookup.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* rtti.c: Likewise.
	* semantics.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.

2003-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* cvt.c: Remove uses of "register" specifier in
	declarations of arguments and local variables.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* expr.c: Likewise.
	* friend.c: Likewise.
	* lex.c: Likewise.
	* name-lookup.c: Likewise.
	* repo.c: Likewise.
	* search.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.

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

	PR c++/12795
	* name-lookup.c (pushdecl): Do not treated any functions as being
	"nested" in C++.

2003-12-19  Jason Merrill  <jason@redhat.com>

	PR c++/13371
	* typeck.c (build_modify_expr): Stabilize lhs if we're narrowing.
	* cvt.c (convert_to_void): Don't warn about the RHS of a comma
	being useless if TREE_NO_UNUSED_WARNING is set.

2003-12-18  Richard Henderson  <rth@redhat.com>

	* cp-tree.h (struct lang_type_header): Remove __extension__.

2003-12-18  Jason Merrill  <jason@redhat.com>

	PR c++/12253
	* init.c (build_vec_init): Initialization of an element from
	an initializer list is also a full-expression.

	* parser.c, pt.c, semantics.c: Rename constant_expression_p
	to integral_constant_expression_p.

2003-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13262
	* pt.c (instantiate_decl): Wrap push_nested_class and
	pop_nested_class around cp_finish_decl call for static member
	variable.

2003-12-18  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/9154
	* parser.c (cp_parser_template_argument): A type-id followed by '>>'
	is just an user typo, and should be accepted as last resort if any
	other parsing fails.
	(cp_parser_enclosed_template_argument_list): If the argument list is
	parsed correctly, but the next token is '>>', emit a diagnostic.
	(cp_parser_next_token_ends_template_argument): Accept '>>' as
	delimiter of template argument, it will be later detected as a typo.

2003-12-17  Kelley Cook  <kcook@gcc.gnu.org>

	* Make-lang.in: Replace cp/g++.1 with $(docobjdir)/g++.1.

2003-12-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10603
	PR c++/12827
	* parser.c (cp_parser_error): Help c_parse_error print good
	messages if the next token is a keyword.
	(cp_parser_parameter_declaration_list): When resynchronizing after
	a bad parameter declaration, stop if a comma is found.
	(cp_parser_parameter_declaration): Avoid backtracking.

2003-12-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/12696
	* decl.c (reshape_init): Recover quickly from errors.

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

	PR c++/9043
	C++ ABI change: Mangling array indices in templates.
	* decl.c (compute_array_index_type): Reorganize for earlier
	template errors. Use value_dependent_expression_p for abi-2.
	* mangle.c (write_array_type): Check broken mangling for
	expression indices on abi-1

2003-12-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/12696
	* decl.c (reshape_init): Recover quickly from errors.

	PR c++/13275
	* lex.c (reswords): Add "__offsetof" and "__offsetof__".
	* parser.c (cp_parser): Add in_offsetof_p.
	(cp_parser_new): Initialize it.
	(cp_parser_primary_expression): Handle __offsetof__ (...).
	(cp_parser_postfix_expression): Allow casts to pointer type and
	uses of "->" in a constant expression if implementing offsetof.
	(cp_parser_unary_expression): Allow the use of "&" in a constant
	expression if implementing offsetof.

2003-12-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/2294
	* name-lookup.c (push_overloaded_decl): always construct an OVERLOAD
	if the declaration comes from an using declaration.

2003-12-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* semantics.c (finish_id_expression): Refactor the code to handle
	template parameters, and emit a more informative error message
	when they are used within an integral constant expression.

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

	PR c++/13387
	* class.c (finish_struct_1): Compute mode and alias set for
	CLASSTYPE_AS_BASE.
	* call.c (build_over_call): Use CLASSTYPE_AS_BASE for trivial
	assignment of a class, as necessary.
	* cp-lang.c (cxx_get_alias_set): The alias set as a base is the
	same as for the complete type.

	PR c++/13242
	C++ ABI change. Mangling template parameters of reference type
	* mangle.c (write_template_args): Remove unreachable code.
	(write_template_arg): Look through an argument of reference type.

2003-12-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/2294
	* name-lookup.c (push_overloaded_decl): always construct an OVERLOAD
	if the declaration comes from an using declaration.

2003-12-15  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10926
	* decl2.c (grokfield): Robustify.

	PR c++/11116
	* parser.c (cp_parser_throw_expression): Determine whether or not
	an assignment-expression is present by doing one-token lookahead.

	PR c++/13269
	* parser.c (cp_parser_function_definition_after_declarator): Stop
	scanning tokens when reaching EOF.

	PR c++/12989
	* typeck.c (cxx_sizeof_or_alignof_expr): Robustify.

	PR c++/13310
	* pt.c (dependent_template_p): Handle OVERLOADs.

2003-12-15  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13243
	PR c++/12573
	* parser.c (cp_parser_postfix_expression): Tighten handling of
	integral constant expressions.
	(cp_parser_unary_expression): Likewise.
	* pt.c (value_dependent_expression_p): Remove handling for
	COMPONENT_REFs.

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

	* class.c (add_method): Disallow destructor for java classes.
	* decl.c (xref_basetypes): Check java class inheritance.
	* decl2.c (check_java_method): Skip artificial params.

	PR c++/13241
	C++ ABI change. Mangling of symbols in expressions.
	* mangle.c (write_mangled_name): Add top_level flag. Rework for
	nested and unnested mangling. Deal with abi version 1 and version
	2 differences.
	(write_expression): Adjust write_mangled_name call.
	(mangle_decl_string): Use write_mangled_name for all non-type decls.

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

	PR c++/10779
	PR c++/12160
	* parser.c (struct cp_parser): Add in_template_argument_list_p.
	(cp_parser_error): Use c_parse_error.
	(cp_parser_name_lookup_error): New function.
	(cp_parser_new): Initialize it.
	(cp_parser_declarator): Add parenthesized_p parameter.
	(cp_parser_nested_name_specifier_opt): Use
	cp_parser_name_lookup_error.
	(cp_parser_parenthesized_expression_list): Improve comments.
	(cp_parser_condition): Adjust call to cp_parser_declarator.
	(cp_parser_template_parameter): Adjust call to
	cp_parser_parameter_declaration.
	(cp_parser_template_argument_list): Set
	in_template_argument_list_p.
	(cp_parser_explicit_instantiation): Adjust call to
	cp_parser_declarator.
	(cp_parser_simple_type_specifier): Remove unncessary code.
	(cp_parser_using_declaration): Use cp_parser_name_lookup_error.
	(cp_parser_init_declarator): Handle member function definitions.
	(cp_parser_direct_declarator): Adjust call to
	cp_parser_declarator.
	(cp_parser_type_id): Adjust call to cp_parser_declarator.
	(cp_parser_parameter_declaration_list): Avoid backtracking where
	possible.
	(cp_parser_parameter_declaration): Add parenthesized_p parameter.
	(cp_parser_function_definition): Remove.
	(cp_parser_member_declaration): Do not backtrack to look for
	function definitions.
	(cp_parser_exception_declaration): Adjust call to
	cp_parser_declarator.
	(cp_parser_single_declaration): Handle function definitions via
	cp_parser_init_declarator.
	(cp_parser_save_member_function_body): New function.

2003-12-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13106
	* decl.c (finish_function): Check if return type is dependent before
	issuing no return statement warning.

2003-12-12  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/13118
	* cp-tree.h (lang_decl_u): Add thunk_alias member.
	(THUNK_VIRTUAL_OFFSET): Must be a FUNCTION_DECL.
	(THUNK_ALIAS_P): Remove.
	(THUNK_ALIAS): Adjust.
	* class.c (update_vtable_entry_for_fn): Get the vbase within the
	overriding function's return type.
	(dump_thunk): Adjust THUNK_ALIAS printing.
	(build_vtbl_initializer): Adjust THUNK_ALIAS use.
	* method.c (make_thunk): Revert 12881 test change. Clear
	THUNK_ALIAS.
	(finish_thunk): Adjust THUNK_ALIAS setting.
	(use_thunk): Adjust THUNK_ALIAS use.
	* semantics.c (emit_associated_thunks): Likewise.

	PR c++/13114, c++/13115
	* class.c (layout_empty_base): Propagate the move of an empty base
	to offset zero.

	PR c++/12881
	* method.c (make_thunk): Deal with thunk aliases when searching
	for a thunk. Robustify assertion.

2003-12-11  Nathan Sidwell  <nathan@codesourcery.com>

	* mangle.c (conv_type_names): Holds IDENTIFIER_NODEs only.
	(hash_type): Use TYPE_UID of the identifier's type.
	(compare_type): Adjust.
	(mangle_conv_op_name_for_type): Store identifier nodes only, use
	TYPE_UID has hash value.

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

	* cp-tree.h (DECL_CONV_FN_P): Check that DECL_NAME is non-NULL.

2003-12-08  Matt Austern  <austern@apple.com>

	PR c/13134
	* decl.c (duplicate_decls): Copy visibility flag when appropriate.

2003-12-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* init.c (build_new_1): Deal with an OVERLOAD set when
	looking up for _Jv_AllocObject.
	* except.c (build_throw): Likewise for _Jv_Throw.

2003-12-08  Jason Merrill  <jason@redhat.com>

	PR c++/11971
	* tree.c (build_local_temp): Split out from build_cplus_new.
	(force_target_expr): New fn.
	* call.c (call_builtin_trap): Call it.  Take a type parm.
	(convert_arg_to_ellipsis): Pass it.
	(build_x_va_arg): Use call_builtin_trap.

	PR c++/11929
	* call.c (magic_varargs_p): New fn.
	(build_over_call): Do no ellipsis conversions for arguments to
	functions with magic varargs.

	* name-lookup.c, init.c, except.c: Revert Giovanni's patch from
	yesterday.

	Give the anonymous namespace a null DECL_NAME.
	* cp-tree.h: Don't declare anonymous_namespace_name.
	* decl.c: Don't define it.
	* dump.c (cp_dump_tree): Don't check for it.
	* cxx-pretty-print.c (pp_cxx_original_namespace_definition): Likewise.
	* error.c (dump_decl): Likewise.
	* name-lookup.c: Define it here.
	(push_namespace): Put it in DECL_ASSEMBLER_NAME instead.
	* mangle.c (write_unqualified_name): Adjust.

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

	PR c++/2294
	* name-lookup.c (push_overloaded_decl): Always construct an
	OVERLOAD unless the declaration is a built-in.
	(set_namespace_binding): While binding OVERLOADs with only one
	declaration, we still need to call supplement_binding.
	* init.c (build_new_1): Deal with an OVERLOAD set when
	looking up for _Jv_AllocObject.
	* except.c (build_throw): Likewise for _Jv_Throw.

2003-12-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13323
	* class.c (same_signature_p): Handle conversion operators
	correctly.
	(check_for_override): Likewise.

2003-12-06  Kelley Cook  <kcook@gcc.gnu.org>

	* Make-lang.in (GXX_CROSS_NAME, CXX_CROSS_NAME): Delete.
	(c++.install_common, cp/g++.1, c++.install-man): Adjust for above.
	(c++.uninstall): Likewise.

2003-12-05  Danny Smith <dannysmith@gcc.gnu.org>
	    Mark Mitchell  <mark@codesourcery.com>

	PR c++/13305
	* parser.c (cp_parser_elaborated_type_specifier): Accept
	attributes.

2003-12-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13314
	* parser.c (cp_parser_class_specifier): Match push_scope/pop_scope
	calls.
	(cp_parser_class_head): Likewise.

2003-12-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/13166
	* parser.c (cp_parser_late_parsing_default_args): Make sure the
	context is a class before calling push_nested_class and
	pop_nested_class.

2003-12-03  James E Wilson  <wilson@specifixinc.com>

	* g++spec.c (lang_specific_driver): Delete USE_LIBUNWIND_EXCEPTIONS
	support.

2003-12-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9127
	* cp-tree.h (at_namespace_scope_p): New function.
	* parser.c (cp_parser_class_head): Handle invalid explicit
	specializations.
	* search.c (at_namespace_scope_p): New function.

	PR c++/13179
	* semantics.c (finish_handler_parms): Do not call eh_type_info for
	types used in templates.

	PR c++/10771
	* parser.c (cp_parser_check_for_invalid_template_id): New
	function.
	(cp_parser_simple_type_specifier): Use it.
	(cp_parser_elaborated_type_specifier): Likewise.
	(cp_parser_class_head): Likewise.

2003-12-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/10126
	* pt.c (convert_nontype_argument): Handle default conversions
	while converting a pointer to member function.

2003-12-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR c++/12573
	* pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
	looking into them recursively.

2003-12-02  Richard Henderson  <rth@redhat.com>

	* name-lookup.h (struct cp_binding_level): Use ENUM_BITFIELD.
	* parser.c (struct cp_token): Likewise.
	(struct cp_parser_token_tree_map_node): Likewise.
	* lex.c (struct resword): Move const after ENUM_BITFIELD.

2003-11-30  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9849
	* parser.c (cp_lexer_prev_token): New function.
	(cp_parser_skip_to_closing_parenthesis): Add consume_paren
	parameter.
	(cp_parser_nested_name_specifier_opt): Add is_declaration
	parameter.
	(cp_parser_nested_name_specifier): Likewise.
	(cp_parser_class_or_namespace_name): Likewise.
	(cp_parser_class_name): Likewise.
	(cp_parser_template_id): Likewise.
	(cp_parser_template_name): Likewise.
	(cp_parser_id_expression): Adjust calls to
	cp_parser_nested_name_specifier_op, cp_parser_template_id,
	cp_parser_class_name.
	(cp_parser_unqualified_id): Likewise.
	(cp_parser_postfix_expression): Likewise.
	(cp_parser_pseudo_destructor_name): Likewise.
	(cp_parser_cast_expression): Likewise.
	(cp_parser_mem_initializer_id): Likewise.
	(cp_parser_simple_type_specifier): Likewise.
	(cp_parser_type_name): Likewise.
	(cp_parser_elaborated_type_specifier): Likewise.
	(cp_parser_qualified_namespace_specifier): Likewise.
	(cp_parser_using_declaration): Likewise.
	(cp_parser_using_directive): Likewise.
	(cp_parser_ptr_operator): Likewise.
	(cp_parser_declarator_id): Likewise.
	(cp_parser_class_head): Likewise.
	(cp_parser_base_specifier): Likewise.
	(cp_parser_constructor_declarator_p): Likewise.
	(cp_parser_direct_declarator): Fix typo in comment.
	(cp_parser_parenthesized_expression_list): Adjust call to
	cp_parser_skip_to_closing_parenthesis.
	(cp_parser_selection_statement): Likewise.

2003-11-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/12924
	* typeck.c (finish_class_member_access_expr): Handle TEMPLATE_ID_EXPR
	with OVERLOAD and DECL nodes as the first operand.

2003-11-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c (tsubst) <ARRAY_REF>: Remove erroneous argument to build_nt.

2003-11-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/5369
	* friend.c (is_friend): Handle member function of a class
	template as template friend.
	(do_friend): Likewise.
	* decl2.c (check_classfn): Add template_header_p parameter.
	* decl.c (start_decl): Adjust check_classfn call.
	(grokfndecl): Likewise.
	* pt.c (is_specialization_of_friend): New function.
	(uses_template_parms_level): Likewise.
	(push_template_decl_real): Use uses_template_parms_level.
	(tsubst_friend_function): Adjust check_classfn call.
	* cp-tree.h (check_classfn): Adjust declaration.
	(uses_template_parms_level): Add declaration.
	(is_specialization_of_friend): Likewise.

2003-11-21  Mark Mitchell  <mark@codesourcery.com>

	PR c++/12515
	* pt.c (build_non_dependent_expr): Handle GNU extension to ?:
	operator.

2003-11-21  Jan Hubicka  <jh@suse.cz>

	* parser.c (cp_parser_postfix_expression): Initialize 's' to
	NULL_TREE.

2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>

	* Make-lang.in (c++.extraclean): Delete.

2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>

	* Make-lang.in (check-g++, lang_checks): Add.

2003-11-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/12932
	* class.c (currently_open_derived_class): Check if
	current_class_type is NULL_TREE.
	* semantics.c (finish_call_expr): Check if
	currently_open_derived_class returns NULL_TREE.
	* cp-tree.h (DERIVED_FROM_P): Add parenthesis around PARENT
	parameter.

2003-11-17  Jason Merrill  <jason@redhat.com>

	* init.c (build_new_1): Preevaluate placement args.
	* call.c (build_op_delete_call): Don't expose placement args to
	overload resolution.

2003-11-16  Jason Merrill  <jason@redhat.com>

	* Make-lang.in (c++.tags): Create TAGS.sub files in each directory
	and TAGS files that include them for each front end.

2003-11-15  Bernardo Innocenti  <bernie@develer.com>

	PR c++/2294
	* name-lookup.c: Revert previous patch for PR c++/2294 to prevent
	build failure on libjava.

2003-11-14  Giovanni Bajo  <giovannibajo@libero.it>

	PR c++/2294
	* name-lookup.c (push_overloaded_decl): Always construct an OVERLOAD
	unless the declaration is a built-in.
	(set_namespace_binding): While binding OVERLOADs with only one
	declaration, we still need to call supplement_binding.

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

	PR c++/12762
	* parser.c (cp_parser_enclosed_template_argument_list): New
	function.
	(cp_parser_template_id): Use it.
	(cp_parser_simple_type_specifier): Recognize invalid template
	syntax.

2003-11-14  Giovanni Bajo  <giovannibajo@libero.it>

	PR c++/2094
	* pt.c (unify): Add support for PTRMEM_CST and
	FIELD_DECL unification.

2003-11-13  Richard Earnshaw  <rearnsha@arm.com>

	* decl.c (grokfndecl): Change OK to type tree.

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

	* tree.c (build_target_expr_with_type): Treate VA_ARG_EXPR like
	CONSTRUCTOR.

	* decl.c (cp_make_fname_decl): When creating a top-level
	__FUNCTION__-like symbol, do register it with pushdecl.

	* decl.c (finish_case_label): Do not check that we are within a
	switch statement here.
	* parser.c (struct cp_parser): Add in_iteration_statement_p and
	in_switch_statement_p.
	(cp_parser_new): Initialize them.
	(cp_parser_labeled_statement): Check validity of case labels
	here.
	(cp_parser_selection_statement): Set in_switch_statement_p.
	(cp_parser_iteration_statement): Set in_iteration_statement_p.
	(cp_parser_jump_statement): Check validity of break/continue
	statements here.

	PR c++/12735
	* cp-tree.h (duplicate_decls): Return a tree.
	* decl.c (duplicate_decls): Clarify documentation.  Return
	error_mark_node to indicate a failed redeclaration.
	* friend.c (do_friend): Handle that case.
	* name-lookup.c (pushdecl): Likewise.

2003-11-11  Jason Merrill  <jason@redhat.com>

	* cp-tree.h (DECL_NAMESPACE_ASSOCIATIONS): New macro.
	* name-lookup.c (parse_using_directive): New fn.
	(is_associated_namespace): New fn.
	(arg_assoc_namespace): Also check associated namespaces.
	* name-lookup.h: Declare new fns.
	* pt.c (maybe_process_partial_specialization): Allow
	specialization in associated namespace.
	* parser.c (cp_parser_using_directive): Accept attributes.  Use
	parse_using_directive.

2003-11-10  Richard Henderson  <rth@redhat.com>

	* cvt.c (convert_to_void): Use void_zero_node after overload failure.

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

	PR c++/12832
	* name-lookup.c (supplement_binding): Gracefully handle names
	used at non-class scope prior declaration.

2003-11-06  Matt Austern  <austern@apple.com>

	* decl.c (duplicate_decls): copy DECL_VISIBILITY field.
	* method.c (use_thunk): give thunk same visibility as function.
	* optimize.c (maybe_clone_body): copy DECL_VISIBILITY field.

2003-11-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/11616
	* pt.c (instantiate_pending_templates): Save and restore
	input_location.

2003-11-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/2019
	* friend.c (add_friend): Don't display previous declaration in
	case of duplicate friend warning.

2003-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9810
	* call.c (build_over_call): Check access using primary template
	if FN is a member function template.

2003-11-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/12796
	* class.c (handle_using_decl): Set input_location before calling
	error_not_base_type.

2003-10-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10371
	* semantics.c (finish_non_static_data_member): Handle when
	both processing_template_decl and qualifying_scope are true.

2003-10-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/11076
	* class.c (handle_using_decl): Swap arguments of error_not_base_type.
	* parser.c (cp_parser_direct_declarator): Only resolve typename for
	namespace scope declarations.

2003-10-24  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/12698, c++/12699, c++/12700, c++/12566
	* cp-tree.h (THUNK_ALIAS_P, THUNK_ALIAS): New.
	(debug_class, debug_thunks): New.
	* class.c (dump_class_hierarchy_1): New break out from ...
	(dump_class_hierarchy): ... here.
	(dump_thunk, debug_thunks, debug_class): New.
	(update_vtable_entry_for_fn): Add ssizetype casts. Correct
	continued search for primary binfo via virtual.
	(build_vtbl_initializer): Follow covariant thunk alias.
	* method.c (make_thunk): Clear DECL_THUNKS of the thunk.
	(finish_thunk): Look for an alias of the covariant thunk and point
	to it.
	(use_thunk): We should never use an alias.
	* semantics.c (emit_associated_thunks): Do not emit aliases.

	PR c++/12566
	* cp-tree.h (cp_fname_init): Add TYPE pointer param.
	* decl.c (cp_fname_init): Add TYPE pointer param. Set it. Don't
	create an ad-hoc ERROR_MARK.
	(cp_make_fname_decl): Adjust.
	* pt.c (tsubst_expr): Adjust.

2003-10-23  Jason Merrill  <jason@redhat.com>

	PR c++/12726
	* tree.c (build_target_expr_with_type): Don't call force_rvalue
	for CONSTRUCTORs.

2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>

	* call.c: Fix comment formatting.
	* class.c: Likewise.
	* cxx-pretty-print.c: Likewise.
	* init.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.

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

	PR c++/11962
	* typeck.c (build_x_conditional_expr): Handle missing middle
	operands in templates.
	* mangle.c (write_expression): Issue errors about attempts to
	mangle a non-existant middle operator to the ?: operator.

2003-10-21  Robert Bowdidge   <bowdidge@apple.com>

	* decl.c (cp_finish_decl): Remove clause intended for asm directives
	  in struct or class fields: this code is never executed.

2003-10-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* decl.c (start_decl): Exit if push_template_decl returns
	error_mark_node.

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

	* ChangeLog: Fix typos.
	* call.c: Fix comment typos.
	* class.c: Likewise.
	* cp-tree.h: Likewise.
	* cvt.c: Likewise.
	* cxx-pretty-print.c: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* init.c: Likewise.
	* mangle.c: Likewise.
	* name-lookup.c: Likewise.
	* parser.c: Likewise.
	* search.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.

2003-10-20  Jan Hubicka  <jh@suse.cz>

	* decl.c (start_cleanup_fn):  Set DECL_DECLARED_INLINE_P to deffer
	the expansion.

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

	* Make-lang.in (c++.install-info): Remove.

2003-10-20  Jason Merrill  <jason@redhat.com>

	* class.c (layout_class_type): Set DECL_ARTIFICIAL on padding
	field.

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

	PR c++/9781, c++/10583, c++/11862
	* decl.c (cp_finish_decl): Exit immediately if decl is an
	error_mark_node.
	* pt.c (push_template_decl_real): Return error_mark_node for
	invalid template declaration of variable.

2003-10-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/12495
	* pt.c (lookup_template_class): Handle when current_class_type
	is a local class.

2003-10-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/2513
	* decl.c (make_typename_type): Use dependent_type_p.
	(make_unbound_class_template): Likewise.
	* pt.c (instantiate_class_template): Increment
	processing_template_decl during substitution of template friend
	function.  Preincrement processing_template_decl rather than
	postincrement.
	(get_mostly_instantiated_function_type): Increment
	processing_template_decl during partial substitution of function
	type.

2003-10-15  Jan Hubicka  <jh@suse.cz>

	PR c++/12574
	* decl2.c (cxx_callgraph_analyze_expr): Deal with baselink.

2003-10-14  Jason Merrill  <jason@redhat.com>

	PR c++/11878
	* tree.c (build_target_expr_with_type): Call force_rvalue for
	classes with non-trivial copy ctors.

	PR c++/11063
	* typeck.c (build_modify_expr): Call convert rather than abort.

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

	Breack out decl.c (3/n)
	* name-lookup.c: Include flags.h
	(lookup_name_current_level): Make static.
	(add_decl_to_level): Likewise.
	(push_local_binding): Likewise.
	(push_overloaded_decl): Likewise.
	(lookup_using_namespace): Likewise.
	(qualified_lookup_using_namespace): Likewise.
	(lookup_type_current_level): Likewise.
	(unqualified_namespace_lookup): Likewise.
	(namespace_ancestor): Likewise.
	(push_using_directive): Likewise.
	* decl.c (pushdecl): Move to name-lookup.c.
	(pushdecl_top_level_1): Likewise.
	(pushdecl_top_level): Likewise.
	(pushdecl_top_level_and_finish): Likewise.
	(maybe_push_decl): Likewise.
	(push_using_decl): Likewise.
	(push_overloaded_decl): Likewise.
	(make_anon_name): Likewise.
	(anon_cnt): Likewise.
	(clear_anon_tags): Likewise.
	(maybe_inject_for_scope_var): Likewise.
	(check_for_out_of_scope_variable): Likewise.
	* Make-lang.in (cp/name-lookup.o): Depend on flags.h.
	* decl.c (warn_extern_redeclared_static): Export.
	* cp-tree.h (warn_extern_redeclared_static): Declare.

2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Make-lang.in: Replace uses of $(target_alias) with
	$(target_noncanonical).

2003-10-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* ChangeLog: Add PR number to patch for PR c++/12370.

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

	* name-lookup.h (cxx_scope_find_binding_for_name): Don't export.
	(binding_for_name): Likewise.
	(cxx_binding_clear): Move to name-lookup.c.
	* name-lookup.c (cxx_scope_find_binding_for_name): Now static.
	(binding_for_name): Likewise.
	* decl2.c (is_ancestor): Move to name-lookup.c
	(namespace_ancestor): Likewise.
	(add_using_namespace): Likewise.
	(ambiguous_decl): Likewise.
	(lookup_using_namespace): Likewise.
	(qualified_lookup_using_namespace): Likewise.
	(set_decl_namespace): Likewise.
	(decl_namespace): Likewise.
	(current_decl_namespace): Likewise.
	(push_decl_namespace): Likewise.
	(pop_decl_namespace): Likewise.
	(push_scope): Likewise.
	(pop_scope): Likewise.
	(struct arg_lookup): Likewise.
	(arg_assoc): Likewise.
	(arg_assoc_args): Likewise.
	(arg_assoc_type): Likewise.
	(add_function): Likewise.
	(arg_assoc_namespace): Likewise.
	(arg_assoc_class): Likewise.
	(arg_assoc_template_arg): Likewise.
	(do_namespace_alias): Likewise.
	(validate_nonmember_using_decl): Likewise.
	(do_nonmember_using_decl): Likewise.
	(do_toplevel_using_decl): Likewise.
	(do_local_using_decl): Likewise.
	(do_class_using_decl): Likewise.
	(do_using_directive): Likewise.
	(constructor_name_full): Likewise.
	(constructor_name): Likewise.
	(constructor_name_p): Likewise.

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

	Break out decl.c (2/n)
	* name-lookup.c: Include diagnostic.h
	(cxx_binding_free): Make static.
	(cxx_binding_make): Likewise.
	(binding_table_new): Likewise
	(binding_table_free): Likewise.
	(binding_table_insert): Likewise.
	(binding_table_find_anon_type): Likewise.
	(binding_table_reverse_maybe_remap): Likewise.
	(supplement_binding): Likewise.
	* name-lookup.h (global_scope_name): Declare extern.
	(global_type_node): Likewise.
	(cxx_binding_free): Don't export.
	(cxx_binding_make): Likewise.
	(binding_table_new): Likewise.
	(binding_table_free): Likewise.
	(binding_table_insert): Likewise.
	(binding_table_find_anon_type): Likewise.
	(binding_table_reverse_maybe_remap): Likewise.
	* Make-lang.in (cp/name-lookup.o): Depend on $(DIAGNOSTIC_H)
	* decl.c (lookup_namespace_name): Move to name-lookup.c
	(select_decl): Likewise.
	(unqualified_namespace_lookup): Likewise.
	(lookup_qualified_name): Likewise.
	(lookup_name_real): Likewise.
	(lookup_name_nonclass): Likewise.
	(lookup_function_nonclass): Likewise.
	(lookup_name): Likewise.
	(lookup_name_current_level): Likewise.
	(lookup_type_current_level): Likewise.
	(lookup_flags): Likewise.
	(qualify_lookup): Likewise.
	(lookup_tag): Likewise.
	(lookup_tag_reverse): Likewise.
	(getdecls): Likewise.
	(storedecls): Remove.
	(cxx_remember_type_decls): Move to name-lookup.c.
	(global_bindings_p): Likewise.
	(innermost_nonclass_level): Likewise.
	(toplevel_bindings_p): Likewise.
	(namespace_bindings_p): Likewise.
	(kept_level_p): Likewise.
	(innermost_scope_kind): Likewise.
	(template_parm_scope_p): Likewise.
	(push_binding): Likewise.
	(push_local_binding): Likewise.
	(add_decl_to_level): Likewise.  Make extern.
	(push_class_binding): Move to name-lookup.c.
	(resume_level): Likewise.  Rename to resume_scope.
	(begin_scope): Move to name-lookup.c.
	(indent): Likewise.
	(binding_depth): Likewise.
	(is_class_level): Likewise.
	(cxx_scope_descriptor): Likewise.
	(cxx_scope_debug): Likewise.
	(namespace_scope_ht_size): Likewise.
	(leave_scope): Likewise.
	(pushlevel_class): Likewise.
	(poplevel_class): Likewise.
	(clear_identifier_class_values): Likewise.
	(pushdecl_with_scope): Likewise.
	(pushdecl_namespace_level): Likewise.
	(pushdecl_class_level): Likewise.
	(push_class_level_binding): Likewise.
	(push_using_directive): Likewise.
	(identifier_global_value): Likewise.
	(keep_next_level_flag): Likewise.
	(keep_next_level): Likewise.
	(free_binding_level): Likewise.
	(set_class_shadows): Likewise.
	(maybe_push_cleanup_level): Likewise.
	(cp_namespace_decls): Likewise.
	(bt_print_entry): Likewise.
	(print_binding_level): Likewise.
	(print_other_binding_stack): Likewise.
	(print_binding_stack): Likewise.
	(push_namespace): Likewise.
	(pop_namespace): Likewise.
	(push_nested_namespace): Likewise.
	(pop_nested_namespace): Likewise.
	(cxx_saved_binding_make): Likewise.
	(struct cxx_saved_binding_make): Likewise.
	(store_bindings): Likewise.
	(maybe_push_to_top_level): Likewise.
	(push_to_top_level): Likewise.
	(pop_from_top_level): Likewise.
	(identifier_type_value): Likewise.
	(set_identifier_type_value): Likewise.
	(set_identifier_type_value_with_scope): Likewise.
	(pop_everything): Likewise.
	(pushtag): Likewise.
	(follow_tag_typedef): Likewise.
	(maybe_process_template_type_declaration): Likewise.
	(pop_binding): Likewise.
	* cp-tree.h: Move corresponding declarations to name-lookup.h

2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>

	* cvt.c (ocp_convert): Move warning to C common code.

2003-10-09  Jason Merrill  <jason@redhat.com>

	PR c++/6392
	* tree.c (build_cplus_array_type): Handle all quals the same.
	(cp_build_qualified_type_real): Look through arrays first.

	* tree.c (build_cplus_new): Use build_decl to create a VAR_DECL.
	(build_target_expr_with_type): Likewise.

	* pt.c (instantiate_class_template): Sanity check that our
	enclosing class has been instantiated.

2003-10-08  Giovanni Bajo  <giovannibajo@libero.it>

	* cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS.
	* error.c (dump_function_decl): Use it to skip the dump of the
	arguments.
	(dump_expr): When dumping a declaration found within an
	expression, always set TFF_NO_FUNCTION_ARGUMENTS
	in the flags.

2003-10-08  Giovanni Bajo  <giovannibajo@libero.it>

	PR c++/11097
	* pt.c (tsubst_decl): Substitute also the DECL_NAME node of
	USING_DECL.

2003-10-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10147
	* call.c (initialize_reference): Tweak error message.
	* cxx-pretty-print.h (cxx_pretty_printer_flags): Remove
	pp_cxx_flag_qualified_id and pp_cxx_flag_global_scope.
	* cxx-pretty-print.c (pp_cxx_id_expression): Always display
	qualified entities using qualified names.

	PR c++/12337
	* init.c (build_new_1): Make sure that the expression returned is
	not an lvalue.

	PR c++/12344, c++/12236, c++/8656
	* decl.c (start_function): Do not ignore attributes embedded in a
	function declarator.

2003-10-06  Mark Mitchell  <mark@codesourcery.com>

	* Make-lang.in (c++.info): Remove.
	(c++.dvi): Remove.
	(c++.generated-manpages): Replace with ...
	(generated-manpages): ... this.

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

	* decl.c (struct cp_binding_level): Move to name-lookup.h
	(current_binding_level): Likewise.
	(class_binding_level): Likewise.
	* cp-tree.h (enum scope_kind): Likewise.

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

	* name-lookup.c (binding_entry_free): Nullify name and type
	fields.

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

	PR c++/12486
	* typeck.c (finish_class_member_access_expr): Issue diagnostic
	on erroneous use of qualified name.

2003-09-30  Richard Henderson  <rth@redhat.com>

	PR c++/12370
	* decl.c (duplicate_decls): Copy DECL_SAVED_INSNS too.

2003-09-30  Kelley Cook  <kelleycoook@wideopenwest.com>

	* g++spec.c: Convert to ISO C90 prototypes.
	* parser.c: Likewise.

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

	* decl.c (pop_binding): Don't mess with nullifying binding->scope
	here.
	* name-lookup.c: Re-format.
	(cxx_binding_free): Nullify binding->scope.

2003-09-29  Jan Hubicka  <jh@suse.cz>

	PR C++/12047
	* except.c (build_eh_type_type): Call mark_used on the type.

2003-09-28  Richard Henderson  <rth@redhat.com>

	* typeck.c (c_expand_asm_operands): Take location_t, instead of
	individual file and line.

2003-09-28  Andreas Jaeger  <aj@suse.de>

	* decl.c (cxx_builtin_type_decls): Convert to ISO C90 function
	definition.
	* init.c (push_base_cleanups): Likewise.
	* decl2.c (finish_file): Likewise.
	* mangle.c (init_mangle): Likewise.
	(dump_substitution_candidates): Likewise.
	* search.c: Likewise.

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

	* name-lookup.h (get_global_value_if_present): New function.
	(is_typename_at_global_scope): Likewise.
	* except.c (do_begin_catch): Use get_global_value_if_present.
	(do_end_catch): Likewise.
	(do_allocate_exception): Likewise.
	(do_free_exception): Likewise.
	(build_throw): Likewise.
	* parser.c (cp_parser_member_declaration): Likewise.
	* rtti.c (throw_bad_cast): Likewise.
	(throw_bad_typeid): Likewise.
	* decl.c (check_tag_decl): Use is_typename_at_global_scope.
	(grokdeclarator): Likewise.
	* cp-tree.h (global_namespace): Move to name-lookup.h
	* call.c (call_builtin_trap): Tidy.

2003-09-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/11415
	* parser.c (cp_parser_nested_name_specifier_opt): Issue correct
	error message when parser->scope is global_namespace.

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

	* cp-tree.h, name-lookup.h, decl.c, decl2.c: Remove reference to
	macros BINDING_SCOPE, BINDING_VALUE and BINDING_TYPE.

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

	* decl.c (pop_binding_level, suspend_binding_level,
	find_class_binding_level): Merge into leave_scope.  Remove.
	(leave_scope):  New function.
	(poplevel): Update.
	(poplevel_class): Likewise.
	(pop_namespace): Likewise.

2003-09-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/5655
	* parser.c (cp_parser_check_access_in_redeclaration): New function.
	(cp_parser_member_declaration): Use it.
	(cp_parser_template_declaration_after_export): Likewise.

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

	* cp-tree.h (scope_kind): Add new enumerator.
	(keep_next_level): Change parameter type to bool.
	(begin_scope):  Change prototype.
	(pushlevel): Remove declaration.
	* decl.c (push_binding_level): Fold in begin_scope.  Remove.
	(struct cp_binding_level): Remove tag_tranparent field.  Make keep
	of bitsize one.
	(keep_next_level_flag): Make a bool.
	(cxx_scope_descriptor): Update scope names table
	(make_cxx_scope): Fold in begin_scope.  Remove..
	(namespace_scope_ht_size): New function.
	(begin_scope): Change prototype.  Return a scope.  Tidy.
	(kept_level_p): Update.
	(pushlevel): Remove.
	(maybe_push_cleanup_level): Simplify.
	(poplevel): Update for sk_cleanup and keep change.
	(print_binding_level): Likewise.
	(initial_push_namespace_scope): Fold in begin_scope.  Remove.
	(push_namespace): Update.
	(pushtag): Likewise.
	(lookup_tag): Likewise.
	(lookup_name_current_level): Likewise.
	(lookup_type_current_level): Likewise.
	(cxx_init_decl_processing): Likewise.
	(start_function): Likewise.
	(begin_function_body): Likewise.
	(start_method): Likewise.
	* pt.c (push_inline_template_parms_recursive): Likewise.
	(begin_template_parm_list): Likewise.
	(begin_specialization): Likewise.
	* semantics.c (do_pushlevel): Likewise.
	(begin_compound_stmt): Likewise.
	(begin_stmt_expr): Likewise.

2003-09-21  Richard Henderson  <rth@redhat.com>

	* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
	method.c, optimize.c, pt.c, semantics.c, tree.c: Revert.

2003-09-21  Richard Henderson  <rth@redhat.com>

	* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
	method.c, optimize.c, pt.c, semantics.c, tree.c: Update for
	DECL_SOURCE_LOCATION rename and change to const.

2003-09-20  Richard Henderson  <rth@redhat.com>

	* decl.c, decl2.c, pt.c: Use %J in diagnostics.

2003-09-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/157
	* parser.c (cp_parser_direct_declarator): Clear
	parser->num_template_parameter_lists when parsing function
	parameters.
	(cp_parser_constructor_declarator_p): Likewise.

2003-09-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/495
	* pt.c (tsubst_friend_class): Only use innermost template
	arguments for the injected friend class template.

2003-09-19  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/12332
	* pt.c (instantiate_class_template): Increment
	processing_template_decl around the tsubst of a template member
	function.

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

	* decl.c (cxx_scope_descriptor): Fix thinko.
	(struct cp_binding_level): Adjust type of binding_depth field.

2003-09-18  Danny Smith  <dannysmith@users.sourceforge.net>

	PR c++/12320
	* call.c (type_passed_as): Check for incomplete type.
	(convert_for_arg_passing): Likewise.

2003-09-18  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9848
	* optimize.c (maybe_clone_body): Don't set MARK_USED on parameters
	here.
	* semantics.c (expand_body): Set it here on the remaining clones.

2003-09-18  Roger Sayle  <roger@eyesopen.com>

	* lex.c (init_operators): Remove operator_name_info for FFS_EXPR.
	* class.c (instantiate_type): Remove FFS_EXPR case.

2003-09-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* ChangeLog: Fix recent commit.

2003-09-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* ChangeLog: Add PR number to patch for PR c++/12316.

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

	* error.c (dump_type): Simplify.  Use pp_type_specifier_seq for
	"C" types.
	* cxx-pretty-print.c (pp_cxx_type_specifier_seq): Fix thinko.

2003-09-17  Richard Henderson  <rth@redhat.com>

	* semantics.c (expand_body): Don't save/restore input_location.

2003-09-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/12266
	* cp-tree.h (tsubst_flags_t): Add tf_conv.
	* class.c (standard_conversion): Pass tf_conv to
	instantiate_type.
	(resolve_address_of_overloaded_function): Do not call mark_used
	when just checking conversions.

	PR debug/12066
	* cp-lang.c (LANG_HOOKS_BUILTIN_TYPE_DECLS): Define.
	* cp-tree.h (cxx_builtin_type_decls): Declare.
	* decl.c (builtin_type_decls): New variables.
	(cxx_builtin_type_decls): New function.
	(record_builtin_type): Add to builtin_type_decls.

2003-09-17  Richard Henderson  <rth@redhat.com>

	PR c++/12316
	* semantics.c (expand_or_defer_fn): Inc/dec function_depth.

2003-09-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/7939
	* typeck.c (comptypes): Don't ICE when its first argument is
	error_mark_node.
	(compparms): Reverse the arguments of same_type_p.

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

	PR c++/12184
	* typeck.c (convert_arguments): Return error_mark_node for an
	incomplete parameter. Make error message more informative.

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

	PR c++/3907
	* class.c (maybe_note_name_used_in_class): Refine test for whether
	or not we are in a class scope.

	* cp-tree.h (language_function): Remove x_expanding_p.
	(expanding_p): Remove.
	(doing_semantic_analysis_p): Remove.
	(scope_kind): Add sk_function_parms, sk_class,
	sk_namespace.
	(innermost_scope_kind): New method.
	* call.c (cxx_type_promotes_to): Use type_decays_to.
	* cp-lang.c (LANG_HOOKS_PUSHLEVEL): Redefine.
	(LANG_HOOKS_POPLEVEL): Likewise.
	* decl.c (cp_binding_level): Remove parm_flag, template_parms_p,
	template_spec_p, namespace_p, is_for_scope, is_try_scope, and
	is_catch_scope.  Add kind and explicit_spec_p.
	(cxx_scope_descriptor): Use a lookup table.
	(find_class_binding_level): Use "kind" field in binding_level, not
	the various flags.
	(pop_binding_level): Likewise.
	(innermost_nonclass_level): Likewise.
	(toplevel_bindings_p): Likewise.
	(namespace_bindings_p): Likewise.
	(template_parm_scope_p): Likewise.
	(innermost_scope_kind): New method.
	(current_tmpl_spec_kind): Use "kind" field in binding_level, not
	the various flags.
	(pushlevel): Remove check for doing_semantic_analysis_p.
	(begin_scope): Simplify.
	(add_decl_to_level): Use "kind" field in binding_level, not
	the various flags.
	(push_local_binding): Likewise.
	(pop_label): Remove check for doing_semantic_analysis_p.
	(poplevel): Use "kind" field in binding_level, not
	the various flags.
	(set_block): Remove check for doing_semantic_analysis_p.
	(pushlevel_class): Use "kind" field in binding_level, not
	the various flags.
	(poplevel_class): Likewise.
	(initial_push_namespace_scope): Likewise.
	(maybe_push_to_top_level): Likewise.
	(set_identifier_type_value_with_scope): Likewise.
	(pop_everything): Likewise.
	(maybe_process_template_type_declaration): Likewise.
	(pushtag): Likewise.
	(pushdecl): Likewise.
	(pushdecl_with_scope): Likewise.
	(check_previous_goto_1): Likewise.
	(define_label): Likewise.
	(finish_case_label): Likewise.
	(lookup_tag): Likewise.
	(unqualified_namespace_lookup): Likewise.
	(lookup_name_real): Likewise.
	(lookup_name_current_level): Likewise.
	(lookup_type_current_level): Likewise.
	(record_builtin_type): Likewise.
	(cp_make_fname_decl): Likewise.
	(maybe_inject_for_scope_var): Likewise.
	(cp_finish_decl): Remove check for doing_semantic_analysis_p.
	(start_function): Use begin_scope, not pushlevel.
	(finish_function): Use "kind" field in binding_level, not
	the various flags.
	(start_method): Use begin_scope, not pushlevel.
	(make_label_decl): Do not check expanding_p.
	(save_function-data): Do not set expanding_p.
	(cxx_push_function_context): Do not clear expanding_p.
	* semantics.c (cxx_expand_function_start): Do not set expanding_p.

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

	* class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for
	an bit-field whose width exceeds that of its type.

2003-09-14  Geoffrey Keating  <geoffk@apple.com>

	* rtti.c (get_tinfo_decl): Set TREE_PUBLIC for typeinfo decls.

2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* parser.c: Likewise.

2003-09-13  Richard Henderson  <rth@redhat.com>

	* decl2.c (finish_file): Check cgraph_assemble_pending_functions
	during relaxation loop.

2003-09-11  David Edelsohn  <edelsohn@gnu.org>

	* decl2.c (var_finalized_p): Swap arms of conditional.

2003-09-10  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/11788
	* typeck.c (build_address): If it is a function, mark it used.
	(build_unary_op): Do not lose object's side-effects when taking
	address of static member function.
	* class.c (resolve_address_of_overloaded_function): Use
	tsubst_flags_t parameter. Only expect overload sets. Adjust.
	(instantiate_type): Adjust flags passing. Do not lose object's
	side-effects when taking address of static member function.

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

	* semantics.c (expand_or_defer_fn): Update for new
	cgraph_finalize_function argument.

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

	* decl2.c (cxx_callgraph_analyze_expr): Mark argument unused.

2003-09-10  Jan Hubicka  <jh@suse.cz>

	* decl2.c (var_finalized_p): New.
	(maybe_emit_vtables, write_out_vars, finish_file): Use it.

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

	* decl2.c (cxx_callgraph_analyze_expr): New, from corpse of
	mark_member_pointers.
	(lower_function): Remove.
	* cp-tree.h: Update to match.
	* cp-lang.c (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): New.
	(LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Remove.

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

	* semantics.c (expand_or_defer_fn): Update call to
	cgraph_finalize_function.

	* semantics.c (expand_or_defer_fn): Use cgraph_finalize_function
	always.

	* decl2.c (finish_file): Avoid out-of-bounds array reference
	during memmove.

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

	* decl2.c (mark_member_pointers): Rename from
	mark_member_pointers_and_eh_handlers and don't check eh handlers.

2003-09-09  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>

	PR bootstrap/12168
	* method.c (use_thunk): Clear DECL_RTL of copied nodes.

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

	* cp-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
	c_register_builtin_type.

	PR c++/11786
	* decl2.c (add_function): Do not complain about seeing the same
	non-function twice.
	* semantics.c (perform_koenig_lookup): Improve documentation.

	PR c++/5296
	* pt.c (try_one_overload): Add addr_p parameter.
	(resolve_overloaded_unification): Pass it.

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

	* optimize.c (maybe_clone_body): Inc/dec function_depth.

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

	* decl.c (finish_function): Clear current_function_decl.
	* decl2.c (mark_used): Don't push/pop gc context.
	* optimize.c (optimize_function): Likewise.
	* tree.c (cp_cannot_inline_tree_fn): Likewise.
	* pt.c (instantiate_decl): Inc/dec function_depth instead.
	* semantics.c (expand_body): Update for tree_rest_of_compilation
	nested argument.

2003-09-07  Gabriel Dos Reis  <gcc@integrable-solutions.net>

	PR c++/11762
	* error.c (dump_decl): Handle namespace-alias-definition.
	* decl.c (warn_extern_redeclared_static): There is no point in
	checking changes in storage class specifier for a namespace
	declaration.
	(duplicate_decls): Tidy diagnostic message.
	* cxx-pretty-print.c (pp_cxx_left_brace): New macro.
	(pp_cxx_right_brace): Likewise.
	(pp_cxx_original_namespace_definition): New function.
	(pp_cxx_namespace_alias_definition): Likewise.
	(pp_cxx_declaration): Use them.  Handle NAMESPACE_DECLs.

2003-09-07  Jan Hubicka  <jh@suse.cz>

	* decl2.c (maybe_emit_vtables, write_out_vars, finish_file):
	Avoid re-emitting variables in unit-at-a-time mode.

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

	PR c++/11867
	* call.c (standard_conversion): Improve comments.
	(perform_direct_initialization): Make sure we return an expression
	of the correct type.
	* typeck.c (build_static_cast): Check for ambiguity and
	accessibility when performing conversions.

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

	* cp-tree.h (add_binding): Remove declaration.
	* name-lookup.h (supplement_binding): Declare.
	* decl.c (add_binding): Move to name-lookup.c.
	(push_local_binding): Adjust.
	(push_class_binding): Likewise.
	(set_identifier_type_value_with_scope): Likewise.
	* name-lookup.c (supplement_binding): Rename from add_binding.
	Return a bool.  Improve documentation.
	(set_namespace_binding): Adjust.
	* Make-lang.in (cp/name-lookup.o): Depend on toplev.h

2003-09-06  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/11794
	* class.c (pushclass): Push dependent using decls for nested
	classes of templates too.

2003-09-06  Roger Sayle  <roger@eyesopen.com>

	PR c++/11409
	* class.c (resolve_address_of_overloaded_function): When building
	list of matching non-template function decls, ignore anticipated
	declarations of undeclared or shadowed GCC builtins.

2003-09-06  Steven Bosscher  <steven@gcc.gnu.org>

	PR c++/11595
	* decl.c (define_label): Remove unreachable timevar pop.
	Always return the decl, even if the definition is invalid.

2003-09-06  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/12167
	* parser.c (cp_parser_late_parsing_default_args): Push & pop the
	unparsed functions queue.

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

	PR c++/12163
	* call.c (perform_direct_initialization): Correct logic for
	direct-initialization of a class type.

	PR c++/12146
	* pt.c (lookup_template_function): Robustify.

2003-09-05  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/11922
	* pt.c (tsubst_qualified_id): Make sure we get a non-type.
	(tsubst_expr, tsubst_copy_and_build): Pass false, not zero, as
	is_type_p to lookup_qualified_name.

	* semantics.c (finish_call_expr): Refactor some code.

	PR c++/12037
	* cp-tree.h (COMPOUND_EXPR_OVERLOADED): New.
	(build_min_non_dep): Declare.
	* tree.c (build_min): Propagate TREE_SIDE_EFFECTS.
	(build_min_non_dep): New.
	* cvt.c (convert_to_void): Don't explicitly copy
	TREE_SIDE_EFFECTS, TREE_NO_UNUSED_WARNING.
	* call.c (build_new_method_call): Use build_min_non_dep.
	* decl2.c (grok_array_decl): Likewise.
	(build_offset_ref_call_from_tree): Likewise.
	* typeck.c (finish_class_member_access_expr,
	build_x_indirect_ref, build_x_binary_op, build_x_unary_op,
	build_x_conditional_expr, build_x_compound_expr): Likewise.
	(build_static_cast, build_reinterpret_cast,
	build_const_cast): Propagate TREE_SIDE_EFFECTS inside a template.
	* typeck2.c (build_x_arrow): Use build_min_non_dep.
	(build_functional_cast): Propagate TREE_SIDE_EFFECTS inside a
	template.
	* rtti.c (build_dynamic_cast_1): Set DECL_IS_PURE.
	(build_dynamic_cast): Set TREE_SIDE_EFFECTS.
	* pt.c (build_non_dependent_expr): Check COMPOUND_EXPR_OVERLOADED.

2003-09-04  Richard Henderson  <rth@redhat.com>

	* decl2.c (mark_member_pointers_and_eh_handlers): Update for
	change in cgraph_mark_needed_node arguments.

2003-09-02  Geoffrey Keating  <geoffk@apple.com>

	PR 12161
	* decl2.c (mark_used): Use ggc_push_context/ggc_pop_context.
	* tree.c (cp_cannot_inline_tree_fn): Likewise.

2003-09-04  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (finish_sizeof, finish_alignof): Remove.
	(expr_sizeof): Replace with ...
	(cxx_sizeof_or_alignof_expr): ... here.
	(cxx_sizeof_or_alignof_type): Make complain parameter a bool.
	* parser.c (cp_parser_unary_expression): Commonize alignof and
	sizeof handling.
	* pt.c (tsubst_copy_and_build): Adjust alignof and sizeof
	substitution.
	* semantics.c (finish_sizeof, finish_alignof): Remove.
	* typeck.c (cxx_sizeof_or_alignof_type): Complain parameter
	becomes bool. Set TREE_READONLY.
	(expr_sizeof): Replace with ...
	(cxx_sizeof_or_alignof_expr): ... here. Clear TREE_SIDE_EFFECTS.

2003-09-04  Mark Mitchell  <mark@codesourcery.com>

	Remove cast-as-lvalue extension.
	* call.c (build_conditional_expr): Correct formatting.
	(convert_like_real): Use lvalue_p, not non_cast_lvalue_p.
	(initialize_real): Use real_lvalue_p, not real_non_cast_lvalue_p.
	* cp-tree.h (non_cast_lvalue_p): Remove.
	(real_non_cast_lvalue_p): Remove.
	(non_cast_lvalue_or_else): Remove.
	* tree.c (lvalue_p_1): Remove allow_cast_as_lvalue parameter.
	(real_lvalue_p): Adjust call to lvalue_p_1.
	(non_cast_lvalue_p): Remove.
	(non_cast_lvalue_or_else): Remove.
	(lvalue_p): Adjust call to lvalue_p_1.
	(lvalue_or_else): Simplify.
	* typeck.c (build_unary_op): Use lvalue_or_else, not
	non_cast_lvalue_or_else.
	(build_static_cast): Use real_lvalue_p, not real_non_cast_lvalue_p.

2003-09-03  DJ Delorie  <dj@redhat.com>

	* decl.c (finish_function): Pass fndecl to aggregate_value_p.

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

	PR c++/12053
	* class.c (include_empty_classes): Correct logic for ABI version 1.

2003-09-03  Richard Henderson  <rth@redhat.com>

	* optimize.c (optimize_function): Push/pop ggc context around
	the call to optimize_inline_calls.

2003-09-02  Scott Brumbaugh  <scottb.lists@verizon.net>

	PR c++/11553
	* parser.c (cp_parser_decl_specifier_seq): Add check for a
	duplicate friend decl-specifier.

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

	PR c++/11847
	* pt.c (convert_nontype_argument): Correct representation of
	REFERENCE_TYPE expressions.

	PR c++/11808
	* cp-tree.h (KOENIG_LOOKUP_P): New macro.
	(finish_call_expr): Change prototype.
	* parser.c (cp_parser_postfix_expression): Adjust call to
	finish_call_expr.
	* pt.c (tsubst_copy_and_build): Use KOENIG_LOOKUP_P.
	* semantics.c (finish_call_expr): Add koenig_p parameter.

2003-09-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/12114
	* cp-tree.h (initialize_reference): Change prototype.
	* call.c (initialize_reference): Add cleanup parameter.
	* decl.c (grok_reference_init): Likewise.
	(check_initializer): Likewise.
	(cp_finish_decl): Insert a CLEANUP_STMT if necessary.
	(duplicate_decls): When replacing an anticipated builtin, do not
	honor TREE_NOTHROW.
	* typeck.c (convert_for_initialization): Correct call to
	initialize_reference.

	PR c++/11972
	* pt.c (dependent_type_p_r): Pass only the innermost template
	arguments to any_dependent_template_arguments_p.

2003-09-01  Josef Zlomek  <zlomekj@suse.cz>

	* error.c (dump_expr): Kill BIT_ANDTC_EXPR.
	* lex.c (init_operators): Kill BIT_ANDTC_EXPR.
	* pt.c (tsubst_copy): Kill BIT_ANDTC_EXPR.
	* typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.
	(tsubst_copy_and_build): Kill BIT_ANDTC_EXPR.

2003-08-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/12093
	* pt.c (build_non_dependent_expr): Do not build a
	NON_DEPENDENT_EXPR for a STRING_CST.

	PR c++/11928
	* search.c (add_conversions): Avoid adding two conversion
	operators for the same type.

2003-08-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/6196
	* pt.c (tsubst_copy_and_build): Correct handling of
	address-of-label extension.
	* semantics.c (finish_goto_stmt): The address of a label must go
	through the lvalue-to-rvalue conversion.

2003-08-29  Richard Henderson  <rth@redhat.com>
	    Jason Merrill <jason@redhat.com>

	* cp-lang.c (LANG_HOOKS_RTL_EXPAND_START): New.
	(LANG_HOOKS_RTL_EXPAND_STMT): New.
	* cp-tree.h (cxx_expand_function_start): Declare.
	* decl.c (start_function): Use allocate_struct_function.
	Move stmts_are_full_exprs_p assertion from expand_body.
	Do not free_after_parsing or free_after_compilation.
	(cxx_push_function_context): Move code to set struct function
	data from genrtl_start_function.
	* optimize.c (optimize_function): Don't inc/dec function_depth.
	* semantics.c (expand_body): Use tree_rest_of_compilation.
	(cxx_expand_function_start): Rename from genrtl_start_function,
	omit bits done by tree_rest_of_compilation.
	(genrtl_finish_function): Remove.
	(clear_decl_rtl): Move to ../tree-optimize.c.

2003-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/11811
	* cxx-pretty-print.c (pp_cxx_canonical_template_parameter): New
	function.
	* cxx-pretty-print.h: Declare.
	* error.c (dump_template_parameter): Use it.
	(dump_type): Likewise.

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

	* init.c (decl_constant_value): Deal with COND_EXPR specially.
	* call.c (build_conditional_expr): Revert previous patch.

	PR optimization/5079
	* call.c (build_conditional_expr): Use decl_constant_value to
	simplify the arguments.

2003-08-26  Dan Nicolaescu  <dann@ics.uci.edu>

	* parser.c (struct cp_token): Use enum bitfields.
	(CP_TOKEN_BLOCK_NUM_TOKENS): Make sure cp_token_block fits in a
	512B allocation unit.
	(cp_parser_token_tree_map_node): Use enum bitfields.

2003-08-26  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/11871
	* decl.c (push_class_level_binding): Correct old_decl value from
	my 2003-07-29 reorganization.

	* call.c (build_call): Don't set TREE_SIDE_EFFECTS here.
	(build_new_method_call): Add goto finish.
	* semantics.c (simplify_aggr_init_exprs_r): Don't set
	TREE_SIDE_EFFECTS on a call.

2003-08-25  Richard Henderson  <rth@redhat.com>

	* cxx-pretty-print.c (pp_cxx_class_name): Remove unused function.

2003-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (pp_cxx_flag_default_argument): New flag.
	(cxx_pretty_printer): Adjust base type.
	(pp_cxx_function_specifier): Declare.
	* cxx-pretty-print.c (pp_cxx_whitespace): New macro.
	(pp_cxx_left_paren): Likewise.
	(pp_cxx_right_paren): Likewise.
	(pp_cxx_dot): Likewise.
	(pp_cxx_arrow): Likewise.
	(pp_cxx_semicolon): Likewise.
	(pp_cxx_identifier): Likewise.
	(pp_cxx_cv_qualifier_seq): Likewise.
	(pp_cxx_storage_class_specifier): Likewise.
	(pp_cxx_expression_list): Likewise.
	(pp_cxx_space_for_pointer_operator): Likewise.
	(pp_cxx_init_declarator): Likewise.
	(pp_cxx_call_argument_list): Likewise.
	(pp_cxx_nonconsecutive_character): Tidy.
	(pp_cxx_conversion_function_id): New function.
	(pp_cxx_template_id): Likewise.
	(pp_cxx_template_keyword_if_needed): Likewise.
	(pp_cxx_nested_name_specifier): Likewise.
	(pp_cxx_unqualified_id): Tidy
	(pp_cxx_qualified_id): Handle more nodes.
	(pp_cxx_primary_expression): Tidy.
	(pp_cxx_postfix_expression): Likewise.
	(pp_cxx_new_expression): Tidy.
	(pp_cxx_delete_expression): Likewise.
	(pp_cxx_cast_expression): New function.
	(pp_cxx_pm_expression): Tidy.
	(pp_cxx_conditional_expression): Likewise.
	(pp_cxx_assignment_operator): New function.
	(pp_cxx_assignment_expression): Tidy.
	(pp_cxx_expression): New function.
	(pp_cxx_function_specifier): Likewise.
	(pp_cxx_decl_specifier_seq): Likewise.
	(pp_cxx_simple_type_specifier): Tidy.
	(pp_cxx_type_specifier_seq): Likewise.
	(pp_cxx_ptr_operator): New function.
	(pp_cxx_implicit_parameter_type): Likewise.
	(pp_cxx_parameter_declaration): Tidy.
	(pp_cxx_parameter_declaration_clause): New function.
	(pp_cxx_exception_specification): Likewise.
	(pp_cxx_direct_declarator): Tidy.
	(pp_cxx_declarator): Likewise.
	(pp_cxx_ctor_initializer): New function.
	(pp_cxx_function_definition): Likewise.
	(pp_cxx_abstract_declarator): Tidy.
	(pp_cxx_direct_abstract_declarator): Likewise.
	(pp_cxx_type_id): Likewise.
	(pp_cxx_exception_declaration): New function.
	(pp_cxx_statement): Likewise.
	(pp_cxx_simple_declaration): Likewise.
	(pp_cxx_template_parameter_list): Likewise.
	(pp_cxx_template_parameter): Likewise.
	(pp_cxx_template_declaration): Likewise.
	(pp_cxx_explicit_specialization): Likewise.
	(pp_cxx_explicit_instantiation): Likewise.
	(pp_cxx_declaration): Tidy.
	(pp_cxx_pretty_printer_init): Initialize more fields.

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

	PR c++/8795
	* cp-tree.h (build_cplus_method_type): Remove.
	* call.c (standard_conversion): Use build_method_type_directly
	instead of build_cplus_method_type.
	* class.c (build_clone): Likewise.
	(adjust_clone_args): Likewise.
	* decl.c (build_ptrmem_type): Likewise.
	(grokdeclarator): Likewise.
	(check_function_type): Likewise.
	* decl2.c (grok_method_quals): Likewise.
	(maybe_retrofit_in_chrg): Likewise.
	* pt.c (copy_default_args_to_explicit_spec): Likewise.
	(tsubst_function_type): Likewise.
	(tsubst): Likewise.
	* tree.c (build_cplus_method_type): Remove.
	* typeck.c (merge_types): Use build_method_type_directly.

2003-08-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/3765
	* search.c (dfs_access_in_type): Fix typo in comment.
	(dfs_accessible_queue_p): Likewise.
	(dfs_accessible_p): Only terminate when a friend is found.
	(accessible_p): Return immediately if access_in_type allows
	access.

2003-08-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/641, c++/11876
	* friend.c (add_friend): Add complain parameter.
	(make_friend_class): Likewise.
	(do_friend): Adjust add_friend call.
	* decl.c (grokdeclarator): Adjust make_friend_class call.
	* parser.c (cp_parser_member_declaration): Likewise.
	(cp_parser_template_declaration_after_export): Likewise.
	* pt.c (instantiate_class_template): Adjust make_friend_class
	and add_friend call.
	* cp-tree.h (make_friend_class): Adjust declaration.
	(add_friend): Likewise.

2003-08-21  Jason Merrill  <jason@redhat.com>

	PR c++/11283
	* call.c (build_conditional_expr): Ignore cv-qual differences for
	non-class types.

2003-08-21  Mark Mitchell  <mark@codesourcery.com>

	PR c++/11551
	* parser.c (cp_parser_id_expression): Add declarator_p parameter.
	(cp_parser_primary_expression): Adjust call to
	cp_parser_id_expression.
	(cp_parser_unqualified_id): Complain about the use of
	typedef-names in a destructor declarator.
	(cp_parser_postfix_expression): Adjust call to
	cp_parser_id_expression.
	(cp_parser_type_parameter): Likewise.
	(cp_parser_template_argument): Likewise.
	(cp_parser_declarator_id): Likewise.

	PR c++/11919
	* call.c (standard_conversion): Use same_type_p, not pointer
	equality, to compare types.

	PR c++/10762
	* parser.c (cp_parser_using_declaration): Check for invalid uses
	of template-ids here...
	* decl2.c (do_class_using_decl): ... rather than here.

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

	PR c++/11834
	* pt.c (more_specialized): Bump processing_template_decl.

2003-08-21  Jason Merrill  <jason@redhat.com>

	PR c++/11614
	* decl.c (grokdeclarator): Recognize a flexible array based on the
	type, not the form of the declarator.

2003-08-20  Jason Merrill  <jason@redhat.com>

	* semantics.c (simplify_aggr_init_expr): Split out from
	simplify_aggr_init_exprs_r.  Convert slot address to match
	the return type.
	* cp-tree.h: Declare it.
	* tree.c (cp_copy_res_decl_for_inlining): Don't clobber the
	DECL_NAME of a user variable.

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

	PR c++/11945
	* pt.c (build_non_dependent_expr): Look inside COND_EXPR and
	COMPOUND_EXPR.
	* semantics.c (finish_expr_stmt): Always convert to void.
	* typeck.c (build_x_compound_exp): Always convert to void.

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

	PR c++/11684
	* cp-tree.h (grok_op_properties): Change prototype.
	* decl.c (grok_op_properties): Add complain parameter.
	(grokfndecl): Pass it.
	* pt.c (tsubst_decl): Adjust accordingly.

	PR c++/10926
	* decl.c (start_method): Return immediately if push_template_decl
	does not like the declaration.
	* pt.c (push_template_decl_real): Disallow member template
	destructors.

	PR c++/11036
	* cp-tree.h (add_binding): Add prototype.
	* class.c (add_method): Set TYPE_HAS_DESTRUCTOR if appropriate.
	(maybe_warn_about_overly_private_class): Use
	CLASSTYPE_DESTRUCTORS.
	(pushclass): Adjust call to set_identifier_type_value.
	* decl.c (add_binding): Give it external linkage.
	(push_local_binding): Adjust call to add_binding.
	(push_class_binding): Likewise.
	(set_identifier_type_value_with_scope): Change prototype.  Use
	add_binding for global bindings.
	(set_identifier_type_value): Adjust accordingly.
	(pushtag): Likewise.
	(pushdecl): Use set_identifier_type_value, not
	set_identifier_type_value_with_scope.
	(pushdecl_namespace_level): Adjust calls to
	SET_IDENTIFIER_TYPE_VALUE to pass a DECL.
	(pushdecl_class_level): Likewise.
	(lookup_tag): Use select_decl.
	(select_decl): Improve comment.
	(record_builtin_type): Do not call pushdecl.
	(cxx_init_decl_processing): Do not call xref_tag for bad_alloc.
	(cp_finish_decl): Adjust call to set_identifier_type_value.
	(check_elaborated_type_specifier): Improve checks for invalid uses
	of typedefs.
	(xref_tag): Adjust call to check_elaborated_type_specifier.
	* decl2.c (grokclassfn): Do not set TYPE_HAS_DESTRUCTOR.
	* name-lookup.c (set_namespace_binding): Use add_binding.
	* parser.c (cp_parser_simple_type_specifier): Return a TYPE_DECL,
	rather than an IDENTIFIER_NODE, to represent built-in types, if
	requested by the caller.
	(cp_parser_postfix_expression): Adjust call.
	(cp_parser_type_specifier): Likewise.
	(cp_parser_elaborated_type_specifier): Adjust call to
	check_elaborated_type_specifier.
	* typeck2.c (build_functional_cast): Do not perform name lookups.

	PR c++/10717
	* decl.c (expand_static_init): Remove unnecessary code.

2003-08-19  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/10538, PR c/5582
	* cp/cp-lang.c (LANG_HOOKS_DECL_UNINIT): Define.

2003-08-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/11174
	* init.c (build_offset_ref): Perform access checking for
	pointer to member correctly.

2003-08-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling.

2003-08-18  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/11957
	* cp-tree.h (finish_stmt_expr): Add bool parameter.
	* init.c (finish_init_stmts): Pass true to finish_stmt_expr. Don't
	adjust the stmt_expr here.
	(build_vec_init): Use finish_stmt_expr_expr, convert result to
	array type.
	* parser.c (cp_parser_primar_expression): Adjust finish_stmt_expr
	call.
	* pt.c (tsubst_copy): Likewise.
	* semantics.c (finish_stmt_expr): Add parameter.

	* pt.c (instantiate_class_template): Push to class's scope before
	tsubsting base.

2003-08-17  Jan Hubicka  <jh@suse.cz>

	PR C++/11702
	* semantics.c (finish_id_expression): Mark all functions as used.

2003-08-16  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/11512
	* cvt.c (convert_to_void): Indicate which side of conditional has
	no effects, and rhs of comma operator. Test for no sideeffect
	expressions here and always build a convert expr.
	* init.c (expand_default_init): Convert the init to void.
	* typeck.c (build_x_compound_expr): Do not check for side effects
	here.
	(build_compound_expr): Do not convert lhs when building a
	template.

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

	* cp-tree.def (NON_DEPENDENT_EXPR): Add operand.
	* decl2.c (build_offset_ref_call_from_tree): Use
	build_non_dependent_expr.
	* error.c (dump_expr) <NON_DEPENDENT_EXPR case>: Dump the operand.
	* pt.c (build_non_dependent_expr): Set operand.

2003-08-14  Jan Hubicka  <jh@suse.cz>

	* decl2.c (mark_member_pointers): Rename to...
	(mark_member_pointers_and_eh_tinfos): ... this one; deal with eh tinfos
	(lower_function): Update call.
	* except.c (eh_type_info): Break out from ...
	(build_eh_type): ... here; tinfo is already used.
	(finish_eh_spec_block): Mark tinfos as used.
	* semantics.c (finish_handler_params): Mark tinfo as used.
	* cp-tree.h (eh_type_info): Declare.

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

	* pt.c (instantiate_class_template): Set location before
	substuting bases.

	* decl.c (make_typename_type): Use my_friendly_assert.
	* pt.c (tsubst_aggr_type): Rearrange context substitution.

2003-08-14  Jan Hubicka  <jh@suse.cz>

	* method.c (use_thunk): Expand body directly.

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

	PR c++/11703
	* call.c (type_passed_as): Use TYPE_SIZE, not TYPE_PRECISION to
	determine whether or not to promote types.
	(convert_for_arg_passing): Likewise.
	* decl2.c (cp_build_parm_decl): Do not set DECL_ARG_TYPE in
	templates.
	* pt.c (tsubst_decl): Do not expect it to be set.

	PR c++/9512
	PR c++/10923
	* cp-tree.h (check_elaborated_type_specifier): Declare.
	(handle_class_head): Remove.
	(note_got_semicolon): Likewise.
	(note_list_got_semicolon): Likewise.
	(finish_class_definition): Likewise.
	* decl.c (check_elaborated_type_specifier): Make it public.
	Robustify.
	(handle_class_head): Remove.
	* parser.c (cp_parser_elaborated_type_specifier): Use
	check_elaborated_type_specifier.
	(cp_parser_class_specifier): Do not call finish_class_definition.
	(cp_parser_class_head): Or handle_class_head.  Check for
	over-qualified names.
	* semantics.c (finish_class_definition): Remove.

	* parser.c (cp_parser_check_for_definition_in_return_type): New
	function.
	(cp_parser_simple_declaration): Adjust call to
	cp_parser_init_declarator.
	(cp_parser_decl_specifier_seq): Change type of
	declares_class_or_enum parameter.
	(cp_parser_explicit_instantiation): Adjust accordingly.
	(cp_parser_type_specifier): Change type of
	declares_class_or_enum parameter.
	(cp_parser_init_declarator): Add declares_class_or_enum
	parameter.
	(cp_parser_parameter_declaration): Adjust call to
	cp_parser_decl_specifier_seq.
	(cp_parser_function_definition): Likewise.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_single_declaration): Likewise.

	* cp-tree.h (lang_type_class): Remove has_call_overloaded,
	has_array_ref_overloaded, has_arrow_overloaded, and got_semicolon.
	(TYPE_OVERLOADS_CALL_EXPR): Remove.
	(TYPE_OVERLOADS_ARRAY_REF): Likewise.
	(TYPE_OVERLOADS_ARROW): Likewise.
	(CLASSTYPE_GOT_SEMICOLON): Likewise.
	* class.c (check_bases): Do not set them.
	(finish_struct_1): Likewise.
	* decl.c (cp_finish_decl): Do not set CLASSTYPE_GOT_SEMICOLON.
	(build_ptrmemfunc_type): Likewise.
	(grok_op_properties): Do not set TYPE_OVERLOADS_*.
	(start_function): Do not check CLASSTYPE_GOT_SEMICOLON.
	* decl2.c (grokfield): Do not set CLASSTYPE_GOT_SEMICOLON.
	* lex.c (note_got_semicolon): Remove.
	(note_list_got_semicolon): Likewise.
	* parser.c (cp_parser_simple_declaration): Do not call
	note_list_got_semicolon.
	* pt.c (list_eq): Remove.
	(lookup_template_class): Do not set CLASSTYPE_GOT_SEMICOLON.
	(instantiate_class_template): Do not set TYPE_OVERLOADS*.
	(instantiate_class_template): Do not set CLASSTYPE_GOT_SEMICOLON.
	* ptree.c (cxx_print_type): Do not print them.
	* semantics.c (finish_member_class_template): Do not call
	note_list_got_semicolon.

2003-08-11  Aldy Hernandez  <aldyh@redhat.com>

	* call.c (standard_conversion): Opaque pointers interconvert.

	* testsuite/g++.dg/other/opaque-3.C: New.

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

	* typeck.c (merge_types): Handle cv-qualified pointer-to-member
	types correctly.

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

	PR c++/11789
	* cp-tree.h (get_vbase): Remove.
	(get_vbase_types): Remove.
	* init.c (expand_member_init): Correct logic for looking up base
	classes.

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

	* error.c (dump_expr): Tidy.
	* cxx-pretty-print.c (pp_cxx_nonconsecutive_character): New.
	(pp_cxx_begin_template_argument_list): Likewise.
	(pp_cxx_end_template_argument_list): Likewise.
	(is_destructor_name): Likewise.
	(pp_cxx_unqualified_id): Likewise.
	(pp_cxx_qualified_id): Likewise.
	(pp_cxx_id_expression): Likewise.
	(pp_cxx_new_expression): Likewise.
	(pp_cxx_delete_expression): Likewise.
	(pp_cxx_pm_expression): Likewise.
	(pp_cxx_type_specifier): Rework.
	(pp_cxx_type_id): Likewise.
	(pp_cxx_primary_expression): Likewise.
	(pp_cxx_postfix_expression): Likewise.
	(pp_cxx_unary_expression): Likewise.
	(pp_cxx_multiplicative_expression): Likewise.
	(pp_cxx_conditional_expression): Likewise.
	(pp_cxx_assignment_expression): Likewise.
	(pp_cxx_pretty_printer_init): Tidy.

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

	* cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): non-NULL
	NODE is always a TREE_VEC of nonzero size.
	(NUM_TMPL_ARGS): NODE is always a TREE_VEC.
	* decl2.c (arg_assoc): Template args will be a vec.
	* error.c (dump_decl) <TEMPLATE_ID_EXPR case>: Call
	dump_template_argument_list.
	(dump_template_parms): Args will be a vec.
	* parser.c (cp_parser_template_argument_list): Produce a
	vector, not a list.
	* pt.c (coerce_template_parms): Args are always vectors.
	(mangle_class_name_for_template): Likewise.
	(lookup_template_function): Likewise.
	(lookup_template_class): Likewise.
	(tsubst_template_args): Likewise.
	(tsubst_baselink): Use tsubst_template_args.
	(tsubst_qualified_id): Likewise.
	(tsubst_copy) <TEMPLATE_ID_EXPR case>: Likewise.
	(tsubst_copy_and_build) <TEMPLATE_ID_EXPR case>: Likewise.
	(any_dependent_template_args_p):  Args are always vectors.
	* tree.c (cp_tree_equal): Add TEMPLATE_ID_EXPR case.

	PR c++/11670
	* call.c (convert_like_real): Add rvalue binding error message.
	* error.c (dump_expr) <NOP_EXPR case>: Detect when the no expr is
	really a cast.

	PR c++/10530
	* pt.c (dependent_type_p_r): A dependent template-id is a class
	type with dependent template arguments, or a bound template
	template parameter.
	(type_dependent_expression_p): A template function decl cannot
	have a dependent context.

2003-08-07  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/5767
	* parser.c (cp_parser_class_name): Return immediately when scope
	is error_mark_node.

2003-08-07  Aldy Hernandez  <aldyh@redhat.com>

	* cp/Make-lang.in (cp/call.o): Add dependency for target.h.

	* cp/call.c (standard_conversion): Support opaque types.
	Include target.h.
	(strip_top_quals): Use cp_build_qualified_type instead of
	TYPE_MAIN_VARIANT.

	* cp/typeck.c (convert_for_assignment): Support opaque types.

	* testsuite/g++.dg/other/opaque-1.C: New.

	* testsuite/g++.dg/other/opaque-2.C: New.

2003-08-06  Aldy Hernandez  <aldyh@redhat.com>

	* decl.c (grokparms): Use cp_build_qualified_type instead
	TYPE_MAIN_VARIANT.

2003-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h: New file.
	* cxx-pretty-print.c: Likewise.
	* error.c (scratch_pretty_printer): Change type.
	(init_error): Tidy.
	(dump_aggr_type): Likewise.
	(dump_global_iord): Likewise.
	(dump_expr): Likewise.
	(dump_char): Remove.
	* cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define.
	(cxx_initialize_diagnostics): New function.
	* Make-lang.in (CXX_OBJS): Add cp/cxx-pretty-print.o
	(CXX_PRETTY_PRINT_H): New variable.
	(cp/cxx-pretty-print.o): New rule.
	(cp/cp-lang.o): Update dependence.
	(cp/error.o): Likewise.

2003-08-05  Steven Bosscher  <steven@gcc.gnu.org>

	* cp-tree.h (struct lang_decl): Don't include c_lang_decl.
	(DECL_DECLARED_INLINE_P): Remove.
	* decl2.c (import_export_decl): Only look at DECL_DECLARED_INLINE_P
	if decl is a FUNCTION_DECL.  This never made sense, but now it is
	required to avoid a tree check failure.
	* decl.c (grokfndecl): Don't touch DID_INLINE_FUNC.
	* optimize.c (maybe_clone_body): Likewise.

2003-08-04  Roger Sayle  <roger@eyesopen.com>

	* decl.c (cxx_insert_default_attributes): Delete.
	* cp-tree.h (cxx_insert_default_attributes): Don't prototype.
	* cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.

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

	PR c++/11704
	* pt.c (type_dependent_expression_p): Cope with COMPONENT_REF with
	unknown type.

	PR c++/11766
	* typeck.c (comp_ptr_ttypes_real): Don't loop on pointers to
	member functions.

2003-08-02  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9447
	* cp-tree.def (USING_DECL): Document its type.
	* class.c (pushclass): If we're entering a template, push any
	dependent using decls it has.
	* decl2.c (do_class_using_decl): Refactor. Type is NULL iff it is
	a dependent scope.
	* pt.c (tsubst_decl) <USING_DECL case>: Set type.
	(tsubst): Remove USING_DECL checks.
	(type_dependent_expression_p): Remove USING_DECL case.
	* semantics.c (finish_member_declaration): A USING_DECL's type
	indicates whether it is dependent.

2003-08-02  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (pushclass): Remove unneeded parameter.
	* class.c (pushclass): Remove unneeded MODIFY parm. Adjust.
	(push_nested_class): Adjust pushclass call.
	* pt.c (instantiate_class_template): Likewise.
	* semantics.c (begin_class_definition): Likewise.

2003-08-01  Nathanael Nerode  <neroden@gcc.gnu.org>

	* typeck2.c (add_exception_specifier): Use 'bool' where appropriate.

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

	PR c++/11697
	* decl.c (decls_match): Don't ignore the types of template
	classes.

	PR c++/11744
	* pt.c (tsubst_copy_and_build): Refine Koenig lookup logic.

2003-08-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/8442, c++/8806
	* decl.c (qualify_lookup): Accept TEMPLATE_DECL if types are
	preferred.
	(check_elaborated_type_specifier): Add allow_template_p
	parameter.  Check tag mismatch and class template.
	(xref_tag): Add template_header_p parameter.  Add assertion
	that name is an IDENTIFIER_NODE.  Remove implicit typename
	warning.  Simplify lookup process if globalize is true.
	(cxx_init_decl_processing): Adjust call to xref_tag.
	(xref_tag_from_type): Likewise.
	* decl2.c (handle_class_head): Likewise.
	* parser.c (cp_parser_elaborated_type_specifier,
	cp_parser_class_head): Likewise.
	* rtti.c (init_rtti_processing, build_dynamic_cast1,
	tinfo_base_init, emit_support_tinfos): Likewise.
	* class.c (is_base_of_enclosing_class): Remove.
	* pt.c (convert_template_argument): Don't accept RECORD_TYPE as
	template template argument.
	* cp-tree.h (xref_tag): Adjust declaration.
	(is_base_of_enclosing_class): Remove.
	* NEWS: Document template template argument change.

2003-08-01  Nathan Sidwell  <nathan@codesourcery.com>

	* parser.c (cp_parser_init_declarator,
	cp_paser_member_declaration): Reformat.
	* pt.c (lookup_template_class, type_unification_real, unify,
	type_dependent_expression_p): Reformat.

	PR c++/11295
	* cp-tree.h (tubst_flags_t): Add tf_stmt_expr_cmpd,
	tf_stmt_expr_body.
	(finish_stmt_expr_expr): Declare.
	* parser.c (cp_parser_primary_expression): Tell
	cp_parser_compount_statement that it is a statement expression.
	(cp_parser_statement, cp_parser_labeled_statement,
	cp_parser_compound_statement, cp_parser_statement_seq_opt): Add
	in_statement_expr_p parameter.
	(cp_parser_expression_statement): Likewise. Call
	finish_stmt_expr_expr for final expression of a statement
	expression.
	(cp_parser_for_init_statement,
	cp_parser_implicitly_scoped_statement,
	cp_parser_already_scoped_statement, cp_parser_function_definition,
	cp_parser_try_block, cp_parser_handled): Adjust.
	* pt.c (tsubst_copy) <STMT_EXPR case>: Pass tf_stmt_expr.
	(tsubst_expr): Process tf_stmt_expr and tf_stmt_exprs flags.
	(tsubst_expr) <EXPR_STMT case>: Check tf_stmt_exprs flag.
	* semantics.c (finish_expr_stmt): Do not deal with statement
	expressions.
	(begin_stmt_expr): Clear last_expr_type.
	(finish_stmt_expr_expr): New.
	(finish_stmt_expr): Process the value expression.

	* typeck.c (build_compound_expr): If RHS is a TARGET_EXPR, put the
	compound expr inside the target's initializer.

	PR c++/11525
	* parser.c (cp_parser_primary_expression): Do not set
	non-constant-p merely because it is a dependent scope.

	PR c++/9447
	* decl2.c (do_class_using_decl): Set type to NULL_TREE.
	* semantics.c (finish_expr_stmt): Do not convert to void in a
	template.

2003-07-31  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (coerce_template_parms): Refactor.
	(fn_type_unification): Increment processing_template_decl when
	tsubsting an incomplete set of explicit args.

	PR c++/11347
	* pt.c (instantiate_class_template): Increment
	processing_template_decl around the tsubst of a template member
	class.
	(tsubst_qualified_id): Assert we do not have a dependent scope.

	* pt.c (coerce_template_template_parms, lookup_template_class,
	can_complete_type_without_circularity, instantiate_class_template,
	tsubst_decl, unify): Reformat.

2003-07-31  Jan Hubicka  <jh@suse.cz>

	* decl2.c (maybe_make_one_only): Use mark_referenced.
	* method.c (use_thunk): Likewsie.

2003-07-30  Jan Hubicka  <jh@suse.cz>

	* class.c (build_vtable_entry_ref): Kill.
	(build_vtbl_ref_1): Do not call build_vtable_entry_ref.
	(build_vfn_ref): Do not call build_vtable_entry_ref.
	* cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
	* cp-tree.h (prepare_assemble_variable): Kill.
	* cp-decl.c (prepare_assemble_variable): Kill.

2003-07-29  Geoffrey Keating  <geoffk@apple.com>

	* parser.c (cp_lexer_new_main): Use c_common_no_more_pch instead
	of setting valid_pch by hand.

2003-07-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* decl.c (finish_enum): Initialize underlying_type.

2003-07-29  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9447
	* decl.c (add_binding): Add bval local variable.
	(push_class_level_binding): Likewise. Allow a USING_DECL to be
	pushed.
	* decl2.c (do_class_using_decl):  The type of a using decl is
	unknown.
	* parser.c (cp_parser_postfix_expression): Refactor unqualified-id
	function call lookup code.
	* pt.c (tsubst): A USING_DECL will have unknown type.
	(tsubst_copy_and_build): Allow a using decl.
	(type_dependent_expression_p): A USING_DECL will make it
	dependent.
	* semantics.c (finish_member_declaration): Push a dependent using
	declaration.

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

	PR c++/11530
	* parser.c (cp_parser_postfix_expression): Do not call mark_used.
	* semantics.c (finish_id_expression): Call mark_used for all
	declarations.

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

	PR c++/11667
	* call.c (standard_conversion): Allow all integral->enumeral
	conversions, after marking them as bad.
	* decl.c (finish_enum): Make sure that all enumerators are
	properly converted to the underlying type.
	(build_enumerator): Set DECL_CONTEXT for namespace-scope
	enumeration types.
	* pt.c (tsubst_copy): Adjust handling of CONST_DECLs accordingly.
	(tsubst_enum): Tidy.

	* Make-lang.in (typeck.o): Depend on convert.h.
	(class.o): Likewise.
	(rtti.o): Likewise.
	* call.c: Include convert.h.
	(convert_arg_to_ellipsis): Use convert_to_real.
	* class.c: Include convert.h.
	(build_base_path): Use convert_to_integer.
	* rtti.c: Include convert.h.
	(build_headof): Use convert_to_integer.
	* typeck.c: Include convert.h.
	(decay_conversion): Use convert_to_integer.
	(build_unary_op): Use build_nop.
	(get_delta_difference): Use convert_to_integer.
	(build_ptrmemfunc): Avoid unnecessary conversions.

2003-07-28  Jan Hubicka  <jh@suse.cz>

	* decl2.c (mark_member_pointers): Verify that member pointer points to
	the function.

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

	* cp-tree.h (begin_compound_stmt): No scope arg is a bool.
	(finish_compound_stmt): Remove no scope arg.
	* decl.c (register_dtor_fn): Adjust begin_compound_stmt and
	end_compound_stmt calls.
	(expand_static_init, begin_destructor_body, begin_function_body,
	finish_function_body): Likewise.
	* decl2.c (start_objects, finish_objects,
	start_static_storage_duration_function,
	finish_static_storage_duration_function): Likewise.
	* init.c (begin_init_stmts, finish_init_stmts,
	construct_virtual_base, build_vec_init): Likewise.
	* method.c (do_build_assign_ref, synthesize_method): Likewise.
	* parser.c (cp_parser_compound_statement,
	cp_parser_implicitly_scoped_statement,
	cp_parser_already_scoped_statement): Likewise.
	* pt.c (tsubst_expr): Likewise.
	* semantics.c (begin_compound_stmt): No scope arg is a bool.
	(finish_compound_stmt): Remove no scope arg.

	* error.c (dump_expr) <COMPOUND_EXPR case>: A compound expr is
	always dyadic.

2003-07-27  Mark Mitchell  <mark@codesourcery.com>

	* call.c (standard_conversion): Tweak handling of
	pointer-to-member types.
	* pt.c (tsubst): Correctly qualify pointers-to-data member types.
	* typeck.c (comp_ptr_ttypes_real): Check qualifiers on
	pointer-to-data member types.

2003-07-27  Nathan Sidwell  <nathan@codesourcery.com>

	* parser.c (cp_parser_type_parameter): Reformat.
	(cp_parser_parameter_declaration): Deprecate default args where
	not allowed.

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

	* cfns.h: Rebuilt.

	* cp-tree.h (begin_init_stmts, finish_init_stmts): Remove.
	(begin_global_stmt_expr, finish_global_stmt_expr): Remove.
	* init.c (begin_init_stmts): Make static. Return is_global
	value. Always call begin_stmt_expr.
	(finish_init_stmts): Make static. Add is_global parm. Always
	building a stmt tree.
	(build_aggr_init): Adjust begin_init_stmts, finish_init_stmts calls.
	(build_vec_init): Likewise. Always building a stmt tree.
	(expand_default_init): Always building a stmt tree.
	(get_temp_regvar): Likewise.
	* semantics.c (begin_global_stmt_expr,
	finish_global_stmt_expr): Remove.

2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (build_compound_expr): Take LHS & RHS args.
	(build_x_compound_expr_from_list): Declare.
	* typeck.c (build_x_compound_expr_from_list): New.
	(build_x_compound_expr): Adjust.
	(build_compound_expr): Remove unreachable code. Take two
	parameters, adjust.
	* decl.c (grok_reference_init): Use
	build_x_compound_expr_from_list.
	(expand_static_init): Adjust build_compound_expr call.
	(cxx_maybe_build_cleanup): Likewise.
	* init.c (perform_member_init): Use
	build_x_compound_expr_from_list.
	(build_new_1): Likewise.
	(build_vec_delete): Adjust build_compound_expr calls.
	(build_vbase_delete): Likewise.
	* typeck2.c (store_init_value): Use
	build_x_compound_expr_from_list.
	(build_functional_cast): Likewise.

2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (enum tsubst_flags_t): Add tf_user.
	* decl.c (make_typename_type): Pass it.
	* pt.c (lookup_template_class): Use it.
	(resolve_typename_type): Pass it.
	* semantics.c (finish_template_type): Pass it.

2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/11617
	* cp-tree.h (qualified_name_lookup_error): Declare.
	* pt.c (tsubst_qualified_id): Use qualified_name_lookup_error for
	errors.
	(tsubst_expr) <DECL_STMT case>: Likewise.
	(tsubst_copy_and_build) <COMPONENT_REF case>: Likewise.
	* semantics.c (qualified_name_lookup_error): New, broken out of ...
	(finish_id_expression): ... here. Use it.

2003-07-25  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>

	* cfns.gperf: Add '%%' delimiter to placate gperf 3.0.

2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/11596
	* pt.c (maybe_fold_nontype_arg, maybe_fold_nontype_args): Remove.
	(tsubst_template_arg): New.
	(tsubst_template_arg_vector): Rename to ...
	(tsubst_template_args): ... this. Accept a TREE_LIST form. Use
	tsubst_template_arg.
	(coerce_template_parms): Use tsubst_template_arg for default
	value.
	(tsubst_template_parms): Likewise.
	(tsubst_aggr_type): Adjust.
	(tsubst_decl): Likewise.
	(tsubst): Use tsubst_template_arg for a DOMAIN. Adjust.
	(tsubst_copy) <TEMPLATE_ID_EXPR case>: Use tsubst_template_args.

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

	* Make-lang.in (cp/error.o): Depend on DIAGNOSTIC_H.
	* error.c: Use the new pretty-printer framework.

2003-07-24  Per Bothner  <pbothner@apple.com>

	* decl.c (pushdecl_class_level): Don't use push_srcloc/pop_srcloc
	which causes errors messages to incorrectly mention included files.

2003-07-24  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (convert_to_base_statically): Declare.
	* call.c (build_special_member_call): Convert INSTANCE to the base
	type.
	* class.c (convert_to_base_statically): New method.
	* init.c (construct_virtual_base): Use it.
	* method.c (do_build_assign_ref): Fix typo in comment.

2003-07-24  Jason Merrill  <jason@redhat.com>

	* decl.c: Just set truthvalue_* to boolean_*.

2003-07-24  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (reshape_init): Remove unreachable code.

2003-07-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/11513
	* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope.

2003-07-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/11645
	* cp-tree.h (accessible_base_p): Declare.
	* call.c (build_over_call): Use it.
	* search.c (accessible_base_p): New function, split out from ...
	(lookup_base): ... here.

	PR c++/11517
	* call.c (build_conditional_expr): Use perform_implicit_conversion
	and error_operand_p.  Robustify.
	* typeck.c (build_unary_op): Use perform_implicit_conversion.

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

	PR c++/10953
	* parser.c (cp_parser_nested_name_specifier): Reset scope on
	failure.
	(cp_parser_elaborated_type_specifier): Likewise.

2003-07-22  Mark Mitchell  <mark@codesourcery.com>

	Eliminate use of POINTER_TYPE for pointers-to-members.
	* call.c (standard_conversion): Rework pointer-to-member handling.
	Add comments.
	(add_builtin_candidate): Likewise.
	(resolve_scoped_fn_name): Remove.
	(build_conditional_expr): Rework pointer-to-member handling.
	(compare_ics): Likewise.
	* class.c (check_field_decls): Use TYPE_PTR_P.
	* cp-lang.c (cp_var_mod_type_p): Rework pointer-to-member
	handling.
	* cp-tree.h (SCALAR_TYPE_P): Use TYPE_PTR_TO_MEMBER_P.
	(TYPE_PTRMEM_P): Add comment.
	(TYPE_PTR_P): Simplify.
	(TYPE_PTROB_P): Correct definition.
	(TYPE_PTR_TO_MEMBER_P): New macro.
	(TYPE_PTRMEM_CLASS_TYPE): Adjust.
	(TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
	(resolved_scoped_fn_name): Remove declaration.
	(build_offset_ref): Change prototype.
	(resolve_offset_ref): Remove.
	(comp_target_types): Remove.
	* cvt.c (cp_convert_to_pointer): Rework pointer-to-member
	handling.
	(convert_to_reference): Use can_convert.
	(ocp_convert): Improve error handling.  Rework pointer-to-member
	handling.
	(perform_qualification_conversions): Rework pointer-to-member
	handling.
	* decl.c (build_ptrmem_type): Handle functions too.
	(create_array_type_for_decl): Remove OFFSET_TYPE error message.
	(grokdeclarator): Use OFFSET_TYPE for pointers to data members.
	(grokparms): Remove OFFSET_TYPE error message.
	* dump.c (cp_dump_tree): Rework pointer-to-member handling.
	* error.c (dump_type_prefix): Likewise.
	* expr.c (cplus_expand_constant): Use build_nop.
	* init.c (build_offset_ref): Add address_p parameter.  Fold in
	necessary bits from resolve_offset_ref.
	(resolve_offset_ref): Remove.
	* parser.c (cp_parser_postfix_expression): Remove special case
	code for OFFSET_TYPE.
	* pt.c (convert_nontype_argument): Rework pointer-to-member
	handling.
	(convert_template_argument): Likewise.
	(unify): Likewise.
	(invalid_nontype_parm_type_p): Likewise.
	(dependent_type_p_r): Likewise.
	* rtti.c (get_tinfo_decl): Remove OFFSET_TYPE special case.
	(target_incomplete_p_): Rework pointer-to-member
	handling.
	(get_pseudo_ti_init): Likewise.
	(get_pseudo_ti_desc): Likewise.
	* semantics.c (finish_qualified_id_expr): Adjust call to
	build_offset_ref.  Remove use of resolve_offset_ref.
	* tree.c (pod_type_p): Use TYPE_PTR_TO_MEMBER_P.
	* typeck.c (target_type): Use TYPE_PTRMEM_P.
	(type_unknown_p): Remove obsolete code about the time before
	non-dependent expressions were handled correctly.
	(qualify_type_recursive): Remove.
	(composite_pointer_type_r): New function.
	(composite_pointer_type): Use it.
	(merge_types): Remove dead comments.
	(comp_cv_target_types): Remove.
	(comp_target_types): Likewise.
	(comp_target_parms): Likewise.
	(cxx_sizeof_or_alignof_type): Remove OFFSET_TYPE error.
	(build_indirect_ref): Use TYPE_PTR_TO_MEMBER_P.
	(build_binary_op): Do not use of comp_target_types.
	(pointer_diff): Remove OFFSET_TYPE case.
	(build_unary_op): Adjust pointer-to-member handling.
	(unary_complex_lvalue): Likewise.
	(check_for_casting_away_constness): Add description parameter.
	(build_static_cast): Pass it.
	(build_reinterpret_cast): Use check_for_casting_away_constness.
	(build_const_cast): Adjust pointer-to-member handling.
	(build_c_cast): Likewise.
	(convert_for_assignment): Remove OFFSET_TYPE error message.
	(comp_ptr_ttypes_real): Adjust pointer-to-member handling.
	(comp_ptr_ttypes_reinterpret): Remove.
	(casts_away_constness_r): Adjust pointer-to-member handling.
	(casts_away_constness): Liekwise.
	(strip_all_pointer_quals): Remove.
	* typeck2.c (digest_init): Adjust pointer-to-member handling.
	(build_m_component_ref): Likewise.

2003-07-22  Wolfgang Bangerth  <bangerth@dealii.org>

	* lex.c (unqualified_fn_lookup_error): Mention that the error
	message needs to be kept in synch with the manual.

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

	PR c++/11614
	* decl.c (grokdeclarator): An array member is only a flexible
	array member if the field itself is the array.

2003-07-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10793
	* decl.c (xref_basetypes): Handle error_mark_node.

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

	* cp-tree.h (enum cp_lvalue_kind): Add clk_packed.
	* tree.c (lvalue_p_1): Set it.
	* class.c (check_field): Don't allow non-packed non-POD fields to
	be packed.
	* call.c (reference_binding): Need a temporary for all bitfield
	and packed fields.
	(convert_like_real): Check it is ok to make a temporary here.

2003-07-21  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (hack_identifier): Remove.
	* method.c (hack_identifier): Remove.
	* semantics.c (finish_id_expression): Expand hack_identifier
	here. Simplify.

2003-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* call.c class.c decl.c decl2.c g++spec.c lex.c parser.c pt.c rtti.c
	semantics.c typeck.c: Remove unnecessary casts.

2003-07-18  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (hack_identifier): Remove.
	* method.c (hack_identifier): Remove.
	* semantics.c (finish_id_expression): Expand hack_identifier
	here. Simplify.

2003-07-18  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (finish_non_static_data_member): Add object param.
	* method.c (hack_identifier): Adjust.
	* pt.c (tsubst_copy_and_build) <COMPONENT_REF case>: Don't search
	again for a FIELD_DECL.
	* semantics.c (finish_non_static_data_member): Add object
	parameter. Always save the DECL in the COMPONENT_REF.
	* call.c (resolve_scoped_fn_name): Adjust.

2003-07-17  Zack Weinberg  <zack@codesourcery.com>

	* pt.c (get_bindings): Make definition consistent with
	forward declaration.

2003-07-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/7809
	* friend.c (add_friend): Check access for member functions
	and templates.

2003-07-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/10668
	* typeck.c (build_class_member_access_expr): Improve diagnostic.

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

	PR c++/11547
	* cp-tree.h (DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P): New
	macro.
	(DECL_PRETTY_FUNCTION_P): Use VAR_DECL_CHECK.
	* decl.c (duplicate_decls): Merge
	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
	* parser.c (cp_parser_postfix_expression): Adjust call to
	cp_parser_initializer_list and
	cp_parser_parenthesized_expression_list.
	(cp_parser_parenthesized_expression_list): Add non_constant_p.
	(cp_parser_new_placement): Adjust call to
	cp_parser_parenthesized_expression_list.
	(cp_parser_direct_new_declarator): Likewise.
	(cp_parser_conditional_expression): Remove.
	(cp_parser_constant_expression): Parse an assignment-expression,
	not a conditional-expression.
	(cp_parser_simple_declaration): Resolve expression/declaration
	ambiguity more quickly.
	(cp_parser_mem_initializer): Adjust call to
	cp_parser_parenthesized_expression_list.
	(cp_parser_init_declarator): Keep track of whether or not the
	initializer is a constant-expression.
	(cp_parser_initializer): Add non_constant_p parameter.
	(cp_parser_initializer_clause): Likewise.
	(cp_parser_initializer_list): Likewise.
	(cp_parser_attribute_list): Adjust call to
	cp_parser_parenthesized_expression_list.
	(cp_parser_functional_cast): Likewise.
	* pt.c (tsubst_decl): Copy
	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
	(tsubst_expr): Tweak use of DECL_PRETTY_FUNCTION_P.
	* semantics.c (finish_id_expression): Use
	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.

2003-07-16  Neil Booth  <neil@daikokuya.co.uk>

	* lang-options.h: Remove.

2003-07-16  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/10962
	* class.c (field_decl_cmp): Remove.
	(resort_field_decl_cmp): Remove.
	(resort_sorted_fields): Remove.
	(add_fields_to_vec): Rename to ...
	(add_fields_to_record_type): this.
	(finish_struct_1): Change to be using
	sorted_fields_type's fields.
	* cp-tree.h (lang_decl): In lang_decl_u3
	change sorted_fields to be a pointer to
	sorted_fields_type.
	(resort_sorted_fields): Remove prototype.
	* search.c (lookup_field_1): Change to be using
	sorted_fields_type's fields.

2003-07-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/5421
	* decl.c (grokdeclarator): Handle TEMPLATE_ID_EXPR if friend
	is a member of other class.
	* friend.c (do_friend): Don't build TEMPLATE_DECL if friend
	is a specialization of function template.

2003-07-16  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/10903
	* pt.c (convert_nontype_argument): Fix thinko in diagnostic.
	Improve.

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

	* cp-tree.def (LOOKUP_EXPR): Remove.
	* cp-tree.h (cp_id_kind): Add CP_ID_KIND_UNQUALIFIED_DEPENDENT.
	(LOOKUP_EXPR_GLOBAL): Remove.
	(get_bindings): Remove.
	(is_aggr_type_2): Remove.
	* call.c (resolved_scoped_fn_name): Remove support for
	LOOKUP_EXPR.
	* decl.c (grokfndecl): Likewise.
	(grokdeclarator): Likewise.
	* error.c (dump_decl): Likewise.
	(dump_expr): Likewise.
	* friend.c (do_friend): Likewise.
	* init.c (build_offset_ref): Likewise.
	* lex.c (unqualified_fn_lookup_error): Use pedwarn.  Do not create
	LOOKUP_EXPRs
	* mangle.c (write_expression): Remove support for LOOKUP_EXPR.
	* parser.c (cp_parser_postfix_expression): Modify Koenig lookup
	test.
	* pt.c (get_bindings): Give it internal linkage.
	(check_explicit_specialization): Remove support for LOOKUP_EXPR.
	(lookup_template_function): Likewise.
	(for_each_tempalte_parm_r): Likewise.
	(tsubst_decl): Likewise.
	(tsubst_qualified_id): Handle template template parameters.
	(tsubst_copy): Remove support for LOOKUP_EXPR.
	(tsubst_copy_and_build): Likewise.
	(most_general_template): Likewise.
	(value_dependent_expression_p): Likewise.
	(type_dependent_expression_p): Note that IDENTIFIER_NODEs are
	always dependent.
	* semantics.c (perform_koenig_lookup): Do not create
	IDENTIFIER_NODEs.
	(finish_fname): Likewise.
	(finish_id_expression): Likewise.
	* tree.c (is_aggr_type_2): Remove.

2003-07-16  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/11531
	* typeck.c (check_return_expr): Fix thinko in diagnostic.

2003-07-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10108
	* pt.c (tsubst_decl) <TEMPLATE_DECL>: Add a check for
	error_mark_node.

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

	PR c++/11509
	* pt.c (dependent_scope_ref_p): New function.
	(value_dependent_expression_p): Use it.
	(type_dependent_expression_p): Likewise.

	* pt.c (tsubst_friend_function): Use reregister_specialization.

	PR c++/7019
	* cp-tree.h (lookup_qualified_name): Adjust prototype.
	* decl.c (lookup_qualified_name): Add complain parameter.  Adjust
	call to is_aggr_type.
	* parser.c (cp_parser_lookup_name): Adjust call to
	lookup_qualified_name.
	* pt.c (tsubst_qualified_id): Likewise.
	(tsubst_copy_and_build): Likewise.
	* semantics.c (finish_qualified_id_expr): Deal with erroneous
	expressions.

2003-07-14  Gabriel Dos Reis <gdr@integrable-solutions.net>

	PR c++/11510
	* call.c (op_error): Properly format  REALPART_EXPR and
	IMAGPART_EXPR.
	* error.c (dump_expr): Likewise.

2003-07-14  Gabriel Dos Reis <gdr@integrable-solutions.net>

	* error.c (dump_expr): Handle EMPTY_CLASS_EXPR.

2003-07-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/5293
	* call.c (initialize_reference): Improve diagnostic.

2003-07-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/11154
	* pt.c (more_specialized_class): Add full_args parameter.
	(most_specialized_class): Adjust calls to more_specialized_class.
	* cp-tree.h (more_specialized_class): Adjust declaration.

2003-07-14  Dan Nicolaescu  <dann@ics.uci.edu>

	* lex.c (enum tree_node_kind): Delete.

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

	PR c++/11503
	* cp-tree.h (DECL_SELF_REFERENCE_P): New macro.
	(SET_DECL_SELF_REFERENCE_P): Likewise.
	* class.c (build_self_reference): Use SET_DECL_SELF_REFERENCE_P.
	* pt.c (tsubst_decl): Copy it.
	* search.c (lookup_base): Use DECL_SELF_REFERENCE_P.

	* pt.c (reregister_specialization): Fix thinko in previous change.

	* cp-tree.h (cp_id_kind): New type.
	(unqualified_name_lookup_error): Change prototype.
	(unqualified_fn_lookup_error): New function.
	(do_identifier): Remove.
	(do_scoped_id): Likewise.
	(tsubst_copy_and_build): Change prototype.
	(reregister_specialization): New function.
	(perform_koenig_lookup): Likewise.
	(finish_id_expression): Likewise.
	* call.c (build_method_call): Adjust call to
	unqualified_name_lookup_error.
	* decl.c (duplicate_decls): Use reregister_specialization.
	* lex.c (is_global): Remove.
	(unqualified_name_lookup_error): Return a value.
	(do_identifier): Remove.
	(do_scoped_id): Likewise.
	(identifier_typedecl_value): Remove.
	(unqualified_fn_lookup_error): New function.
	* parser.c (cp_parser_id_kind): Remove.
	(cp_parser_non_constant_id_expression): Remove.
	(cp_parser_primary_expression): Use finish_id_expression.
	(cp_parser_class_or_namespace_name): Use cp_id_kind, not
	cp_parser_id_kind.
	(cp_parser_postfix_expression): Use perform_koenig_lookup.
	(cp_parser_template_argument): Use cp_id_kind.
	(cp_parser_fold_non_dependent_expr): Adjust call to
	tsubst_copy_and_build.
	* pt.c (unregister_specialization): Rename to ...
	(reregister_specialization): This.
	(tsubst_friend_function): Use it.
	(maybe_fold_nontype_arg): Adjust call to tsubst_copy_and_build.
	(tsubst_qualified_id): Likewise.
	(tsubst_expr): Likewise.
	(tsubst_copy_and_build): Add function_p parameter.  Use
	finish_id_expression.  Introduce RECUR macro.
	(tsubst_non_call_postfix_expression): New function.
	(regenerate_decl_from_template): Use reregister_specialization.
	* semantics.c (perform_koenig_lookup): New function.
	(finish_id_expression): Likewise.

2003-07-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c (push_access_scope_real): Remove.
	(push_access_scope): Move code from push_access_scope_real.
	(pop_access_scope): Don't check for TEMPLATE_DECL.
	(instantiate_template): Defer access checking during template
	substitution.
	(regenerate_decl_from_template): Tidy.

2003-07-11  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR c++/11437
	* operators.def: Add definitions for __imag__, __real__.

2003-07-11  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/11050
	* parser.c (cp_parser_expression_list): Rename to ...
	(cp_parser_parenthesized_expression_list): ... here. Add attribute
	parameter, parse the surounding parentheses.
	(cp_parser_skip_to_closing_parenthesis): Add recover and or_comma
	parameters. Return int.
	(cp_parser_skip_to_closing_parenthesis or comma): Remove.
	(cp_parser_postfix_expression): Adjust function call parsing.
	(cp_parser_new_placement): Adjust.
	(cp_parser_new_initializer): Likewise.
	(cp_parser_cast_expression): Likewise.
	(cp_parser_selection_statement): Likewise.
	(cp_parser_mem_initializer): Likewise.
	(cp_parser_asm_definition): Likewise.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_declarator): Make
	cdtor_or_conv_p an int ptr.
	(cp_parser_direct_declarator): Likewise. Check for a parameter
	list on cdtors & conv functions.
	(cp_parser_initializer): Adjust.
	(cp_parser_member_declaration): Adjust.
	(cp_parser_attribute_list): Move code into
	cp_parser_parens_expression_list.
	(cp_parser_functional_cast): Adjust.
	* pt.c (type_dependent_expression_p): Erroneous expressions are
	non-dependent.

2003-07-11  Geoffrey Keating  <geoffk@apple.com>

	* decl.c (cp_finish_decl): Handle 'used' attribute.

	* cp-lang.c (c_reset_state): New dummy routine.
	* cp-tree.h (finish_file): Move prototype to c-common.h.
	* parser.c (c_parse_file): Rename from yyparse; don't call finish_file.

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

	PR c++/8327
	* pt.c (tsubst_qualified_id): Implement suggested resolution for
	Core Issue 2.
	(type_dependent_expression_p): Likewise.

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

	* typeck.c (build_binary_op): Do not warn about signed
	vs. unsigned comparisons in the bodies of templates.

	PR c++/9411
	* parser.c (cp_parser_postfix_expression): Check dependency of
	functions.

2003-07-09  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10032
	* decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are
	still errors.

	PR c++/10527
	* error.c (decl_to_string): Do not print default argument
	expressions.

	* cp-tree.h (break_out_calls): Remove declaration.
	* tree.c (break_out_calls): Remove.
	* typeck.c (build_modify_expr): Avoid invalid sharing of trees.

2003-07-09  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++ 9483
	* class.c (check_field_decls): Pass DECL_NAME to constructor_name_p.
	* decl2.c (constructor_name_p): Avoid repeated constructor_name
	calls.
	* decl.c (grokdeclarator): Refactor ctor/dtor detection.

2003-07-09  Mark Mitchell  <mark@codesourcery.com>

	* typeck.c (build_x_unary_op): Take note of the fact that
	PREINCREMENT_EXPR and POSTINCREMENT_EXPR are binary operations on
	trees.

	* parser.c (cp_parser_primary_expression): Preserve the form of
	qualified expressions in templates, even if they are not
	dependent.
	* pt.c (convert_nontype_argument): Handle non-dependent SCOPE_REFs.
	(tsubst_qualified_id): Likewise.
	* search.c (accessible_p): Treat everything in the body of a
	template as accessible.

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

	* cp-tree.def (NON_DEPENDENT_EXPR): New node.
	* cp-tree.h (build_call_from_tree): Remove.
	(build_member_call): Likewise.
	(dependent_template_arg_p): Remove.
	(any_dependent_template_arguments_p): New function.
	(dependent_template_id_p): Likewise.
	(any_type_dependent_arguments_p): Likewise.
	(build_non_dependent_expr): Likewise.
	(build_non_dependent_args): Likewise.
	(build_x_compound_expr): Adjust prototype.
	* call.c (build_new_method_call): Handle non-dependent expressions
	correctly.
	* decl2.c (grok_array_decl): Likewise.
	(build_offset_ref_call_from_tree): Likewise.
	(build_call_from_tree): Remove.
	* error.c (dump_decl): Handle NON_DEPENDENT_EXPR.
	(dump_expr): Likewise.
	* init.c (build_member_call): Remove.
	* mangle.c (write_expression): Update handling for template-ids.
	* parser.c (cp_parser_primary_expression): Use
	any_dependent_template_arguments_p.  Update constant-expression
	handling.
	(cp_parser_postfix_expression): Use
	any_type_dependent_arguments_p.  Simplify call processing.
	(cp_parser_unary_expression): Simplify.
	(cp_parser_expression): Adjust for changes to
	build_x_compound_expr.
	(cp_parser_template_argument): Implement standard-conforming
	parsing of non-type template arguments.
	(cp_parser_direct_declarator): Use
	cp_parser_fold_non_dependent_expr.
	(cp_parser_fold_non_dependent_expr): New function.
	(cp_parser_next_token_ends_template_argument_p): Likewise.
	* pt.c (convert_template_argument): Do not call
	maybe_fold_nontype_arg.
	(tsubst_baselink): Likewise.
	(tsubst_copy_and_build): Share common code.  Make sizeof/alignof
	processing work correctly for non-dependent expressions.  Adjust
	handling of COMPOUND_EXPR.  Simplify call processing.
	(value_dependent_expression_p): Deal with functional casts and
	sizeof/alignof correctly.
	(type_dependent_expression_p): Handle overloaded functions.
	(any_type_dependent_arguments_p): New function.
	(any_dependent_template_arguments_p): Likewise.
	(dependent_template_p): Treat SCOPE_REFs as dependent.
	(dependent_template_id_p): Simplify.
	(build_non_dependent_expr): New function.
	(build_non_dependent_args): Likewise.
	* semantics.c (finish_stmt_expr): Don't make dependent
	statement-expresions have void type.
	(finish_call_expr): Handle non-dependent expressions
	correctly.
	* tree.c (lvalue_p_1): Treat NON_DEPENDENT_EXPRs as lvalues.
	* typeck.c (cxx_sizeof_or_alignof_type): Give the expression
	type size_t, even in templates.
	(expr_sizeof): Likewise.
	(finish_class_member_access_expr): Handle non-dependent expressions
	correctly.
	(build_x_indirect_ref): Likewise.
	(build_x_binary_op): Likewise.
	(build_x_unary_op): Likewise.
	(build_x_conditional_expr): Likewise.
	(build_x_compound_expr): Likewise.
	* typeck2.c (build_x_arrow): Likewise.

2003-07-09  Jan Hubicka  <jh@suse.cz>

	* cp-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.
	* decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS.
	(start_function): Use DECL_ESTIMATED_INSNS.
	* optimize.c (maybe_clone_body): Use DECL_ESTIMATED_INSNS.

	* decl2.c (maybe_emit_vtables): Fix marking vtables as needed in
	unit-at-a-time

2003-07-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/11030
	* pt.c (instantiate_class_template): Don't call xref_tag to
	inject name when the friend class is a specialization.

2003-07-07  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (build_scoped_method_call): Remove.
	(lookup_qualified_name): Remove parameter.
	(tsubst_copy_and_build): Declare.
	(finish_qualified_object_call_expr): Remove.
	(check_accessibility_of_qualified_id): New function.
	(finish_qualified_id_expr): Likewise.
	(non_reference): Likewise.
	(build_expr_from-tree): Remove.
	* call.c (non_reference): Remove.
	(build_scoped_method_call): Likewise.
	(build_method_call): Use error_operand_p.  Assert that we are not
	processing a template.
	(standard_conversion): Use non_reference.
	* class.c (build_vtbl_entry_ref): Likewise.
	(build_vtbl_ref_1): Likewise.
	* cvt.c (build_expr_type_conversion): Use non_reference.
	* decl.c (lookup_qualified_name): Remove flags parameter.
	(grok_op_properties): Use non_reference.
	* decl2.c (grok_array_decl): Likewise.
	(build_expr_from_tree): Remove.
	(build_offset_ref_call_from_tree): Update comment.
	* error.c (parm_to_string): Call reinit_global_formatting_buffer.
	* except.c (prepare_eh_types): Use non_reference.
	(can_convert_eh): Likewise.
	* init.c (build_dtor_call): Avoid using build_method_call.
	* mangle.c (write_template_param): Remove misleading comment.
	* method.c (locate_copy): Use non_reference.
	* parser.c (cp_parser_scope_through_which_access_occurs): Remove.
	(cp_parser_primary_expression): Do not create SCOPE_REFs is
	non-dependent contexts.
	(cp_parser_postfix_expression): Use finish_qualified_id_expr.
	(cp_parser_direct_declarator): Use tsubst_copy_and_build, not
	build_expr_from_tree.
	(cp_parser_lookup_name): Adjust call to lookup_qualified_name.
	Use check_accessibility_of_qualified_id.
	* pt.c (maybe_fold_nontype_arg): Use tsubst_copy_and_build, not
	build_expr_from_tree.
	(tsubst_baselink): New function.
	(tsubst_qualified_id): Likewise.
	(tsubst_copy): Use them.  Remove support for METHOD_CALL_EXPR.
	(tsubst_expr): Adjust call to lookup_qualified_name.
	(tsubst_copy_and_build): Handle SCOPE_REFs specially.  Adjust
	handling of CALL_EXPRs.
	(value_dependent_expression_p): Use INTEGRAL_OR_ENUMERATION_TYPE_P.
	* rtti.c (get_tinfo_decl_dynamic): Use non_reference.
	* search.c (check_final_overrider): Likewise.
	* semantics.c (check_accessibility_of_qualified_id): New function.
	(finish_qualified_object_call_expr): Remove.
	* typeck.c (target_type): Use non_reference.
	(cxx_sizeof_or_alignof_type): Likewise.
	(dubious_conversion_warnings): Likewise.
	(convert_for_initialization): Likewise.
	(non_reference): New function.

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

	* decl.c (print_binding_level, print_other_binding_stack,
	print_binding_stack): Merge uses of HOST_PTR_PRINTF with adjacent
	stdio calls.
	* ptree.c (cxx_print_decl, cxx_print_binding): Likewise.

2003-07-07  Andreas Jaeger  <aj@suse.de>

	* friend.c: Convert to ISO C90 prototypes.

	* Make-lang.in ($(srcdir)/cp/cfns.h): Use ANSI-C as output
	language.
	* cfns.h: Regenerate.

	* typeck.c: Convert remaining prototypes to ISO C90.
	* search.c: Likewise.

	* decl2.c (build_expr_from_tree): Convert prototype to ISO C90.
	* semantics.c (expand_or_defer_fn): Likewise
	* mangle.c (discriminator_for_string_literal): Likewise.
	* g++spec.c (lang_specific_driver): Likewise.

	* search.c (lookup_base_r): Remove unused variable.

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

	* semantics.c: (genrtl_try_block) Adjust emit_line_note
	calls.

2003-07-07  Andreas Jaeger  <aj@suse.de>

	* search.c (lookup_base_r): Remove unused variable.

2003-07-06  Michael Chastain  <mec@shout.net>

	PR debug/10055
	* lex.c (cxx_init): Call push_srcloc and pop_srcloc rather than
	assigning to input_filename directly.

2003-07-06  Kazu Hirata  <kazu@cs.umass.edu>

	* call.c: Fix comment formatting.
	* class.c: Likewise.
	* cp-tree.h: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* error.c: Likewise.
	* method.c: Likewise.
	* name-lookup.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* rtti.c: Likewise.
	* search.c: Likewise.
	* typeck.c: Likewise.

2003-07-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/11345
	* search.c (lookup_base_r): Remove is_non_public and
	within_current_scope parameters.  Remove other dead code.
	(lookup_base): Adjust call to lookup_base_r.
	(adjust_result_of_qualified_name_lookup): Improve comment.
	* semantics.c (finish_call_expr): Use maybe_dummy_object.

2003-07-06  Neil Booth  <neil@daikokuya.co.uk>

	* cp-lang.c (LANG_HOOKS_HANDLE_FILENAME,
	LANG_HOOKS_MISSING_ARGUMENT): Override.

2003-07-05  Mark Mitchell  <mark@codesourcery.com>

	PR c++/11431
	* typeck.c (build_static_cast): Check for reference conversions
	earlier.

2003-07-04  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (perform_integral_promotions): Declare.
	* call.c (build_addr_func): Use decay_conversion.
	(convert_arg_to_ellipsis): Likewise.  Remove misleading comment.
	(convert_for_arg_passing): Use perform_integral_promotions.
	* cvt.c (build_expr_type_conversion): Use decay_conversion.
	(type_promotes_to): Do not return a cv-qualified type.
	* decl.c (grok_reference_init): Fix formatting.
	(get_atexit_node): Use decay_conversion.
	(build_enumerator): Use perform_integral_promotions.
	* init.c (build_vec_init): Use decay_conversion.
	* semantics.c (finish_expr_stmt): Likewise.
	(finish_switch_cond): Use perform_integral_promotions.
	* typeck.c (default_conversion): Likewise.
	(perform_integral_promotions): New function.
	(build_indirect_ref): Use decay_conversion.
	(build_array_ref): Use perform_integral_promotions.
	(convert_arguments): Use decay_conversion.
	(build_unary_op): Use perform_integral_promotions.
	(build_c_cast): Use decay_conversion.
	(build_modify_expr): Likewise.
	(convert_for_initialization): Likewise.
	* typeck2.c (build_x_arrow): Likewise.

2003-07-04  Kazu Hirata  <kazu@cs.umass.edu>

	* call.c: Fix comment typos.
	* class.c: Likewise.
	* cp-tree.h: Likewise.
	* cvt.c: Likewise.
	* decl2.c: Likewise.
	* decl.c: Likewise.
	* init.c: Likewise.
	* mangle.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* search.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.

2003-07-04  Zack Weinberg  <zack@codesourcery.com>

	* parser.c (cp_lexer_read_token): No need to handle string
	constant concatenation.

2003-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cp-tree.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_CXXDIAG): Define.
	(cp_error_at, cp_warning_at, cp_pedwarn_at): Mark with
	ATTRIBUTE_GCC_CXXDIAG.

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

	* call.c (build_addr_func): Handle bound pointers-to-members.
	(build_method_call): Do not call resolve_offset_ref.
	(implicit_conversion): Likewise.
	(resolve_scoped_fn_name): Use finish_non_static_data_member, not
	resolve_offset_ref.
	(resolve_args): Do not call resolve_offset_ref.
	(build_conditional_expr): Likewise.
	(build_new_method_call): Likewise.
	* cp-tree.def (OFFSET_REF): Update documentation.
	* cvt.c (cp_convert_to_pointer): Update handling of conversions from
	pointers to members to pointers.
	(ocp_convert): Do not call resolve_offset_ref.
	(convert_to_void): Likewise.
	(build_expr_type_conversion): Likewise.
	* decl2.c (delete_sanity): Likewise.
	* init.c (resolve_offset_ref): Simplify greatly.
	(build_vec_delete): Do not call resolve_offset_ref.
	* parser.c (cp_parser_postfix_expression): Call resolve_offset_ref
	if appropriate.
	(cp_parser_unary_expression): Use
	cp_parser_simple_cast_expression.
	(cp_parser_delete_expression): Likewise.
	(cp_parser_cast_expression): Likewise.
	(cp_parser_pm_expression): Use cp_parser_binary_op.
	(cp_parser_simple_cast_expression): New function.
	* rtti.c (build_dynamic_cast_1): Do not call resolve_offset_ref.
	* semantics.c (finish_increment_expr): Likewise.
	(finish_typeof): Likewise.
	* tree.c (lvalue_p_1): Do not handle OFFSET_REF.
	* typeck.c (require_complete_type): Do not handle OFFSET_REFs.
	(decay_conversion): Do not call resolve_offset_ref.
	(finish_class_member_access_expr): Likewise.
	(convert_arguments): Likewise.
	(build_x_binary_op): Handle DOTSTAR_EXPR.
	(condition_conversion): Do not call resolve_offset_ref.
	(unary_complex_lvalue): Likewise.
	(build_static_cast): Likewise.
	(build_reinterpret_cast): Likewise.
	(build_const_cast): Likewise.
	(build_c_cast): Likewise.
	(build_modify_expr): Likewise.
	(convert_for_assignment): Likewise.
	(convert_for_initialization): Likewise.
	* typeck2.c (build_x_arrow): Likewise.
	(build_m_component_ref): Simplify.

	* call.c (build_scoped_method_call): Use convert_to_void.
	(build_method_call): Likewise.
	* class.c (check_field_decls): Remove dead code.
	* cvt.c (convert_from_reference): Remove OFFSET_TYPE handling.
	* decl2.c (grok_array_decl): Remove dead code.
	(arg_assoc_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE
	as pointer-to-member representation.
	* init.c (build_offset_ref): Tidy.
	(build_vec_delete_1): Use convert_to_void.
	* mangle.c (write_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE
	as pointer-to-member representation.

2003-07-03  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9162
	* decl.c (grokdeclarator): Return friend decls, not
	void_type_node.
	* decl2.c (grokfield): Alter friend decl check.
	* parser.c (struct cp_parser): Document default_arg chain on
	unparsed_functions_queue.
	(cp_parser_save_default_args): New.
	(cp_parser_init_declarator, cp_parser_function_definition,
	cp_parser_member_declaration): Call it.
	(cp_parser_class_specifier): Remove unused variable. Alter
	processing of unparsed_functions_queue.

2003-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* class.c (add_method, check_field_decl): Fix format specifier.
	* decl.c (duplicate_decls, pushdecl, check_goto,
	fixup_anonymous_aggr, maybe_commonize_var, grokdeclarator,
	start_enum): Likewise.
	* decl2.c (ambiguous_decl): Likewise.
	* pt.c (redeclare_class_template): Likewise.

2003-07-02  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/10219
	* pt.c (type_unification_real): Don't unify exprs of error type.
	* tree.c (error_type): Don't die on error_type.

	PR c++/9779
	* decl2.c (arg_assoc_class): Don't die on NULL type.
	* typeck.c (type_unknown_p): Don't die on untyped expressions.

2003-07-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/6949
	* decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local
	classes.

2003-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* error.c (locate_error): %P takes an `int', not a `tree'.

2003-07-02  Jan Hubicka  <jh@suse.cz>

	* decl2.c (defer_fn): Set DECL_DEFER_OUTPUT.
	(finish-file): Do not process function with DECL_DEFER_OUTPUT clear;
	clear DECL_DEFER_OUTPUT once function is processed; avoid flags
	massaging.

	* cp-tree.h (DECL_NEEDED_P): Support unit-at-a-time
	(expand_or_defer_fn): Declare.
	(lower_function): Declare.
	* decl.c (start_cleanup_fn): Use expand_or_defer_fn.
	* decl2.c: Include cgraph.h and varpool.h
	(maybe_emit_vtables):  Make explicit instantations as needed.
	(mark_member_pointers, lower_function): New functions.
	(finish_file): Do unit-at-a-time.
	* method.c (synthesize_method): Use expand_or_defer_fn.
	* optimize.c (maybe_clone_body): Use expand_or_defer_fn.
	* parser.c (cp_parser_function_definition_after_decl): Use
	expand_or_defer_fn.
	* pt.c (instantiate_decl): Likewise.
	* semantics.c: Include cgraph.h
	(expand_or_defer_fn): Break out from ...
	(expand_body): ... here; deal with unit-at-a-time.
	* cp-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
	LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Define.

2003-07-01  Mark Mitchell  <mark@codesourcery.com>

	* call.c (resolve_scoped_fn_name): Return error_mark_node for
	erroneous cases.

2003-07-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/11149
	* call.c (resolve_scoped_fn_name): Check that the qualifying scope
	is a class type.

2003-07-01  Giovanni Bajo  <giovannibajo@libero.it>

	PR c++/8046
	* error.c (dump_decl): Handle BIT_NOT_EXPR as
	pseudo destructor calls.

2003-07-01  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (define_label): Replace filename and lineno
	arguments with a location_t.
	* decl.c (pop_label): Adjust define_label call.
	(define_label): Replace filename and lineno arguments with a
	location_t.
	* semantics.c (finish_label): Adjust define_label call.

2003-07-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9559
	* decl2.c (grokfield): Do not build NOP_EXPRs around the
	error_mark_node.

2003-06-30  Neil Booth  <neil@daikokuya.co.uk>

	* Make-lang.in: Update.
	* cp-lang.c (c_language): Define.
	(LANG_HOOKS_INIT_OPTIONS): Use common hook.
	* cp-tree.h (cxx_init_options): Remove.
	* lex.c: Don't include diagnostic.h.
	(cxx_init_options): Remove.

2003-06-30  Giovanni Bajo  <giovannibajo@libero.it>

	PR c++/4933
	* error.c (dump_expr): Support correctly the COMPOUND_EXPR
	tree generated within a template. Use dump_expr to dump an
	expression sizeof.

2003-06-30  Giovanni Bajo  <giovannibajo@libero.it>

	* mangle.c (write_expression): Exit gracefully when trying to
	mangle a CALL_EXPR.

2003-06-30  Giovanni Bajo  <giovannibajo@libero.it>

	PR c++/10750
	* parser.c (cp_parser_primary_expression): A VAR_DECL with a
	(value- or type-) dependent expression as DECL_INITIAL is a
	valid constant-expression (at parser time).

2003-06-30  Giovanni Bajo  <giovannibajo@libero.it>

	PR c++/11106
	* error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a
	USING_DECL, instead of print_tree_identifier.

2003-06-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cp-tree.h (language_to_string): Adjust declaration.
	* dump.c (cp_dump_tree): Adjust usage.
	* error.c (dump_char): Use output_formatted_scalar. Tidy.
	(parm_to_string): Lose unused parameter.  Tidy.
	(expr_to_string): Likewise.
	(code_to_string): Likewise.
	(language_to_string): Likewise.
	(op_to_string): Likewise.
	(assop_to_string): Likewise.
	(digit_buffer): Remove.
	(dump_type): Format builtin vector type as __vector__.

2003-06-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* error.c (print_integer): Remove.
	(dump_type_suffix): Adjust.
	(dump_expr): Likewise.

2003-06-28  Nathan Sidwell  <nathan@codesourcery.com>

	* error.c (print_instantiation_partial_context): Take a
	location_t.
	(print_instantiation_full_context): Adjust.
	(print_instantiation_context): Adjust.

	* cp-tree.h (cp_line_of, cp_file_of): Remove.
	* error.c (cp_line_of, cp_file_of): Merge into ...
	(location_of): ... here. Make static, return a location_t.
	(cp_error_at, cp_warning_at, cp_pedwarn_at): Adjust.

2003-06-28  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/10784
	* call.c (joust): Move warn_conversion check outwards.

2003-06-27  Zack Weinberg  <zack@codesourcery.com>

	* decl.c (build_typename_type)
	* mangle.c (write_template_template_arg)
	* parser.c (cp_parser_scope_through_which_access_occurs)
	* pt.c (push_access_scope_real, push_access_scope, pop_access_scope)
	* repo.c (get_base_filename)
	* semantics.c (maybe_convert_cond):
	Mark the definition static, matching the forward declaration.

2003-06-27  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10468
	* pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly.

2003-06-27  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10796
	* decl.c (finish_enum): Implement DR377.

	* decl.c (cp_finish_decl): Don't make variables with reference
	type readonly while they are being initialized.

2003-06-26  Mark Mitchell  <mark@codesourcery.com>

	PR c++/11332
	* typeck.c (build_static_cast): Avoid returning expressions with
	reference type.

2003-06-26  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (build_op_delete_call): Use strip_array_call. Correct
	error message to say 'delete' or 'delete[]'.

2003-06-26  Giovanni Bajo  <giovannibajo@libero.it>

	PR c++/8266
	* pt.c (check_explicit_specialization): When looking up a
	template function from an identifier outside class-scope, bind
	it to CP_DECL_CONTEXT.

2003-06-25  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10990
	* search.c (lookup_base_r): Rely on accessible_p, rather than
	trying to emulate that logic here.

	PR c++/10931
	* call.c (convert_like): Pass issue_conversion_warnings.
	(convert_like_with_context): Likewise.
	(convert_like_real): Add issue_conversion_warnings parameter.
	(perform_direct_initialization_if_possible): New function.
	* cp-tree.h (perform_direct_initialization_if_possible): Declare it.
	* typeck.c (check_for_casting_away_constness): New function.
	(build_static_cast): Rewrite.

2003-06-24  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (enforce_access): Assert we get a binfo.
	(build_op_delete_call): Pass a binfo to
	perform_or_defer_access_check.
	* class.c (alter_access): Likewise.
	* decl.c (make_typename_type): Likewise.
	(make_unbound_class_template): Likewise.
	* lex.c (do_identifier): Likewise.
	* method.c (hack_identifier): Likewise.
	* parser.c (cp_parser_lookup_name): Likewise.
	* search.c (lookup_member): Likewise. Move IDENTIFIER_CLASS_VALUE
	test.
	* semantics.c (finish_non_static_data_member): Likewise.
	(perform_or_defer_access_check): Expect a binfo.
	* typeck.c (comptypes): Expect types.

	* mangle.c (find_substitution): Don't pass a non-type to same_type_p
	* friend.c (make_friend_class): Likewise.
	* pt.c (check_default_tmpl_args): Likewise.
	(lookup_template_class): Likewise.

2003-06-24  Jan Hubicka  <jh@suse.cz>

	* method.c (thunk_labelno): Move outside ifdef block to make garbage
	collector happy.

2003-06-24  Jan Hubicka  <jh@suse.cz>

	* class.c (build_vtable): Make vtables.
	* cp-tree.h (DECL_VTABLE_OR_VTT_P): New macro.
	* decl2.c (output_vtable_inherit): Rename to ...
	(prepare_assemble_variable): ... this one; change interface.
	(maybe_emit_vtables): Do not call output_vtable_inherit.
	* cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Define.
	* cp-tree.h (prepare_assemble_variable): New.

2003-06-23  Andrew Pinski <pinskia@physics.uc.edu>

	* method.c: add prototype for make_alias_for_thunk.
	(thunk_labelno, make_alias_for_thunk): only define
	if ASM_OUTPUT_DEF is defined.

2003-06-23  Jakub Jelinek  <jakub@redhat.com>

	* method.c (thunk_labelno): New variable.
	(make_alias_for_thunk): New function.
	(use_thunk): Use it if defined ASM_OUTPUT_DEF.  Put the thunk
	into the same section as the function it is calling.
	Include gt-cp-method.h.
	* Make-lang.in (gt-cp-method.h): Depend on s-gtype.
	(cp/method.o): Depend on gt-cp-method.h.
	* config-lang.in (gtfiles): Add $(srcdir)/cp/method.c.

2003-06-23  Jan Hubicka  <jh@suse.cz>

	* decl.c (register_dtor_fn): Mark cleanup as used.
	* decl2.c (mark_vtable_entries): Skip nops.
	* rtti.c (get_tinfo_ptr): Mark tinfo as used.
	(build_dynamic_cast_1): Likewise.
	(tinfo_base_init): Likewise.
	(emit_tinfo_decl): Likewise.

2003-06-23  Jakub Jelinek  <jakub@redhat.com>

	* mangle.c (hash_type): Val is the TREE_LIST itself, not a pointer
	to it.

2003-06-21  Gabriel Dos Reis <gdr@integrable-solutions.net>

	PR c++/10784
	* call.c (joust): Warn about choosing conversion sequence only if
	-Wconversion.

2003-06-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/10864
	* call.c (op_error): Tidy.
	* error.c (dump_expr): Properly format 'T()' when T is an
	aggregate type.

2003-06-21  Gabriel Dos Reis <gdr@integrable-solutions.net>

	PR c++/10915
	* decl.c (grok_op_properties): Warn possible confusing conversion
	only if -Wconversion.

2003-06-20  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10749
	* parser.c (cp_parser_class_head): See through dependent names
	when parsing a class-head.

	PR c++/10845
	* pt.c (try_class_unification): Correct handling of member class
	templates.

2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>

	* semantics.c (genrtl_finish_function): Adjust
	expand_function_end call.

2003-06-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10939
	* pt.c (tsubst_decl): Do not try to substitute into non-dependent
	functions.
	(value_dependent_expression_p): Correct logic for FUNCTION_DECLs.

	PR c++/9649
	* cp-tree.h (pushdecl_class_level): Change prototype.
	(push_class_level_binding): Likewise.
	* decl.c (add_binding): Reject duplicate static data members.
	(pushdecl_class_level): Return a value indicating whether or not
	the binding was valid.
	(push_class_level_binding): Likewise.
	* semantics.c (finish_member_declaration): Don't keep invalid
	declarations.

	PR c++/11041
	* call.c (initialize_reference): Do not use cp_finish_decl to emit
	temporary variables.
	* cp-tree.h (static_aggregates): Declare.
	(pushdecl_top_level_and_finish): Likewise.
	* decl.c (pushdecl_top_level_1): New function.
	(pushdecl_top_level): Use it.
	(pushdecl_top_level_and_finish): New function.
	(initialize_local_var): Remove redundant code.
	(cp_finish_decl): Remove support for RESULT_DECLs.  Don't check
	building_stmt_tree.
	* decl.h (static_aggregates): Remove.
	* decl2.c (get_guard): Use pushdecl_top_level_and_finish.
	* rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish.
	(tinfo_base_init): Likewise.

2003-06-19  Matt Austern  <austern@apple.com>

	PR c++/11228
	* init.c (build_zero_init): Assert that number of array elements
	is an integer constant.
	(build_default_init) Don't use build_zero_init for arrays with
	variable number of elements.

2003-06-19  Andreas Jaeger  <aj@suse.de>

	* cp-tree.h: Remove duplicated declarations.

2003-06-18  Nathanael Nerode  <neroden@gcc.gnu.org>

	* pt.c: Convert to ISO C.
	* semantics.c: Convert to ISO C.

2003-06-18  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (comp_except_specs, compparms, cp_has_mutable_p,
	at_least_as_qualified_p, more_qualified_p): Return bool.
	* typeck.c: ANSIFY function definitions.
	(comp_array_types): Take redeclaration bool parameter.
	(comptypes): Rearrange STRICT handling.
	(at_least_as_qualified_p, more_qualified_p,
	comp_cv_qualification): Cache cv quals.
	(compparms): Rearrange loop.

2003-06-18  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (COMPARE_RELAXED): Rename to ...
	(COMPARE_DERIVED): ... here. Adjust comment.
	(resolve_typename_type_in_current_instantiation): Remove.
	(cp_tree_equal, comptypes): Return a bool.
	* cvt.c (convert_to_reference): Adjust comptypes call.
	* pt.c (template_args_equal, unify,): Adjust cp_tree_equal call.
	(resolve_typename_type_in_current_instantiation): Remove.
	* tree.c (cp_tree_equal): Return bool. Cope with TEMPLATE_DECLs and
	IDENTIFIER_NODEs. Abort if undeciderable. Adjust recursive
	calls. Refactor code.
	* typeck.c (comp_array_types): Return bool. Lose callback.
	parameter. Adjust cp_tree_equal calls.
	(comptypes): Return bool. Adjust strict handling. Remove relaxed
	enumeration and java type handling. Deal with typename types here.
	Adjust recursive and cp_tree_equals calls. Adjust base and derived
	checking.
	(comp_target_types): Remove unreachable code. Adjust
	same_or_base_type_p calls.
	(ptr_reasonably_similar): Adjust base and derived check.

	* typeck.c (maybe_warn_about_returning_address_of_local): Remove
	unused calculation.
	(check_return_expr): Adjust error messages.
	* cp-tree.def (SCOPE_REF): Correct comment.

2003-06-17  Mark Mitchell  <mark@codesourcery.com>

	* mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
	string again.

2003-06-17  Robert Abeles  <rabeles@archaelogic.com>

	* optimize.c (dump_function): Form complete flag name by
	prefixing 'fdump-' to string returned by dump_flag_name().

2003-06-17  Mark Mitchell  <mark@codesourcery.com>

	* mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
	string.

2003-06-17  Jason Merrill  <jason@redhat.com>

	PR c++/10929
	* decl.c (grokfndecl): Don't mark a function inline for
	-finline-functions if it isn't defined.

2003-06-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10712
	* class.c (handle_using_decl): Robustify.

	PR c++/11105
	* cp-tree.h (DECL_CONV_FN_TYPE): New method.
	* mangle.c (struct globals): Remove internal_mangling_p.
	(write_unqualified_name): Use DECL_CONV_FN_TYPE.
	(write_template_parm): Don't write out the level number.
	(conv_type_names): New variable.
	(hash_type): New function.
	(compare_type): Likewise.
	(mangle_conv_op_name_for_type): Don't try to mangle conversion
	operator names.
	* search.c (lookup_conversion_operator): New function.
	(lookup_fnfields_1): Use it.

2003-06-17  Andreas Jaeger  <aj@suse.de>

	* except.c: Remove duplicate declaration of push_eh_cleanup.

	* call.c: Remove extra declaration of inhibit_warnings.

2003-06-16  Nathanael Nerode  <neroden@gcc.gnu.org>

	2003-06-16  Jens-Michael Hoffmann  <jensmh@gmx.de>
	* mangle.c: Convert to ISO C.

2003-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR
	macro.

2003-06-16  Nathanael Nerode  <neroden@gcc.gnu.org>

	* tree.c: Convert to ISO C.

2003-06-16  Kazu Hirata  <kazu@cs.umass.edu>

	* cp-tree.h: Follow spelling conventions.
	* mangle.c: Likewise.
	* method.c: Likewise.
	* parser.c: Likewise.

2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (start_function): Adjust init_function_start call.
	* method.c (use_thunk): Likewise.
	* semantics.c (genrtl_start_function): Likewise.

2003-06-14  Neil Booth  <neil@daikokuya.co.uk>

	* Make-lang.in: Remove c-options.o.

2003-06-13  Nathanael Nerode  <neroden@gcc.gnu.org>

	* lex.c: Convert to ISO C.

	2003-05-19  Jens-Michael Hoffmann  <jensmh@gmx.de>
	* init.c: removes use of PARAMS macro.  Use ISO style function
	declarations.  (Not copyright-significant change.)

	* rtti.c: Remove PARAMS.

	* typeck2.c: Convert to ISO C.

2003-06-12  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10635
	* typeck.c (build_c_cast): Check that the destination type is
	complete.

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

	PR c++/10432
	* cp-tree.h (finish_declarator): Remove.
	* decl.c (cp_finish_decl): Make sure to pop_nested_class even for
	erroneous declarations.
	* semantics.c (finish_declarator): Remove.

2003-06-11  Roger Sayle  <roger@eyesopen.com>

	* decl2.c (generate_ctor_or_dtor_function): Avoid expanding a
	global static constructor/destructor if it will be empty, i.e.
	either doesn't call any ctors/dtors or only calls pure or const
	ctors/dtors.

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

	* mangle.c (tm_p.h): Include it.
	* Make-lang.in (cp/mangle.o): Depend on $(TM_P_H).

	PR c++/11131
	* tree.c (cp_cannot_inline_fn): Check for "inline" before
	instantiation.

2003-06-10  Jason Merrill  <jason@redhat.com>

	PR c++/10968
	* pt.c (mark_decl_instantiated): Clear DECL_COMDAT.

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

	* decl.c (start_cleanup_fn): Move static 'counter' out, mark with GTY.
	(start_cleanup_cnt): New.

2003-06-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/11131
	* cp-tree.h (template_for_substitution): Declare.
	* decl2.c (mark_used): Use it when figuring out whether or not a
	function is inline.
	* pt.c (template_for_substitution): Give it external linkage.
	* tree.c (cp_cannot_inline_tree_fn): Instantiate as early as
	possible.

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

	PR 8861
	* mangle.c (write_real_cst): New function.  Implement
	ABI-compliant mangling of floating-point literals when
	-fabi-version>=2; provide backward compatibility with 3.3 when
	-fabi-version=1 (with warning).  Clarify commentary.
	(write_template_arg_literal): Use write_real_cst.

2003-06-07  Andreas Jaeger  <aj@suse.de>

	* cp/decl.c (xref_tag): Remove undefined macro NONNESTED_CLASSES.

2003-06-07  Neil Booth  <neil@daikokuya.co.uk>

	* cp-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.
	(LANG_HOOKS_HANDLE_OPTION): Override.
	* cp-tree.h (cxx_init_options): Update.
	* lex.c (cxx_init_options): Update.

2003-06-05  Jan Hubicka  <jh@suse.cz>

	* Make-lang.in:  Add support for stageprofile and stagefeedback

2003-06-04  J"orn Rennecke <joern.rennecke@superh.com>

	* decl.c (grokdeclarator): Error_mark_node in, error_mark_node out.

2003-06-04  Andreas Jaeger  <aj@suse.de>

	* g++spec.c (lang_specific_driver): Remove ALT_LIBM usage.

2003-06-03  Jason Merrill  <jason@redhat.com>

	* cp/cp-tree.h (CP_AGGREGATE_TYPE_P): Accept vectors.

	* cp/decl.c (reshape_init): Handle vectors.

	* testsuite/g++.dg/init/array10.C: New.

2003-06-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10940
	* pt.c (check_explicit_specialization): Check for 'static'
	earlier.

2003-05-31  Diego Novillo  <dnovillo@redhat.com>

	* class.c (dump_array): Call CONSTRUCTOR_ELTS to access
	the operand of a CONSTRUCTOR node.

2003-05-31  Gabriel Dos Reis <gdr@integrable-solutions.net>

	* decl.c (cp_binding_level::this_entity): Rename from this_class.
	(cxx_scope_descriptor): New function.
	(cxx_scope_debug): Likewise.
	(push_binding_level): Use it.
	(pop_binding_level): Likewise.
	(suspend_binding_level): Likewise.
	(resume_binding_level): Likewise.
	(pushlevel_class): Adjust use of this_class.
	(pushtag): Likewise.
	(lookup_name_real): Likewise.
	(global_scope_name): New variable.
	(initialize_predefined_identifiers): Initialize it.
	(push_namespace): Use it.
	(make_cxx_scope): New function.
	(pushlevel): Use it.
	(pushlevel_class): Likewise.
	(push_binding_level): Simplify.  Loose the last two arguments.
	(make_binding_level): Remove.
	(initial_push__namespace_scope): New function.
	(push_namespace): Use it.  Simplify.
	(cxx_init_decl_processing): Likewise.
	(declare_namespace_level): Remove.

2003-05-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10956
	* pt.c (instantiate_decl): Don't use full template arguments if
	we are dealing with specializations.

2003-05-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* decl.c (ENABLE_SCOPE_CHECKING): Rename from DEBUG_BINDING_LEVELS.
	(binding_depth): Unconditionally define.
	(is_class_level): Likewise.
	(indent): Likewise.  Take an indenting parameter.
	(push_binding_level): Remove conditional definittion.
	(pop_binding_level): Likewise.
	(suspend_binding_level): Likewise.
	(resume_binding_level): Likewise.
	(pushlevel): Likewise.
	(pushlevel_class): Likewise.
	(poplevel_class): Likewise.
	(pop_everything): Likewise.

2003-05-27  Gabriel Dos Reis <gdr@integrable-solutions.net>

	* name-lookup.h (global_scope_p): New macro.
	* decl.c (pop_binding_level): Use it.  Don't refer directly to
	global_binding_level.
	(suspend_binding_level): Likewise.
	(global_bindings_p): Likewise.
	(print_other_binding_stack): Likewise.
	(print_binding_stack): Likewise.
	(maybe_push_to_top_level): Likewise.
	(pushdecl_namespace_level): Likewise.
	(cxx_init_decl_processing): Likewise.
	(start_decl): Likewise.
	(cp_finish_decl): Likewise.
	(start_function): Likewise.
	(global_binding_level): Remove.

2003-05-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* parser.c (cp_parser_explicit_instantiation): Restore old
	access before template instantiation.

2003-05-23  Geoffrey Keating  <geoffk@apple.com>

	* lang-specs.h: Use -o to specify preprocessor's output file.
	Make -no-integrated-cpp work when building PCH files.

2003-05-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10682
	* pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to
	check for implicitly created typedef to an enum.

2003-05-21  Jason Merrill  <jason@redhat.com>

	* init.c (build_vec_delete): Copy the address into a temporary
	variable before calling build_vec_delete_1.
	* decl2.c (delete_sanity): Don't call stabilize_reference.

2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (register_specialization): Update the decl's location,
	if necessary.
	(check_explicit_specialization): Likewise.

2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* error.c (dump_expr): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX.

2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>

	PR c++/9738
	* decl.c (duplicate_decls): Re-invoke make_decl_rtl
	if the old decl had instantiated DECL_RTL.
	(Base on Richard Henderson 2003-05-13 patch to c-decl.c).

2003-05-19  Matt Austern  <austern@apple.com>

	* lang-options.h: Document -Wno-invalid-offsetof
	* typeck.c (build_class_member_access_expr): Don't complain about
	(Foo *)p->x for non-POD Foo if warn_invalid_offset is zero.

2003-05-18 Andrew Pinski <pinskia@physics.uc.edu>

	* name-lookup.c (free_binding_entry): fix where the GTY markers are.
	(binding_entry_make): Make entry->chain NULL after getting an entry.
	fix the spelling of chain in a comment.
	(binding_table_free): speed up by having temporary variable.
	(binding_table_new): set table->chain to be NULL after allocating
	a table.
	(cxx_binding_make): use gcc_alloc instead of ggc_alloc_cleared and set
	binding->previous to NULL after getting an binding for speed.

2003-05-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cp-tree.h (struct lang_type_class): Replace data member tags
	with hash-table nested_udts.
	(CLASSTYPE_NESTED_UTDS): Rename from CLASSTYPE_TAGS.
	* class.c (unreverse_member_declarations): Don't touch
	CLASSTYPE_TAGS.
	(pushclass): Use cxx_remember_type_decls.
	* decl.c (struct cp_binding_level): Replace data member tags with
	hash-table type_decls.
	(pop_binding_level): Handle level->type_decls.
	(kept_level_p): Adjust.
	(poplevel): Remove unused local variable.
	(bt_print_entry): New function.
	(print_binding_level): Use it.
	(push_namespace): Build current_binding_level->type_decls.
	(maybe_process_template_type_declaration): Adjust.
	(pushtag): Likewise.
	(clear_anon_tags): Use binding_table_remove_anonymous_types.
	(gettags): Remove.
	(cxx_remember_type_decls):  Rename from storetags.  Adjust.
	(lookup_tag): Use binding_table_find_anon_type.  Tidy.
	(lookup_tag_reverse): Use binding_table_reverse_maybe_remap.
	(cxx_init_decl_processing): Build global_binding_level->type_decls.
	(store_parm_decls): Remove pointless code.
	* name-lookup.c (free_binding_entry): New variable.
	(ENTRY_INDEX): New macro.
	(struct binding_table_s): New datatype.
	(binding_entry_make): New function.
	(binding_entry_free): Likewise.
	(binding_table_construct): Likewise.
	(binding_table_free): Likewise.
	(binding_table_new): Likewise.
	(binding_table_expand): Likewise.
	(binding_table_insert): Likewise.
	(binding_table_find): Likewise.
	(binding_table_find_anon_type): Likewise.
	(binding_table_reverse_maybe_remap): Likewise.
	(binding_table_remove_anonymous_types): Likewise.
	(binding_table_foreach): Likewise.
	* name-lookup.h (binding_table): New type.
	(binding_entry): Likewise.
	(bt_foreach_proc): Likewise.
	(struct binding_entry_s): New datatype.
	(SCOPE_DEFAULT_HT_SIZE): New macro.
	(CLASS_SCOPE_HT_SIZE): Likewise.
	(NAMESPACE_ORDINARY_HT_SIZE): Likewise.
	(NAMESPACE_STD_HT_SIZE): Likewise.
	(GLOBAL_SCOPE_HT_SIZE): Likewise.
	(binding_table_new): Declare.
	(binding_table_free): Likewise.
	(binding_table_insert): Likewise.
	(binding_table_find_anon_type): Likewise.
	(binding_table_reverse_maybe_remap): Likewise.
	(binding_table_remove_anonymous_types): Likewise.
	(binding_table_foreach): Likewise.
	(binding_table_find): Likewise.
	(cxx_remember_type_decls): Likewise.
	* pt.c (bt_instantiate_type_proc): New function.
	(do_type_instantiation): Use it.
	* search.c (lookup_field_r): Use binding_table_find.

2003-05-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* semantics.c (perform_deferred_access_checks): Don't discard
	checked access.

2003-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* error.c (cp_error_at, cp_warning_at, cp_pedwarn_at): Eliminate
	libiberty VA_ macros, always use stdarg.
	* rtti.c (create_pseudo_type_info): Likewise.
	* tree.c (build_min_nt, build_min): Likewise.

2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ptree.c (cxx_print_type, cxx_print_xnode): Use string
	concatentation on HOST_WIDE_INT_PRINT_* format specifier to
	collapse multiple function calls into one.
	* tree.c (debug_binfo): Likewise.

2003-05-15  Jason Merrill  <jason@redhat.com>

	PR c++/5388
	* call.c (conditional_conversion): Don't consider implicit
	conversions if T2 is a base of T1.
	* cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean.
	(ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise.

	* parser.c (cp_parser_primary_expression): Convert a static data
	member from reference.

2003-05-15  Mark Mitchell  <mark@codesourcery.com>

	* call.c (build_op_delete_call): Avoid creating unnecessary types.
	* class.c (instantiate_type): Remove tests for tf_no_attributes.
	* cp-tree.h (tsubst_flags_t): Remove tf_no_attributes.
	(COMPARE_NO_ATTRIBUTES): Remove.
	* typeck.c (comptypes): Do not check COMPARE_NO_ATTRIBUTES.

	PR c++/8385
	* semantics.c (finish_typeof): Refine type-dependency check.

2003-05-13  Jason Merrill  <jason@redhat.com>

	* typeck.c (build_modify_expr): Don't always stabilize the lhs and
	rhs.  Do stabilize the lhs of a MODIFY_EXPR used on the lhs.

2003-05-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* method.c (synthesize_method): Call push/pop_deferring_access_checks.

2003-05-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10230, c++/10481
	* semantics.c (finish_non_static_data_member): Handle when the
	non-static member is not from a base of the current class type.

2003-05-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10552
	* pt.c (tsubst_copy): Handle TEMPLATE_DECL that is a member class
	template and has dependent context.

2003-05-10  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c (instantiate_decl): Call push/pop_deferring_access_checks.

2003-05-10  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9252
	* cp-tree.h (saved_scope): Remove check_access field.
	(tsubst_flags_t): Remove tf_parsing.
	* decl.c (maybe_push_to_top_level): Don't initialize
	scope_chain->check_access.
	(make_typename_type, make_unbound_class_template): Don't use
	tf_parsing.
	(register_dtor_fn): Use push/pop_deferring_access_checks
	instead of scope_chain->check_access.
	* method.c (use_thunk): Likewise.
	* parser.c (cp_parser_explicit_instantiation
	(cp_parser_constructor_declarator_p): Don't call
	push/pop_deferring_access_checks here.
	(cp_parser_template_argument, cp_parser_class_name): Don't use
	tf_parsing.
	(yyparse): Check flag_access_control.
	* pt.c (instantiate_class_template): Call
	push/pop_deferring_access_checks.
	* semantics.c (push_deferring_access_checks): Propagate
	dk_no_check.
	(perform_or_defer_access_check): Make sure basetype_path is
	a type before comparison.
	* call.c (build_op_delete_call, build_over_call): Use
	perform_or_defer_access_check.
	* class.c (alter_access): Likewise.
	* init.c (build_offset_ref): Likewise.
	* lex.c (do_identifier): Likewise.
	* method.c (hack_identifier): Likewise.
	* search.c (lookup_member): Likewise.
	* semantics.c (finish_non_static_data_member): Likewise.
	(simplify_aggr_init_exprs_r): Use push/pop_deferring_access_checks
	instead of flag_access_control.

2003-05-10  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9554
	* parser.c (cp_parser_class_name): Remove check_access parameter.
	All caller adjusted.  Update declaration.
	(cp_parser_lookup_name): Likewise.
	* semantics.c (push_deferring_access_checks): Change parameter type
	to enum deferring_kind.  All caller adjusted.
	(resume_deferring_access_checks): Adjust to use new enum.
	(stop_deferring_access_checks): Likewise.
	(perform_or_defer_access_check): Likewise.
	* cp-tree.h (deferring_kind): New enum.
	(deferred_access): Adjust field type.
	(push_deferring_access_checks): Update declaration.

2003-05-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10555, c++/10576
	* pt.c (lookup_template_class): Handle class template with
	multiple levels of parameters when one of the levels contain
	errors.

2003-05-08  Jason Merrill  <jason@redhat.com>

	* init.c (build_new_1): Don't reuse a TARGET_EXPR in an
	expression.  Undo some of the recent reorg.

2003-05-07  Richard Henderson  <rth@redhat.com>

	PR c++/10570
	* cfns.gperf: Comment out POSIX thread cancellation points,
	plus abort and raise.
	* cfns.h: Regenerate.

2003-05-07  Jason Merrill  <jason@redhat.com>

	* call.c (build_conditional_expr): Don't assume that the folded
	expression has result_type.

2003-05-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* typeck.c (build_unary_op): Deal with const qualifier in
	invalid pointer-to-member earlier.

2003-05-05  Jason Merrill  <jason@redhat.com>

	PR c++/9537
	* call.c (conditional_conversion): Build an RVALUE_CONV if
	we're just changing the cv-quals.
	(build_conditional_expr): Don't call convert to change
	cv-quals.

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

	PR c++/10496
	* typeck.c (build_unary_op): Don't output const qualifier when
	output invalid pointer-to-member diagnostics.

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

	* decl.c: Fix typos.

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

	PR c++/4494
	* decl.c (start_function): Use same_type_p to check return type
	of main.

2003-05-03  Zack Weinberg  <zack@codesourcery.com>

	PR c/10604
	* cp/typeck.c (build_x_compound_expr): No need to check
	extra_warnings as well as warn_unused_value.

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

	PR c++/9364, c++/10553, c++/10586
	* decl.c (make_typename_type): Don't crash on illegal code.

2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (finish_struct): Use location_t and input_location
	directly.
	* decl.c (make_label_decl): Likewise.
	(use_label): Likewise.
	* decl2.c (warn_if_unknown_interface): Likewise.
	(start_static_initialization_or_destruction): Likewise.
	(generate_ctor_or_dtor_function): Likewise.
	(finish_file): Likewise.
	* error.c (print_instantiation_full_context): Likewise.
	* init.c (create_temporary_var): Likewise.
	* method.c (synthesize_method): Likewise.
	* parser.c (cp_token): Likewise.
	(cp_lexer_set_source_position_from_token): Likewise.
	(cp_lexer_get_preprocessor_token): Likewise.
	(cp_parser_statement): Likewise.
	* pt.c (tsubst_friend_function): Likewise.
	(instantiate_class_template): Likewise.
	(tsubst_decl): Likewise.
	(tsubst): Likewise.
	(instantiate_decl): Likewise.
	* semantics.c (begin_class_definition): Likewise.
	(expand_body): Likewise.

2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (finish_struct): Rename lineno to input_line.
	* decl.c (push_binding_level, pop_binding_level,
	suspend_binding_level, resume_binding_level, make_label_decl,
	use_label, start_function): Likewise.
	* decl2.c (warn_if_unknown_interface,
	start_static_initialization_or_destruction,
	generate_ctor_or_dtor_function, finish_file): Likewise.
	* error.c (cp_line_of, print_instantiation_full_context,
	print_instantiation_context): Likewise.
	* except.c (check_handlers_1, check_handlers): Likewise.
	* init.c (create_temporary_var): Likewise.
	* method.c (use_thunk, synthesize_method): Likewise.
	* parser.c (cp_lexer_set_source_position_from_token,
	cp_lexer_get_preprocessor_token): Likewise.
	* pt.c (push_tinst_level, pop_tinst_level,
	tsubst_friend_function, instantiate_class_template, tsubst_decl,
	tsubst, tsubst_expr, instantiate_decl): Likewise.
	* semantics.c (genrtl_try_block, finish_label_stmt,
	begin_class_definition, expand_body,
	genrtl_finish_function): Likewise.
	* tree.c (build_min_nt, build_min): Likewise.

2003-05-01  Mark Mitchell  <mark@codesourcery.com>

	* decl2.c (comdat_linkage): Don't externalize explicit
	instantiations.

2003-05-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10554
	* decl2.c (do_class_using_decl): Check if operand 0 of SCOPE_REF
	is not NULL.

2003-05-01  Steven Bosscher  <steven@gcc.gnu.org>

	* cp-tree.h (struct lang_id2): Remove.  Move fields from here...
	(struct lang_identifier): ... to here.
	(LANG_ID_FIELD): Remove.
	(SET_LANG_ID): Remove.
	(IDENTIFIER_LABEL_VALUE): Adjust for new lang_identifier.
	(SET_IDENTIFIER_LABEL_VALUE): Likewise.
	(IDENTIFIER_IMPLICIT_DECL): Likewise.
	(SET_IDENTIFIERL_IMPLICIT_DECL): Likewise.
	(IDENTIFIER_ERROR_LOCUS): Likewise.
	(SET_IDENTIFIER_ERROR_LOCUS): Likewise.

2003-05-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/8772
	* pt.c (convert_template_argument): Correct diagnostic.

2003-04-30  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9432, c++/9528
	* decl2.c (validate_nonmember_using_decl): Handle SCOPE_REF.

2003-04-30  Garbiel Dos Reis  <gcc@integrable-solutions.net>

	* decl.c (check_previous_goto_1): Adjust prototype.
	(check_previous_goto): Adjust use.
	(check_switch_goto): Likewise.
	(use_label): Adjust.
	(check_previous_goto_1): Don't use pedwarn_with_file_and_line.
	(struct named_label_use_list): Use location_t datatype.

2003-04-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10551
	* pt.c (mark_decl_instantiated): Defer all explicit instantiations
	that have not yet been written out.

2003-04-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10549
	* class.c (layout_class_type): Mark overlong bitfields as having
	the maximum size permitted by their type, after layout.

	PR c++/10527
	* error.c (dump_expr): Correctly handling of NEW_EXPR.4

2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* call.c (build_operator_new_call): Fix typo.
	* lang-options.h: Likewise.

2003-04-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10515
	* cp-tree.h (lookup_field_1): Declare it.
	* search.c (lookup_field_1): Make it public.
	* decl.c (reshape_init): Handle designated initializers.

	* decl.c (maybe_commonize_var): Further tweak support for systems
	without weak symbols.

2003-04-27  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (maybe_commonize_var): Fix thinko in last patch.

2003-04-27  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10506
	* method.c (use_thunk): Decrement immediate_size_expand.

	PR c++/10503
	* cp-tree.h (DECL_VAR_MARKED_P): New macro.
	(DECL_MAYBE_TEMPLATE): Remove.
	* class.c (fixed_type_or_null): Avoid infinite recursion.

	* decl.c (maybe_commonize_var): Make the code match the comments.
	* pt.c (instantiate_decl): Move call to import_export_decl.

2003-04-26  Mark Mitchell  <mark@codesourcery.com>

	* decl2.c (finish_file): Fix merge botch.

2003-04-25  Mark Mitchell  <mark@codesourcery.com>

	* decl2.c (finish_file): Don't call import_export_decl for
	functions that are not defined.
	(handle_class_head): Robustify.
	* pt.c (instantiate_decl): Do not call cp_finish_decl for
	variables that are not defined.

2003-04-24  Sylvain Pion  <Sylvain.Pion@mpi-sb.mpg.de>

	* call.c (print_z_candidates): Fix off by one error.

2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/10337
	* call.c (joust): Don't warn about conversion ops that are exact
	or cv-conversions. Rearrange to avoid multiple type comparisons.

2003-04-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10471
	* call.c (build_cxx_call): Robustify.

2003-04-23  Neil Booth  <neil@daikokuya.co.uk>

	* Make-lang.in (lex.o): Remove mbchar.h.
	* lex.c (MULTIBYTE_CHARS): Lose.
	* parser.c (cp_lexer_get_preprocessor_token): CPP_OTHER handled
	in c-lex.c.

2003-04-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9847
	* cp-tree.h (duplicate_tag_error): Remove.
	* class.c (duplicate_tag_error): Remove.
	* semantics.c (begin_class_definition): Return immediately for a
	duplicate class definition.

	PR c++/10451
	* decl.c (grokdeclarator): Correct logic for "mutable" errors.

2003-04-22  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10446
	* search.c (lookup_fnfields_1): Handle empty slots in the method
	vector.

	PR c++/10428
	* decl.c (check_elaborated_type_specifier): New function, split
	out from ...
	(xref_tag): ... here.  Use the new function in more places.

	* rtti.c (throw_bad_typeid): Use build_cxx_call.

2003-04-21  Mark Mitchell  <mark@codesourcery.com>

	* call.c (build_over_call): Use build_cxx_call.
	(build_cxx_call): New method, split out of build_over_call.
	* cp-tree.h (language_function): Add can_throw.
	(build_cxx_call): Declare it.
	* decl.c (finish_function): If a function does not contain any
	calls to functions that can throw an exception, indicate that
	fact.
	* decl2.c (mark_used): Do not defer the instantiation of
	functions, if the current function does not throw.
	* optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
	* pt.c (instantiate_decl): Make sure import_export_decl is called
	before emitting things.
	* rtti.c (throw_bad_cast): Use build_cxx_call.
	(build_dynamic_cast_1): Likewise.
	* typeck.c (build_function_call): Likewise.

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

	PR c++/9881
	* typeck.c (build_unary_op): Fold all COMPONENT_REF addr
	expressions. Reverts my 2002-08-08 patch.

	* typeck.c (comp_ptr_ttypes_real): Swap final && operands for
	cheaper early exit.

2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>

	* cp/decl2.c (start_static_storage_duration_function): Take count
	arg, don't check if it wraps round.
	(generate_ctor_or_dtor_function): Add locus arg, use it.
	(generate_ctor_and_dtor_functions_for_priority): Data arg is a
	locus.
	(finish_file): Set line numbers to past EOF for synthesized
	functions.

2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/10405
	* search.c (lookup_field_1): Final scan goes backwards for
	types, forwards for non-types.

2003-04-17  Roger Sayle  <roger@eyesopen.com>

	PR c/10375
	* decl.c (duplicate_decls): Preserve "const", "noreturn" and
	"nothrow" function attributes.

2003-04-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/10347
	* pt.c (type_dependent_expression_p): Handle array new.

2003-04-15  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10381
	* parser.c (cp_parser_primary_expression): Reorganize logic for
	dealing with name lookup failures.

2003-04-15  Jason Merrill  <jason@redhat.com>

	* decl2.c (mark_used): Don't instantiate anything if
	skip_evaluation.

2003-04-14  Ziemowit Laski  <zlaski@apple.com>

	* tree.c (build_cplus_array_type_1): Do not call
	uses_template_parms() on a NULL index_type.

2003-04-13  Roger Sayle  <roger@eyesopen.com>

	* decl.c (duplicate_decls): Preserve pure and malloc attributes.

2003-04-12  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10300
	* init.c (build_new_1): Reorganize.

2003-04-12  Zack Weinberg  <zack@codesourcery.com>

	* class.c (initialize_array)
	* decl.c (reshape_init)
	* decl2.c (build_expr_from_tree)
	* init.c (build_zero_init)
	* pt.c (tsubst_copy, tsubst_copy_and_build)
	* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer)
	(ptm_initializer, class_initializer, get_pseudo_ti_init)
	* semantics.c (finish_compound_literal)
	* typeck.c (build_ptrmemfunc1)
	* typeck2.c (store_init_value, process_init_constructor)
	(build_functional_cast): Use build_constructor.

2003-04-12  Zack Weinberg  <zack@codesourcery.com>

	* call.c (print_z_candidates): Use gcc_gettext_width, not
	strlen, to determine how much padding to use.

2003-04-10  Zack Weinberg  <zack@codesourcery.com>

	* decl.c: Update all calls to shadow_warning.

2003-04-10  Mark Mitchell  <mark@codesourcery.com>

	* class.c (layout_class_type): Correct handling for overlong
	bit-fields whose width is the same as an integer type.

2003-04-06  Zack Weinberg   <zack@codesourcery.com>

	* cp-tree.def: Make fourth element for all 'c' and 'x' nodes zero.
	* cp-lang.c (cp_tree_size): New function.
	(LANG_HOOKS_TREE_SIZE): Override.

	* cp-tree.h (SOURCE_LOCUS, SRCLOC_FILE, SRCLOC_LINE, struct
	tree_srcloc, TS_CP_COMMON, TS_CP_SRCLOC): Kill.
	(union lang_tree_node): Remove common and srcloc members.
	(build_srcloc_here): Don't prototype.
	* decl.c (cp_tree_node_structure): Kill SRCLOC case.
	* pt.c (pending_templates): Correct comment.
	* tree.c (build_srcloc, build_srcloc_here): Kill.

2003-04-06  Zack Weinberg   <zack@codesourcery.com>

	* call.c: Include intl.h.
	(print_z_candidate): Always use inform; get rid of errfn
	argument. Reorganize so that all the strings get picked up
	by xgettext.  Note obligation of caller to pass first argument
	through gettext.
	(print_z_candidates): Update to match.  Indent second and
	successive candidates by strlen() of translated message.
	(joust): Restructure ambiguous-conversion pedwarn so that
	translators see a complete sentence.  Update calls to
	print_z_candidate.

	* Make-lang.in (cp/call.o): Update dependencies.

2003-04-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* decl.c (set_current_binding_level): Delete, revert last change.
	(current_binding_level): Modify to allow it as as lvalue.

2003-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* name-lookup.c (find_binding): Pass appropriate pointer type to
	POP_TIMEVAR_AND_RETURN.

2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Make-lang.in (cp-warn): Add $(STRICT_WARN).
	* cp-tree.h: Don't insist on having GNUC.

2003-04-03  Jason Merrill  <jason@redhat.com>

	* cvt.c (ocp_convert): Only abort if we try to convert an object
	of TREE_ADDRESSABLE type.

	* class.c (build_vtable): Set DECL_ALIGN here.
	(get_vtable_decl): Not here.
	(layout_vtable_decl): Or here.
	(create_vtable_ptr): Or here.
	(layout_class_type): Or here.
	(check_bitfield_decl): Don't mess with field alignment.

2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* operators.def (DEF_SIMPLE_OPERATOR, DEF_ASSN_OPERATOR,
	DEF_ASSN_OPERATOR): Delete spurious semi-colon.
	* rtti.c (dfs_class_hint_mark): Likewise.

	* decl.c (push_local_name, push_class_level_binding,
	maybe_inject_for_scope_var): Don't use POP_TIMEVAR_AND_RETURN in
	functions returning void.
	* decl2.c (add_using_namespace): Likewise.

	* decl.c (print_binding_level, print_other_binding_stack,
	print_binding_stack): Cast argument of %p specifier to void*.
	* ptree.c (cxx_print_decl): Likewise.

	* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
	VAR_FUNCTION_OR_PARM_DECL_CHECK,
	VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
	BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK, LANG_TYPE_CLASS_CHECK,
	LANG_TYPE_PTRMEM_CHECK, LANG_DECL_U2_CHECK): Add __extension__.

	* decl.c (set_current_binding_level): New macro.  Use throughout
	when setting the current binding level.

	* cp-tree.h (cp_lvalue_kind, base_access): Delete trailing comma
	in enum.
	* method.c (mangling_flags): Likewise.

	* cp-tree.h (lang_type_header): Add __extension__ and use
	CHAR_BITFIELD for members.

2003-04-02  Geoffrey Keating  <geoffk@apple.com>

	PR other/9274
	* mangle.c: Include gt-cp-mangle.h.
	(subst_identifiers): Mark with GTY.
	* config-lang.in (gtfiles): Add cp/mangle.c.
	* Make-lang.in: (gt-cp-mangle.h): New rule.
	(cp/mangle.o): Depends on gt-cp-mangle.h.

2003-04-01  Andrew Pinski  <pinskia@physics.uc.edu>

	* config-lang.in (gtfiles): Add \$(srcdir)/cp/name-lookup.c
	after \$(srcdir)/cp/name-lookup.h.
	* name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinstead
	of ggc_alloc.  Include gt-cp-name-lookup.h at the end of the file.
	* Make-lang.in: (gt-cp-name-lookup.h): Is generated by gengtype.
	(cp/name-lookup.o): Depends on gt-cp-name-lookup.h.

2003-03-31  Jason Merrill  <jason@redhat.com>

	PR java/10145
	* class.c (check_field_decl): Don't set DECL_ALIGN.

2003-03-30  Mark Mitchell  <mark@codesourcery.com>

	PR c++/7647
	* decl.c (grokdeclarator): Tidy, slightly.
	* search.c (lookup_field_1): Add want_type parameter.
	(lookup_field_r): Adjust call to lookup_field_1.

2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* Make-lang.in (cp/name-lookup.o): Add more dependencies.

2003-03-30  Gabriel Dos Reis <gdr@integrable-solutions.net>

	* cp-tree.h (binding_for_name: Move to name-lookup.h  Adjust
	prototype.
	(cxx_scope_find_binding_for_name): Likewise.
	* decl.c (find_binding: Move to name-lookup.c.
	(binding_for_name): Likewise.
	(cxx_scope_find_binding_for_name): Likewise.
	(BINDING_LEVEL):  Remove.
	(push_binding): Tidy.
	(push_class_binding): Likewise.
	(pop_binding): Likewise.
	(poplevel): Likewise.
	(poplevel_class): Likewise.
	(set_identifier_type_value_with_scope): Likewise.
	(push_overloaded_decl): Likewise.
	(lookup_tag): Likewise.
	(unqualified_namespace_lookup): Likewise.
	(lookup_name_current_level): Likewise.
	(maybe_inject_for_scope_var): Likewise.
	(namespace_binding): Move to name-lookup.c.
	(set_namespace_binding): Likewise.
	* decl2.c (lookup_using_namespace): Tidy.
	(qualified_lookup_using_namespace): Likewise.
	(do_toplevel_using_decl): Likewise.
	* name-lookup.c: Include "timevar.h"
	* name-lookup.h (cxx_scope):  Declare.
	(struct cxx_binding): Lose member "has_level".  Adjust "scope"
	member declaration.
	(BINDING_SCOPE): Adjust definition.
	(BINDING_HAS_LEVEL_P): Remove.

2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* name-lookup.c: New file.
	* name-lookup.h: Likewise..
	* decl.c (push_binding): Adjust use cxx_binding_make.
	(free_bindings): Move to name-lookup.c
	(pop_binding): Use cxx_binding_free.
	(binding_for_name): Tidy.
	* cp-tree.h: Include "name-lookup.h"
	(cxx_binding_make): Move to name-lookup.h
	(cxx_binding_clear): Likewise.
	(struct cxx_binding): Likewise.
	(LOCAL_BINDING_P): Likewise.
	(INHERITED_VALUE_BINDING_P): Likewise.
	(BINDING_SCOPE): Likewise.
	(BINDING_HAS_LEVEL_P): Likewise.
	(BINDING_VALUE): Likewise.
	(BINDING_TYPE): Likewise.
	* config-lang.in (gtfiles): Add cp/name-lookup.h
	* Make-lang.in (cp/name-lookup.o): New rule.
	(CXX_OBJS): Add cp/name-lookup.o
	(CXX_TREE_H): Add cp/name-lookup.h

2003-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/10245
	* cvt.c (force_rvalue): New fn.
	* call.c (build_conditional_expr): Use it.
	* cp-tree.h: Declare it.

2003-03-28  Mike Stump  <mrs@apple.com>

	* error.c (dump_expr): Add 0x to printed hex numbers to make
	output match source code better.

2003-03-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/10218
	* decl.c (grokfndecl): Return NULL_TREE for bogus out-of-class
	definitions.

	* decl2.c (generate_ctor_or_dtor_function): Tolerate a
	non-existant ssdf_decls array.
	(finish_file): Call generator_ctor_or_dtor_function when there are
	static constructors or destructors and no other static
	initializations.

2003-03-28  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/10047
	* decl2.c (finish_file): Don't warn about explicitly instantiated
	inline decls.

2003-03-27  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/10224
	* pt.c (lookup_template_class): Only check instantiated args if
	they do not contain template parameters.

2003-03-27  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/10158
	* parser.c (cp_parser_function_definition): Set
	DECL_INITIALIZED_IN_CLASS for members.
	* pt.c (instantiate_decl): Only reduce the template args for
	friends that are not defined in class.

2003-03-25  Jason Merrill  <jason@redhat.com>

	* call.c (print_z_candidate): Change name of first arg to msgid.
	(joust): Add comment for translators.

2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9898, PR c++/383, DR 322
	* pt.c (maybe_adjust_types_for_deduction) <DEDUCE_CONV>: Look
	through reference types on both PARM and ARG.

2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/10119
	* error.c (dump_expr) <BASELINK>: Use dump_expr.
	* pt.c (maybe_fold_nontype_args): New function.
	(tsubst_copy) <SCOPE_REF>: Subst any template_id args.
	<TEMPLATE_ID_EXPR>: Break out folding code, call it.
	(tsubst_copy_and_build) <TEMPLATE_ID_EXPR>: Call
	maybe_fold_nontype_args.

2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/10026
	* decl2.c (arg_assoc_type) <ERROR_MARK>: Don't die.

2003-03-23  Mark Mitchell  <mark@codesourcery.com>

	PR c++/7086
	* typeck.c (cxx_mark_addressable):  Adjust call to
	gen_mem_addressof or put_var_into_stack.

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

	PR c++/9978, c++/9708
	* cp-tree.h (instantiate_template): Add tsubst_flags parameter.
	* call.c (add_template_candidate_real): Adjust
	instantiate_template call.
	* class.c (resolve_address_of_overloaded_function): Likewise.
	* decl.c (build_enumerator): Set TREE_CONSTANT.
	* pt.c (check_instantiated_args): New.
	(push_inline_template_parms_recursive): Set TREE_CONSTANT,
	TREE_READONLY.
	(build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY.
	(reduce_template_parm_level): Likewise.
	(process_template_parm): Likewise.
	(check_explicit_specialization): Adjust instantiate_template call.
	(convert_template_argument): Don't check non-type argument here.
	(lookup_template_class): Check them here.
	(tsubst_friend_function): Adjust instantiate_template call.
	(instantiate_template): Add tsubst_flags parameter, use it. Check
	instantiated args.

2003-03-21  Zack Weinberg  <zack@codesourcery.com>

	* decl.c: Update calls to shadow_warning.

2003-03-21  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9898
	* error.c (dump_decl) [CONST_DECL]: Print '<enumerator>'.
	(dump_expr) [CONSTRUCTOR]: Print default ctor as a function call.

2003-03-20  Mark Mitchell  <mark@codesourcery.com>

	* cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
	friends.
	* cp/pt.c (instantiate_class_template): Fix formatting.

2003-03-14  Matt Austern  <austern@apple.com>

	* cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray.
	(unemitted_tinfo_decl_p): Remove.
	(emit_tinfo_decl): Change declaration to remove unused parameter.
	* decl2.c (finish_file): Change tinfo emission to loop through
	unemitted_tinfo_decls array instead of looping through all decls.
	* rtti.c (unemitted_tinfo_decl_p): Declare as static, remove
	unused second parameter.
	(init_rtti_processing): initialize unemitted_tinfo_decls varray.
	(get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls.
	(emit_tinfo_decl): remove unused second parameter, add assertion
	that decl hasn't already been emitted.

2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return
	type from 'int' to 'bool'. Replace 0 and 1 with true and false in
	return statements.

2003-03-19  Jason Merrill  <jason@redhat.com>

	PR c++/8316, c++/9315, c++/10136
	* call.c (print_z_candidate): Split out from...
	(print_z_candidiates): ...here.
	(joust): Use it.

2003-03-17  Roger Sayle  <roger@eyesopen.com>

	PR c++/10031
	* decl.c (duplicate_decls): Use the new type when prototyping
	anticipated decls, even when the types match.  This defines the
	exception list for the built-in function.

2003-03-17  Jason Merrill  <jason@redhat.com>

	PR c++/10091
	* typeck.c (build_class_member_access_expr): Compare
	TYPE_MAIN_VARIANTs.

2003-03-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9639
	* parser.c (cp_parser_declarator_id): Clear parser->scope.

2003-03-16  Jason Merrill  <jason@redhat.com>

	PR c++/9993
	* decl.c (finish_function): Only allow the NRVO to use variables
	declared at function scope.

2003-03-17  Andreas Jaeger  <aj@suse.de>

	* Make-lang.in (cp/TAGS): Remove.

2003-03-16  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9629
	* cp-tree.h (struct language_function): Add in_base_initializer.
	(in_base_initializer): define it.
	(expand_member_init): Remove INIT param.
	* init.c (expand_member_init): Remove INIT param, return the member.
	(emit_mem_initializers): Set in_base_initializer.
	* class.c (build_base_path): Check in_base_initializer.
	* parser.c (cp_parser_mem_initializer): Set in_base_initializer.
	* pt.c (tsubst_initializer_list): Likewise.

2003-03-16   Gabriel Dos Reis <gdr@integrable-solutions.net>

	* decl.c (binding_for_name): Fix initialization thinko.

2003-03-15  Gabriel Dos Reis <gdr@integrable-solutions.net>

	Compile-time improvement: 2/n.
	* cp-tree.h (struct cxx_binding): New datatype;
	(struct lang_identifier): Use it.
	(LOCAL_BINDING_P): Adjust definition.
	(INHERITED_VALUE_BINDING_P): Likewise.
	(BINDING_SCOPE): Likewise.
	(BINDING_HAS_LEVEL_P): Likewise.
	(BINDING_VALUE): Likewise.
	(BINDING_TYPE): Likewise.
	(IDENTIFIER_VALUE): Likewise.
	(struct tree_binding): Remove.
	(TS_CP_BINDING): Likewise.
	((union lang_tree_node): Remove field "binding".
	(cxx_binding_clear): New macro.
	(binding_for_name): Adjust return type.
	(qualified_lookup_using_namespace): Adjust prototype.
	(lookup_using_namespace): Adjust prototype.
	(cxx_scope_find_binding_for_name): Declare.
	* cp-tree.def: Remove CPLUS_BINDING definition.
	* decl.c (push_binding): Adjust local variable type.
	(add_binding): Likewise.
	(push_class_binding): Likewise.
	(pop_binding): Likewise.
	(poplevel): Likewise.
	(poplevel_class): Likewise.
	(free_bindings):  Adjust type.
	(find_binding): Adjust return type, add a third parameter. Remove
	non-useful assertion now that we use static typing.
	(cxx_scope_find_binding_for_name): New function.
	(binding_for_name): Use it.  Adjust local variable type. Simplify.
	(namespace_binding):  Simplify.
	(set_namespace_binding): Likewise.
	(set_identifier_type_value_with_scope): Adjust local variable type.
	(lookup_tag): Don't type-abuse of local variable 'old'.
	(lookup_namespace_name): Likewise.  Allocate binding on stack.
	(select_decl): Adjust prototype.
	(unqualified_namespace_lookup):  Allocate binding on stack.
	Don't type-abuse of local variable 'val'.
	(lookup_name_real): Likewise.
	(maybe_inject_for_scope_var): Adjust local variable type.
	(cp_tree_node_structure): Remove CPLUS_BINDING case label.
	(namespace_binding): Adjust logic, simplify.
	(BINDING_LEVEL): Adjust definition.
	(push_class_level_binding): Adjust local variable type.
	(struct cxx_saved_binding): Adjust field 'binding' type.
	* decl2.c (ambiguous_decl): Adjust prototype.
	(lookup_using_namespace): Adjust local variable type.
	(qualified_lookup_using_namespace): Catch type error and correct
	ensueing logic error.
	(do_nonmember_using_decl): Adjust local variable type.  Allocate
	temporary cxx_binding on stack.
	(do_toplevel_using_decl): Adjust local variable type.
	* ptree.c (cxx_print_cxx_binding): New function.
	(cxx_print_identifier): Use it.
	(cxx_print_xnode): Delete CPLUS_BINDING case label.

2003-03-15  Roger Sayle  <roger@eyesopen.com>

	* tree.c (count_functions): Fix whitespace.

2003-03-15  Neil Booth  <neil@daikokuya.co.uk>

	* Make-lang.in: Update.

2003-03-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/6440
	* pt.c (maybe_process_partial_specialization): Handle
	member class template when enclosing class template is
	explicit specialized.
	(most_general_template): Stop looking when DECL is already
	specialized.

2003-03-13  Jason Merrill  <jason@redhat.com>

	PR c++/9420
	* search.c (lookup_conversions): Call complete_type here.
	* call.c (implicit_conversion): Not here.

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

	* decl2.c (do_nonmember_using_decl): Correct handling of
	simultaneous type/non-type bindings.

	* call.c (initialize_reference): Remove bogus assertion.
	* decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.

2003-03-12  Andrew Lewycky  <andrew@mxc.ca>

	PR c++/7050
	* expr.c (cxx_expand_expr): Return const0_rtx for throw
	expressions.

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

	PR c++/9474
	* decl2.c (do_nonmember_using_decl): Do not call duplicate decls
	to merge old and new declarations.

2003-03-12  Alexandre Oliva  <aoliva@redhat.com>

	* g++.1: Remove.
	* Make-lang.in (c++.generated-manpages): Build cp/g++.1.
	(cp/g++.1): Build it from scratch in the build tree.
	(c++.install-man): Depend on it.  Install it from the build tree.
	(c++.mostlyclean): Clean it.

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

	PR c++/9474
	* decl2.c (do_nonmember_using_decl): Do not call duplicate decls
	to merge old and new declarations.

	PR c++/9924
	* decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.

2003-03-11  Jason Merrill  <jason@redhat.com>

	PR c++/9820
	* search.c (lookup_member): Fix handling of functions in a class
	being defined.

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

	PR c++/8700
	* call.c (convert_class_to_reference): Adjust usage of
	splice_viable.
	(any_viable): Remove.
	(splice_viable): Combine with any_viable.
	(print_z_candidates): Avoid printing duplicates.
	(build_user_type_conversion_1): Adjust usage of splice_viable.
	(build_new_function_call): Likewise.
	(build_operator_new_call): Likewise.
	(build_object_call): Likewise.
	(build_conditional_expr): Likewise.
	(build_new_op): Likewise.
	(build_new_method_call): Likewise.
	(joust): Remove spurious comment.
	* cp-tree.h (DECL_FRIENDLIST): Correct documentation.
	* decl2.c (arg_assoc_class): Simplify.
	* friend.c (add_friend): Likewise.

2003-03-11  Jason Merrill  <jason@redhat.com>

	PR c++/8660
	* decl2.c (check_classfn): A member template only matches a
	member template.

2003-03-11  Neil Booth  <neil@daikokuya.co.uk>

	* Make-lang.in (CXX_C_OBJS): Update.
	* lang-specs.h: Don't define __GNUG__ here.

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

	* call.c (perform_overload_resolution): New function.
	(build_new_function_call): Use it.
	(build_operator_new_call): Likewise.
	(add_candidates): Add explicit_targs and template_only parameters.
	(build_new_op): Adjust accordingly.
	* cp-tree.h (build_operator_new_call): New function.
	(build_function_call_real): Remove.
	(build_function_call_maybe): Likewise.
	* init.c (build_new_1): Use build_operator_new_call.
	* typeck.c (build_function_call_real): Rename to ...
	(build_function_call): ... this.

2003-03-10  Devang Patel  <dpatel@apple.com>

	PR c++/9394
	* g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWTCH_TAKES_ARG.

2003-03-10  Jason Merrill  <jason@redhat.com>

	PR c++/9798
	* decl.c (push_using_directive): Push before recursing.

	PR c++/9868, c++/9524
	* call.c (resolve_scoped_fn_name): Handle the case of a function
	pointer member.

	* decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
	argument in the pointer-to-member case.

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

	PR c++/9373
	* cp-lang.c (cxx_get_alias_set): Use alias set zero for
	pointers to member functions.

	PR c++/8534
	* decl.c (build_ptrmemfunc_type): Do not allow default arguments
	in pointer-to-member-function types.

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

	* expr.c (cplus_expand_constant): Use C90 prototype style.
	(cxx_expand_expr): Likewise.

2003-03-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9970
	* decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
	functions.

2003-03-08  Geoffrey Keating  <geoffk@apple.com>

	* lang-specs.h (c++-header): Change .pch to .gch.

2003-03-08  Neil Booth  <neil@daikokuya.co.uk>

	* cp-tree.h (cxx_init): Update prototype.
	* lex.c (cxx_init): Similarly.

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

	PR c++/9823
	* cp-tree.h (begin_mem_initializers): Remove.
	* parser.c (cp_parser_mem_initializer_list): Inline it here.
	Do not call finish_mem_initializers if not in a constructor.
	(cp_parser_class_head): Fix typo in error message.
	* semantics.c (begin_mem_initializers): Remove.
	* testsuite/g++.dg/parser/constructor1.C: New test.

	PR c++/9809
	* call.c (add_function_candidate): Skip builtin fuctions that have
	not yet been declared.

	PR c++/9982
	* init.c (build_new_1): Correct logic for determining whether or
	not to use an array cookie.

	PR c++/9524
	* parser.c (cp_parser_postfix_expression): Call
	finish_non_static_data_member, even when processing_template_decl.

	PR c++/9912
	* cp-tree.h (is_ancestor): New function.
	(handle_class_head): Change prototype.
	* decl2.c (is_namespace_ancestor): Rename to ...
	(namespace_anecestor): ... this.
	(set_decl_namespace): Adjust accordingly.
	(handle_class_head): Remove unnecessary parameters.
	* parser.c (cp_parser_class_head): Check that
	nested-name-specifiers are used appropriately.

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

	* call.c (reference_binding): Remove REF_IS_VAR parameter.
	(implicit_conversion): Adjust call to reference_binding.
	(make_temporary_var_for_ref_to_type): Add TYPE parameter.
	(initialize_reference): Adjust handling for references bound to
	rvalues.
	* cp-tree.h (make_temporary_var_for_ref_to_temp): Change
	prototype.
	(real_non_cast_lvalue_p): New method.
	* cvt.c (build_up_reference): Adjust use of
	make_temporary_var_for_ref_to_temp.
	* tree.c (real_non_cast_lvalue_p): New method.

2003-03-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* except.c (init_exception_processing): Use C90 prototype style.
	(cp_protect_cleanup_actions): Likewise.
	(prepare_eh_type): Likewise.
	(build_eh_type_type): Likewise.
	(build_exc_ptr): Likewise.
	(do_begin_catch): Likewise.
	(dtor_nothrow): Likewise.
	(do_end_catch): Likewise.
	(push_eh_cleanup): Likewise.
	(decl_is_java_type): Likewise.
	(choose_personality_routine): Likewise.
	(initialize_handler_parm): Likewise.
	(expand_start_catch_block): Likewise.
	(expand_end_catch_block): Likewise.
	(begin_eh_spec_block): Likewise.
	(finish_eh_spec_block): Likewise.
	(do_allocate_exception): Likewise.
	(do_free_exception): Likewise.
	(wrap_cleanups_r): Likewise.
	(stabilize_throw_expr): Likewise.
	(build_throw): Likewise.
	(complete_ptr_ref_or_void_ptr_p): Likewise.
	(is_admissible_throw_operand): Likewise.
	(nothrow_libfn_p): Likewise.
	(can_convert_eh): Likewise.
	(check_handlers_1): Likewise.
	(check_handlers): Likewise.

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

	* call.c (merge_conversion_sequences): New function.
	(build_conv): Set ICS_USER_FLAG for USER_CONVs.
	(convert_class_to_reference): Correct handling of second
	standard conversion sequence in a user-defined conversion
	sequence.
	(build_user_type_conversion_1): Use merge_conversion_sequences.
	* cp-tree.def: Add comments for CONV nodes.
	* rtti.c (get_tinfo_decl): Use build_address/build_nop.

2003-03-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* error.c (init_error): Use C90 prototype style.
	(dump_scope): Likewise.
	(dump_qualifiers): Likewise.
	(dump_template_argument): Likewise.
	(dump_template_argument_list): Likewise.
	(dump_template_parameter): Likewise.
	(dump_template_bindings): Likewise.
	(dump_type): Likewise.
	(dump_typename): Likewise.
	(class_key_or_enum): Likewise.
	(dump_aggr_type): Likewise.
	(dump_type_prefix): Likewise.
	(dump_type_suffix): Likewise.
	(dump_global_iord): Likewise.
	(dump_simple_decl): Likewise.
	(dump_decl): Likewise.
	(dump_template_decl): Likewise.
	(dump_function_decl): Likewise.
	(dump_parameters): Likewise.
	(dump_exception_spec): Likewise.
	(dump_function_name): Likewise.
	(dump_template_parms): Likewise.
	(dump_char): Likewise.
	(dump_expr_list): Likewise.
	(dump_expr): Likewise.
	(dump_binary_op): Likewise.
	(dump_unary_op): Likewise.
	(type_as_string): Likewise.
	(expr_as_string): Likewise.
	(decl_as_string): Likewise.
	(context_as_string): Likewise.
	(lang_decl_name): Likewise.
	(cp_file_of): Likewise.
	(cp_line_of): Likewise.
	(decl_to_string): Likewise.
	(expr_to_string): Likewise.
	(fndecl_to_string): Likewise.
	(code_to_string): Likewise.
	(language_to_string): Likewise.
	(parm_to_string): Likewise.
	(op_to_string): Likewise.
	(type_to_string): Likewise.
	(assop_to_string): Likewise.
	(args_to_string): Likewise.
	(cv_to_string): Likewise.
	(cxx_print_error_function): Likewise.
	(cp_diagnostic_starter): Likewise.
	(cp_diagnostic_finalizer): Likewise.
	(cp_print_error_function): Likewise.
	(function_category): Likewise.
	(print_instantiation_full_context): Likewise.
	(print_instantiation_partial_context): Likewise.
	(maybe_print_instantiation_context): Likewise.
	(print_instantiation_context): Likewise.
	(cp_printer): Likewise.
	(print_integer): Likewise.
	(print_non_consecutive_character): Likewise.
	(locate_error): Likewise.

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

	PR c++/9965
	* call.c (reference_binding): Add ref_is_var parameter.
	(implicit_conversion): Adjust call to reference_binding.
	(initialize_reference): Likewise.

	PR c++/9400
	* decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
	PARM_DECLs.

	PR c++/9791
	* class.c (get_basefndecls): Use lookup_fnfields_1.

2003-03-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9188
	* parser.c (cp_parser_type_parameter): Remove redundant `expect'
	in error message.
	(cp_parser_single_declaration): Likewise.

2003-03-05  Jason Merrill  <jason@redhat.com>

	PR c++/9440
	* call.c (build_conditional_expr): Use convert rather than an
	explicit NOP_EXPR.

2003-03-02  Matt Austern  <austern@apple.com>

	* decl.c (cp_binding_level): Add static_decls varray member.
	(add_decl_to_level): Add static/inline namespace scope
	declarations to static_decls array.
	(wrapup_global_for_namespace): Pass static_decls only, instead of
	all decls, to wrapup_global_declarations/check_global_declarations.
	(push_namespace): Initialize static_decls for ordinary namespaces.
	(cxx_init_decl_processing): Initialize static_decls for global
	namespace.

2003-03-05  Mark Mitchell  <mark@codesourcery.com>

	* class.c (end_of_class): Correct thinko.

2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>

	* config-lang.in: Replace ${libstdcxx_version} by its value.

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

	* cp-tree.h (cxx_saved_binding): Declare.
	(struct saved_scope): Adjust type of field 'old_binding'.
	* decl.c (cxx_saved_binding_make): New macro.
	(struct cxx_saved_binding): Define.
	(store_bindings): Adjust prototype.  Use cxx_saved_binding to save
	C++ bindings.
	(maybe_push_to_top_level): Adjust local variable type.
	(pop_from_top_level): Likewise.

2003-03-04  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (c++.tags): New target.

2003-03-04  Neil Booth  <neil@daikokuya.co.uk>

	* Make-lang.in: Update.

2003-03-03  Jason Merrill  <jason@redhat.com>

	* decl.c (finish_enum): Do set the type in a template. Simplify.
	* pt.c (tsubst_enum, tsubst_copy): Revert last patch.

2003-03-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9878
	* call.c (convert_class_to_reference): Correct conversion
	sequences.
	(reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
	(implicit_conversion): Adjust call to reference_binding.
	(add_candidate): Change type of candidates parameter.
	(add_function_candidate): Likewise.
	(add_conv_candidate): Likewise.
	(build_builtin_candidate): Likewise.
	(add_builtin_candidate): Likewise.
	(add_builtin_candidates): Likewise.
	(add_template_candidate_real): Likewise.
	(add_template_candidate): Likewise.
	(add_template_conv_candidate): Likewise.
	(build_user_type_conversion_1): Adjust accordingly.
	(build_object_call): Likewise.
	(build_conditional_expr): Likewise.
	(add_candidates): Likewise.
	(build_new_op): Likewise.
	(convert_like_real): Use USER_CONV_CAND.  Use build_nop.
	(build_new_method_call): Adjust calls to add_function_candidate.
	(make_temporary_var_for_ref_to_temp): New function.
	(initialize_reference): Add decl parameter.
	* class.c (build_rtti_vtbl_entries): Use build_address and
	build_nop.
	* cp-tree.h (initialize_reference): Change prototype.
	(make_temporary_var_for_ref_to_temp): New function.
	(build_type_conversion): Change prototype.
	(build_address): New function.
	(build_nop): Likewise.
	* cvt.c (cp_convert_to_pointer): Adjust call to
	build_type_conversion.  Avoid indicating redundant NOP_EXPRs.
	Use build_nop.
	(convert_to_pointer_force): Use build_nop.
	(build_up_reference): Use make_temporary_var_for_ref_to_temp.
	(convert_to_reference): Adjust call to build_type_conversion.
	(ocp_convert): Likewise.
	(build_type_conversion): Remove for_sure parameter.
	* decl.c (grok_reference_init): Use initialize_reference.
	* typeck.c (build_address): New function.
	(build_nop): Likewise.
	(build_unary_op): Use them.
	(build_ptrmemfunc): Tidy slightly.
	(convert_for_initialization): Adjust call to
	initialize_reference.
	* typeck2.c (store_init_value): Remove #if 0'd code.

2003-03-03  Jason Merrill  <jason@redhat.com>

	* decl.c (start_function): Clear DECL_NUM_STMTS.

	* class.c (get_vtable_decl): Use vtbl_type_node.
	(build_primary_vtable): Check for it.

2003-03-02  Aldy Hernandez  <aldyh@redhat.com>

	* decl.c (check_initializer): Check for vector_opaque_p.

2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>

	* lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
	  invoke an external cpp during compilation.

2003-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* decl.c (duplicate_decls): Convert use of warning_with_decl() to
	that of warning().
	(start_decl): Likewise.
	(start_function): Likewise.

2003-03-01  Neil Booth  <neil@daikokuya.co.uk>

	* Make-lang.in (CXX_C_OBJS): Update.

2003-02-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9892
	* pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
	instantiating it.

2003-02-28  Aldy Hernandez  <aldyh@redhat.com>

	* parser.c (cp_parser_init_declarator): Revert opaque
	vector_opaque_p change.
	Do not include target.h.

2003-02-28  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9879
	* cp-tree.h (build_zero_init): Add parameter.
	* decl.c (cp_finish_decl): Adjust call.
	* init.c (build_zero_init): Add nelts parameter.  Adjust recursive
	calls.
	(build_default_init): Add nelts parameter.  Adjust calls to
	build_zero_init.
	(build_new_1): Adjust call to build_default_init.
	* typeck2.c (process_init_constructor): Adjust call to build_zero_init.

2003-02-26  Devang Patel  <dpatel@apple.com>

	* decl.c (finish_enum): Merge two 'for' loops. Copy value node if
	required.  Postpone enum setting for template decls.
	(build_enumerator): Delay copying value node until finish_enum
	(). Remove #if 0'ed code.
	* pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
	(tsubst_copy): Add check for enum type.

2003-02-25  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9683
	* decl2.c (prune_vars_needing_no_initialization): Do not throw
	away initializations for DECL_EXTERNAL VAR_DECLs.
	(finish_file): Adjust accordingly.
	* pt.c (instantiate_decl): Do not defer VAR_DECLs.

2003-02-24 Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* decl.c (add_binding): Time TV_NAME_LOOKUP.
	(push_class_binding): Likewise.
	(set_namespace_binding): Likewise.

2003-02-24  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9836
	* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from
	specializations back to the main template.
	* parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.
	* pt.c (resolve_typename_type): Likewise.

2003-02-24  Jeffrey D. Oldham  <oldham@codesourcery.com>

	PR c++/9778
	* pt.c (tsubst_copy_and_build): For a templated function inside a
	scope, process template arguments.

2003-02-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9602
	* typeck2.c (abstract_virtuals_error): Don't check when
	TYPE is still template parameter dependent.

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

	PR c++/5333
	* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro.
	* parser.c (cp_parser_diagnose_invalid_type_name): Use it.
	* pt.c (instantiate_class_template): Don't try to instantiate
	dependent types.
	(resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE.

2003-02-21  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9749
	* decl.c (grokdeclarator): Do not allow parameters with variably
	modified types.

2003-02-21  Nathan Sidwell  <nathan@codesourcery.com>

	* search.c (grow_bfs_bases): Remove. Fold into ...
	(bfs_walk): ... here, fix fencepost error. Fix merge lossage
	in previous patch.

2003-02-20  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9729
	* mangle.c (mangle_conv_op_name_for_type): Issue an error message
	when the G++ 3.2 ABI prevents correct compilation.

2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>

	Change base class access representation. Share virtual base
	binfos.
	* cp/call.c (build_special_member_call): Remove binfo_for_vbase
	call.
	* cp/class.c (build_base_path): Likewise.
	(build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
	(build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
	(make_new_vtable): Adjust.
	(force_canonical_binfo_r): Delete.
	(force_canonical_binfo): Delete.
	(mark_primary_virtual_base): Delete.
	(dfs_unshared_virtual_bases): Delete.
	(mark_primary_bases): Adjust.
	(maybe_warn_about_overly_private_class): Adjust.
	(dfs_base_derived_from): Delete.
	(base_derived_from): Follow the inheritance chain.
	(struct find_final_overrider_data): Add vpath member.
	(dfs_find_final_overrider): Adjust.
	(dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
	(find_final_overrider): Adjust.
	(update_vtable_entry_for_fn): Adjust.
	(modify_all_vtables): Adjust.
	(walk_subobject_offsets): Adjust.
	(layout_nonempty_base_or_field): Adjust.
	(layout_empty_base): Remove last parameter. Adjust.
	(build_base_field): Adjust.
	(build_base_fields): Adjust.
	(propagate_binfo_offsets): Remove last parameter. Adjust.
	(dfs_set_offset_for_unshared_vbases): Delete.
	(layout_virtual_bases): Adjust.
	(finish_struct_1): Adjust.
	(init_class_processing): Don't init access nodes.
	(dfs_get_primary_binfo): Delete.
	(get_primary_binfo): Adjust.
	(dump_class_hierarchy_r): Remove most derived arg, add IGO
	parameter. Adjust.
	(dump_class_hierarchy): Adjust.
	(finish_vtbls): Adjust.
	(get_original_base): Delete.
	(build_vtt_inits): Adjust.
	(dfs_build_secondary_vptr_vtt_inits): Adjust.
	(dfs_ctor_vtable_bases_queue_p): Adjust.
	(build_ctor_vtbl_group): Adjust.
	(dfs_accumulate_vtbl_inits): Adjust.
	(build_vtbl_initializer): Adjust.
	(build_vbase_offset_vtbl_entries): Adjust.
	(add_vcall_offset_vtbl_entries_1): Adjust.
	* cp/cp-tree.h (CPTI_ACCESS_*): Remove.
	(access_*_node): Remove.
	(CANONICAL_BINFO): Delete.
	(BINFO_UNSHARED_MARKED): Remove.
	(BINFO_MARKED): Set LANG_FLAG_0 directly.
	(SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
	(BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
	(SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
	Delete.
	(BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
	(SET_BINFO_NEW_VTABLE_MARKED): Adjust.
	(SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
	Delete.
	(BINFO_DEPENDENT_BASE_P): New.
	(dfs_walk, dfs_walk_real): Queue function takes derived binfo and
	index.
	(markedp, unmarkedp): Adjust.
	(dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
	dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
	find_vbase_instance, binfo_for_vbase): Delete.
	(copied_binfo, original_binfo): Declare.
	(finish_base_specifier): Add virtual_p arg.
	(unshare_base_binfos): Delete.
	(copy_base_binfos): Declare.
	(reverse_path): Delete.
	* cp/decl.c (xref_basetypes): Access and virtuality passed
	differently. Don't copy direct base binfos here. Call
	copy_base_binfos.
	* cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
	(initialize_vtbl_ptrs): Adjust.
	(expand_member_init): Adjust.
	* cp/parser.c (cp_parser_base_specifier): Adjust.
	* cp/pt.c (instantiate_class_template): Adjust.
	(get_template_base_recursive): Adjust.
	* cp/rtti.c (get_pseudo_ti_init): Adjust.
	(get_pseudo_ti_desc): Adjust.
	* cp/tree.c (unshare_base_binfos): Rename to ...
	(copy_base_binfos): ... here, reimplement.
	(make_binfo): Set BINFO_DEPENDENT_BASE_P.
	(reverse_path): Remove.
	* cp/typeck.c (get_delta_difference): Adjust error messages.
	* cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
	* cp/search.c (lookup_base_r): Adjust.
	(dynamic_cast_base_recurse): Adjust.
	(canonical_binfo): Remove.
	(dfs_canonical_queue): Remove.
	(dfs_assert_unmarked_p): Remove.
	(assert_canonical_unmarked): Remove.
	(shared_marked_p, shared_unmarked_p): Remove.
	(BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
	(dfs_access_in_type): Adjust.
	(access_in_type): Adjust.
	(dfs_accessible_queue_p): Adjust.
	(dfs_accessible_p): Adjust.
	(is_subobject_of_p_1, is_subobject_of_p): Remove.
	(struct lookup_field_info): Remove from_dep_base_p field.
	(lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
	(lookup_field_r): Remove dependent base code.
	(lookup_member): Likewise.
	(dfs_walk, dfs_walk_real): Add access arg to queue fn.
	(dfs_unmarked_real_bases_queue_p): Remove.
	(dfs_marked_real_bases_queue_p): Remove.
	(dfs_skip_vbases): Remove.
	(dfs_get_pure_virtuals): Adjust.
	(markedp, unmarkedp): Adjust.
	(marked_vtable_pathp, unmarked_vtable_pathp): Remove.
	(marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
	(dfs_unmark): Adjust.
	(dfs_get_vbase_types):Remove.
	(dfs_build_inheritance_graph_order): Remove.
	(get_vbase_types): Remove
	(dfs_find_vbase_instance): Remove.
	(find_vbase_instance): Remove.
	(dfs_debug_unmarkedp): Adjust.
	(dependent_base_p): Remove.
	(dfs_push_type_decls): Adjust.
	(dfs_push_decls): Adjust.
	(dfs_no_overlap_yet): Adjust.
	(copied_binfo): New function.
	(original_binfo): New function.
	(binfo_for_vbase): Remove.

2003-02-18  Zack Weinberg  <zack@codesourcery.com>

	* cp/search.c (grow_bfs_bases): New subroutine of bfs_walk.
	(bfs_walk): Rewritten using circular queue of BINFO_BASETYPES
	vectors, for speed.

2003-02-18  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9704
	* class.c (layout_class_type): In the 3.2 ABI, take into account
	trailing bit fields when computing CLASSTYPE_SIZE_UNIT.

2003-02-18  Matt Austern <austern@apple.com>

	* cp/cp-lang.c: Change lang hooks so that final_write_globals does
	nothing for C++.
	* cp/decl.c (wrapup_globals_for_namespace): Remove special
	handling of global namespace.

2003-02-18  Geoffrey Keating  <geoffk@apple.com>

	* cp-tree.h (rid_to_yy): Delete.
	(C_RID_YYCODE): Delete.
	(finish_file): Delete redundant declaration.

2003-02-18  Jason Merrill  <jason@redhat.com>

	PR c++/9623
	* decl.c (reshape_init): Don't mess with initializer labels.

	PR c++/9485
	* parser.c (cp_parser_postfix_expression): Set idk properly for
	object->scope::member.

2003-02-18  Ben Elliston  <bje@redhat.com>

	PR other/7350
	* decl.c (duplicate_decls): Fix typo in comment.

2003-02-17  Michael Elizabeth Chastain <mec@shout.net>

	PR debug/9717
	* class.c (build_base_field): Mark fields for base classes with
	DECL_IGNORED_P.

2003-02-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9457
	* pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Substitute
	CONSTRUCTOR_ELTS only once.

2003-02-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9459
	* error.c (dump_type_prefix): Handle TYPEOF_TYPE.
	(dump_type_suffix): Likewise.

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

	* search.c: ANSIfy function declarations and definitions.
	* cp-tree.h (lookup_field, lookup_member): Last parameter is a bool.
	* call.c (build_method_call, resolve_scoped_fn_name,
	build_java_interface_fn_ref): Adjust lookup_field, lookup_member
	calls.
	* class.c (handle_using_decl): Likewise.
	* decl.c (make_typename_type, make_unmound_class_template,
	start_decl, compute_array_index_type): Likewise.
	* decl2.c (build_expr_from_tree, build_call_from_tree): Likewise.
	* init.c (expand_member_init, build_member_call): Likewise.
	* pt.c (tsubst_copy, tsubst_copy_and_build, do_decl_instantiation,
	resolve_typename_type): Likewise.
	* typeck.c (lookup_destructor, finish_class_member_access_exprm
	build_prememfunc_access_expr): Likewise.

2003-02-13  Gabriel Dos Reis <gdr@integrable-solutions.net>

	* decl2.c: Include "timevar.h".
	(namespace_ancestor): Time name lookup.
	(add_using_namespace): Likewise.
	(lookup_using_namespace): Likewise.
	(qualified_lookup_using_namespace): Likewise.
	(decl_namespace): Likewise.
	(lookup_arg_dependent): Likewise.
	* lex.c (do_identifier): Likewise.
	(do_scoped_id): Likewise.
	* pt.c (lookup_template_class): Likewise.

2003-02-14   Andrew Pinski <pinskia@physics.uc.edu>

	* decl.c: (define_label): Fix warning for return 0 instead of NULL.

2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* decl.c: Include "timevar.h".
	(poplevel): Time name lookup.
	(find_binding): Likewise.
	(push_namespace): Likewise.
	(pop_nested_namespace): Likewise.
	(store_bindings): Likewise.
	(maybe_push_to_top_level): Likewise.
	(pop_from_top_level): Likewise.
	(push_local_name): Likewise.
	(pushtag): Likewise.
	(pushdecl): Likewise.
	(pushdecl_with_scope): Likewise.
	(pushdecl_namespace_level): Likewise.
	(pushdecl_top_level): Likewise.
	(pushdecl_class_level): Likewise.
	(push_class_level_binding): Likewise.
	(push_using_decl): Likewise.
	(push_using_directive): Likewise.
	(push_overloaded_decl): Likewise.
	(lookup_label): Likewise.
	(define_label): Likewise.
	(lookup_tag): Likewise.
	(lookup_tag_reverse): Likewise.
	(lookup_namespace_name): Likewise.
	(select_decl): Likewise.
	(unqualified_namespace_lookup): Likewise.
	(lookup_name_real): Likewise.
	(lookup_name_current_level): Likewise.
	(lookup_type_current_level): Likewise.
	(maybe_inject_for_scope_var): Likewise.
	(xref_tag): Likewise.

	* Make-lang.in (cp/decl.o): Add dependency on timevar.h

2003-02-12  Phil Edwards  <pme@gcc.gnu.org>

	* decl.c (build_enumerator):  Remove unneeded test.

2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>

	* cp-tree.h (struct lang_type_header): Make all fields unsigned
	char.

2003-02-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/7129
	* call.c (z_candidate): Add args.
	(convert_class_to_reference): Set it.
	(implicit_conversion): Tidy.
	(add_candidate): Add args parameter.
	(add_function_candidate): Adjust call to add_candidate.
	(add_conv_candidate): Likewise.
	(build_builtin_candidate): Likewise.
	(build_user_type_conversion_1): Eliminate wasteful tree_cons
	usage.
	(build_new_function_call): Likewise.
	(build_object_call): Likewise.
	(add_candidates): New function.
	(build_new_op): Use it.
	(covert_like_real): Adjust call to build_over_call.
	(build_over_call): Remove args parameter.
	* operators.def: Add <?= and >?=.

2003-02-01  Richard Sandiford  <rsandifo@redhat.com>

	* typeck.c (build_indirect_ref): Don't check flag_volatile.

2003-01-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/8849
	* pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.

2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
	BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
	(BINFO_LANG_ELTS): New #define.
	* tree.c (make_binfo): Use BINFO_LANG_ELTS.

2003-01-30  Geoffrey Keating  <geoffk@apple.com>

	* cp/Make-lang.in: Remove -Wno-error from cp/decl.o.

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

	* class.c (check_field_decls): Only check C_TYPE_FIELDS_READONLY
	for class types.
	* cp-tree.h (C_TYPE_FIELDS_READONLY): Use a lang-specific bit
	rather than TYPE_LANG_FLAG_0.
	(TYPE_BUILT_IN): Remove.
	(TYPE_DEPENDENT_P): New macro.
	(TYPE_DEPENDENT_P_VALID): Likewise.
	(lang_type_class): Add fields_readonly.
	* decl.c (record_builtin_type): Don't set TYPE_BUILT_IN.
	* pt.c (dependent_type_p_r): New function, split out from ...
	(dependent_type_p): ... here.  Memoize results.
	* search.c (dependent_base_p): Use dependent_type_p, not
	uses_template_parms.
	* typeck.c (build_modify_expr): Only check C_TYPE_FIELDS_READONLY
	for class types.

2003-01-29  Mark Mitchell  <mark@codesourcery.com>

	* call.c (build_field_call): Use build_new_op, not build_opfncall.
	(prep_operand): New function.
	(build_new_op): Use it.  Remove dead code.
	* class.c (pushclass): Change "modify" parameter type from int to
	bool.
	(currently_open_class): Use same_type_p, not pointer equality.
	(push_nested_class): Adjust calls to pushclass, remove modify
	parameter.
	* cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro.
	(pushclass): Change prototype.
	(push_nested_class): Likewise.
	(grokoptypename): Remove.
	(build_opfncall): Remove.
	(value_dependent_expression_p): Declare.
	(resolve_typename_type): Likewise.
	(resolve_typename_type_in_current_instantiation): Likewise.
	(enter_scope_of): Remove.
	(tsubst): Remove.
	(tsubst_expr): Likewise.
	(tsubst_copy): Likewise.
	(tsubst_copy_and_build): Likewise.
	* decl.c (warn_about_implicit_typename_lookup): Remove.
	(finish_case_label): Return error_mark_node for erroneous labels.
	(start_decl): Adjust calls to push_nested_class.
	(grokfndecl): Call push_scope/pop_scope around call to
	duplicate_decls.
	(grokdeclarator): Do not call tsubst.
	(start_function): Adjust calls to push_nested_class.
	* decl2.c (grok_array_decl): Use build_new_op, not build_opfncall.
	(check_classfn): Use push_scope/pop_scope around type comparisions.
	(grokoptypename): Remove.
	(push_sscope): Adjust call to push_nested_class.
	* error.c (dump_type): Show cv-qualification of typename types.
	* init.c (build_member_call): Use build_new_op, not
	build_opfncall.
	* method.c (build_opfncall): Remove.
	* parser.c (cp_parser): Add allow_non_constant_expression_p and
	non_constant_expression_p.
	(cp_parser_constant_expression): Adjust prototype.
	(cp_parser_resolve_typename_type): Remove.
	(cp_parser_non_constant_expression): New function.
	(cp_parser_non_constant_id_expression): Likewise.
	(cp_parser_new): Set allow_non_constant_expression_p and
	non_constant_expression_p.
	(cp_parser_primary_expression): Reject `this' and `va_arg' in
	constant-expressions.  Note that dependent names aren't really
	constant.
	(cp_parser_postfix_expression): Reject conversions to non-integral
	types in constant-expressions.  Neither are increments or
	decrements.
	(cp_parser_unary_expression): Reject increments and decrements in
	constant-expressions.
	(cp_parser_direct_new_declarator): Adjust call to
	cp_parser_constant_expression.
	(cp_parser_cast_expression): Reject conversions to non-integral
	types in constant-expressions.
	(cp_parser_assignment_expression): Rejects assignments in
	constant-expressions.
	(cp_parser_expression): Reject commas in constant-expressions.
	(cp_parser_labeled_statement): Adjust call to
	cp_parser_constant_expression.
	(cp_parser_direct_declarator): Simplify array bounds, even in
	templates, when they are non-dependent.  Use
	resolve_typename_type, not cp_parser_resolve_typename_type.
	(cp_parser_class_head): Use resolve_typename_type, not
	cp_parser_resolve_typename_type.
	(cp_parser_member_declaration): Adjust call to
	cp_parser_constant_expression.
	(cp_parser_constant_initializer): Likewise.
	(cp_parser_constructor_declarator): Use resolve_typename_type, not
	cp_parser_resolve_typename_type.
	(cp_parser_late_parsing_default_args): Adjust call to
	push_nested_class.
	* pt.c (tsubst): Give it internal linkage.
	(tsubst_expr): Likewise.
	(tsubst_copy): Likewise.
	(tsubst_copy_and_build): Likewise.
	(push_access_scope_real): Likewise.
	(tsubst_friend_class): Likewise.
	(instantiate_class_template): Adjust call to pushclass.
	(value_dependent_expression_p): Give it external linkage.
	Robustify.
	(resolve_typename_type): New function.
	* semantics.c (finish_call_expr): Use build_new_op, not
	build_opfncall.
	(begin_constructor_declarator): Remove.
	(begin_class_definition): Adjust call to pushclass.
	(enter_scope_of): Remove.
	* typeck.c (comptypes): Resolve typename types as appropriate.
	(build_x_indirect_ref): Use build_new_op, not build_opfncall.
	(build_x_compound_expr): Likewise.
	(build_modify_expr): Likewise.
	(build_x_modify_expr): Likewise.
	* typeck2.c (build_x_arrow): Likewise.

2003-01-29  Fariborz Jahanian  <fjahanian@apple.com>

	* pt.c (last_pending_template) Declare GTY().

2003-01-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/8591
	* parser.c (cp_parser_elaborated_type_specifier): Convert
	TEMPLATE_DECL to TYPE_DECL only when processing template friends.
	(cp_parser_maybe_treat_template_as_class): Remove redundant tests.

2003-01-28  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9437
	* pt.c (unify): Don't unify '*T' with 'U C::*'.

	PR c++/3902
	* parser.c (cp_parser_decl_specifier_seq): Cannot have constructor
	inside a declarator.

2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (update_vtable_entry_for_fn): Add index parameter.
	Generate vcall thunk for covariant overriding from a virtual
	primary base.
	(dfs_modify_vtables): Adjust.

2003-01-25  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9403
	* parser.c (cp_parser_class_or_namespace_name): Reject duplicate
	template keyword.
	(cp_parser_base_specifier): Look for and consume a
	TEMPLATE keyword. Replace switch with array index.

	PR c++/795
	* semantics.c (finish_non_static_data_member): Remember the
	field's type even in a template.

	PR c++/9415
	* pt.c (tsubst_copy_and_build, CALL_EXPR): BASELINK exprs are
	already scoped.

	PR c++/8545
	* parser.c (cp_parser_cast_expression): Be more tentative.

2003-01-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* cp-tree.h (flagged_type_tree_s): Remove.
	(check_for_new_type): Likewise.
	* typeck2.c (check_for_new_type): Likewise.

2003-01-23  Nathanael Nerode  <neroden@gcc.gnu.org>

	* dump.c: ANSIfy function declarations and definitions.

	* cp-tree.h, decl.h: Get rid of PARAMS.  Again.

2003-01-22  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9354
	* init.c (build_new): Set the type of the new-expression, even
	when processing_templte_decl.

	PR c++/9216
	* parser.c (cp_parser_primary_expression): Improve error message
	for templates used in an expression context.

	PR c++/8696
	* parser.c (cp_parser_decl_specifier_seq): Commit to tentative
	parse when encountering "typedef".

2003-01-22  Nathanael Nerode  <neroden@gcc.gnu.org>

	* class.c, parser.c: ANSIfy function definitions and declarations.

2003-01-22  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9328
	* error.c (dump_decl): For an OVERLOAD, just print the name of the
	function; it doesn't make sense to try to print its type.
	* semantics.c (finish_typeof): Issue errors about invalid uses.

	PR c++/9298
	* parser.c (cp_parser_consume_semicolon_at_end_of_statement): New
	function.
	(cp_parser_expression_statement): Use it.
	(cp_parser_explicit_instantiation): Likewise.
	* pt.c (do_decl_instantiation): Improve error handling logic.

2003-01-22  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9384
	* parser.c (cp_parser_using_declaration): Issue error messages
	about name resolution failures here.

	PR c++/9388
	* class.c (currently_open_derived_class): Use dependent_type_p.
	* cp-tree.h (dependent_type_p): New function.
	(dependent_template_arg_p): Likewise.
	(dependent_template_p): Likewise.
	(type_dependent_expression_p): Likewise.
	* parser.c (cp_parser_dependent_type_p): Remove.
	(cp_parser_value_dependent_type_p): Likewise.
	(cp_parser_type_dependent_expression_p): Likewise.
	(cp_parser_dependent_template_arg_p): Likewise.
	(cp_parser_dependent_template_id_p): Likewise.
	(cp_parser_dependent_template_p): Likewise.
	(cp_parser_diagnose_invalid_type_name): Replace
	cp_parser_dependent_type_p with dependent_type_p, etc.
	(cp_parser_primary_expresion): Likewise.
	(cp_parser_nested_name_specifier_opt): Likewise.
	(cp_parser_postfix_expression): Likewise.
	(cp_parser_unary_expression): Likewise.
	(cp_parser_template_name): Likewise.
	(cp_parser_class_name): Likewise.
	(cp_parser_lookup_name): Likewise.
	* pt.c (dependent_type_p): New function.
	(value_dependent_expression_p): Likewise.
	(type_dependent_expression_p): Likewise.
	(dependent_template_arg_p): Likewise.
	(dependent_template_id_p): Likewise.
	(dependent_template_p): Likewise.

	PR c++/9285
	PR c++/9294
	* parser.c (cp_parser_simple_declaration): Return quickly when
	encountering errors.

2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	Make-lang.in (cp/decl.o-warn): Add -Wno-error.

2003-01-17  Jason Merrill  <jason@redhat.com>

	PR c++/9167, c++/9358
	* decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.

2003-01-17  Jason Merrill  <jason@redhat.com>

	PR c++/9342
	* call.c (build_conditional_expr): Always do lvalue-rvalue
	conversion.

2003-01-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9294
	* cp-tree.def (BASELINK): Make it class 'x', not class 'e'.
	* cp-tree.h (BASELINK_BINFO): Adjust.
	(BASELINK_FUNCTIONS): Likewise.
	(BASELINK_ACCESS_BINFO): Likewise.
	(tree_baselink): New structure.
	(cp_tree_node_structure_enum): Add TS_CP_BASELINK.
	(lang_tree_node): Add baselink.
	* decl.c (cp_tree_node_structure): Add BASELINK case.
	* search.c (build_baselink): Adjust.
	* tree.c (cp_walk_subtrees): Add BASELINK case.  Remove BASELINK_P
	test from TREE_LIST case.

	PR c++/9272
	* parser.c (cp_parser_constructor_declarator_p): Do not assume
	that a constructor cannot be declared outside of its own class.

	* parser.c (cp_parser_resolve_typename_type): If the scope cannot
	be resolved, neither can the qualified name.

	* rtti.c (get_pseudo_ti_desc): Fix thinko.

2003-01-16  Jason Merrill  <jason@redhat.com>

	PR c++/8564
	* init.c (build_vec_init): Re-add maxindex parm.
	(perform_member_init, build_aggr_init): Pass it.
	(build_new_1): Pass it. Use an incomplete array type for full_type.
	* typeck.c (build_modify_expr): Pass it.
	* cp-tree.h: Adjust.

2003-01-16  Jeffrey D. Oldham  <oldham@codesourcery.com>

	* cp-tree.h (tsubst_copy_and_build): New declaration.
	* pt.c (tsubst_copy): Remove 'build_expr_from_tree' from comment.
	(tsubst_expr): Use 'tsubst_copy_and_build'.  Update initial comment.
	(tsubst_copy_and_build): New function.

2003-01-16  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (lang_type_class): Remove is_partial_instantiation.
	(PARTIAL_INSTANTIATION_P): Remove.
	(IMPLICIT_TYPENAME_P): Likewise.
	(IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise.
	(build_typename_type): Remove declaration.
	(parmlist_is_exprlist): Likewise.
	* decl.c (build_typename_type): Make it static, remove third
	parameter.
	(push_class_binding): Don't do implicit typename stuff.
	(make_typename_type): Likewise.
	(lookup_name_real): Likewise.
	(grokdeclarator): Don't try to convert declarations into
	initializations.  Don't do implicit typename stuff.
	(parmlist_is_exprlist): Remove.
	(xref_basetypes): Simplify.
	* decl2.c (grokfield): Don't try to convert declarations into
	initializations.
	(build_anon_union_vars): Do this while processing templates, too.
	(finish_anon_union): Likewise.
	* error.c (dump_type): Remove implicit typename handling.
	* parser.c (cp_parser_diagnose_invalid_type_name): New method.
	(cp_parser_primary_expression): Correct handling of names not
	found by unqualified name lookup in templates.
	(cp_parser_nested_name_specifier_opt): Avoid checking dependency
	of types when possible.
	(cp_parser_simple_declaration): Complain intelligently about some
	invalid declarations.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_constructor_declarator_p): Don't check when we're in a
	function scope.
	* pt.c (instantiate_class_template): Remove
	PARTIAL_INSTANTIATION_P gunk.
	* search.c (lookup_field_r): Don't build implicit typenames.
	(marked_pushdecls_p): Don't enter dependent base types.
	(unmarked_pushdecls_p): Likewise.
	* semantics.c (begin_class_definition): Remove implicit typename
	stuff.

2003-01-16  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/9212
	* parser.c (cp_parser_direct_declarator): If accepting either
	abstract or named, the name must be an unqualified-id.

2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* class.c (layout_virtual_bases): Avoid signed/unsigned warning.

2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* decl2.c (check_classfn): Fix uninitialized warning.
	(build_anon_union_vars): Likewise.
	* pt.c (tsubst_copy): Likewise.

2003-01-14  Jeffrey D. Oldham  <oldham@codesourcery.com>

	Further conform g++'s __vmi_class_type_info to the C++ ABI
	specification.
	* rtti.c (dfs_class_hint_mark): Do not set hints not specified by
	the specification.
	(class_hint_flags): Likewise.

2003-01-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* config-lang.in: Add semantics.c to gtfiles.
	* cp-tree.h (flagged_type_tree_s): Remove lookups field.
	(saved_scope): Likewise.
	(type_lookups): Remove.
	(deferred_access): New structure.
	(type_access_control): Remove.
	(save_type_access_control): Likewise.
	(reset_type_access_control): Likewise.
	(decl_type_access_control): Likewise.
	(push_deferring_access_checks): Declare.
	(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.
	* decl.c (make_typename_type): Use perform_or_defer_access_check.
	(make_unbound_class_template): Likewise.
	(grokdeclarator): Don't call decl_type_access_control.
	* parser.c (cp_parser_context): Remove deferred_access_checks
	and deferring_access_checks_p fields.
	(cp_parser_context_new): Adjust.
	(cp_parser): Remove access_checks_lists.
	(cp_parser_defer_access_check): Remove.
	(cp_parser_start_deferring_access_checks): Remove.
	(cp_parser_stop_deferring_access_checks): Remove.
	(cp_parser_perform_deferred_access_checks): Remove.
	(cp_parser_nested_name_specifier_opt): Use new deferred access
	functions.
	(cp_parser_simple_declaration): Likewise.
	(cp_parser_template_id): Likewise.
	(cp_parser_function_definition): Likewise.
	(cp_parser_class_specifier): Likewise.
	(cp_parser_lookup_name): Likewise.
	(cp_parser_single_declaration): Likewise.
	(cp_parser_pre_parsed_nested_name_specifier): Likewise.
	(cp_parser_parse_tentatively): Likewise.
	(cp_parser_parse_definitely): Likewise.
	(yyparse): Likewise.
	(cp_parser_init_declarator): Remove access_checks parameter.
	Use new deferred access functions.
	(cp_parser_function_definition_from_specifiers_and_declarator):
	Likewise.
	(cp_parser_class_head): Remove deferring_access_checks_p and
	saved_access_checks parameters.  Use new deferred access functions.
	(cp_parser_member_specification_opt): Don't call
	reset_type_access_control.
	* search.c (type_access_control): Remove.
	* semantics.c: Include "gt-cp-semantics.h".
	(deferred_type_access_control): Remove.
	(deferred_access_stack): New variable.
	(deferred_access_free_list): Likewise.
	(push_deferring_access_checks): New function.
	(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): New function, adapted from
	cp_parser_perform_deferred_access_checks.
	(perform_or_defer_access_check): New function, adapted from
	cp_parser_defer_access_check.
	(current_type_lookups): Remove.
	(deferred_type_access_control): Likewise.
	(decl_type_access_control): Likewise.
	(save_type_access_control): Likewise.
	(reset_type_access_control): Likewise.
	(begin_function_definition): Adjust.
	(begin_class_definiton): Likewise.

2003-01-13  Jason Merrill  <jason@redhat.com>

	PR c++/8748
	* class.c (build_base_path): Take the address before calling save_expr.

	* call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if
	all the ambiguous conversions are bad.

	* class.c (maybe_warn_about_overly_private_class): Don't stop
	searching when we find a nonprivate method.

	* typeck.c (build_class_member_access_expr): Use unary_complex_lvalue.

2003-01-12  Mark Mitchell  <mark@codesourcery.com>

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

	PR c++/9264
	* parser.c (cp_parser_elaborated_type_specifier): Handle erroneous
	typeame types more robustly.

2003-01-11  Phil Edwards  <pme@gcc.gnu.org>

	* parser.c:  Fix comment typos.

2003-01-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9099
	* parser.c (cp_parser_scope_through_which_access_occurs): Handle
	an object_type which is not a class type.

2003-01-10  Geoffrey Keating  <geoffk@apple.com>

	* parser.c (cp_parser_late_parsing_for_member): Don't cast to void.
	(cp_parser_late_parsing_default_args): Likewise.

2003-01-10  Nathanael Nerode  <neroden@gcc.gnu.org>

	* cfns.gperf: ANSIfy function declarations.
	* cfns.h: Regenerate.
	* cp-tree.h: ANSIfy function declarations.

2003-01-10  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (reparse_absdcl_as_expr): Remove.
	(reparse_absdcl_as_casts): Likewise.
	(reparse_decl_as_expr): Likewise.
	(finish_decl_parsing): Likewise.
	* decl2.c (reparse_absdcl_as_expr): Remove.
	(reparse_absdcl_as_casts): Likewise.
	(repase_decl_as_expr): Likewise.
	(finish_decl_parsing): Likewise.

	PR c++/9128
	PR c++/9153
	PR c++/9171
	* parser.c (cp_parser_pre_parsed_nested_name_specifier): New
	function.
	(cp_parser_nested_name_specifier_opt): Correct the
	check_dependency_p false.
	(cp_parser_postfix_expression): Fix formatting.
	(cp_parser_decl_specifier_seq): Avoid looking for constructor
	declarators when possible.
	(cp_parser_template_id): Avoid performing name-lookup when
	possible.
	(cp_parser_class_head): Do not count specializations when counting
	levels of templates.
	(cp_parser_constructor_declarator_p): Return immediately if
	there's no chance that the tokens form a constructor declarator.
	* rtti.c (throw_bad_typeid): Add comment.  Do not return an
	expression with reference type.
	(get_tinfo_decl_dynamic): Do not return an expression with
	reference type.
	(build_typeid): Add comment.  Do not return an expression with
	reference type.
	* typeck.c (build_class_member_access_expr): Improve handling of
	conditionals and comma-expressions as objects.

2003-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>

	* cfns.gperf: ANSIfy function declarations.
	* cfns.h: Regenerate.
	* cp-tree.h: ANSIfy function declarations.
	* parser.c: ANSIfy function declarations & definitions.

	* decl.c (bad_specifiers): Fix parameter order error I introduced.

2003-01-09  Geoffrey Keating  <geoffk@apple.com>

	Merge from pch-branch:

	2003-01-09  Geoffrey Keating  <geoffk@apple.com>

	Merge to tag pch-merge-20030102:

	* semantics.c (finish_translation_unit): Don't call finish_file.
	* parser.c: Don't include ggc.h.
	(cp_lexer_new_main): Rename from cp_lexer_new, only create main lexer,
	read first token here.  Don't allow PCH files after the first
	token is read.
	(cp_lexer_new_from_tokens): Duplicate functionality from cp_lexer_new.
	(cp_lexer_get_preprocessor_token): Allow LEXER to be NULL.
	(cp_parser_new): Call cp_lexer_new_main before allocating GCed memory.
	(cp_parser_late_parsing_for_member): Don't duplicate call to
	cp_lexer_set_source_position_from_token.
	(cp_parser_late_parsing_default_args): Likewise.
	(yyparse): Call finish_file after clearing the_parser.

	2002-12-11  Geoffrey Keating  <geoffk@apple.com>

	* Make-lang.in: Remove $(GGC_H) from all dependencies.
	(CXX_TREE_H): Add $(GGC_H).
	* class.c: Don't include ggc.h.
	(field_decl_cmp): Make parameters be 'const void *' to match qsort.
	(method_name_cmp): Likewise.
	(resort_data): New variable.
	(resort_field_decl_cmp): New.
	(resort_method_name_cmp): New.
	(resort_sorted_fields): New.
	(resort_type_method_vec): New.
	(finish_struct_methods): Delete cast.
	(finish_struct_1): Delete cast.
	* cp-tree.h: Include ggc.h.
	(struct lang_type_class): Add reorder attribute to field `methods'.
	(union lang_decl_u3): Add reorder attribute to field `sorted_fields'.
	(resort_sorted_fields): New prototype.
	(resort_type_method_vec): New prototype.
	* call.c: Don't include ggc.h.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* init.c: Likewise.
	* lex.c: Likewise.
	* method.c: Likewise.
	* optimize.c: Likewise.
	* parse.y: Likewise.
	* pt.c: Likewise.
	* repo.c: Likewise.
	* search.c: Likewise.
	* semantics.c: Likewise.
	* spew.c: Likewise.
	* tree.c: Likewise.

	* lang-specs.h: Remove comment.

	2002-12-03  Geoffrey Keating  <geoffk@apple.com>

	* cp-tree.h (struct operator_name_info_t): Mark for GTY machinery.
	(operator_name_info): Mark to be saved for PCH, specify size.
	(assignment_operator_name_info): Likewise.

	2002-11-19  Geoffrey Keating  <geoffk@apple.com>

	* decl.c (anon_cnt): Mark to be saved for PCH.

	2002-10-25  Geoffrey Keating  <geoffk@apple.com>

	* lex.c  (init_reswords): Delete now-untrue comment.
	Allocate ridpointers using GGC.

	2002-10-04  Geoffrey Keating  <geoffk@apple.com>

	* cp-tree.h (union lang_decl_u2): Add tags to all fields.

	* g++spec.c (lang_specific_driver): Don't include standard
	libraries in `added'.

	2002-08-27  Geoffrey Keating  <geoffk@redhat.com>

	* decl2.c (finish_file): Call c_common_write_pch.
	* Make-lang.in (CXX_C_OBJS): Add c-pch.o.

	2002-08-17  Geoffrey Keating  <geoffk@redhat.com>

	* g++spec.c (lang_specific_driver): Treat .h files as C++ header
	files when using g++.
	* lang-specs.h: Handle compiling C++ header files.

2003-01-09  Jakub Jelinek  <jakub@redhat.com>

	* decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.

2003-01-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c (push_access_scope_real): Call push_to_top_level for
	function in namespace scope.
	(pop_access_scope): Call pop_from_top_level for function in
	namespace scope.

2003-01-09  Jakub Jelinek  <jakub@redhat.com>

	* decl.c (start_decl): Don't set DECL_COMMON for __thread variables.

2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>

	* Make-lang.in (c++.install-common, c++.install-man,
	c++.uninstall): Prepend $(DESTDIR) to destination paths in
	all (un)installation commands.
	(c++.install-common): Rewrite $(LN) commands to support
	DESTDIR with "ln" as well as with "ln -s".

2003-01-08  Jason Merrill  <jason@redhat.com>

	* parser.c (cp_parser_primary_expression): See through explicitly
	scoped ALIAS_DECLs, too.

2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>

	* decl.c: Remove some #if 0 code.

	* decl.c: ANSIfy function declarations.

2003-01-07  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (cp_parser_asm_definition): Correct handling of omitted
	operands.

2003-01-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	PR c++/9030
	* decl.c (make_typename_type): Check access only when tf_error.
	(make_unbound_class_template): Likewise.
	* pt.c (saved_access_scope): New variable.
	(push_access_scope_real): New function.
	(push_access_scope): Likewise.
	(pop_access_scope): Likewise.
	(tsubst_default_argument): Use them.
	(instantiate_template): Likewise.
	(regenerate_decl_from_template): Likewise.
	(instantiate_decl): Likewise.
	(get_mostly_instantiated_function_type): Likewise.

2003-01-07  Nathanael Nerode <neroden@gcc.gnu.org>

	* tree.c: Delete bogus #if 0 code.

2003-01-07  Andreas Schwab  <schwab@suse.de>

	* class.c (layout_class_type): Don't use
	PCC_BITFIELD_TYPE_MATTERS if not defined.

2003-01-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9165
	* decl2.c (build_cleanup): Mark the object as used.

	* pt.c (retrieve_local_specialization): Revert 2003-01-05 change.
	(hash_local_specialization): New function.
	(register_local_specialization): Revert 2003-01-05 change.
	(instantiate_decl): Use hash_local_specialization when creating
	the local_specializations table.

	* decl2.c (mark_used): Do not synthesize thunks.

	* class.c (layout_class_type): Correct handling of unnamed
	bitfields wider than their types.

	PR c++/9189
	* parser.c (cp_parser): Remove default_arg_types.  Update
	documentation for unparsed_functions_queues.
	(cp_parser_late_parsing_default_args): Take a FUNCTION_DECL as the
	parameter.
	(cp_parser_new): Don't set parser->default_arg_types.
	(cp_parser_function_definition): Adjust usage of
	unparsed_funtions_queues.
	(cp_parser_class_specifier): Don't mess with
	parser->default_arg_types.  Handle default argument processing in
	a separate phase from function body processing.
	(cp_parser_template_declaration_after_export): Adjust usage of
	unparsed_functions_queues.
	(cp_parser_late_parsing_for_member): Do not handle default
	arguments.

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

	PR c++/9109
	* parser.c (cp_parser_declarator_kind): New enum.
	(cp_parser_declarator): Adjust.
	(cp_parser_direct_declarator): Adjust. Allow for either named or
	abstract declarator. Prefer abstract, if possible. Allow
	parenthesized function name.
	(cp_parser_condition): Adjust cp_parser_declarator call.
	(cp_parser_explicit_instantiation): Likewise.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_type_id): Likewise.
	(cp_parser_function_definition): Likewise.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_parameter_declaration): Use cp_parser_declarator to do
	the tentative parsing.
	(cp_parser_exception_declaration): Likewise.

2003-01-05  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (cp_parser_template_parameter): Adjust call to
	cp_parser_parameter_declaration.
	(cp_parser_parameter_declaration_list): Likewise.
	(cp_parser_parameter_declaration): Replace
	greater_than_is_operator_p with template_parm_p parameter.  Do not
	cache tokens for template default arguments.

	* pt.c (retrieve_local_specialization): Use htab_find, not
	htab_find_with_hash.
	(register_local_specialization): Use htab_find_slot, not
	htab_find_slot_with_hash.
	(instantiate_decl): Pass a hash function to htab_create.

2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* parser.c (cp_parser_binary_expression,
	cp_parser_multiplicative_expression,
	cp_parser_additive_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,
	cp_parser_binary_expression): Const-ify.

2003-01-04  Mark Mitchell  <mark@codesourcery.com>

	* method.c (use_thunk): Disable access control while building the
	body of the thunk.

2003-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>

	* cvt.c, decl.c, decl2.c: This is the C++ front end, not the C
	front end.

2003-01-03  Matt Austern  <austern@apple.com>

	* cp-tree.h (struct lang_type_class): add field for key method
	(cp_global_trees): rename dynamic_classes to keyed_classes
	(key_method): add definition
	* class.c (finish_struct_1): compute class's key method, and add
	the class to keyed_classes list if there is no key method.
	* decl.c (finish_function): add class to keyed_classes list if we
	see a definition of the class's key method.
	* pt.c (instantiate_class_template): add template specialization
	of a dynamic class to keyed_classes list.
	* decl2.c (key_method): remove
	(finish_file): iterate only through keyed_classes list when
	deciding whether to emit vtables, remove class from its list after
	we do the emission.

2003-01-02  Jason Merrill  <jason@redhat.com>

	* call.c (build_conditional_expr): Stabilize lvalues properly.
	* cvt.c (ocp_convert): Don't build NOP_EXPRs of class type.
	* tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues.
	Don't allow CALL_EXPR or VA_ARG_EXPR, either.

	* call.c (convert_like_real): Call decl_constant_value for an
	IDENTITY_CONV even if there are no more conversions.

	* cvt.c (build_up_reference): Don't push unnamed temps.

	* decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL.

	* dump.c (cp_dump_tree): Don't try to dump class-specific fields
	for a backend struct.

	* except.c (wrap_cleanups_r, build_throw): Make
	MUST_NOT_THROW_EXPRs void.
	* init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR.

	* init.c (build_vec_delete_1): Pre-evaluate the base address.

	* init.c (get_temp_regvar): Simplify logic.

	* tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks if
	our replacement is a decl.

	* decl.c (cp_make_fname_decl): Push the decls inside the
	outermost scope.

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

	PR c++/45, c++/3784
	* tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
	the same too.

2003-01-03  Graham Stott  <graham.stott@btinternet.com>

	* parser.c (struct cp_parser): Add access_checks_lists field
	(cp_parser_simple_declaration): Use.
	(cp_parser_init_declarator): Likewise.

2003-01-02  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (cp_parser_declaration): Accept the __extension__
	keyword before the declaration.

	PR c++/2843
	* parser.c (cp_parser_parameter_declaration): Allow attributes to
	appear after the declarator.

	* call.c (build_new_method_call): Fix typo in message format
	string.

2003-01-02  Mark Mitchell  <mark@codesourcery.com>

	* parser.c (cp_lexer_next_token_is): Declare it inline.
	(cp_lexer_set_source_position_from_token): Likewise.
	(cp_lexer_debugging_p): Likewise.
	(cp_parser_parsing_tentatively): Likewise.
	(cp_parser_nested_name_specifier_opt): Reduce the number of calls
	to the cp_lexer_peek_token.

	* parser.c (cp_parser_sizeof_operand): Do not evaluate the
	expression.

2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>

	* cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c,
	cp/lang-options.h, cp/lang-specs.h, cp/lex.h, cp/ptree.c,
	cp/repo.c: Fix copyright years.

2003-01-01  Neil Booth  <neil@daikokuya.co.uk>

	* lex.c: Remove superfluous include of cpplib.h.
	(CONSTRAINT): Define without conditions.
	(init_cp_pragma): Use c_register_pragma.



Copyright (C) 2003 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
