Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / gcc / cp / ChangeLog
index 14da63e..ffc0ccd 100644 (file)
-2013-04-11  Release Manager
+2013-05-31  Release Manager
 
-       * GCC 4.7.3 released.
+       * GCC 4.8.1 released.
 
-2013-04-03  Jakub Jelinek  <jakub@redhat.com>
-
-       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  <jason@redhat.com>
-
-       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  <jason@redhat.com>
-
-       PR c++/56774
-       PR c++/35722
-       * pt.c (unify_pack_expansion): Fix indexing.
-
-2013-03-23  Jason Merrill  <jason@redhat.com>
-
-       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  <jason@redhat.com>
-
-       PR c++/56646
-       * parser.c (cp_parser_late_return_type_opt): Save and restore
-       current_class_ptr/ref.
-
-2013-03-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/56614
-       * decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again.
-
-2013-03-14  Jakub Jelinek  <jakub@redhat.com>
-
-       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  <paolo.carlini@oracle.com>
-
-       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  <jakub@redhat.com>
-
-       PR c++/56543
-       * tree.c (strip_typedefs): Don't copy args if they are NULL.
-
-2013-02-22  Jason Merrill  <jason@redhat.com>
-
-       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  <jakub@redhat.com>
-
-       Backported from mainline
-       2013-02-07  Jakub Jelinek  <jakub@redhat.com>
-
-       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  <jason@redhat.com>
-
-       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.
+2013-05-24  Jason Merrill  <jason@redhat.com>
 
-       PR c++/55710
-       * semantics.c (maybe_add_lambda_conv_op): Mark static thunk
-       TREE_USED.
+       PR c++/57388
+       * tree.c (build_ref_qualified_type): Clear
+       FUNCTION_RVALUE_QUALIFIED for lvalue ref-qualifier.
 
-       PR c++/56135
-       * pt.c (tsubst_copy_and_build): Don't forget any new
-       captures that arose from use of dependent names.
+       PR c++/57016
+       * pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Only check type2
+       if there is one.
 
-2013-02-12  Jason Merrill  <jason@redhat.com>
+2013-05-20  Jason Merrill  <jason@redhat.com>
 
-       PR c++/56291
-       * semantics.c (sort_constexpr_mem_initializers): Handle
-       vptr out of order.
+       PR c++/57325
+       * tree.c (build_cplus_array_type): Copy layout info if element
+       type is complete.
 
-2013-02-11  Jason Merrill  <jason@redhat.com>
+       PR c++/57317
+       * decl2.c (determine_visibility): Use PRIMARY_TEMPLATE_P to decide
+       whether a template has its own args.
 
-       PR c++/56268
-       * semantics.c (classtype_has_nothrow_assign_or_copy_p): Call
-       maybe_instantiate_noexcept.
+2013-05-16  Jason Merrill  <jason@redhat.com>
 
-2013-02-09  Jason Merrill  <jason@redhat.com>
+       PR c++/57279
+       * decl.c (grokdeclarator): Allow member function qualifiers in
+       TYPENAME context in C++11 mode.
 
-       PR c++/56247
-       * pt.c (eq_specializations): Set comparing_specializations.
-       * tree.c (cp_tree_equal): Check it.
-       * cp-tree.h: Declare it.
+2013-05-16  Dodji Seketeli  <dodji@redhat.com>
 
-2013-02-05  Jason Merrill  <jason@redhat.com>
+       PR c++/56782 - Regression with empty pack expansions
+       * pt.c (use_pack_expansion_extra_args_p): When at least a
+       parameter pack has an empty argument pack, and another parameter
+       pack has no argument pack at all, use the PACK_EXPANSION_EXTRA
+       mechanism.
 
-       PR c++/54122
-       * tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for
-       METHOD_TYPE.
+2013-05-14  Jason Merrill  <jason@redhat.com>
 
-2013-02-01  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/57243
+       * parser.c (cp_parser_range_for): Call complete_type.
 
-       Backported from mainline
-       2012-12-13  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/57041
+       * pt.c (tsubst_copy_and_build): Don't recur into a designator.
 
-       PR c++/55652
-       * typeck2.c (merge_exception_specifiers): Don't call operand_equal_p
-       if noex is NULL.
+2013-05-13  Jason Merrill  <jason@redhat.com>
 
-       2012-12-06  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/56998
+       * semantics.c (potential_constant_expression_1): Make sure the
+       called function is potentially constant.
 
-       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.
+       PR c++/57041
+       * decl.c (reshape_init_class): Handle error_mark_node.
 
-       2012-12-01  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/57254
+       * typeck.c (merge_types): Propagate ref-qualifier
+       in METHOD_TYPE case.
 
-       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.
+       PR c++/57253
+       * decl.c (grokdeclarator): Apply ref-qualifier
+       in the TYPENAME case.
 
-       2012-11-23  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/57252
+       * decl.c (decls_match): Compare ref-qualifiers.
 
-       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.
+       PR c++/57196
+       * pt.c (convert_template_argument): Use dependent_template_arg_p,
+       not uses_template_parms.
 
-2013-01-25  Jason Merrill  <jason@redhat.com>
+2013-05-10  Jason Merrill  <jason@redhat.com>
 
-       PR c++/56104
-       * typeck.c (get_member_function_from_ptrfunc): Don't fold
-       POINTER_PLUS_EXPR.
+       PR c++/57047
+       * semantics.c (cxx_fold_indirect_ref): Fix thinko.
 
-2013-01-22  Jason Merrill  <jason@redhat.com>
+2013-05-09  Jason Merrill  <jason@redhat.com>
 
-       * call.c (type_has_extended_temps): Fix C++ism.
+       PR c++/57222
+       * pt.c (lookup_template_class_1): Handle getting a template
+       template parameter as D1.
 
-       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.
+2013-05-08  Jason Merrill  <jason@redhat.com>
 
-       PR c++/56071
-       * pt.c (maybe_instantiate_noexcept): Don't defer access checks.
+       PR c++/57068
+       * decl.c (grokdeclarator): Warn about ref-qualifiers here.
+       * parser.c (cp_parser_ref_qualifier_seq_opt): Not here.
+       * error.c (maybe_warn_cpp0x): s/0x/11/.
 
-2013-01-21  Jason Merrill  <jason@redhat.com>
+2013-05-08  Marc Glisse  <marc.glisse@inria.fr>
 
-       PR c++/56059
-       * tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default
-       template args count.
+       * typeck.c (cp_build_binary_op): Call save_expr before
+       build_vector_from_val.
 
-2013-01-09  Jason Merrill  <jason@redhat.com>
+2013-05-06  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       PR c++/55893
-       * decl.c (cp_finish_decl): Clear TREE_READONLY if the variable
-       needs destruction.
+       PR c++/57183
+       * decl.c (cp_finish_decl): After do_auto_deduction copy the
+       qualifers with cp_apply_type_quals_to_decl.
 
-2013-01-08  Joel Brobecker  <brobecker@adacore.com>
+2013-05-01  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       * parser.c (cp_parser_initializer_list): Move declaration
-       of variable non_const to start of lexical block.
+       PR c++/57092
+       * semantics.c (finish_decltype_type): Handle instantiated template
+       non-type arguments.
 
-2013-01-04  Jason Merrill  <jason@redhat.com>
+2013-04-29  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       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.
+       PR c++/56450
+       * semantics.c (finish_decltype_type): Handle COMPOUND_EXPR.
 
