+2004-02-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13714
+ * typeck.c (lookup_destructor): Tweak error message.
+
+2004-02-05 Jan Hubicka <jh@suse.cz>
+
+ * tree.c (cp_cannot_inline_tree_fn): Allow inlining of comdat
+ functions.
+
+2003-02-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/14008
+ * parser.c (cp_parser_diagnose_invalid_typename): Removed parsing
+ code, only emits the diagnostic now. Added lookup of the identifier
+ and support for qualified ids.
+ (cp_parser_parse_and_diagnose_invalid_type_name): New function.
+ Parse an (invalid) type name as id-expression within a declarator.
+ (cp_parser_simple_declaration): Use it.
+ (cp_parser_member_declaration): Likewise.
+ (cp_parser_make_typename_type): New function. Handle errors through
+ cp_parser_diagnose_invalid_typename.
+ (cp_parser_elaborated_type_specifier): Use it.
+
+2004-02-04 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13932
+ * call.c (convert_like_real): Use "converting" rather than
+ "argument" as the descriptive keyword to
+ dubious_conversion_warnings.
+ * typeck.c (convert_for_assignment): Do not call
+ dubious_conversion_warnings.
+
+2004-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13086
+ * init.c (build_delete): Emit a more informative error message in
+ case of an incomplete type, and on the correct source line.
+
+2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
+
+ * error.c, search.c: Update copyright.
+
+2004-02-04 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9941
+ * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
+ linkage for the typeinfo name string.
+
+2004-02-04 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13969
+ * cp-tree.h (fold_non_dependent_expr): New function.
+ * parser.c (cp_parser_fold_non_dependent_expr): Remove.
+ (cp_parser_template_argument): Use fold_non_dependent_expr.
+ (cp_parser_direct_declarator): Likewise.
+ * pt.c (fold_non_dependent_expr): New function.
+ (convert_nontype_argument): Use it.
+ (tsubst_qualified_id): Simplify.
+ (tsubst_copy_and_build): Likewise.
+
+2004-02-04 Mark Mitchell <mark@codesourcery.com>
+
+ * decl.c (cxx_push_function_context): Do not set
+ current_function_is_thunk.
+ * method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
+ actual function.
+
+2003-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13997
+ * pt.c (more_specialized_class): Increase processing_template_decl
+ while partial ordering.
+
+2004-02-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13925
+ * decl.c (start_function): Do not call pushdecl for any
+ instantiation or specialization of a primary template.
+
+2004-02-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13950
+ * parser.c (cp_parser_class_name): Robustify.
+
+ PR c++/13970
+ * parser.c (cp_parser_cache_group): Do not consume the EOF token.
+
+ PR c++/14002
+ * semantics.c (finish_id_expression): Do not return an
+ IDENTIFIER_NODE when lookup finds a PARM_DECL.
+
+2004-02-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13978
+ * pt.c (build_non_dependent_expr): Do not build
+ NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
+
+ PR c++/13968
+ * semantics.c (finish_id_expression): Do not return an
+ IDENTIFIER_NODE when lookup finds a VAR_DECL.
+
+ PR c++/13975
+ * parser.c (cp_parser_simple_declaration): When skipping to the
+ end of the statement swallow the terminating semicolon.
+
+2004-02-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13113
+ * init.c (build_offset_ref): Improve error recovery for invalid
+ uses of non-static member functions.
+
+ PR c++/13854
+ * cp-tree.h (cp_build_type_attribute_variant): New function.
+ * class.c (build_clone): Use cp_build_type_attribute_variant.
+ * decl.c (duplicate_decls): Likewise.
+ * pt.c (copy_default_args_to_explicit_spec): Likewise.
+ (tsubst_function_type): Likewise.
+ * tree.c (build_exception_variant): Check attributes before
+ concluding that two types are the same.
+ (cp_build_type-attribute_variant): New method.
+ * typeck.c (merge_types): Use cp_build_type_attribute_variant.
+
+ PR c++/13907
+ * call.c (convert_class_to_reference): Keep better track of
+ pedantically invalid user-defined conversions.
+
+2004-02-01 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13957
+ * pt.c (tsubst_qualified_id): Improved error message when a type
+ is expected but not found.
+
+2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
+
+ * class.c: Fix comment typos.
+ * decl.c: Likewise.
+ * error.c: Likewise.
+ * parser.c: Likewise.
+ * pt.c: Likewise.
+ * search.c: Likewise.
+ * typeck.c: Likewise.
+
+2004-01-30 Richard Henderson <rth@redhat.com>
+
+ PR c++/13693
+ * method.c (use_thunk): Don't force_target_expr for void thunks.
+ * tree.c (build_target_expr_with_type): Assert non-void type.
+ (force_target_expr): Likewise.
+
+2004-01-30 Michael Matz <matz@suse.de>
+
+ * parser.c (cp_parser_labeled_statement): Accept case ranges.
+
+2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ DR206
+ PR c++/13813
+ * decl.c (grokdeclarator): Check immediatly type completeness for
+ non-dependent types.
+
+2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13683
+ * call.c (convert_arg_to_ellipsis): Don't emit a warning if within
+ a sizeof expression.block
+
+2004-01-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13883
+ * mangle.c (write_encoding): Correct encoding of member template
+ constructors.
+
+2004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ * parser.c (cp_parser_template_id): Parse tentatively `[:' after a
+ template name as it was `<::' (digraph typo).
+ (cp_parser_nth_token_starts_template_argument_list_p): New function.
+ (cp_parser_id_expression): Use it.
+ (cp_parser_nested_name_specifier_opt): Likewise.
+ (cp_parser_template_name): Likewise.
+ (cp_parser_class_name): Likewise.
+ (cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
+
+2004-01-28 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13791
+ * typeck.c (merge_types): Do not merge attributes into
+ TYPENAME_TYPEs.
+
+ PR c++/13736
+ * parser.c (cp_parser_direct_declarator): Do not prevent
+ backtracking inside a parenthesized declarator.
+ (cp_parser_parameter_declaration): Fix typo in comment.
+
+2004-01-28 Jan Hubicka <jh@suse.cz>
+
+ * semantics.c (expand_body) Do emit_associated_thunks before
+ expansion.
+
+2004-01-27 Devang Patel <dpatel@apple.com>
+
+ * name-lookup.c: Include "debug.h"
+ (do_namespace_alias): Invoke debug_hooks to emit debug info
+ for namespace alias.
+ (do_local_using_decl): Invoke debug_hooks to emit debug info
+ for using decl.
+ (do_class_using_decl): Same.
+ (do_toplevel_using_decl): Same.
+ (do_using_directive): Same.
+ (cp_emit_debug_info_for_using): New function.
+ * Make-lang.in (cp/parser.o): Depend on debug.h
+ (cp/name-lookup.o): Same.
+
+2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cp-tree.h (language_function, lang_type_header): Use
+ BOOL_BITFIELD.
+ * name-lookup.h (cp_binding_level): Likewise.
+
+2004-01-26 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13663
+ * semantics.c (finish_for_expr): Check for unresolved overloaded
+ functions.
+
+ * class.c (add_method): Just check processing_template_decl to
+ determine whether or not we are within a template.
+ * decl2.c (maybe_retrofit_in_chrg): Likewise.
+ * init.c (decl_constant_value): Check the type of the declaration,
+ not TREE_READONLY.
+ * name-lookup.c (maybe_push_to_top_level): Rename to ...
+ (push_to_top_level): ... this.
+ * name-lookup.h (maybe_push_to_top_level): Do not declare it.
+ * pt.c (push_template_decl_real): Reorder condition for speed.
+ (convert_template_argument): Use dependency-checking functions in
+ place of uses_template_parms.
+ (lookup_template_class): Avoid calling uses_template_parms more
+ than once.
+ (uses_template_parms): Reimplement, using dependency-checking
+ functions.
+ (instantiate_class_template): Use push_to_top_level, not
+ maybe_push_to_top_level.
+ (type_unification_real): Simplify.
+ (type_dependent_expression_p): Handle OFFSET_REFs and
+ TEMPLATE_DECLs.
+ (any_dependent_template_arguments_p): Handle multiple levels of
+ template argument.
+ * semantics.c (expand_or_defer_fn): Do not check
+ uses_template_parms for template instantiations.
+ * typeck.c (comptypes): Avoid calling cp_type_quals.
+
+2004-01-25 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13833
+ * call.c (build_over_call): Do not convert arguments when
+ processing a template.
+ * pt.c (build_non_dependent_expr): Do not build a
+ NON_DEPENDENT_EXPR for arithmetic constants.
+
+2004-01-25 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13810
+ * parser.c (cp_parser_type_parameter): When cp_parser_id_expression
+ returns a TYPE_DECL. no further lookup is required.
+ * semantics.c (check_template_template_default_arg): A TYPE_DECL
+ is invalid. Rework to give better diagnostics.
+
+2004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13797
+ * pt.c (instantiate_class_template): Add an error_mark_node
+ check.
+ (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
+
+2004-01-23 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR c++/13701
+ * decl.c (finish_function): Move the call to
+ finish_fname_decls below the call to
+ finish_eh_spec_block.
+
+2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
+
+ * optimize.c, typeck2.c: Update copyright.
+
+2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
+
+ * Make-lang.in, call.c, class.c, decl2.c, except.c, expr.c,
+ init.c, mangle.c, typeck.c: Update copyright.
+
+2004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * parser.c (cp_parser_class_specifier): Prevent garbage collection.
+
+2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
+
+ * Make-lang.in: Replace $(docdir) with doc.
+ (c++.info, c++.srcinfo): Dummy entry.
+ (c++.man, c++.srcman): New rules.
+ (c++.install-man): Revamp rule.
+
+2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
+
+ * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
+ CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
+ immediate $(shell) instead of deferred backquote.
+
+2004-01-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13651
+ * parser.c (cp_parser_postfix_expression): When encountering
+ incomplete type on left-hand side of "->" or ".", treat the entire
+ expression as erroneous.
+
+ PR c++/13592
+ * call.c (build_field_call): Remove.
+ (n_build_method_call): Likewise.
+ (build_method_call): Likewise.
+ (build_new_method_call): Do not call build_field_call.
+ * class.c (n_build_method_call): Remove.
+ (print_class_statistics): Do not print it.
+ * cp-tree.h (build_method_call): Remove declaration.
+ (finish_object_call_expr): Likewise.
+ (build_new_1): Do not use build_method_call.
+ * parser.c (cp_parser_postfix_expression): Use finish_call_expr
+ when the function appearing on the right-hand-side of "." or "->"
+ is not actually a function.
+ * pt.c (tsubst_copy_and_build): Likewise.
+ * semantics.c (finish_object_call_expr): Remove.
+
+2004-01-18 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13710
+ * pt.c (tsubst): Use finish_typeof.
+
+2004-01-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/11725
+ * except.c (build_throw): In a template, set
+ current_function_returns_abnormally.
+
+2004-01-17 Fred Fish <fnf@intrinsity.com>
+
+ PR c++/11895
+ * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
+ except don't call array_type_nelts() with a VECTOR_TYPE.
+
+2004-01-16 Jan Hubicka <jh@suse.cz>
+
+ * mangle.c (write_mangled_name): Remove inline modifier.
+
+2004-01-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13574
+ * decl.c (compute_array_index_type): Fix grammar in comment.
+ * init.c (build_zero_init): Handle zero-sized arrays correctly.
+
+ PR c++/13178
+ * call.c (name_as_c_string): Print conversion operator names
+ correctly.
+
+ PR c++/13478
+ * call.c (initialize_reference): Pass -1 for inner parameter to
+ convert_like_real.
+
+2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13407
+ * parser.c (cp_parser_base_specifier): Check for an invalid
+ keyword `typename' and emit an user-friendly error message.
+
+2004-01-15 Geoffrey Keating <geoffk@apple.com>
+
+ PR pch/13361
+ * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
+ (handle_pragma_implementation): Likewise.
+
+2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/9259
+ * typeck.c (build_class_member_access_expr): Allow to access members
+ of the currently open class.
+ (finish_class_member_access_expr): Likewise.
+
+2004-01-15 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/13659
+ * name-lookup.c (validate_nonmember_using_decl): Take scope and
+ name by value, instead of computing them.
+ (do_local_using_decl, do_toplevel_using_decl): Add scope and name
+ arguments. Pass them to validate_nonmember_using_decl.
+ * name-lookup.h (do_local_using_decl): Adjust.
+ (do_toplevel_using_decl): Likewise.
+ * parser.c (cp_parser_using_declaration): Likewise.
+ * pt.c (tsubst_expr): Likewise.
+
+2004-01-15 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/13594
+ PR c++/13658
+ * name-lookup.c (qualified_lookup_using_namespace): Search
+ strongly-associated namespaces first, and only then try other
+ namespaces.
+
+2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
+
+ * Make-lang.in (c++.srcextra): Dummy entry.
+
+2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/8856
+ * parser.c (cp_parser_template_name): Don't try to parse a
+ conversion-function-id, as it cannot be a template-name.
+ (cp_parser_simple_type_specifier): Check for invalid template-ids
+ even after a built-in type.
+
+2004-01-14 Jan Hubicka <jh@suse.cz>
+
+ PR c++/12850
+ * pt.c (instantiate_decl): Do not increase function_depth.
+
+2004-01-14 Danny Smith <dannysmith@users,sourceforge.net>
+
+ PR c++/9021
+ PR c++/11005
+ * parser.c (cp_parser_elaborated_type_specifier): Warn about
+ attributes and discard.
+ * decl.c (xref_tag): Don't overwite existing attributes with
+ NULL_TREE.
+
+2004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/12335
+ * parser.c (cp_parser_lookup_name): Return error_mark_node if there
+ is no destructor while looking up a BIT_NOT_EXPR.
+
+2004-01-13 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * cxxfilt.c: Remove unused file.
+
+2004-01-14 Jan Hubicka <jh@suse.cz>
+
+ Partial fix to PR c++/12850
+ * decl2.c (mark_used): Do not proactively instantiate templates
+ when compiling in unit-at-a-time or not optimizing.
+ * optimize.c (maybe_clone_body): Do not increase function depth.
+
+2004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13474
+ * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
+
+2003-01-12 Steven Bosscher <stevenb@suse.de>
+
+ PR c++/13558
+ * parser.c (cp_parser_member_declaration): Any non-type is also
+ not a class or a function.
+
+2004-01-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/12815
+ * class.c (build_base_path): Do not mark vtable references as
+ TREE_CONSTANT.
+ (build_vtbl_ref_1): Likewise.
+
+2004-01-12 Richard Henderson <rth@redhat.com>
+
+ PR opt/10776
+ * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
+ (store_init_value): Use it.
+ * decl.c (check_initializer): Expect full initialization code
+ from store_init_value.
+ * init.c (expand_aggr_init_1): Likewise.
+ * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
+
+2004-01-12 Mark Mitchell <mark@codesourcery.com>
+
+ * class.c (layout_class_type): For non-POD class types, also copy
+ the DECL_SIZE and DECL_MODE of fields to the base class type.
+
+2004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13289
+ * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
+ calling regenerate_decl_from_template.
+
+2004-01-12 Scott Brumbaugh <scottb.lists@verizon.net>
+
+ PR c++/4100
+ * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
+ decl-specifier occurring along with a class definition.
+
+2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
+ clauses to comments describing declares_class_or_enum.
+ (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
+ false.
+
+2004-01-12 Jan Hubicka <jh@suse.cz>
+
+ * pt.c (for_each_template_parm): Do not check for duplicates.
+ (for_each_template_parm): Use walk_tree duplicate checking code.
+
+2004-01-11 Ian Lance Taylor <ian@wasabisystems.com>
+
+ PR c++/3478
+ * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
+ is error_mark_node, don't add any more decl_specs.
+ (cp_parser_init_declarator): After committing to a declaration, if
+ the decl_specifiers start with error_mark_node, issue an error and
+ change the type to "int".
+
+2004-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ PR bootstrap/7817
+ * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
+
+2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ DR 337
+ PR c++/9256
+ * pt.c (tsubst): Substitution must fail if we are attempting to
+ create an array with element type that is an abstract class type.
+ * decl.c (cp_finish_decl): Strip pointers and array types recursively
+ before calling abstract_virtuals_error.
+
2004-01-09 Alexandre Oliva <aoliva@redhat.com>
* name-lookup.c (qualified_lookup_using_namespace): Consider