X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=e4f7bb6c05e85641e19dca57b62e0aae506cf4e8;hp=d6be4b4773482caab84e14512cb658f94d91463c;hb=8c6ca5d86a492d138add7c80bf8b136a94e16f26;hpb=8abe3bde01dc29094149660258c8727f184871e4 diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d6be4b47734..e4f7bb6c05e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,435 @@ +2010-05-18 Nathan Froyd + + * tree.c (build_min_non_dep_call_vec): Update comment. + +2010-05-17 Jason Merrill + + * call.c (struct z_candidate): Add explicit_targs field. + (add_template_candidate_real): Set it. + (build_over_call): Use it to control init-list warning. + + PR c++/44157 + * call.c (build_over_call): Limit init-list deduction warning to + cases where the argument is actually an init-list. + + PR c++/44158 + * call.c (build_over_call): Don't do bitwise copy for move ctor. + +2010-05-17 Dodji Seketeli + Jason Merrill + + PR c++/44108 + * decl.c (compute_array_index_type): Call mark_rvalue_use. + +2010-05-15 Jason Merrill + + * cp-tree.h (TYPE_NOEXCEPT_P): New macro. + * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if + TYPE_NOEXCEPT_P. + (finish_eh_spec_block): Adjust. + +2010-05-15 Jakub Jelinek + + PR c++/44148 + * pt.c (tsubst): Unshare template argument. + +2010-05-15 Steven Bosscher + + * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes. + * Make-lang.in: Fix dependencies accordingly. + +2010-05-14 Jason Merrill + + C++ DR 475 + * except.c (build_throw): Simplify, adjust for DR 475. + + PR c++/44127 + * except.c (dtor_nothrow): Return nonzero for type with + trivial destructor. + + PR c++/44127 + * cp-gimplify.c (gimplify_must_not_throw_expr): Use + gimple_build_eh_must_not_throw. + +2010-05-14 Martin Jambor + + * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef + and define. + +2010-05-14 Jonathan Wakely + + * call.c (build_new_method_call): Change warning text. + * typeck2.c (build_functional_cast): Change error text. + +2010-05-14 Shujing Zhao + + PR c++/30566 + * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about + shadowing the outer parameter or variables by the declaration of + nested function in nested structure or class. Warn the shadowing by + the declaration of nested lambda expression. + +2010-05-13 Jason Merrill + + * typeck.c (cp_build_array_ref): Factor out from... + (build_array_ref): ...here. Drop complain parm. + (build_new_op): Adjust. + * class.c (build_vtbl_ref_1): Adjust. + * decl2.c (grok_array_decl): Adjust. + * cp-tree.h: Adjust prototypes. + +2010-05-13 Jan Hubicka + + * decl.c (cp_finish_decl): Do not worry about used attribute. + +2010-05-12 Jason Merrill + + * typeck.c (build_array_ref): Take complain parm. + * cp-tree.h: Add it to prototype. + * call.c (build_new_op): Pass it. + * class.c (build_vtbl_ref): Pass it. + * decl2.c (grok_array_decl): Pass it. + + 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 @@ -54,6 +486,7 @@ * 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. @@ -249,6 +682,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.