-2013-01-03  Jason Merrill  <jason@redhat.com>
+2013-04-25  Jason Merrill  <jason@redhat.com>
 
-       PR c++/55419
-       PR c++/55753
-       * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch
-       TREE_CONSTANT.
+       PR c++/57064
+       * call.c (add_function_candidate): Strip ref-to-ptr conversion.
 
-       PR c++/55842
-       * semantics.c (trait_expr_value): Call maybe_instantiate_noexcept.
+       PR c++/56859
+       * typeck.c (cxx_alignas_expr): Handle value-dependence properly.
 
-       PR c++/55856
-       * semantics.c (build_data_member_initialization): Handle DECL_EXPR.
+       PR c++/50261
+       * init.c (perform_member_init): Call reshape_init.
 
-2013-01-02  Jason Merrill  <jason@redhat.com>
+2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       PR c++/54325
-       * call.c (build_new_method_call_1): Don't use build_value_init for
-       user-provided default constructors.
+       PR c++/56970
+       * init.c (build_offset_ref): Add tsubst_flags_t parameter.
+       * semantics.c (finish_qualified_id_expr): Likewise.
+       (finish_id_expression): Update.
+       * typeck.c (cp_build_addr_expr_1): Likewise.
+       * pt.c (tsubst_qualified_id, resolve_nondeduced_context): Likewise.
+       * cp-tree.h: Update declarations.
 
-       PR c++/55032
-       PR c++/55245
-       * tree.c (build_cplus_array_type): Copy layout information
-       to main variant if necessary.
+2013-04-17  Jason Merrill  <jason@redhat.com>
 
-2012-12-19  Jason Merrill  <jason@redhat.com>
+       DR 941
+       * decl.c (duplicate_decls): Don't propagate DECL_DELETED_FN to
+       template specializations.
 
-       PR c++/55724
-       * pt.c (type_unification_real): Re-combine post-deduction loops.
+2013-04-15  Jason Merrill  <jason@redhat.com>
 
-2012-12-11  Jason Merrill  <jason@redhat.com>
+       PR c++/52748
+       * pt.c (tsubst) [DECLTYPE_TYPE]: If ~id is an expression
+       rather than a destructor name, it isn't an unqualified-name.
+       (tsubst_copy_and_build): Pass down decltype_flag to operator
+       handling code, too.
 
-       PR c++/54883
-       * decl2.c (min_vis_r): Handle anon visibility for enums.
+       PR c++/56388
+       * semantics.c (insert_capture_proxy): Just use index 1 in the
+       stmt_list_stack.
 
-2012-12-11  Jakub Jelinek  <jakub@redhat.com>
+2013-04-11  Jason Merrill  <jason@redhat.com>
 
-       PR c++/55643
-       * expr.c (mark_exp_read): Handle FLOAT_EXPR similarly to NOP_EXPR.
+       PR c++/52748
+       * parser.c (complain_flags): New.
+       (cp_parser_postfix_expression): Use it.
+       (cp_parser_unary_expression): Likewise.
+       (cp_parser_binary_expression): Likewise.
+       (cp_parser_assignment_expression): Likewise.
+       (cp_parser_expression): Likewise.
+       (cp_parser_postfix_open_square_expression): Take decltype_p.
+       (cp_parser_builtin_offsetof): Adjust.
+       (cp_convert_range_for): Pass complain to finish_unary_op_expr.
+       * decl2.c (grok_array_decl): Add decltype_p parm.
+       * cp-tree.h: Adjust prototype.
+       * semantics.c (finish_unary_op_expr): Add complain parm.
 
-2012-12-07  Jason Merrill  <jason@redhat.com>
+2013-04-11  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/55419
-       * tree.c (build_target_expr): Don't set TREE_CONSTANT.
+       PR c++/56895
+       * call.c (null_ptr_cst_p): Call fold_non_dependent_expr_sfinae before
+       calling maybe_constant_value for C++98.
 
-2012-12-07  Matthias Klose  <doko@ubuntu.com>
+2013-04-11  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       * tree.c (build_aggr_init_expr): Add parameter name, mark as unused.
+       PR c++/56913
+       * typeck2.c (build_m_component_ref): Protect error calls with
+       (complain & tf_error).
 
-2012-12-06  Jason Merrill  <jason@redhat.com>
+2013-04-10  Jakub Jelinek  <jakub@redhat.com>
 
-       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  <jason@redhat.com>
-
-       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.
+       PR c++/56895
+       * typeck.c (cp_build_binary_op): Call fold_non_dependent_expr_sfinae
+       first before calling maybe_constant_value for warn_for_div_by_zero
+       or invalid shift count warning purposes.
 
-2012-11-29  Kai Tietz  <ktietz@redhat.com>
+2013-04-06  Jason Merrill  <jason@redhat.com>
 
-       PR target/53912
-       * class.c (dump_class_hierarchy_r): Cast from pointer via uintptr_t.
-       (dump_vtable): Likewise.
+       * parser.c (cp_parser_std_attribute): Treat [[noreturn]] like GNU
+       noreturn attribute.
 
-2012-11-24  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-04-03  Jason Merrill  <jason@redhat.com>
 
-       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  <jakub@redhat.com>
-
-       Backported from mainline
-       2012-10-23  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/54988
-       * decl2.c (cplus_decl_attributes): Don't return early
-       if attributes is NULL.
-
-2012-10-26  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       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  <jakub@redhat.com>
-
-       PR c++/54858
-       * tree.c (cp_tree_equal): Handle FIELD_DECL.
-
-2012-10-03  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/54777
-       * semantics.c (cxx_eval_constant_expression) <case COMPOUND_EXPR>: If
-       not ignoring the second operand, pass the original second operand
-       and not one with stripped nops to cxx_eval_constant_expression.
-
-2012-09-20  Release Manager
-
-       * GCC 4.7.2 released.
-
-2012-09-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53661
-       * typeck2.c (check_narrowing): Avoid false positives on conversion
-       from enumeral type.
-
-2012-09-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53839
-       * semantics.c (cxx_eval_indirect_ref): If we aren't looking for an
-       address, make sure the value is constant.
-
-2012-09-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/54511
-       * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P.
-
-2012-09-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53836
-       * pt.c (value_dependent_expression_p): A TREE_LIST initializer must
-       be dependent.
-
-2012-09-10  Jason Merrill  <jason@redhat.com>
-
-       PR c++/54506
-       * decl.c (move_signature_fn_p): Split out from move_fn_p.
-       * method.c (process_subob_fn): Use it.
-       * cp-tree.h: Declare it.
+       * cp-tree.h (FUNCTION_OR_METHOD_TYPE_CHECK): Remove.
+       (FUNCTION_REF_QUALIFIED): Use FUNC_OR_METHOD_CHECK instead.
+       (FUNCTION_RVALUE_QUALIFIED): Likewise.
 
