X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;ds=sidebyside;f=gcc%2Fcp%2FChangeLog;h=20c98083e9fd18ab8227a1729b3c52b3b9275d46;hb=9d0d0b57496b31ddbe66490e7cb35031a52aa449;hp=b89280dbda345d44426fcd0336f67e367bd4012a;hpb=b52bd4aeba69f1dbe92d4690cf1983b683e8952a;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b89280dbda3..20c98083e9f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,227 @@ +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 + * typeck.c (composite_pointer_type_r): Return error_mark_node + on error in SFINAE context. + +2011-05-20 Jason Merrill + + PR c++/48945 + * decl.c (grokdeclarator): Don't add set const function-cv-qual + for constexpr fns to memfn_quals, just add it to the type. + (revert_static_member_fn): Don't complain about quals. + (check_static_quals): New. + (grokfndecl): Call it. + (start_preparsed_function): Don't call revert_static_member_fn. + + PR c++/48945 + * decl.c (revert_static_member_fn): Ignore const on constexpr fn. + + PR c++/48780 + * cvt.c (type_promotes_to): Don't promote scoped enums. + + PR c++/49066 + * decl.c (duplicate_decls): Preserve DECL_DELETED_FN. + + PR c++/48873 + * tree.c (stabilize_expr): Fix typo. + + DR 1073 + PR c++/49082 + * typeck.c (comp_except_specs): noexcept(false) is not compatible + with throw(type-list). + * typeck2.c (merge_exception_specifiers): noexcept(false) + beats any more limited specification. + + PR c++/24163 + PR c++/29131 + * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Avoid repeating + unqualified lookup. + * semantics.c (perform_koenig_lookup): Add complain parm. + * cp-tree.h: Adjust. + * parser.c (cp_parser_postfix_expression): Adjust. + (cp_parser_perform_range_for_lookup): Adjust. + +2011-05-20 Jason Merrill + + * semantics.c (finish_call_expr): SET_EXPR_LOCATION. + +2011-05-20 Joseph Myers + + * Make-lang.in (GXX_OBJS): Remove intl.o and version.o. + +2011-05-19 Jakub Jelinek + + PR c++/49043 + * decl.c (check_omp_return): Stop searching on sk_function_parms. + + PR c++/48869 + * method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument, + pass it down to locate_fn_flags. + * cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes. + * semantics.c (cxx_omp_create_clause_info): Adjust callers. + * cp-gimplify.c: Include splay-tree.h. + (splay_tree_compare_decl_uid, omp_var_to_track, + omp_cxx_notice_variable): New functions. + (struct cp_genericize_omp_taskreg): New type. + (struct cp_genericize_data): Add omp_ctx field. + (cp_genericize_r): Attempt to determine implicitly determined + firstprivate class type variables. + (cp_genericize): Clear omp_ctx. + * Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H). + +2011-05-18 Jason Merrill + + PR c++/48948 + PR c++/49015 + * class.c (finalize_literal_type_property): Do check + for constexpr member functions of non-literal class. + (finish_struct): Don't call check_deferred_constexpr_decls. + * cp-tree.h: Don't declare it. + (DECL_DEFERRED_CONSTEXPR_CHECK): Remove. + * decl.c (grok_special_member_properties): Don't check it + (grokfnedcl): Don't call validate_constexpr_fundecl. + (start_preparsed_function): Do call it. + * pt.c (tsubst_decl): Don't call it. + (instantiate_class_template_1): Don't call + check_deferred_constexpr_decls. + * semantics.c (literal_type_p): Check for any incompleteness. + (ensure_literal_type_for_constexpr_object): Likewise. + (is_valid_constexpr_fn): Revert deferral changes. + (validate_constexpr_fundecl): Likewise. + (register_constexpr_fundef): Likewise. + (check_deferred_constexpr_decls): Remove. + +2011-05-16 Jason Merrill + + PR c++/48969 + * pt.c (deduction_tsubst_fntype): Use a VEC initially. + +2011-05-15 Paolo Carlini + + * cxx-pretty-print.c: Update comment. + * semantics.c (trait_expr_value, finish_trait_expr): + Reorder the cases. + * parser.c (cp_parser_primary_expression): Likewise. + +2011-05-15 Jonathan Wakely + + PR c++/48994 + * parser.c (cp_parser_perform_range_for_lookup): Call complete_type. + +2011-05-13 Ville Voutilainen + + Implement final on class. + * class.c (check_bases): Diagnose derivation from a final class. + * cp-tree.h (lang_type_class): Add is_final and adjust dummy. + (CLASSTYPE_FINAL): New. + * parser.c (cp_parser_class_head): Parse class-virt-specifier, set + CLASSTYPE_FINAL. + * pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL. + +2011-05-13 Jason Merrill + + PR c++/48969 + * pt.c (deduction_tsubst_fntype): New. + (fn_type_unification): Use it. + (init_template_processing): Initialize hash table. + (print_template_statistics): Print hash table stats. + + * call.c (build_op_call): Use timevar_cond_start/stop. + (build_user_type_conversion): Likewise. + +2011-05-12 Jason Merrill + + * cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New. + * semantics.c (validate_constexpr_fundecl): Set it. + (check_deferred_constexpr_decls): Clear it. + (register_constexpr_fundef): Make sure it isn't set. + * decl.c (grok_special_member_properties): Check it. + +2011-05-11 Jason Merrill + + PR c++/48948 + * semantics.c (validate_constexpr_fundecl): Defer checking if + an argument type is being defined. + (is_valid_constexpr_fn): Add defer_ok parm. + (cxx_eval_call_expression): Adjust. + (check_deferred_constexpr_decls): New. + (literal_type_p): Make sure type isn't being defined. + (ensure_literal_type_for_constexpr_object): Handle type being defined. + * cp-tree.h: Declare check_deferred_constexpr_decls. + * decl.c (grokfndecl): Call validate_constexpr_fundecl here. + (start_preparsed_function, cp_finish_decl): Not here. + * class.c (finalize_literal_type_property): Don't call + validate_constexpr_fundecl. + (finish_struct): Call check_deferred_constexpr_decls. + * pt.c (tsubst_decl): Call validate_constexpr_fundecl. + (instantiate_class_template): Call check_deferred_constexpr_decls. + + * semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO + rather than DECL_TEMPLATE_INSTANTIATION. + (cxx_eval_call_expression): Likewise. + + * semantics.c (register_constexpr_fundef): Add to hash table here. + (validate_constexpr_fundecl): Not here. + + * decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once. + + * pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p, + do call maybe_constant_value in C++0x mode. + * semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL. + + PR c++/48745 + * pt.c (value_dependent_expr_p): Handle CONSTRUCTOR. + +2011-05-11 Nathan Froyd + + * cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use + TYPE_VALUES_RAW. + (UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise. + (DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise. + (TEMPLATE_TYPE_PARM_INDEX): Likewise. + +2011-05-10 Jason Merrill + + PR c++/48930 + * class.c (type_build_ctor_call): New. + * cp-tree.h: Declare it. + * decl.c (check_initializer): Use it instead of + TYPE_NEEDS_CONSTRUCTING. + * init.c (build_value_init, build_value_init_noctor): Likewise. + (perform_member_init, expand_aggr_init_1, build_new_1): Likewise. + (build_vec_init): Likewise. + * typeck2.c (process_init_constructor_array): Likewise. + (process_init_constructor_record): Likewise. + + PR c++/48736 + * pt.c (tsubst_copy_and_build): Handle substitution of a pack + expansion producing another expansion. + +2011-05-10 Ville Voutilainen + + Fixes for override/final. + * class.c (check_for_override): Diagnose final on a nonvirtual + member function, diagnose override for a virtual with no matching + override. Don't fiddle around with DECL_VINDEX. + +2011-05-10 Nathan Froyd + + * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand. + * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED. + * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new + operand of EXPR_PACK_EXPANSION. + (cp_tree_operand_length): Declare. + * tree.c (cp_tree_operand_length): Define. + (cp_tree_equal): Call it. + * pt.c (value_dependent_expr_P): Likewise. + * mangle.c (write_expression): Likewise. + 2011-05-09 Paolo Carlini PR c++/48737