X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=7a087c52ddc392cd4decf6e1b672a74791d47f7d;hb=974c337b5398ab7ac26bfb064655e47e56af46ac;hp=7a99acd883f99e9f8c9e3720b8fb48a086694df1;hpb=fd3ee1394658ba5e730608300acab58ad1dcfa76;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7a99acd883f..7a087c52ddc 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,191 @@ +2011-04-11 Jason Merrill + + PR c++/48523 + * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather + than cp_build_indirect_ref. + + PR c++/48457, Core 1238 + * call.c (reference_binding): Allow rvalue reference to bind to + function lvalue. + * tree.c (lvalue_kind): Functions are always lvalues. + +2011-04-07 Jason Merrill + + PR c++/48500 + * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check + arguments even if we don't know the function. + + PR c++/48481 + * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL + at the end of the chain. + * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT. + (iterative_hash_template_arg): Likewise. + + PR c++/48481 + * cp-tree.h (OVL_ARG_DEPENDENT): New. + * name-lookup.c (add_function): Set it. + * semantics.c (finish_call_expr): Free OVERLOADs if it's set. + + PR c++/48481 + * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot. + Release unused vector. + + PR c++/48451 + * pt.c (fn_type_unification): Don't clear incomplete pack flag. + (type_unification_real): Clear it here instead. + + PR c++/48468 + * except.c (build_noexcept_spec): Propagate error_mark_node. + (finish_noexcept_expr): Likewise. + + PR c++/48452 + * typeck.c (build_x_compound_expr_from_list): Return error_mark_node + in SFINAE context. + + PR c++/48450 + * call.c (resolve_args): Take complain. + (build_new_function_call, build_operator_new_call): Pass it. + (build_op_call, build_new_op, build_new_method_call): Pass it. + + PR c++/48450 + * typeck.c (check_for_casting_away_constness): Take complain. + (build_static_cast_1, build_reinterpret_cast_1): Pass it. + (build_const_cast_1): Pass it. Take full complain parm. + (build_const_cast, cp_build_c_cast): Adjust. + + * tree.c (build_aggr_init_expr): Always return error_mark_node + on abstract violation. + + PR c++/48450 + * tree.c (build_cplus_new, build_aggr_init_expr): Take complain. + (bot_manip): Adjust. + * cp-tree.h: Adjust. + * call.c (convert_like_real, build_cxx_call): Adjust. + (perform_direct_initialization_if_possible): Adjust. + * cvt.c (ocp_convert): Adjust. + * init.c (build_value_init): Adjust. + * semantics.c (maybe_add_lambda_conv_op): Adjust. + * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust. + * typeck2.c (build_functional_cast): Adjust. + + * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top + level. + (perform_member_init): Not here. + * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special + case to templates. + (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case. + + PR c++/48449 + * typeck2.c (build_functional_cast): Check complain consistently. + Use build_value_init and abstract_virtuals_error_sfinae. + (abstract_virtuals_error_sfinae): Split out. + * cp-tree.h: Declare it. + * init.c (build_new_1): Use it. + (build_value_init_noctor): Handle FUNCTION_TYPE. + + * semantics.c (finish_decltype_type): Simplify handling of unknown + type. + + * semantics.c (finish_decltype_type): Add complain parm. + * cp-tree.h: Adjust. + * parser.c (cp_parser_decltype): Adjust. + * pt.c (tsubst): Adjust. + + PR c++/48450 + * cvt.c (ocp_convert): Handle converting scoped enum to bool. + +2011-03-31 Jason Merrill + + PR c++/48277 + * semantics.c (finish_call_expr): Remove assert. + + PR c++/48280 + * method.c (defaultable_fn_check): Templates are not defaultable. + + * parser.c (cp_parser_init_declarator): Avoid redundant + cp_finish_decl for member declarations. + +2011-03-30 Jason Merrill + + PR c++/48212 + * semantics.c (non_const_var_error): Just return if DECL_INITIAL + is error_mark_node. + +2011-03-30 Jason Merrill + + PR c++/48369 + * semantics.c (potential_constant_expression_1): Handle + UNORDERED_EXPR and ORDERED_EXPR. + + PR c++/48281 + * semantics.c (finish_compound_literal): Do put static/constant + arrays in static variables. + + * call.c (convert_like_real) [ck_list]: Build up the + initializer_list object directly. + * decl.c (build_init_list_var_init): Adjust. + + * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR. + * decl.c (reshape_init_array_1): Likewise. + +2011-03-29 Jason Merrill + + PR c++/48265 + * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure + the variable is constant before looking at its initializer. + + PR c++/48319 + * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR. + + PR c++/48089 + * semantics.c (potential_constant_expression_1): Change error about + use of *this in constructor into sorry. + + PR c++/48296 + * decl.c (cp_finish_decl): Defer validation of constexpr member + functions. + * class.c (finalize_literal_type_property): Validate them here. + * semantics.c (is_valid_constexpr_fn): Don't check completeness. + + * semantics.c (is_valid_constexpr_fn): Specify input location. + +2011-03-28 Jason Merrill + + PR c++/48313 + * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction + from overloaded function. + + Core 1232 + * call.c (build_array_conv): New. + (implicit_conversion): Use it. + + * call.c (reference_binding): Allow direct binding to an array + rvalue. + + Core 898 + * parser.c (cp_parser_compound_statement): Add function_body parm. + Complain about non-body compound-stmt in constexpr fn. + (cp_parser_primary_expression, cp_parser_statement): Adjust. + (cp_parser_implicitly_scoped_statement): Adjust. + (cp_parser_function_body, cp_parser_try_block): Adjust. + (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust. + (cp_parser_objc_try_catch_finally_statement): Adjust. + + Core 898 + * semantics.c (constexpr_fn_retval): New. Allow using-declaration + and using-definition. + (register_constexpr_fundef): Call it. + + * except.c (build_noexcept_spec): Call cxx_constant_value after + converting to bool. + +2011-03-25 Kai Tietz + + * lex.c (interface_strcmp): Handle dos-paths. + (handle_pragma_implementation): Use filename_cmp instead of + strcmp. + (in_main_input_context): Likewise. + 2011-03-25 Jason Merrill Core 1135