-       PR c++/54341
-       PR c++/54253
-       * semantics.c (sort_constexpr_mem_initializers): New.
-       (build_constexpr_constructor_member_initializers): Use it.
-       (cx_check_missing_mem_inits): Skip artificial fields.
-       * init.c (expand_aggr_init_1): Don't zero out a class
-       with no data.
-
-       PR c++/54086
-       * decl.c (grokdeclarator): Allow const and constexpr together.
-
-2012-08-31  Ollie Wild  <aaw@google.com>
-
-       PR c++/54197
-       * call.c (extend_ref_init_temps_1): Handle COMPOUND_EXPR trees.
-
-2012-07-20  Jason Merrill  <jason@redhat.com>
-
-       PR c++/54038
-       * tree.c (build_cplus_array_type): Use build_cplus_array_type to build
-       canonical array type rather than mess with its TYPE_*_VARIANT.
-
-2012-07-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/54026
-       * typeck.c (cp_apply_type_quals_to_decl): Check COMPLETE_TYPE_P.
-
-2012-07-18  Jason Merrill  <jason@redhat.com>
-
-       * method.c (process_subob_fn): Make sure no_implicit_p is non-null
-       before trying to store through it.
-
-2012-07-17  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53995
-       * decl.c (finish_enum_value_list): Only call
-       insert_late_enum_def_into_classtype_sorted_fields in class scope.
-
-2012-07-17  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53989
-       * tree.c (build_cplus_array_type): Also add TYPE_CANONICAL
-       to the list of variants.
-
-2012-07-17  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53549
-       * parser.c (cp_parser_class_head): Call xref_basetypes here.
-       (cp_parser_class_specifier_1): Not here.
-       * pt.c (tsubst_decl) [USING_DECL]: Check uses_template_parms
-       as well as DECL_DEPENDENT_P.
-
-2012-07-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53953
-       * method.c (synthesized_method_walk): Initialize no_implicit_p sooner.
-
-2012-07-10  Jason Merrill  <jason@redhat.com>
-
-       DR 1402
-       PR c++/53733
-       * cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New.
-       (struct lang_decl_fn): Add suppress_implicit_decl field.
-       * method.c (implicitly_declare_fn): Check it.
-       (process_subob_fn): Add no_implicit_p parm.
-       (walk_field_subobs, synthesized_method_walk): Likewise.
-       (maybe_explain_implicit_delete): Adjust.
-       (explain_implicit_non_constexpr): Adjust.
-
-       * method.c (synthesized_method_walk): Cleanups don't affect the EH
-       spec either.
-
-2012-07-02  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53816
-       * class.c (resolves_to_fixed_type_p): Check uses_template_parms
-       (current_function_decl) instead of processing_template_decl.
-
-       PR c++/53821
-       * semantics.c (maybe_add_lambda_conv_op): Don't set
-       DECL_INTERFACE_KNOWN.
-
-2012-06-27  Fabien ChĂȘne  <fabien@gcc.gnu.org>
-
-       PR c++/51214
-       * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
-       Declare.
-       * class.c (insert_into_classtype_sorted_fields): New.
-       (add_enum_fields_to_record_type): New.
-       (count_fields): Adjust the comment.
-       (add_fields_to_record_type): Likewise.
-       (finish_struct_1): Move the code that inserts the fields for the
-       sorted case, into insert_into_classtype_sorted_fields, and call
-       it.
-       (insert_late_enum_def_into_classtype_sorted_fields): Define.
-       * decl.c (finish_enum_value_list): Call
-       insert_late_enum_def_into_classtype_sorted_fields if a late enum
-       definition is encountered.
-
-2012-06-25  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53498
-       PR c++/53305
-       * pt.c (tsubst_pack_expansion): Copy before dummy tsubst.
-
-       PR c++/52988
-       * typeck.c (decay_conversion): Don't discard side-effects from
-       expressions of nullptr_t.
-
-       PR c++/53202
-       * semantics.c (build_data_member_initialization): Always keep
-       initializer for empty base.
-       (cxx_eval_bare_aggregate): Discard it here.
-
-2012-06-25  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/53594
-       * class.c (check_bases_and_members): Avoid -Wuninitialized
-       diagnostics for non-static const members or references if they
-       use NSDMI.
-
-2012-06-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/53651
-       * name-lookup.c (constructor_name_p): Don't try to look at the
-       name of a DECLTYPE_TYPE.
-
-       Reapply:
-       PR c++/53137
-       * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
-       (instantiate_decl): Don't push_to_top_level for local class methods.
-       (instantiate_class_template_1): Or for local classes.
-
-       PR c++/53599
-       * pt.c (lookup_template_class_1): Use ts_global.
-
-2012-06-14  Richard Guenther  <rguenther@suse.de>
-
-       Backport from mainline
-       2012-06-11  Richard Guenther  <rguenther@suse.de>
-
-       PR c++/53616
-       * mangle.c (write_array_type): Use double-ints for array domain
-       arithmetic.
-
-2012-06-14  Richard Guenther  <rguenther@suse.de>
-
-       Backport from mainline
-       2012-06-06  Fabien ChĂȘne  <fabien@gcc.gnu.org>
-
-       PR c++/52841
-       * parser.c (cp_parser_alias_declaration): Return earlier
-       if an error occured.
+2013-04-03  Jakub Jelinek  <jakub@redhat.com>
 
-2012-06-14  Release Manager
+       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.
 
-       * GCC 4.7.1 released.
+2013-04-02  Jason Merrill  <jason@redhat.com>
 
-2012-06-12  Jason Merrill  <jason@redhat.com>
+       PR c++/56821
+       * mangle.c (write_function_type): Mangle ref-qualifier.
+       (write_nested_name): Likewise.
+       (canonicalize_for_substitution): Preserve ref-qualifier.
+       (write_type): Likewise.
 
-       PR c++/53599
-       Revert:
-       PR c++/53137
-       * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
-       (instantiate_decl): Don't push_to_top_level for local class methods.
-       (instantiate_class_template_1): Or for local classes.
+2013-04-01  Paolo Carlini  <paolo.carlini@oracle.com>
 
-2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
+       PR c++/55951
+       * decl.c (check_array_designated_initializer): Handle CONST_DECL
+       as ce->index.
 
-       PR c++/53524
-       * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
-       to control enumeral mismatch in conditional expression too.
+2013-04-01  Jason Merrill  <jason@redhat.com>
 
-2012-06-01  Jason Merrill  <jason@redhat.com>
+       PR c++/56772
+       * init.c (build_new): Don't try to process an array initializer
+       at template definition time.
 
-       PR c++/52973
-       * parser.c (cp_parser_class_head): Apply attributes here.
-       * semantics.c (begin_class_definition): Not here.
-       * cp-tree.h: Adjust.
+2013-04-01  Jason Merrill  <jason@redhat.com>
 
-       PR c++/52725
-       * parser.c (cp_parser_binary_expression): Bail early if we're parsing
-       tentatively and the LHS has a parse error.
+       PR c++/56793
+       * typeck.c (finish_class_member_access_expr): Handle enum scope.
 
-2012-06-01  Jason Merrill  <jason@redhat.com>
+2013-04-01  Jason Merrill  <jason@redhat.com>
 
-       PR c++/53137
-       * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
-       (instantiate_decl): Don't push_to_top_level for local class methods.
-       (instantiate_class_template_1): Or for local classes.
+       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.
 
