OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index aa852a6..875f7a5 100644 (file)
@@ -1,5 +1,367 @@
+2004-02-23  Zack Weinberg  <zack@codesourcery.com>
+           Kazu Hirata  <kazu@cs.umass.edu>
+
+       * decl.c (cxx_init_decl_processing): Don't check
+       flag_writable_strings.
+
+2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/14156
+       * typeck.c (maybe_warn_about_returning_address_of_location):
+       Change check for VAR_DECL to use DECL_P instead.
+
+2004-02-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/14250
+       * cvt.c (build_expr_type_conversion): Type must be complete before
+       looking up for conversions.
+
+2004-02-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/14143
+       * name-lookup.c (arg_assoc_class): Don't look into template 
+       arguments if it is not a primary template.
+
+2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR c++/12007
+       * method.c (use_thunk): Always clone function argument tree.
+
+2004-02-20  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/14199
+       * pt.c (tsubst_copy): Call mark_used for a PARM_DECL.
+
+       PR c++/14173
+       * semantics.c (begin_class_definition): Set TYPE_PACKED correctly
+       for all type variants.
+
+2004-02-19  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/13927
+       * decl.c (duplicate_decls): Return error_mark_node for invalid
+       redeclarations.
+       * name-lookup.c (push_namespace): Ignore the return value from
+       pushdecl.
+       * pt.c (push_template_decl_real): Robustify.
+
+       PR c++/14186
+       * name-lookup.c (push_class_level_binding): Do not complain about
+       adding a binding for a member whose name is the same as the
+       enclosing class if the member is located in a base class of the
+       current class.
+
+2004-02-19  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/14181
+       * parser.c (cp_parser_new_expression): Parse an ill-formed 
+       direct-new-declarator after a parenthesized type-id to emit good
+       diagnostic.
+
+2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cp-tree.def, cvt.c: Update copyright.
+
+2004-02-17  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/11326
+       * cp-tree.h (abi_version_at_least): Remove.
+       * mangle.c: Include flags.h.
+
+2004-02-15  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/13971
+       * call.c (build_conditional_expr): Handle conversions between
+       class types which result in differently cv-qualified type
+       variants.
+
+       PR c++/14086
+       * class.c (delete_duplicate_fields_1): Remove.
+       (delete_duplicate_fields): Likewise.
+       (finish_struct_anon): Remove check for members with the same name
+       as their enclosing class.
+       (check_field_decls): Do not call duplicate_fields.
+       * decl.c (grokdeclarator): Remove check for static data members
+       with the same name as their enclosing class.
+       * name-lookup.c (push_class_level_binding): Check for members with
+       the same name as their enclosing class.
+
+2004-02-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       PR c++/14085
+       * error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.
+
+2004-02-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/13635
+       * pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
+       has full set of arguments.
+
+2004-02-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/13927
+       * error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.
+
+2004-02-13  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/14122
+       * cp-tree.h (delete_sanity): Change prototype.
+       * decl2.c (delete_sanity): Make doing_vec a bool, not an int.
+       Remove dead code.  Adjust code to warn about deleting an array.
+       * typekc.c (decay_conversion): Use build_address and build_nop.
+
+       PR c++/14108
+       * search.c (accessible_p): Do not check access in thunks.
+
+       PR c++/14083
+       * call.c (build_conditional_expr): Call force_rvalue on the
+       non-void operand in the case that one result is a throw-expression
+       and the other is not.
+
+2004-02-13  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       PR c++/9851
+       * parser.c (cp_parser_pseudo_destructor_name): Check for errors on
+       the type name and look ahead for ::~, and bail out early with a
+       better error message if the parse is going to fail.
+
+2004-02-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * call.c (conversion_kind): New type.
+       (conversion_rank): Likewise.
+       (conversion): Likewise.
+       (CONVERSION_RANK): New macro.
+       (conversion_obstack): New variable.
+       (obstack_initialized): Likewise.
+       (z_candidate): Change type of convs and second_conv.
+       (candidate_warning): New type.
+       (IDENTITY_RANK): Remove.
+       (EXACT_RANK): Likewise.
+       (PROMO_RANK): Likewise.
+       (STD_RANK): Likewise.
+       (PBOOL_RANK): Likewise.
+       (USER_RANK): Likewise.
+       (ELLIPSIS_RANK): Likewise.
+       (BAD_RANK): Likewise.
+       (ICS_RANK): Likewise.
+       (ICS_STD_RANK): Likewise.
+       (ICS_USER_FLAG): Likewise.
+       (ICS_ELLIPSIS_FLAG): Likewise.
+       (ICS_THIS_FLAG): Likewise.
+       (ICS_BAD_FLAG): Likewise.
+       (NEED_TEMPORARY_P): Likewise.
+       (CHECK_COPY_CONSTRUCTOR_P): Likewise.
+       (USER_CONV_CAND): Likewise.
+       (USER_CONV_FN): Likewise.
+       (conversion_obstack_alloc): New function.
+       (alloc_conversion): Likewise.
+       (validate_conversion_obstack): Likewise.
+       (alloc_conversions): Likewise.
+       (build_conv): Adjust to deal with new conversion data structures.
+       (build_identity_conv): New function.
+       (build_ambiguous_conv): Likewise.
+       (standard_conversion): Adjust to deal with new conversion data
+       structures.
+       (convert_class_to_reference): Likewise.
+       (direct_reference_binding): Likewise.
+       (reference_binding): Likewise.
+       (implicit_conversion): Likewise.
+       (add_candidate): Likewise.
+       (add_function_candidate): Likewise.
+       (add_conv_candidate): Likewise.
+       (build_builtin_candidate): Likewise.
+       (print_z_candidate): Likewise.
+       (merge_conversion_sequences): Likewise.
+       (build_user_type_conversion_1): Likewise.
+       (build_user_type_conversion): Likewise.
+       (build_new_function_call): Likewise.
+       (build_object_call): Likewise.
+       (conditional_conversion): Likewise.
+       (build_conditional_expr): Likewise.
+       (build_new_op): Likewise.
+       (build_op_delete_call): Likewise.
+       (convert_like_real): Likewise.
+       (build_over_call): Likewise.
+       (build_new_method_call): Likewise.
+       (is_subseq): Likewise.
+       (maybe_handle_implicit_object): Likewise.
+       (maybe_handle_ref_bind): Likewise.
+       (compare_ics): Likewise.
+       (source_type): Likewise.
+       (add_warning): Likewise.
+       (joust): Likewise.
+       (can_convert_arg): Likewise.
+       (can_convert_arg_bad): Likewise.
+       (perform_implicit_conversion): Likewise.
+       (perform_direct_initialization_if_possible): Likewise.
+       (initialize_reference): Likewise.
+       * cp-lang.c (cp_tree_size): Do not handle WRAPPER.
+       * cp-tree.def (WRAPPER): Likewise.
+       (IDENTITY_CONV): Remove.
+       (LVALUE_CONV): Likewise.
+       (QUAL_CONV): Likewise.
+       (STD_CONV): Likewise.
+       (PTR_CONV): Likewise.
+       (PMEM_CONV): Likewise.
+       (BASE_CONV): Likewise.
+       (REF_BIND): Likewise.
+       (USER_CONV): Likewise.
+       (AMBIG_CONV): Likewise.
+       (RVALUE_CONV): Likewise.
+       * cp-tree.h (tree_wrapper): Remove.
+       (WRAPPER_ZC): Remove.
+       (lang_tree_node): Remove wrapper.
+       (LOOKUP_SPECULATIVELY): Remove.
+       (build_op_delete_call): Adjust prototype.
+       (validate_conversion_obstack): Declare.
+       (build_zc_wrapper): Remove.
+       * cvt.c (convert_to_reference): Remove dead code.
+       (ocp_convert): Likewise.
+       * decl.c (redeclaration_error_message): Correct handling of
+       templates.
+       (finish_destructor_body): Do not use LOOKUP_SPECULATIVELY.
+       (cp_tree_node_structure): Remove WRAPPER case.
+       * decl2.c (finish_file): Call validate_conversion_obstack.
+       * init.c (build_new_1): Remove use of LOOKUP_SPECULATIVELY.
+       (build_op_delete_call): Likewise.
+       (build_x_delete): Likewise.
+       (build_delete): Adjust call to build_op_delete_call.
+       * pt.c (tsubst_friend_declaration): Adjust code to determine
+       whether or not a friend template is a definition.
+       (tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
+       * tree.c (build_zc_wrapper): Remove.
+       
+2004-02-12  Zack Weinberg  <zack@codesourcery.com>
+
+       * cp-lang.c: Don't define LANG_HOOKS_BUILTIN_TYPE_DECLS.
+       * cp-tree.h: Don't declare cxx_builtin_type_decls.
+       * decl.c (builtin_type_decls, cxx_builtin_type_decls): Delete.
+       (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
+
+2004-02-10  Mark Mitchell  <mark@codesourcery.com>
+
+       * typeck.c (lookup_destructor): Fix typo in error message.
+
+2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * call.c, parser.c, tree.c: Fix comment typos.
+
+2004-02-07  Zack Weinberg  <zack@codesourcery.com>
+
+       Bug 13856
+       * optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
+       * decl.c (duplicate_decls, start_function): Likewise.
+
+2004-02-07  Zack Weinberg  <zack@codesourcery.com>
+
+       * name-lookup.c (pushdecl): Issue shadow warnings directly.
+       * parser.c (free_parser_stacks): Delete.
+
+2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * rtti.c: Update copyright.
+
+2003-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/14033
+       * decl.c (require_complete_types_for_parms): Do not insert
+       error_mark_node in the parameter list.
+
+2003-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/14028
+       * parser.c (cp_parser_enclosed_template_argument_list): Emit straight
+       error when terminator can not be found.
+
+2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
+
+       Make-lang.in (po-generated):  Delete.
+
+2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * call.c (type_passed_as): Replace PROMOTE_PROTOTYPES with
+       targetm.calls.promote_prototypes.
+
+2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       PR middle-end/13750
+       Revert:
+       2004-01-15  Geoffrey Keating  <geoffk@apple.com>
+       PR pch/13361
+       * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
+       (handle_pragma_implementation): Likewise.
+
+2004-02-05  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/13714
+       * typeck.c (lookup_destructor): Tweak error message.
+
+2004-02-05  Jan Hubicka  <jh@suse.cz>
+
+       * tree.c (cp_cannot_inline_tree_fn):  Allow inlining of comdat
+       functions.
+
+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-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.
+       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>
 
 
 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
 
-       * parser.c (cp_parser_template_id): Parse tentatively `[:' after a 
+       * 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.
        * 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 
+       (do_local_using_decl): Invoke debug_hooks to emit debug info
        for using decl.
        (do_class_using_decl): Same.
        (do_toplevel_using_decl): Same.
 2004-01-25  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
 
        PR c++/13810
-       * parser.c (cp_parser_type_parameter): When cp_parser_id_expression 
+       * 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-20  Kelley Cook  <kcook@gcc.gnu.org>
 
-       * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME, 
+       * 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.
 
        PR c++/13710
        * pt.c (tsubst): Use finish_typeof.
 
-2004-01-16  Jason Merrill  <jason@redhat.com>
+2004-01-18  Jason Merrill  <jason@redhat.com>
 
        PR c++/11725
        * except.c (build_throw): In a template, set
 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
 
        PR c++/8856
-       * parser.c (cp_parser_template_name): Don't try to parse a 
+       * 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.
 
        DR 337
        PR c++/9256
-       * pt.c (tsubst): Substitution must fail if we are attempting to 
+       * 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.