X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=f785c89e6107869ce51ad6b00d87eeb0927d1b42;hb=8f8948f111a76c96cffa66c7f1ab006626c68e0e;hp=e6399d364e9eac69599e1dc057c842b63584fb79;hpb=150310174d170cc46009f763dd4cd6964add98e8;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e6399d364e9..f785c89e610 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,348 @@ +2011-06-08 Jakub Jelinek + + * cp-tree.h (struct tinst_level): Add chain_next GTY + markup. + +2011-06-08 Jason Merrill + + PR c++/49322 + * pt.c (deduction_tsubst_fntype): Don't free the tinst entry + if a pending_template entry is pointing at it. + +2011-06-07 Jason Merrill + + PR c++/48969 + PR c++/44175 + * error.c (subst_to_string): New. + (cp_printer): Use it for 'S'. + (print_instantiation_partial_context_line): Handle subst context. + * pt.c (push_tinst_level): Handle subst context. + (deduction_tsubst_fntype): Don't track specific substitutions. + Use push_tinst_level. + + * pt.c (deduction_tsubst_fntype): Use push_deduction_access_scope. + (fn_type_unification): Don't call push_deduction_access_scope here. + +2011-06-06 Jason Merrill + + PR c++/48780 + * typeck.c (perform_integral_promotions): Don't promote scoped enums. + * call.c (convert_arg_to_ellipsis): Promote them here in old ABI. + +2011-06-06 Nicola Pero , + + PR obj-c++/48275 + * parser.c (cp_parser_objc_at_property_declaration): Allow setter + and getter names to use all the allowed method names. + +2011-06-06 Jason Merrill + + PR c++/49298 + * semantics.c (potential_constant_expression_1): Handle FIELD_DECL. + + PR objc++/49221 + * decl.c (cp_finish_decl): Check DECL_FUNCTION_SCOPE_P rather than + at_function_scope_p. + + PR c++/49134 + * tree.c (build_target_expr): Deal with ARM ABI tweaks. + +2011-06-04 Jonathan Wakely + + * init.c (build_delete): Warn when deleting type with non-virtual + destructor. + +2011-06-03 Jakub Jelinek + + PR c++/49276 + * mangle.c (write_nested_name): Use CP_DECL_CONTEXT instead of + DECL_CONTEXT. + +2011-06-01 Jason Merrill + + * pt.c (build_non_dependent_expr): Remove special handling of + REFERENCE_REF_P. + + PR c++/44175 + * pt.c (template_args_equal): Handle one arg being NULL_TREE. + (deduction_tsubst_fntype): Handle excessive non-infinite recursion. + + PR c++/49253 + * typeck2.c (build_x_arrow): Don't use build_min_nt. + +2010-05-31 Fabien Chêne + + PR c++/48010 + * name-lookup.c (supplement_binding_1): If the old binding was a + type name, also check that the DECL actually refers to the same + type or is not a type. + +2011-05-31 Jason Merrill + + PR c++/44870 + * tree.c (lvalue_kind): Recurse on NON_DEPENDENT_EXPR. Handle + ARROW_EXPR, TYPEID_EXPR, and arbitrary class-valued expressions. + (build_min_non_dep): Preserve reference refs. + (build_min_non_dep_call_vec): Likewise + +2011-05-30 Jakub Jelinek + + PR c++/49223 + * semantics.c (finish_omp_clauses): Call require_complete_type + even for copyin/copyprivate clauses. Only call + cxx_omp_create_clause_info if inner_type is COMPLETE_TYPE_P. + +2011-05-28 Jason Merrill + + PR c++/46124 + * parser.c (cp_parser_lambda_expression): Improve error recovery. + (cp_parser_lambda_declarator_opt): Likewise. Return bool. + +2011-05-27 Jason Merrill + + PR c++/47277 + * parser.c (cp_parser_pseudo_destructor_name): Commit to parse + after we see the ~. + + * mangle.c (mangle_decl_string): Make sure we don't try to mangle + templates. + + PR c++/47049 + * semantics.c (maybe_add_lambda_conv_op): Fix COMDAT sharing. + * decl.c (start_preparsed_function): Don't call comdat_linkage for + a template. + + PR c++/47132 + * mangle.c (write_expression): Handle MODOP_EXPR. + + PR c++/47277 + * parser.c (cp_parser_unqualified_id): Don't check + constructor_name_p for enums. + + PR c++/47687 + * pt.c (dependent_type_p_r): Avoid infinite recursion. + + PR c++/48284 + * error.c (dump_expr) [COMPONENT_REF]: Use pp_cxx_dot + with INDIRECT_REF of REFERENCE_TYPE. + + PR c++/49181 + * pt.c (get_mostly_instantiated_function_type): Use push_access_scope. + +2011-05-27 Nathan Froyd + + * cp-tree.h (building_stmt_tree): Delete. + * decl.c (save_function_data): Tweak initializer for x_cur_stmt_list. + (build_aggr_init_full_exprs): Call building_stmt_list_p + instead of building_stmt_tree. + (initialize_local_var): Likewise. + (finish_function): Likewise. + * decl2.c (finish_anon_union): Likewise. + * init.c (begin_init_stmts): Likewise. + (finish_init_stmts): Likewise. + (expand_aggr_init_1): Likewise. + * name-lookup.c (do_local_using_decl): Likewise. + (do_namespace_alias): Likewise. + (do_using_directive): Likewise. + (cp_emit_debug_info_for_using): Likewise. + * semantics.c (add_stmt): Assert that stmt_list_stack is non-empty. + +2011-05-27 Paolo Carlini + + PR c++/42056 + * typeck2.c (build_functional_cast): Complain early for invalid uses + of 'auto' and set type to error_mark_node. + +2011-05-26 Jason Merrill + + PR c++/47721 + * parser.c (cp_parser_member_declaration): Allow friend T. + * friend.c (make_friend_class): Ignore non-classes. + * pt.c (instantiate_class_template_1): Handle TEMPLATE_TYPE_PARM. + + DR 1004 + * pt.c (convert_template_argument): Don't complain about using + injected-class-name as template template argument. + + PR c++/47956 + * decl.c (check_static_variable_definition): Now static. + (cp_finish_decl): Call it here. + (grokdeclarator): Not here. + * pt.c (instantiate_class_template_1): Or here. + * cp-tree.h: Don't declare it. + +2011-05-26 Janis Johnson + Nathan Froyd + + PR c++/2288 + PR c++/18770 + * name-lookup.h (enum scope_kind): Add sk_cond. + * name-lookup.c (pushdecl_maybe_friend): Get scope of shadowed local. + Detect and report error for redeclaration from for-init or if + or switch condition. + (begin_scope): Handle sk_cond. + * semantics.c (begin_if_stmt): Use sk_cond. + (begin switch_stmt): Ditto. + +2011-05-26 Jason Merrill + + PR c++/48211 + * name-lookup.h (cp_class_binding): Make base a pointer. + * name-lookup.c (new_class_binding): Adjust. + (poplevel_class): Adjust. + + PR c++/48424 + * decl.c (grokparms): Function parameter packs don't need to + go at the end. + * pt.c (type_unification_real): But they aren't deduced otherwise. + +2011-05-25 Jason Merrill + + PR c++/48536 + * decl.c (build_enumerator): If incremented enumerator won't fit in + previous integral type, find one it will fit in. + + PR c++/48599 + * decl.c (create_array_type_for_decl): Complain about array of auto. + + PR c++/44994 + PR c++/49156 + * error.c (dump_template_bindings): Set processing_template_decl + for a partial instantiation. + + PR c++/45401 + * decl.c (grokdeclarator): Don't change type when adding rvalue ref + to another reference type. + + PR c++/44311 + * decl.c (case_conversion): New. + (finish_case_label): Use it. + + * ptree.c (cxx_print_xnode): Handle ARGUMENT_PACK_SELECT. + + PR c++/45698 + * pt.c (dependent_template_arg_p): See through ARGUMENT_PACK_SELECT. + + PR c++/46005 + * decl.c (grokdeclarator): Complain about auto typedef. + + PR c++/46245 + * decl.c (grokdeclarator): Complain later for auto parameter. + * pt.c (splice_late_return_type): Handle use in a template + type-parameter. + + PR c++/46696 + * typeck.c (cp_build_modify_expr): Check DECL_DEFAULTED_FN. + + PR c++/47184 + * parser.c (cp_parser_parameter_declaration): Recognize + list-initialization. + (cp_parser_direct_declarator): Check for the closing + paren before parsing definitely. + + PR c++/48935 + * parser.c (cp_parser_constructor_declarator_p): Don't check + constructor_name_p for enums. + (cp_parser_diagnose_invalid_type_name): Correct error message. + + PR c++/45418 + * init.c (perform_member_init): Handle list-initialization + of array of non-trivial class type. + + PR c++/45080 + * pt.c (instantiate_class_template_1): Call maybe_add_lambda_conv_op. + * semantics.c (lambda_function): Check COMPLETE_OR_OPEN_TYPE_P. + + PR c++/48292 + * pt.c (tsubst_decl) [PARM_DECL]: Handle partial instantiation of + function parameter pack. + (tsubst_pack_expansion): Likewise. + + * cp-objcp-common.c (cp_common_init_ts): TYPE_ARGUMENT_PACK has + TS_COMMON. + +2011-05-25 Jakub Jelinek + + * cp-objcp-common.c (cp_common_init_ts): Mark CTOR_INITIALIZER + as TS_TYPED. + + PR c++/49136 + * semantics.c (cxx_eval_bit_field_ref): Handle the + case when BIT_FIELD_REF doesn't cover only a single field. + +2011-05-24 Jason Merrill + + PR c++/49042 + * pt.c (get_mostly_instantiated_function_type): Use + push_deferring_access_checks rather than set flag_access_control. + +2011-05-24 Nicola Pero , + + * parser.c (cp_parser_objc_class_ivars): Deal gracefully with a + syntax error in declaring an ObjC instance variable. + +2011-05-24 Jason Merrill + + PR c++/48884 + * class.c (pushclass): Accept NULL argument. + (popclass): Deal with popping null class. + * pt.c (push_access_scope, pop_access_scope): Use them rather than + push_to_top_level/pop_from_top_level. + (push_deduction_access_scope, pop_defarg_context): New. + (fn_type_unification): Use them. + * name-lookup.c (lookup_name_real_1): Check current_class_type. + +2011-05-24 Paolo Carlini + + * decl.c (grokdeclarator): Use current_class_name. + +2011-05-24 Joseph Myers + + * Make-lang.in (GXX_OBJS): Remove prefix.o. + (g++$(exeext)): Use libcommon-target.a. + (CXX_C_OBJS): Remove prefix.o. + +2011-05-23 Jason Merrill + + * pt.c (tsubst_copy_and_build): Use current_class_name. + + PR c++/49102 + * call.c (convert_arg_to_ellipsis): Call force_rvalue. + + PR c++/49105 + * typeck.c (cp_build_c_cast): Don't strip cv-quals when + converting to reference. + (build_static_cast_1): Update for glvalues. + + PR c++/49105 + * typeck.c (build_const_cast_1): Handle rvalue references. + + PR c++/47263 + * decl.c (use_eh_spec_block): Do use an EH spec block for a + lambda op(). + + PR c++/49058 + * call.c (splice_viable): Be strict in templates. + + PR c++/47336 + * error.c (dump_template_bindings): Suppress access control. + + PR c++/47544 + * pt.c (instantiate_decl): Handle =default. + + PR c++/48617 + * pt.c (invalid_nontype_parm_type_p): Allow DECLTYPE_TYPE. + +2011-05-23 Nathan Froyd + + * call.c (build_over_call): Tweak call to check_function_arguments. + * typeck.c (cp_build_function_call_vec): Likewise. + +2011-05-23 Jonathan Wakely + + PR c++/18016 + * init.c (perform_member_init): Check for self-initialization. + 2011-05-22 Jason Merrill PR c++/48647