-       PR c++/53484
-       * pt.c (do_auto_deduction): Don't try to deduce from a
-       type-dependent initializer.
+2013-04-01  Bronek Kozicki <b.kozicki@gmail.com>
+           Jason Merrill  <jason@redhat.com>
+
+       Implement N2439 (ref-qualifiers for 'this')
+       * cp-tree.h (FUNCTION_REF_QUALIFIED): New.
+       (FUNCTION_RVALUE_QUALIFIED): New.
+       (FUNCTION_OR_METHOD_TYPE_CHECK): New.
+       (cpp0x_warn_str): Add CPP0X_REF_QUALIFIER.
+       (cp_ref_qualifier): New enum.
+       (cp_declarator): Add ref_qualifier.
+       * parser.c (cp_parser_ref_qualifier_seq_opt): New.
+       (cp_parser_direct_declarator): Use it.
+       (make_call_declarator): Adjust.
+       (cp_parser_lambda_declarator_opt): Adjust.
+       * call.c (add_function_candidate): Handle ref-qualifier overload
+       resolution semantics.
+       (standard_conversion): Adjust.
+       * class.c (add_method, same_signature_p): Compare ref-qualifiers.
+       * decl.c (grokdeclarator): Handle ref-qualifiers.
+       (grokfndecl): Check for invalid ref-qualifiers.
+       (static_fn_type, revert_static_member_fn): Adjust.
+       * decl2.c (build_memfn_type): Handle ref-qualifiers.
+       (check_classfn): Check them.
+       (cp_reconstruct_complex_type): Retain them.
+       * error.c (dump_ref_qualifier): New.
+       (dump_type_suffix, dump_function_decl): Use it.
+       (maybe_warn_cpp0x): Handle CPP0X_REF_QUALIFIER.
+       * pt.c (tsubst, tsubst_function_type): Instantiate ref-quals.
+       (unify): Retain them.
+       * tree.c (cp_check_qualified_type): New.
+       (cp_build_qualified_type_real): Keep exception spec and ref-qual.
+       (build_ref_qualified_type): New.
+       (strip_typedefs, build_exception_variant): Keep ref-qualifier.
+       (cp_build_type_attribute_variant): Keep ref-qualifier.
+       * typeck.c (merge_types): Keep ref-qualifier.
+       (structural_comptypes): Compare ref-qualifier.
+       (type_memfn_rqual): New.
+       (apply_memfn_quals): Take ref-qual argument.
+       * typeck2.c (build_m_component_ref): Check ref-qualifier.
 
-2012-05-31  Jason Merrill  <jason@redhat.com>
+2013-03-29  Jason Merrill  <jason@redhat.com>
 
-       PR c++/53500
-       PR c++/52905
-       * call.c (joust): Handle comparing list and non-list ctors.
+       PR c++/56774
+       PR c++/35722
+       * pt.c (unify_pack_expansion): Fix indexing.
 
-2012-05-30  Jason Merrill  <jason@redhat.com>
+2013-03-28  Jason Merrill  <jason@redhat.com>
 
-       PR c++/53356
-       * tree.c (stabilize_init): Side effects make the init unstable.
+       PR c++/56728
+       * semantics.c (cxx_eval_indirect_ref): Use the folded operand if
+       we still think this might be constant.
 
-2012-05-30  Jason Merrill  <jason@redhat.com>
+2013-03-27  Jason Merrill  <jason@redhat.com>
 
-       PR c++/53220
-       * call.c (convert_like_real) [ck_list]: Take array address directly.
-       * typeck.c (decay_conversion): Reject decay of an array compound
-       literal.
+       PR c++/56749
+       * semantics.c (finish_qualified_id_expr): Return early
+       for enum scope.
 
-2012-05-29  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-03-26  Jason Merrill  <jason@redhat.com>
 
-       PR c++/53491
-       * tree.c (stabilize_expr): Handle exp of void type.
+       PR c++/45282
+       * typeck2.c (build_m_component_ref): Handle prvalue object.
 
-2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-03-25  Jason Merrill  <jason@redhat.com>
 
-       PR c++/53503
-       * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
+       PR c++/56699
+       * semantics.c (maybe_resolve_dummy): Make sure that the enclosing
+       class is derived from the type of the object.
 
-2012-05-15  Alexandre Oliva  <aoliva@redhat.com>
+       PR c++/56692
+       * search.c (lookup_base): Handle NULL_TREE.
 
-       PR c++/53209
-       * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
+2013-03-25  Paolo Carlini  <paolo.carlini@oracle.com>
 
-2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
+       PR c++/56722
+       * decl.c (cp_finish_decl): Check DECL_LANG_SPECIFIC before
+       DECL_TEMPLATE_INSTANTIATION.
 
-       PR c++/53301
-       * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
-       instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
+2013-03-25  Jason Merrill  <jason@redhat.com>
 
-2012-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
+       PR c++/52014
+       * semantics.c (lambda_expr_this_capture): Don't capture 'this' in
+       unevaluated context.
 
-       PR c++/53186
-       * call.c (build_over_call): Handle final member functions
-       and class types.
-       (build_new_method_call_1): Do not handle here.
+2013-03-23  Jason Merrill  <jason@redhat.com>
 
-2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
+       PR c++/54359
+       * parser.c (cp_parser_direct_declarator): Fix late return
+       for out-of-class defn of member function.
 
-       PR c++/53003
-       * parser.c (cp_parser_member_declaration): Check that
-       initializer_token_start is non null before dereferencing it.
+2013-03-22  Paolo Carlini  <paolo.carlini@oracle.com>
 
-2012-04-16  Jason Merrill  <jason@redhat.com>
+       PR c++/56582
+       * semantics.c (cxx_eval_array_reference): Check for negative index.
 
-       PR c++/38543
-       * pt.c (determine_specialization): Instead of comparing the number
-       of parms, check that tsubst gives the right answer.
+2013-03-22  Jason Merrill  <jason@redhat.com>
 
-       PR c++/50830
-       * pt.c (convert_template_argument): Handle template template
-       argument packs.
+       PR c++/56646
+       * parser.c (cp_parser_late_return_type_opt): Save and restore
+       current_class_ptr/ref.
 
-       PR c++/50303
-       * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
-       template parameters.
+       N3276
+       PR c++/52748
+       * cp-tree.h (tsubst_flags): Add tf_decltype.
+       * call.c (build_cxx_call): Don't build a temporary if it's set.
+       (build_over_call): Make sure it's only passed to build_cxx_call.
+       * parser.c (cp_parser_primary_expression): Add decltype_p parm.
+       (cp_parser_unary_expression): Likewise.
+       (cp_parser_cast_expression): Likewise.
+       (cp_parser_binary_expression): Likewise.
+       (cp_parser_assignment_expression): Likewise.
+       (cp_parser_postfix_expression): Likewise.  Pass tf_decltype.
+       (cp_parser_explicit_instantiation): Add decltype_p.  Force a
+       temporary for a call on the LHS of a comma.
+       (cp_parser_decltype): Pass true to decltype_p parms.
+       * pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype.
+       (tsubst_copy_and_build): Pass tf_decltype down only for
+       CALL_EXPR and the RHS of COMPOUND_EXPR.
+       * tree.c (build_cplus_new): Call complete_type_or_maybe_complain.
+
+       DR 657
+       * pt.c (tsubst_function_type): Call abstract_virtuals_error_sfinae.
+       (tsubst_arg_types): Likewise.
 
-2012-04-15  Jason Merrill  <jason@redhat.com>
+       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.
 
-       PR c++/52292
-       PR c++/52380
-       * pt.c (coerce_template_parms): Even if we aren't converting we
-       want to expand argument packs.
+       PR c++/52374
+       * pt.c (tsubst_qualified_id): Use current_nonlambda_class_type.
 
