re PR c++/13081 (forward template declarations in <complex> let inlining fail)
[gcc.git] / gcc / cp / ChangeLog
index df0297ae5b296d7063c0646e26e685c849f29378..62e395a007a26ece59ca42547cab4be12969e920 100644 (file)
@@ -1,3 +1,774 @@
+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.
        pointers to member functions.
 
        PR c++/8534
-       * decl.c (build_ptrmemfunc_type): Do not allow default arugments
+       * 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>
        * search.c (dfs_get_pure_virtuals): Use BV_FN.
        * semantics.c (emit_associated_thunks): New function.
        (expand_body): Use it.
-       * ir.texi: Adjust decriptions of thunks.
+       * ir.texi: Adjust descriptions of thunks.
 
 2000-06-22  Jason Merrill  <jason@redhat.com>