X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=d9e0f893909a6337fef9c103fee92293dcfa2d9b;hp=5be74a357d1ec5ab87ec8aae2b0e098dbac4cc90;hb=cec7209f52824c61d112754611a522ceed56538c;hpb=aebd4dca3039647faba3ef6a1cbacde3d9a16ca3 diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5be74a357d1..d9e0f893909 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,528 +1,3 @@ -2010-05-12 Jason Merrill - - PR bootstrap/44048 - PR target/44099 - * cp-tree.def (NULLPTR_TYPE): Remove. - * cp-tree.h (NULLPTR_TYPE_P): New. - (SCALAR_TYPE_P): Use it. - (nullptr_type_node): New. - (cp_tree_index): Add CPTI_NULLPTR_TYPE. - * decl.c (cxx_init_decl_processing): Call record_builtin_type on - nullptr_type_node. - * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE. - * cxx-pretty-print.c (pp_cxx_constant): Likewise. - * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise. - * mangle.c (write_type): Likewise. - * name-lookup.c (arg_assoc_type): Likewise. - * typeck.c (build_reinterpret_cast_1): Likewise. - * rtti.c (typeinfo_in_lib_p): Likewise. - (emit_support_tinfos): Remove local nullptr_type_node. - - * cp-tree.h (UNKNOWN_TYPE): Remove. - * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead. - * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise. - * typeck2.c (cxx_incomplete_type_diagnostic): Likewise. - * class.c (instantiate_type): Check unknown_type_node rather than - UNKNOWN_TYPE. - * name-lookup.c (maybe_push_decl): Likewise. - * rtti.c (get_tinfo_decl_dynamic): Likewise. - (get_typeid): Likewise. - * semantics.c (finish_offsetof): Likewise. - - PR c++/20669 - * call.c (add_template_candidate_real): If deduction fails, still - add the template as a non-viable candidate. - (equal_functions): Handle template candidates. - (print_z_candidate): Likewise. - (print_z_candidates): Likewise. - (build_new_function_call): Likewise. - - * cp-tree.h (LOOKUP_LIST_ONLY): New. - * call.c (add_candidates): Enforce it. - (build_new_method_call): Try non-list ctor if no viable list ctor. - (build_user_type_conversion_1): Likewise. - - * call.c (add_candidates): Distinguish between type(x) and - x.operator type(). - (convert_class_to_reference): Set LOOKUP_NO_CONVERSION. - (build_new_method_call): Give better error for conversion op. - - * call.c (add_candidates): Add first_arg and return_type parms. - Add special constructor/conversion op handling. - (convert_class_to_reference): Use it. - (build_user_type_conversion_1): Likewise. - (build_op_call): Likewise. - (build_new_method_call): Likewise. - (build_new_op): Adjust. - (perform_overload_resolution): Adjust. - -2010-05-11 Paolo Carlini - - PR c++/34272 - PR c++/43630 - PR c++/34491 - * pt.c (process_partial_specialization): Return error_mark_node - in case of unused template parameters in partial specialization. - -2010-05-11 Jakub Jelinek - - PR c++/44062 - * semantics.c (finish_expr_stmt): Don't call mark_exp_read here... - * cvt.c (convert_to_void): ... but here. If expr is a COMPOUND_EXPR, - look at its second operand. - -2010-05-10 Jason Merrill - - PR c++/44017 - * semantics.c (baselink_for_fns): Revert earlier change. - - PR c++/44045 - * typeck.c (cp_build_modify_expr): Complain about assignment to - array from init list. - -2010-05-10 Fabien Chêne - - PR c++/43719 - * decl.c (check_initializer): strip array type before checking for - uninitialized const or ref members. - -2010-05-07 Fabien Chêne - - PR c++/43951 - * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the - error count. Emit errors only if compain is true. - (build_new_1): Do not return error_mark_node if - diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any - errors. Delay the check for user-provided constructor. - (perform_member_init): Adjust. - * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the - prototype. - -2010-05-06 Magnus Fromreide - Jason Merrill - - Add support for C++0x nullptr. - * cp-tree.def: Add NULLPTR_TYPE. - * cp-tree.h: Add nullptr_node. - (cp_tree_index): Add CPTI_NULLPTR. - (SCALAR_TYPE_P): Add NULLPTR_TYPE. - * call.c (null_ptr_cst_p): Handle nullptr. - (standard_conversion): Likewise. - (convert_arg_to_ellipsis): Likewise. - * mangle.c (write_type): Likewise. - * name-lookup.c (arg_assoc_type): Likewise. - * parser.c (cp_parser_primary_expression): Likewise. - * typeck.c (cp_build_binary_op): Likewise. - (build_reinterpret_cast_1): Likewise. - * error.c (dump_type): Likewise. - (dump_type_prefix, dump_type_suffix): Likewise. - * decl.c (cxx_init_decl_processing): Likewise. - * cxx-pretty-print.c (pp_cxx_constant): Likewise. - * cvt.c (ocp_convert): Likewise. - * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put - nullptr_t tinfo in libsupc++. - -2010-05-06 Jason Merrill - - * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR. - -2010-04-22 Jakub Jelinek - Dodji Seketeli - - PR c/18624 - * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use): - Declare ... - * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns. - * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use. - (decay_conversion, perform_integral_promotions): Call rvalue_use. - (cp_build_unary_op): Call lvalue_use. - * decl.c (unused_but_set_errorcount): New variable. - (poplevel): Issue -Wunused-but-set-variable diagnostics. - (duplicate_decls): Merge DECL_READ_P flags. - (start_cleanup_fn): Set DECL_READ_P flag. - (finish_function): Issue -Wunused-but-set-parameter diagnostics. - * tree.c (rvalue): Call rvalue_use. - * pt.c (convert_nontype_argument): Likewise. - * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof, - finish_decltype_type): Likewise. - * call.c (convert_like_real) : Call rvalue use. - (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use - or rvalue_use depending on the expr. - * init.c (build_new, build_delete): Likewise. - * rtti.c (build_typeid, build_dynamic_cast_1): Likewise. - -2010-05-05 Jason Merrill - - PR c++/43787 - * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes. - * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here. - -2010-05-04 Paolo Carlini - - PR c++/43028 - * pt.c (unify): Check each elt for error_mark_node. - -2010-05-04 Jason Merrill - - PR c++/38064 - * typeck.c (cp_build_binary_op): Allow enums for <> as well. - -2010-05-04 Paolo Carlini - - PR c++/43705 - * call.c (build_new_method_call): Return error_mark_node if fns is - NULL_TREE. - -2010-05-03 Dodji Seketeli - - PR c++/43953 - * pt.c (most_specialized_class): Pretend we are processing - a template decl during the call to coerce_template_parms. - -2010-05-03 Jason Merrill - - PR c++/42810 - PR c++/43680 - * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE - from the selected underlying type unless -fstrict-enums. Set - ENUM_UNDERLYING_TYPE to have the restricted range. - * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE. - * class.c (check_bitfield_decl): Likewise. - -2010-05-01 H.J. Lu - - PR c++/43951 - * init.c (build_new_1): Revert the accidental checkin in - revision 158918. - -2010-04-30 Jason Merrill - - PR c++/43868 - * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling... - (pp_cxx_type_specifier_seq): ...here. - -2010-04-30 Steven Bosscher - - * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h. - * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H. - -2010-04-30 Shujing Zhao - - PR c++/43779 - * typeck.c (warn_args_num): New function. - (convert_arguments): Use warn_args_num to print the diagnostic - messages. - -2010-04-29 Fabien Chêne - - PR c++/43890 - * init.c (diagnose_uninitialized_cst_or_ref_member): check for - user-provided constructor while recursing. - -2010-04-28 Manuel López-Ibáñez - - PR c++/9335 - * error.c (print_instantiation_partial_context_line): Handle - recursive instantiation. - (print_instantiation_partial_context): Likewise. - -2010-04-27 Jason Merrill - - * init.c (perform_member_init): Check CLASS_TYPE_P. - -2010-04-27 Fabien Chêne - - PR c++/29043 - * init.c (perform_member_init): check for uninitialized const or - reference members, including array types. - -2010-04-24 Jason Merrill - - * tree.c (get_fns): Split out from get_first_fn. - * cp-tree.h: Declare it. - * search.c (shared_member_p): Use it. - * semantics.c (finish_qualified_id_expr): Simplify. - (finish_id_expression): Simplify. - - * semantics.c (finish_non_static_data_member): Call maybe_dummy_object - whenever object is NULL_TREE. Don't do 'this' capture here. - (finish_qualified_id_expr): Pass NULL_TREE. - (finish_id_expression): Likewise. - (lambda_expr_this_capture): Likewise. - - * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object - rather than checking current_class_ref directly. - (finish_call_expr): Likewise. - - PR c++/43856 - * name-lookup.c (qualify_lookup): Disqualify lambda op(). - * class.c (current_nonlambda_class_type): New fn. - * semantics.c (nonlambda_method_basetype): New. - * cp-tree.h: Declare them. - * tree.c (maybe_dummy_object): Handle implicit 'this' capture. - - * semantics.c (baselink_for_fns): Correct BASELINK_BINFO. - - PR c++/43875 - * semantics.c (lambda_return_type): Complain about - braced-init-list. - - PR c++/43790 - * tree.c (cv_unqualified): Handle error_mark_node. - - PR c++/41468 - * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node - if we don't want errors. - - PR c++/41468 - * class.c (convert_to_base): Add complain parameter. Pass - ba_quiet to lookup_base if we don't want errors. - (build_vfield_ref): Pass complain to convert_to_base. - * call.c (convert_like_real): Likewise. - (initialize_reference): Likewise. - (perform_direct_initialization_if_possible): Pass complain to - convert_like_real. - * cp-tree.h: Adjust. - -2010-04-27 Fabien Chêne - Jason Merrill - - PR c++/42844 - * decl.c (check_for_uninitialized_const_var): Handle classes that need - constructing, too. - (check_initializer): Call it for classes that need constructing, too. - * class.c (in_class_defaulted_default_constructor): New. - * cp-tree.h: Declare it. - -2010-04-20 Jason Merrill - - PR c++/9335 - * init.c (constant_value_1): Treat error_mark_node as a constant - if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set. - * cvt.c (ocp_convert): Handle getting error_mark_node from - integral_constant_value. - * decl.c (compute_array_index_type): Likewise. - -2010-04-20 Dodji Seketeli - - PR c++/43800 - PR c++/43704 - * typeck.c (incompatible_dependent_types_p): If one of the - compared types if not a typedef then honour their main variant - equivalence. - -2010-04-20 Jakub Jelinek - - * cp-tree.h (TYPE_REF_IS_RVALUE): Remove. - -2010-04-19 Dodji Seketeli - - PR c++/43704 - * typeck.c (structural_comptypes): Test dependent typedefs - incompatibility before testing for their main variant based - equivalence. - -2010-04-19 Jakub Jelinek - - * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use - ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5. - -2010-04-18 Eric Botcazou - - * decl.c (cxx_init_decl_processing): Remove second argument in call to - build_common_tree_nodes. - -2010-04-14 Jason Merrill - - PR c++/36625 - * parser.c (cp_parser_parenthesized_expression_list): Change - is_attribute_list parm to int to indicate whether or not to - handle initial identifier specially. - (cp_parser_attribute_list): Use attribute_takes_identifier_p. - -2010-04-13 Jason Merrill - - * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of - CLASS_TYPE_P. - * parser.c (cp_parser_lambda_expression): Complain about lambda in - unevaluated context. - * pt.c (iterative_hash_template_arg): Don't crash on lambda. - -2010-04-12 Jason Merrill - - PR c++/43641 - * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak - return value directly. - - * call.c (type_decays_to): Call cv_unqualified for non-class type. - -2010-04-12 Fabien Chene - - PR c++/25811 - * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare. - * init.c (build_new_1): Check for uninitialized const members and - uninitialized reference members, when using new without - new-initializer. Call diagnose_uninitialized_cst_or_ref_member. - (diagnose_uninitialized_cst_or_ref_member): Define, call - diagnose_uninitialized_cst_or_ref_member_1. - (diagnose_uninitialized_cst_or_ref_member_1): New function. - -2010-04-12 Richard Guenther - - PR c++/43611 - * semantics.c (expand_or_defer_fn_1): Do not keep extern - template inline functions. - -2010-04-09 Manuel López-Ibáñez - - PR c++/28584 - * typeck.c (cp_build_c_cast): Warn for casting integer to larger - pointer type. - -2010-04-07 Jason Merrill - - PR c++/43016 - * decl.c (start_preparsed_function): Do defer nested functions. - - PR c++/11094, DR 408 - * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New. - * decl2.c (finish_static_data_member_decl): Set it. - * decl.c (duplicate_decls): Propagate it. - * pt.c (tsubst_decl): Don't substitute the domain of an array - VAR_DECL if it's set. - (regenerate_decl_from_template): Substitute it here. - (type_dependent_expression_p): Return true if it's set. - * semantics.c (finish_decltype_type): Instantiate such a variable. - * typeck.c (cxx_sizeof_expr): Likewise. - (strip_array_domain): New. - - PR c++/43145 - * name-lookup.c (current_decl_namespace): Non-static. - (pop_nested_namespace): Sanity check. - * cp-tree.h: Declare current_decl_namespace. - * decl.c (grokvardecl): Use it instead of current_namespace. - (grokfndecl): Likewise. - - PR c++/38392 - * pt.c (tsubst_friend_function): Instatiate a friend that has already - been used. - - * pt.c (print_template_statistics): New. - * cp-tree.h: Declare it. - * tree.c (cxx_print_statistics): Call it. - - PR c++/41970 - * decl.c (grokvardecl): Tweak warning message. - (grokfndecl): Likewise. - -2010-04-07 Dodji Seketeli - - PR c++/42697 - *pt.c (tsubst_decl): Get the arguments of a specialization from - the specialization template, not from the most general template. - -2010-04-07 Dodji Seketeli - - PR c++/40239 - * typeck2.c (process_init_constructor_record): - value-initialize members that are are not explicitely - initialized. - -2010-04-07 Jie Zhang - - PR c++/42556 - * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR - when all of its elements are non-constant and have been split out. - -2010-04-06 Taras Glek - Jason Merrill - - * parser.c (cp_parser_class_specifier): Set class location to that - of IDENTIFIER_NODE instead of '{' when possible. - * semantics.c (begin_class_definition): Do not overide locations - with less precise ones. - -2010-04-06 Jason Merrill - - PR c++/43648 - * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs. - - PR c++/43621 - * pt.c (maybe_update_decl_type): Check the return value from - push_scope. - -2010-04-01 Jason Merrill - - * decl.c (next_initializable_field): No longer static. - * cp-tree.h: Declare it. - * call.c (build_aggr_conv): Fail if there are more initializers - than initializable fields. - - * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node - instead of void_zero_node. - -2010-03-31 Dodji Seketeli - - PR c++/43558 - * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro. - * pt.c (end_template_parm_list): Store sibling template parms of - each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS. - (push_template_decl_real): Don't store the containing template decl - into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore. - * typeck.c (get_template_parms_of_dependent_type): Get sibling parms - of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS. - Simplify the logic. - -2010-03-30 Jason Merrill - - PR c++/43076 - * pt.c (push_template_decl_real): Deal better with running out of - scopes before running out of template parms. - - PR c++/41185 - PR c++/41786 - * parser.c (cp_parser_direct_declarator): Don't allow VLAs in - function parameter context. Don't print an error if parsing - tentatively. - - PR c++/43559 - * pt.c (more_specialized_fn): Don't control cv-qualifier check - with same_type_p. - -2010-03-26 Jason Merrill - - PR c++/43509 - * parser.c (cp_parser_qualifying_entity): Do accept enum names in - c++0x mode, but not other type-names. - -2010-03-26 Dodji Seketeli - - PR c++/43327 - * pt.c (add_to_template_args): Support NULL ARGS; - (most_specialized_class): call coerce_template_parms on - template arguments passed to get_class_bindings. Use - add_to_template_args. - (unify): Handle VAR_DECLs. - -2010-03-26 Dodji Seketeli - - * cp-tree.h (get_template_parms_at_level): Change unsigned parm - into int. - * pt.c (get_template_parms_at_level): Adjust. - -2010-03-25 Dodji Seketeli - - PR c++/43206 - * cp-tree.h (get_template_parms_at_level): Declare ... - * pt.c (get_template_parms_at_level): ... new function. - * typeck.c (get_template_parms_of_dependent_type): If a template - type parm's DECL_CONTEXT isn't yet set, get its siblings from - current_template_parms. Use get_template_parms_at_level. Remove - useless test. - (incompatible_dependent_types_p): If we get empty parms from just one - of the template type parms we are comparing then the template parms are - incompatible. - 2010-03-24 Jason Merrill PR c++/43502 @@ -592,6 +67,11 @@ 2010-03-03 Jason Merrill PR c++/12909 + * mangle.c (mangle_decl): Handle VAR_DECL, too. + +2010-03-03 Jason Merrill + + PR c++/12909 * mangle.c: Include cgraph.h. (mangle_decl): If the mangled name will change in a later ABI version, make the later mangled name an alias.