-2012-04-15  Fabien ChĂȘne  <fabien@gcc.gnu.org>
+       PR c++/54764
+       PR c++/55972
+       * name-lookup.h (tag_scope): Add ts_lambda.
+       * semantics.c (begin_lambda_type): Use it.
+       * decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR.
+       * pt.c (check_default_tmpl_args): Ignore lambdas.
+       (push_template_decl_real): Handle lambdas.
+       * tree.c (no_linkage_check): Adjust lambda check.
 
-       PR c++/52465
-       * parser.c (cp_parser_class_name): Call strip_using_decl and
-       return the target decl.
-       * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
-       to be stripped is NULL_TREE.
-       (qualify_lookup): Call strip_using_decl and perform some checks on
-       the target decl.
+       PR c++/56039
+       * tree.c (strip_typedefs_expr): Complain about lambda, don't abort.
 
-2012-04-13  Jason Merrill  <jason@redhat.com>
+       PR c++/56447
+       PR c++/55532
+       * pt.c (instantiate_class_template_1): Instantiate lambda capture
+       list here.
+       (tsubst_copy_and_build): Not here.
 
-       PR c++/52824
-       * pt.c (any_pack_expanson_args_p): New.
-       (coerce_template_parms): Use it.
+2013-03-22  Jakub Jelinek  <jakub@redhat.com>
 
-2012-04-11  Jason Merrill  <jason@redhat.com>
+       Backported from mainline
+       2013-03-16  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/52906
-       * decl.c (check_tag_decl): Don't complain about attributes if we
-       don't even have a type.
+       PR c++/56607
+       * typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero,
+       pass op1 through maybe_constant_value first.
 
-2012-04-05  Jason Merrill  <jason@redhat.com>
+       * tree.c (cp_tree_equal): Fix a pasto.
 
-       PR c++/52596
-       * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
-       as an lvalue.
+2013-03-22  Release Manager
 
-2012-04-03  Jason Merrill  <jason@redhat.com>
+       * GCC 4.8.0 released.
 
-       PR c++/52796
-       * pt.c (tsubst_initializer_list): A pack expansion with no elements
-       means value-initialization.
+2013-03-14  Jason Merrill  <jason@redhat.com>
 
-2012-03-29  Meador Inge  <meadori@codesourcery.com>
+       PR c++/56614
+       * decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again.
 
-       PR c++/52672
-       * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
-       stripped child trees that are not pointer types.
+       PR c++/56346
+       * decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit
+       dso_handle parm on targets without __cxa_atexit.
 
-2012-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-03-11  Jason Merrill  <jason@redhat.com>
 
-       PR c++/52718
-       * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
-       warn for a zero as null pointer constant default argument.
+       PR c++/56567
+       * typeck.c (check_return_expr): Disallow returning init list here.
+       * semantics.c (apply_deduced_return_type): Not here.
 
-2012-03-29  Jason Merrill  <jason@redhat.com>
+2013-03-08  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       PR c++/52685
-       * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
+       PR c++/51412
+       * cxx-pretty-print.c (pp_cxx_expression): Handle LAMBDA_EXPR.
+       * error.c (dump_expr): Likewise.
 
-2012-03-29  Jakub Jelinek  <jakub@redhat.com>
+2013-03-08  Jason Merrill  <jason@redhat.com>
 
-       PR c++/52759
-       * decl.c (start_decl): Don't call maybe_apply_pragma_weak
-       if processing_template_decl.
+       PR c++/51884
+       * class.c (modify_all_vtables): Mangle the vtable name before
+       entering dfs_walk.
 
-2012-03-29  Jason Merrill  <jason@redhat.com>
+       * semantics.c (lambda_expr_this_capture): In unevaluated context,
+       just return the nearest 'this'.
 
-       PR c++/52743
-       * call.c (compare_ics): Handle ck_aggr like ck_list.
+       PR c++/51494
+       PR c++/52183
+       PR c++/56222
+       * tree.c (maybe_dummy_object): Don't capture 'this'.
+       * semantics.c (maybe_resolve_dummy): New.
+       (finish_non_static_data_member): Use it.
+       (finish_qualified_id_expr): Don't test is_dummy_object.
+       * cp-tree.h: Declare maybe_resolve_dummy.
+       * call.c (build_new_method_call_1): Use it.
 
-2012-03-28  Jason Merrill  <jason@redhat.com>
+       PR c++/56567
+       * semantics.c (apply_deduced_return_type): Don't allow returning
+       std::initializer_list.
 
-       PR c++/52746
-       * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
-       we didn't get an explicit scope.
-       * pt.c (tsubst_baselink): Likewise.
+2013-03-06  Paolo Carlini  <paolo.carlini@oracle.com>
 
-2012-03-22  Paolo Carlini  <paolo.carlini@oracle.com>
+       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.
 
-       PR c++/52487
-       * class.c (check_field_decls): Call literal_type_p only
-       on complete types.
+2013-03-06  Jakub Jelinek  <jakub@redhat.com>
 
-2012-03-22  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/56543
+       * tree.c (strip_typedefs): Don't copy args if they are NULL.
 
-       PR c++/52671
-       * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
-       on CLASS_TYPE_P types.
+2013-03-05  Jakub Jelinek  <jakub@redhat.com>
 
-2012-03-22  Jason Merrill  <jason@redhat.com>
+       * parser.c (cp_parser_braced_list): For {} initialize
+       *non_constant_p to false.
 
-       PR c++/52582
-       * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
+2013-03-04  Jason Merrill  <jason@redhat.com>
 
-2012-03-22  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/56464
+       PR c++/54383
+       * semantics.c (lambda_expr_this_capture): Handle NSDMI
+       and non-class scopes.
 
-       Backported from mainline
-       2012-03-14  Jakub Jelinek  <jakub@redhat.com>
+2013-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       PR c++/52521
-       * parser.c (lookup_literal_operator): Return fn only if
-       processed all arguments from args vector and argtypes is
-       void_list_node.
+       * decl.c (grokdeclarator): Remove dead code.
 
-2012-03-22  Release Manager
+2013-02-28  Jason Merrill  <jason@redhat.com>
 
-       * GCC 4.7.0 released.
+       PR c++/56481
+       * semantics.c (potential_constant_expression_1): Use
+       cxx_eval_outermost_constant_expr rather than maybe_constant_value.
 
-2012-03-20  Jason Merrill  <jason@redhat.com>
+       PR c++/56243
+       * call.c (build_over_call): Avoid virtual lookup in a template.
 
-       * mangle.c (write_type): Handle 'auto'.
-       * init.c (build_new): Don't do auto deduction where it might
-       affect template mangling.
+2013-02-27  Jason Merrill  <jason@redhat.com>
 
-2012-03-07  Jason Merrill  <jason@redhat.com>
+       PR c++/56358
+       PR c++/56323
+       * name-lookup.c (do_class_using_decl): Use ctor_identifier instead
+       of the base name for inheriting ctors.
+       (push_class_level_binding_1): Remove inheriting ctor handling.
+       * pt.c (tsubst_decl) [USING_DECL]: Likewise.
+       * class.c (add_implicitly_declared_members): Adjust.
 
-       PR c++/52521
-       * mangle.c (write_literal_operator_name): The length comes after the
-       operator prefix.
+2013-02-26  David Binderman  <dcb314@hotmail.com>
 
-2012-02-29  Jason Merrill  <jason@redhat.com>
+       PR c++/55632
+       * decl.c (grokdeclarator): Tidy publicp assignment.
 
