OSDN Git Service

PR c/13134
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 536feec..b9a0638 100644 (file)
@@ -1,3 +1,358 @@
+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>\r
+\r
+       * init.c (build_new_1): Deal with an OVERLOAD set when\r
+       looking up for _Jv_AllocObject.\r
+       * except.c (build_throw): Likewise for _Jv_Throw.\r
+
+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