X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=33e7519b71042c2f617ef915f16ebbf70131bc19;hb=6e6e37a11f857096a9d81a8a59f9cb031aab4ca8;hp=afe99a280a8500636754020b047a11ca1acfb0cb;hpb=9a1a5574e537279cb6e0ac2846704bea5537a4ef;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index afe99a280a8..33e7519b710 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,374 @@ +2013-05-09 Jason Merrill + + PR c++/57047 + * semantics.c (cxx_fold_indirect_ref): Fix thinko. + +2013-04-21 Eric Botcazou + + * parser.c (cp_parser_late_return_type_opt): Fix C++ism. + +2013-04-15 Jason Merrill + + PR c++/56388 + * semantics.c (insert_capture_proxy): Just use index 1 in the + stmt_list_stack. + +2013-04-11 Release Manager + + * GCC 4.7.3 released. + +2013-04-03 Jakub Jelinek + + PR debug/56819 + * tree.c (strip_typedefs): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT + from args to new_args. + (strip_typedefs_expr): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT from t to + r instead of doing {S,G}ET_NON_DEFAULT_TEMPLATE_ARGS_COUNT. + +2013-04-01 Jason Merrill + + PR c++/56794 + * parser.c (cp_parser_range_for): Don't try to do auto deduction + in a template if the type of the range is incomplete. + +2013-03-29 Jason Merrill + + PR c++/56774 + PR c++/35722 + * pt.c (unify_pack_expansion): Fix indexing. + +2013-03-23 Jason Merrill + + PR c++/54277 + * semantics.c (lambda_capture_field_type): Don't build a + magic decltype for pointer types. + (lambda_proxy_type): Likewise. + (finish_non_static_data_member): Get the quals from + the object. + +2013-03-20 Jason Merrill + + PR c++/56646 + * parser.c (cp_parser_late_return_type_opt): Save and restore + current_class_ptr/ref. + +2013-03-14 Jason Merrill + + PR c++/56614 + * decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again. + +2013-03-14 Jakub Jelinek + + PR c++/56403 + * init.c (build_zero_init_1): Use RECORD_OR_UNION_CODE_P instead + of CLASS_TYPE_P. + +2013-03-09 Paolo Carlini + + PR c++/56534 + * parser.c (cp_parser_elaborated_type_specifier): Don't call + check_elaborated_type_specifier when TREE_CODE (decl) != TYPE_DECL. + * decl.c (check_elaborated_type_specifier): Tidy. + +2013-03-06 Jakub Jelinek + + PR c++/56543 + * tree.c (strip_typedefs): Don't copy args if they are NULL. + +2013-02-22 Jason Merrill + + PR c++/40405 + * pt.c (push_template_decl_real): Set DECL_INTERFACE_KNOWN + if we got the wrong number of template parms. + + PR c++/56395 + * tree.c (strip_typedefs): Strip typedefs from TYPENAME_TYPE template + args. + +2013-02-19 Jakub Jelinek + + Backported from mainline + 2013-02-07 Jakub Jelinek + + PR c++/56241 + * init.c (build_vec_init): Don't append NULL values into new_vec. + (build_zero_init_1): Don't push anything into v if recursive call + returned NULL_TREE. + (build_value_init_noctor): Don't push anything into v if + build_value_init call returned NULL_TREE. + + PR c++/56239 + * parser.c (cp_parser_token_starts_cast_expression): Renamed to... + (cp_parser_tokens_start_cast_expression): ... this. Change parameter + to cp_parser *, call cp_lexer_peek_token first. For CPP_OPEN_PAREN, + return true only if 2nd token isn't CPP_CLOSE_PAREN. + (cp_parser_cast_expression): Adjust caller. + + PR c++/56237 + * decl.c (push_local_name): Look at DECL_DISCRIMINATOR (t) + only if DECL_DISCRIMINATOR_SET_P (t) rather than just + DECL_LANG_SPECIFIC (t). + +2013-02-15 Jason Merrill + + PR c++/54276 + * semantics.c (finish_id_expression): Also return the identifier + for an outer local static. + + PR c++/52026 + * semantics.c (finish_id_expression): In a template, return + the identifier for a constant variable. + + PR c++/55710 + * semantics.c (maybe_add_lambda_conv_op): Mark static thunk + TREE_USED. + + PR c++/56135 + * pt.c (tsubst_copy_and_build): Don't forget any new + captures that arose from use of dependent names. + +2013-02-12 Jason Merrill + + PR c++/56291 + * semantics.c (sort_constexpr_mem_initializers): Handle + vptr out of order. + +2013-02-11 Jason Merrill + + PR c++/56268 + * semantics.c (classtype_has_nothrow_assign_or_copy_p): Call + maybe_instantiate_noexcept. + +2013-02-09 Jason Merrill + + PR c++/56247 + * pt.c (eq_specializations): Set comparing_specializations. + * tree.c (cp_tree_equal): Check it. + * cp-tree.h: Declare it. + +2013-02-05 Jason Merrill + + PR c++/54122 + * tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for + METHOD_TYPE. + +2013-02-01 Jakub Jelinek + + Backported from mainline + 2012-12-13 Jakub Jelinek + + PR c++/55652 + * typeck2.c (merge_exception_specifiers): Don't call operand_equal_p + if noex is NULL. + + 2012-12-06 Jakub Jelinek + + PR c++/54207 + * except.c (build_noexcept_spec): Avoid direct comparison + with boolean_true_node or boolean_false_node, instead use + operand_equal_p and/or INTEGER_CST check. + * pt.c (tsubst_exception_specification): Likewise. + * typeck2.c (merge_exception_specifiers): Likewise. + + 2012-12-01 Jakub Jelinek + + PR c++/55542 + * pt.c (make_ith_pack_parameter_name): Return NULL if + name is NULL. + (tsubst_decl): Call make_ith_pack_parameter_name even if + DECL_NAME is NULL. + + 2012-11-23 Jakub Jelinek + + PR c++/54046 + * cp-objcp-common.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Redefine. + * cp-objcp-common.c (cxx_block_may_fallthru): New function. + * cp-tree.h (cxx_block_may_fallthru): New prototype. + +2013-01-25 Jason Merrill + + PR c++/56104 + * typeck.c (get_member_function_from_ptrfunc): Don't fold + POINTER_PLUS_EXPR. + +2013-01-22 Jason Merrill + + * call.c (type_has_extended_temps): Fix C++ism. + + PR c++/53650 + * call.c (type_has_extended_temps): New. + * cp-tree.h: Declare it. + * decl.c (check_initializer): Use build_aggr_init for arrays + if it is false. + * init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic. + + PR c++/56071 + * pt.c (maybe_instantiate_noexcept): Don't defer access checks. + +2013-01-21 Jason Merrill + + PR c++/56059 + * tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default + template args count. + +2013-01-09 Jason Merrill + + PR c++/55893 + * decl.c (cp_finish_decl): Clear TREE_READONLY if the variable + needs destruction. + +2013-01-08 Joel Brobecker + + * parser.c (cp_parser_initializer_list): Move declaration + of variable non_const to start of lexical block. + +2013-01-04 Jason Merrill + + PR c++/55877 + * decl.c (reset_type_linkage, bt_reset_linkage): New. + (grokdeclarator): Use reset_type_linkage. + * name-lookup.c (binding_table_foreach): Handle null table. + * tree.c (decl_anon_ns_mem_p): Check TYPE_MAIN_DECL, not TYPE_NAME. + +2013-01-03 Jason Merrill + + PR c++/55419 + PR c++/55753 + * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch + TREE_CONSTANT. + + PR c++/55842 + * semantics.c (trait_expr_value): Call maybe_instantiate_noexcept. + + PR c++/55856 + * semantics.c (build_data_member_initialization): Handle DECL_EXPR. + +2013-01-02 Jason Merrill + + PR c++/54325 + * call.c (build_new_method_call_1): Don't use build_value_init for + user-provided default constructors. + + PR c++/55032 + PR c++/55245 + * tree.c (build_cplus_array_type): Copy layout information + to main variant if necessary. + +2012-12-19 Jason Merrill + + PR c++/55724 + * pt.c (type_unification_real): Re-combine post-deduction loops. + +2012-12-11 Jason Merrill + + PR c++/54883 + * decl2.c (min_vis_r): Handle anon visibility for enums. + +2012-12-11 Jakub Jelinek + + PR c++/55643 + * expr.c (mark_exp_read): Handle FLOAT_EXPR similarly to NOP_EXPR. + +2012-12-07 Jason Merrill + + PR c++/55419 + * tree.c (build_target_expr): Don't set TREE_CONSTANT. + +2012-12-07 Matthias Klose + + * tree.c (build_aggr_init_expr): Add parameter name, mark as unused. + +2012-12-06 Jason Merrill + + PR c++/54325 + * tree.c (build_aggr_init_expr): Don't check for abstract class. + (build_cplus_new): Check here instead. + + PR c++/55058 + * pt.c (tsubst): Keep the quals when looking through a typedef. + + PR c++/55249 + * tree.c (build_vec_init_elt): Use the type of the initializer. + + PR c++/54744 + * pt.c (resolve_typename_type): Check TYPENAME_IS_RESOLVING_P on scope. + + PR c++/54947 + * parser.c (cp_parser_initializer_list): Don't require an + expression in [] to be constant until we know it's a C99 + designator. + + PR c++/55015 + PR c++/53821 + * semantics.c (maybe_add_lambda_conv_op): Revert earlier change. + * decl.c (start_preparsed_function): Make local class methods comdat + in templates, too. + +2012-11-29 Jason Merrill + + PR c++/53137 + * pt.c (tsubst_expr) [DECL_EXPR]: Set LAMBDA_EXPR_THIS_CAPTURE here. + (tsubst_copy_and_build) [LAMBDA_EXPR]: And clear it here. + (instantiate_class_template_1): Not here. + + PR c++/53862 + * pt.c (tsubst_arg_types): Add "end" parameter. + (check_undeduced_parms): Use it. + + PR c++/53039 + * pt.c (arg_from_parm_pack_p): Go back to using same_type_p or + cp_tree_equal. + + * cp-tree.h (TEMPLATE_PARM_NUM_SIBLINGS): Remove. + (struct template_parm_index_s): Remove num_siblings. + * pt.c (fixup_template_parms, fixup_template_parm_index): Remove. + (fixup_template_type_parm_type): Remove. + (build_template_parm_index): Remove num_siblings parm. + (process_template_parm): Likewise. + * parser.c (cp_parser_template_parameter_list): Adjust. + * tree.c (cp_tree_equal): Don't compare num_siblings. + * typeck.c (comp_template_parms_position): Likewise. + + PR c++/50852 + PR c++/53039 + * tree.c (strip_typedefs_expr): New. + * cp-tree.h: Declare it. + * pt.c (convert_template_argument, unify): Use it. + * parser.c (cp_parser_template_declaration_after_export): Don't call + fixup_template_parms. + +2012-11-29 Kai Tietz + + PR target/53912 + * class.c (dump_class_hierarchy_r): Cast from pointer via uintptr_t. + (dump_vtable): Likewise. + +2012-11-24 Paolo Carlini + + PR c++/55446 + * init.c (build_vec_init): Do not early return error_mark_mode + when integer_all_onesp (maxindex). + +2012-11-05 Jakub Jelinek + + Backported from mainline + 2012-10-23 Jakub Jelinek + + PR c++/54988 + * decl2.c (cplus_decl_attributes): Don't return early + if attributes is NULL. + +2012-10-26 Paolo Carlini + + PR c++/54984 + * init.c (build_new): Don't turn a null *init into a pointer to + empty vector orig_init. + +2012-10-08 Jakub Jelinek + + PR c++/54858 + * tree.c (cp_tree_equal): Handle FIELD_DECL. + 2012-10-03 Jakub Jelinek PR c++/54777