-       PR c++/51930
-       * decl.c (check_tag_decl): Move warning for misplaced attributes here.
-       (shadow_tag): From here.
-       * parser.c (cp_parser_explicit_instantiation): Don't warn here.
+2013-02-25  Aldy Hernandez  <aldyh@redhat.com>
 
-2012-02-21  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/56419
+       * semantics.c (begin_transaction_stmt): Set TREE_SIDE_EFFECTS.
+       (build_transaction_expr): Same.
 
-       PR c++/52312
-       * typeck.c (check_literal_operator_args): Initialize *long_double_p
-       and *long_long_unsigned_p even if processing_template_decl.
+2013-02-25  Jason Merrill  <jason@redhat.com>
 
-2012-02-16  Jason Merrill  <jason@redhat.com>
+       PR c++/56377
+       * pt.c (fn_type_unification): Wait to call push_tinst_level until
+       we know what args we're looking at.
 
-       PR c++/52248
-       * decl.c (define_label): Use timevar_cond_start/stop.
+       PR c++/56438
+       * semantics.c (potential_constant_expression_1): In C++98, a cast
+       to non-integral type can't be a constant expression.
 
-2012-02-16  Fabien ChĂȘne  <fabien@gcc.gnu.org>
+2013-02-24  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/52126
-       * decl.c (xref_basetypes): call dependent_scope_p instead of
-       dependent_type_p.
+       PR c++/56403
+       * init.c (build_zero_init_1): Use RECORD_OR_UNION_CODE_P instead
+       of CLASS_TYPE_P.
 
-2012-02-16  Jason Merrill  <jason@redhat.com>
+2013-02-22  Jason Merrill  <jason@redhat.com>
 
-       PR c++/51415
-       * error.c (dump_expr): Handle lambda closures specifically.
+       PR c++/40405
+       * pt.c (push_template_decl_real): Set DECL_INTERFACE_KNOWN
+       if we got the wrong number of template parms.
 
-2012-02-14  Jason Merrill  <jason@redhat.com>
+       PR c++/56377
+       * pt.c (fn_type_unification): Use explicit args in template
+       instantiation context.
 
-       * parser.c (cp_parser_explicit_instantiation): Give a warning
-       for ignored attributes on explicit class instantiation.
+       PR c++/56359
+       * call.c (can_convert_arg): Discard access checks.
 
-2012-02-14  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/56395
+       * tree.c (strip_typedefs): Strip typedefs from TYPENAME_TYPE template
+       args.
 
-       PR c++/52247
-       * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
-       lookup_label on label's name and set TREE_USED.
+2013-02-20  Paolo Carlini  <paolo.carlini@oracle.com>
 
-2012-02-14  Jason Merrill  <jason@redhat.com>
+       PR c++/56373
+       * tree.c (maybe_warn_zero_as_null_pointer_constant): Add.
+       * cvt.c (ocp_convert): Use the latter.
+       (cp_convert_to_pointer): Likewise.
+       * decl.c (check_default_argument): Likewise.
+       * typeck.c (cp_build_binary_op): Likewise.
+       * cp-tree.h (maybe_warn_zero_as_null_pointer_constant): Declare.
 
-       PR c++/39055
-       * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
+2013-02-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
+           Paolo Carlini  <paolo.carlini@oracle.com>
 
-2012-02-14  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/51242
+       * decl2.c (grokbitfield): Allow scoped enumeration types.
 
-       PR c/52181
-       * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
-       newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
+2013-02-15  Jason Merrill  <jason@redhat.com>
 
-2012-02-07  Jason Merrill  <jason@redhat.com>
+       PR c++/54276
+       * semantics.c (finish_id_expression): Also return the identifier
+       for an outer local static.
 
-       PR c++/51675
-       * semantics.c (cx_check_missing_mem_inits): Handle unions.
-       Fix constexpr default constructor logic.
+       PR c++/56343
+       * class.c (check_bases_and_members): Deduce noexcept after
+       checking bases.
 
-       PR c++/52035
-       * pt.c (tsubst): Strip uninstantiated typedef.
+       PR c++/52026
+       * semantics.c (finish_id_expression): In a template, return
+       the identifier for a constant variable.
 
-2012-02-06  Jason Merrill  <jason@redhat.com>
+2013-02-14  Jason Merrill  <jason@redhat.com>
 
-       PR c++/52088
-       * cvt.c (build_expr_type_conversion): Check for template conversion.
+       PR c++/54922
+       * semantics.c (build_anon_member_initialization): New.
+       (build_data_member_initialization): Use it.
 
-2012-01-31  Jason Merrill  <jason@redhat.com>
+       PR c++/55003
+       * decl.c (cp_finish_decl): Force instantiation of an
+       auto static data member.
 
-       PR c++/52043
-       * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
-       * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
-       (tsubst_pack_expansion): Check it.
+       PR c++/55220
+       * pt.c (unify): A pack expansion that is not the last template
+       argument makes the entire template argument list non-deduced.
 
-2012-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
+       PR c++/56323
+       * name-lookup.c (do_class_using_decl): Handle typedefs with
+       inheriting constructors.
+       (push_class_level_binding_1): Allow inheriting from template
+       template parameter, too.
+       * pt.c (tsubst_decl) [USING_DECL]: Likewise.
 
-       PR c++/51327
-       * class.c (explain_non_literal_class): Correctly handle implicitly
-       deleted constructors.
+       PR c++/55223
+       * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of
+       default argument scope.
+       * mangle.c (write_name): Likewise.
 
-2012-01-27  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/55232
+       * error.c (find_typenames_r): Don't walk into a pack expansion.
 
-       PR c++/51852
-       * pt.c (tsubst_pack_expansion): Delete and restore
-       local_specialization whenever need_local_specialization, not just
-       when saved_local_specializations is non-NULL.
+2013-02-13  Jason Merrill  <jason@redhat.com>
 
-2012-01-26  Paolo Carlini  <paolo.carlini@oracle.com>
+       PR c++/55670
+       * parser.c (cp_parser_member_declaration): Check the declarator
+       form when detecting a function declaration via typedef.
 
-       PR c++/51370
-       * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
-       as TREE_OPERAND (t, 1).
+       PR c++/55680
+       * pt.c (maybe_process_partial_specialization): A lambda
+       isn't what's being specialized.
 
-2012-01-24  Jason Merrill  <jason@redhat.com>
+       PR c++/55710
+       * semantics.c (maybe_add_lambda_conv_op): Mark static thunk
+       TREE_USED.
 
-       PR c++/51917
-       * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
+       PR c++/55879
+       * semantics.c (cxx_bind_parameters_in_call): Undo DECL_BY_REFERENCE.
 
-       PR c++/51973
-       * tree.c (called_fns_equal): Check template args.
-       (cp_tree_equal): Call it.
+       PR c++/55993
+       * semantics.c (cxx_fold_indirect_ref): Handle empty bases at
+       non-zero offsets, too.
 
-2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
-           Patrick Marlier  <patrick.marlier@gmail.com>
+       PR c++/56155
+       * decl.c (build_enumerator): Always convert the value to a
+       fixed underlying type.
 
-       PR c++/51928
-       * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
-       thunk for set_one_vmethod_tm_attributes.
+       PR c++/56135
+       * pt.c (tsubst_copy_and_build): Don't forget any new
+       captures that arose from use of dependent names.
 
-2012-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-02-13  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/51223
-       * call.c (build_over_call): Check for error_mark_node as
-       TREE_VALUE when default arguments are processed.
+       PR c++/56302
+       * semantics.c (finish_asm_stmt): If input constraints allow
+       neither register nor memory, try maybe_constant_value to get
+       a constant if possible.
 
-2012-01-23  Jason Merrill  <jason@redhat.com>
+2013-02-12  Jason Merrill  <jason@redhat.com>
 
-       PR c++/51930
-       * decl2.c (determine_visibility): Check for visibility attribute
-       on template specialization.
+       PR c++/56285
+       * method.c (add_one_base_init): Handle base constructor
+       taking rvalue reference parm.
 
-2012-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
+       PR c++/56291
+       * semantics.c (sort_constexpr_mem_initializers): Handle
+       vptr out of order.
 
-       PR c++/51398
-       * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
+2013-02-09  Jason Merrill  <jason@redhat.com>
 
-2012-01-23  Jason Merrill  <jason@redhat.com>
+       PR c++/56268
+       * semantics.c (classtype_has_nothrow_assign_or_copy_p): Call
+       maybe_instantiate_noexcept.
 
-       PR c++/51925
-       * class.c (add_method): Set OVL_USED for using-decls.
-       * tree.c (ovl_scope): New.
+       PR c++/56247
+       * pt.c (eq_specializations): Set comparing_specializations.
+       * tree.c (cp_tree_equal): Check it.
        * cp-tree.h: Declare it.
-       * parser.c (cp_parser_template_name): Use it.
-       * semantics.c (baselink_for_fns): Likewise.
-       * name-lookup.c (set_inherited_value_binding_p): Likewise.
-
-2012-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/51402
-       * pt.c (lookup_template_class_1): Check context returned by
-       tsubst for error_mark_node.
-
-2012-01-19  Kai Tietz  <ktietz@redhat.com>
-
-       PR c++/51344
-       * decl2.c (save_template_attributes): Use merge_attributes
-       instead of chaining up via TREE_CHAIN.
-
-2012-01-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/51889
-       * class.c (finish_struct): Call add_method here for function usings.
-       * semantics.c (finish_member_declaration): Not here.
 
-2012-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
+       * decl.c (decls_match): Check versions later.
 
-       PR c++/51225
-       * typeck2.c (store_init_value): Within a template guard
-       cxx_constant_value with require_potential_constant_expression.
-       * pt.c (convert_nontype_argument): Likewise.
+       PR c++/56238
+       * pt.c (build_non_dependent_expr): Don't try to fold
+       instantiation-dependent expressions.
+       (instantiation_dependent_r) [TRAIT_EXPR]: Split out.
+       [BIND_EXPR]: Treat as dependent.
 
-2012-01-16  Jakub Jelinek  <jakub@redhat.com>
+2013-02-07  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/51854
-       * mangle.c (write_template_arg_literal): Handle complex.
-
-2012-01-16  Jason Merrill  <jason@redhat.com>
-
-       PR c++/51827
-       * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
+       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++/51868
-       * typeck.c (build_static_cast_1): Handle bit-fields properly.
+       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.
 
-2012-01-13  Ian Lance Taylor  <iant@google.com>
+       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).
 
-       PR c++/50012
-       * typeck.c (enum_cast_to_int): New static function.
-       (cp_build_binary_op): When handling warn_sign_compare, don't test
-       for TREE_NO_WARNING.  Do call enum_cast_to_int.
-       * call.c (avoid_sign_compare_warnings): Remove static function.
-       (build_new_op_1): Don't call avoid_sign_compare_warnings.
+2013-02-07  Jason Merrill  <jason@redhat.com>
 
-2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
+       PR c++/56235
+       * method.c (do_build_copy_constructor): Don't bother turning
+       scalars from lvalues to xvalues.
+       (do_build_copy_assign): Likewise.
 
-       * decl2.c: Do not include tree-mudflap.h
-       * semantics.c: Likewise.
+2013-02-06  Jason Merrill  <jason@redhat.com>
 
-2012-01-13  Jason Merrill  <jason@redhat.com>
+       * parser.c (cp_parser_enum_specifier): Check for error_mark_node.
 
-       PR c++/20681
-       * semantics.c (finish_break_stmt): Avoid adding an unreachable
-       BREAK_STMT.
+2013-02-05  Jason Merrill  <jason@redhat.com>
 
-       PR c++/51813
-       * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
-       when reducing the visibility.
+       PR c++/54122
+       * tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for
+       METHOD_TYPE.
 
-       PR c++/51620
-       * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
+       PR c++/56177
+       * decl.c (start_preparsed_function): Update restype if we change
+       decl1.
 
-2012-01-12  Jason Merrill  <jason@redhat.com>
+       PR c++/56208
+       * pt.c (fn_type_unification): Discard any access checks from
+       substituting explicit args.
 
-       PR c++/51714
-       * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
-       value-dependent.
+2013-01-31  Jason Merrill  <jason@redhat.com>
 
-2012-01-13  Dodji Seketeli  <dodji@redhat.com>
+       PR c++/56162
+       PR c++/56104
+       * typeck.c (get_member_function_from_ptrfunc): Fix
+       ptrmemfunc_vbit_in_delta case.
 
-       PR c++/51633
-       * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
-       Set the pointer to the last block of the constructor to the
-       current statement.
-       (build_constexpr_constructor_member_initializers): Get
-       build_data_member_initialization a chance to deal with more
-       statements before we choke.
+2013-01-29  Jason Merrill  <jason@redhat.com>
 
-2012-01-12  Jason Merrill  <jason@redhat.com>
+       PR libstdc++/54314
+       * class.c (build_ctor_vtbl_group): Give construction vtables
+       hidden visibility.
 
-       PR c++/48051
-       * mangle.c (write_expression): Mangle BASELINK scope if
-       BASELINK_QUALIFIED_P.
-       * search.c (adjust_result_of_qualified_name_lookup): Set
-       BASELINK_QUALIFIED_P.
-       * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
-       * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
-       adjust_result_of_qualified_name_lookup for non-qualified names.
+2013-01-25  Jason Merrill  <jason@redhat.com>
 
-       PR c++/51403
-       * pt.c (unify): Handle error_mark_node.
+       PR c++/56095
+       * pt.c (convert_nontype_argument_function): Handle invalid input.
+       (convert_nontype_argument): Likewise.
 
-2012-01-11  Jason Merrill  <jason@redhat.com>
+       PR c++/56104
+       * typeck.c (get_member_function_from_ptrfunc): Optimize if the
+       dynamic type has no virtual functions.
 
-       PR c++/51565
-       * call.c (standard_conversion): For ptrmemfuncs, compare the
-       static_fn_types.
+2013-01-22  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       PR c++/51818
-       * mangle.c (find_substitution): A type is only a substitution
-       match if we're looking for a type.
-       (write_nested_name): Use decl_mangling_context.
+       PR c++/55944
+       * decl.c (check_initializer): Use TARGET_EXPR_DIRECT_INIT_P only
+       on TARGET_EXPR nodes.
 
-       * decl.c (decls_match): Assert that the arguments are decls.
+2013-01-22  Jason Merrill  <jason@redhat.com>
 
-       PR c++/51613
-       * pt.c (resolve_overloaded_unification): Compare types with
-       same_type_p, not decls_match.
+       PR c++/56071
+       * pt.c (maybe_instantiate_noexcept): Don't defer access checks.
 
-2012-01-10  Jason Merrill  <jason@redhat.com>
+2013-01-22  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/53609
+       * pt.c (argument_pack_element_is_expansion_p)
+       (make_argument_pack_select, use_pack_expansion_extra_args_p)
+       (gen_elem_of_pack_expansion_instantiation): New static functions.
+       (tsubst): When looking through an ARGUMENT_PACK_SELECT tree node,
+       look through the possibly resulting pack expansion as well.
+       (tsubst_pack_expansion): Use use_pack_expansion_extra_p to
+       generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism.
+       Use gen_elem_of_pack_expansion_instantiation to build the
+       instantiation piece-wise.  Don't use arg_from_parm_pack_p anymore,
+       as gen_elem_of_pack_expansion_instantiation and the change in
+       tsubst above generalize this particular case.
+       (arg_from_parm_pack_p): Remove this for it's not used by
+       tsubst_pack_expansion anymore.
 
-       PR c++/51614
-       * class.c (build_base_path): Diagnose ambiguous base.
+2013-01-21  Jason Merrill  <jason@redhat.com>
 
-       PR c++/51433
-       * semantics.c (cxx_eval_call_expression): Always retry previously
-       non-constant expressions.
+       PR c++/56059
+       * tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default
+       template args count.
 
-2012-01-06  Jason Merrill  <jason@redhat.com>
+2013-01-18  Jason Merrill  <jason@redhat.com>
 
-       DR 686
-       PR c++/47450
-       * parser.c (cp_parser_new_expression): Set
-       type_definition_forbidden_message.
+       PR target/54908
+       * decl2.c (get_local_tls_init_fn): New.
+       (get_tls_init_fn): Handle flag_extern_tls_init.  Don't bother
+       with aliases for internal variables.  Don't use weakrefs if
+       the variable needs destruction.
+       (generate_tls_wrapper): Mark the wrapper as const if no
+       initialization is needed.
+       (handle_tls_init): Don't require aliases.
 
-       PR c++/6057
-       PR c++/48051
-       PR c++/50855
-       PR c++/51322
-       * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
-       THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
-       PREDECREMENT_EXPR.
-       (write_template_arg): Fix mangling of class-scope functions and
-       argument packs.
-       (mangle_decl): Update suggested -fabi-version argument.
-       * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
-       DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
-       * tree.c (dependent_name): No longer static.
-       * cp-tree.h: Declare it.
-       * pt.c (unify): Defer handling of unconverted functions.
+2013-01-15  Dodji Seketeli  <dodji@redhat.com>
 
-       * mangle.c (mangle_decl): Don't generate mangling aliases
-       for maybe-in-charge [cd]tors.
+       PR c++/55663
+       * pt.c (coerce_innermost_template_parms): New static function.
+       (instantiate_alias_template):  Use it here.
 
-       * error.c (dump_expr): Print type of CONSTRUCTOR.
+2013-01-09  Jason Merrill  <jason@redhat.com>
 
-2012-01-05  Dodji Seketeli  <dodji@redhat.com>
+       PR c++/55878
+       * rtti.c (build_typeid, get_typeid): Add complain parm.
+       (get_tinfo_decl_dynamic): Likewise.
+       * cp-tree.h, parser.c, pt.c: Adjust.
 
-       PR c++/51541
-       * parser.c (cp_parser_alias_declaration): Get out early upon
-       errors in the identifier or the attributes.
+       PR c++/55893
+       * decl.c (cp_finish_decl): Clear TREE_READONLY if the variable
+       needs destruction.
 
-2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-01-09  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/51064
-       * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
-       the tree returned by build_x_binary_op.
+       PR c/48418
+       * typeck.c (cp_build_binary_op): For LSHIFT_EXPR and RSHIFT_EXPR,
+       call maybe_constant_value for the negative or too big shift
+       count warnings.
 
-2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-01-09  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       PR c++/51738
-       * parser.c (cp_parser_postfix_open_square_expression): Handle
-       postfix-expression [ braced-init-list ].
+       PR c++/55801
+       * decl2.c (var_needs_tls_wrapper): Return false when error_operand_p
+       of the argument is true.
 
-2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-01-08  Joel Brobecker  <brobecker@adacore.com>
 
-       PR c++/29273
-       * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
-       call decay_conversion on v.
+       * parser.c (cp_parser_initializer_list): Move declaration
+       of variable non_const to start of lexical block.
 
-2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-01-07  Jason Merrill  <jason@redhat.com>
 
-       PR c++/15867
-       * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
-       declaration followed by specialization.
+       PR c++/55753
+       * tree.c (build_aggr_init_expr): Do nothing in a template.
+       * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Strip an ADDR_EXPR off
+       a FUNCTION_DECL before tsubsting.
 
-2012-01-03  Jakub Jelinek  <jakub@redhat.com>
+2013-01-04  Dodji Seketeli  <dodji@redhat.com>
 
-       PR c++/51669
-       * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
-       on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
+       PR c++/52343
+       * pt.c (check_instantiated_arg): Allow type template arguments.
 
-2012-01-02  Jason Merrill  <jason@redhat.com>
+2013-01-04  Jason Merrill  <jason@redhat.com>
 
-       DR 1359
-       PR c++/51675
-       * method.c (walk_field_subobs): Don't check for uninitialized
-       fields in a union.
-       (synthesized_method_walk): Check here.
+       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.
 
-       DR 325
-       PR c++/51666
-       * parser.c (cp_parser_cache_defarg): Split out...
-       (cp_parser_parameter_declaration): ...from here.
-       (cp_parser_save_nsdmi): Use it.
-       (cp_parser_cache_group): Remove CPP_COMMA support.
+2013-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
 
-2012-01-02  Dodji Seketeli  <dodji@redhat.com>
+       PR c++/54526 (again)
+       * parser.c (cp_parser_template_id): Revert core of previous change
+       (keep adjusted inform message).
 
-       PR c++/51462
-       * semantics.c (cx_check_missing_mem_inits): Don't assert in case
-       of error.
+2013-01-03  Jason Merrill  <jason@redhat.com>
 
-2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>
+       PR c++/55419
+       PR c++/55753
+       * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch
+       TREE_CONSTANT.
 
-       PR c++/20140
-       * typeck2.c (digest_init_r): Use copy_init when initializing
-       an array of chars.
+       PR c++/55842
+       * semantics.c (trait_expr_value): Call maybe_instantiate_noexcept.
 
-2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
+       PR c++/55856
+       * semantics.c (build_data_member_initialization): Handle DECL_EXPR.
 
-       PR c++/16603
-       * decl.c (build_enumerator): Don't call perform_integral_promotions
-       on the value.
+       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.
 
-2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
+2013-01-02  Jason Merrill  <jason@redhat.com>
 
-       PR c++/51379
-       * typeck.c (build_reinterpret_cast_1): Implement resolution of
-       DR 799.
+       PR c++/54325
+       * call.c (build_new_method_call_1): Don't use build_value_init for
+       user-provided default constructors.
 
-2012-01-01  Fabien ChĂȘne  <fabien@gcc.gnu.org>
+       * decl.c (check_default_argument): Use LOOKUP_IMPLICIT.
 
-       * parser.c (cp_parser_using_declaration): Add a warning about
-       deprecated access declarations when no errors were encountered
-       while parsing the access declaration. Save the first token in
-       order to emit the warning at the right place.
+       PR c++/55032
+       PR c++/55245
+       * tree.c (build_cplus_array_type): Copy layout information
+       to main variant if necessary.
 \f
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2013 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright