+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.
+
+ 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.
+
+2012-06-14 Release Manager
+
+ * GCC 4.7.1 released.
+
+2012-06-12 Jason Merrill <jason@redhat.com>
+
+ 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.
+
+2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/53524
+ * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
+ to control enumeral mismatch in conditional expression too.
+
+2012-06-01 Jason Merrill <jason@redhat.com>
+
+ PR c++/52973
+ * parser.c (cp_parser_class_head): Apply attributes here.
+ * semantics.c (begin_class_definition): Not here.
+ * cp-tree.h: Adjust.
+
+ PR c++/52725
+ * parser.c (cp_parser_binary_expression): Bail early if we're parsing
+ tentatively and the LHS has a parse error.
+
+2012-06-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++/53484
+ * pt.c (do_auto_deduction): Don't try to deduce from a
+ type-dependent initializer.
+
+2012-05-31 Jason Merrill <jason@redhat.com>
+
+ PR c++/53500
+ PR c++/52905
+ * call.c (joust): Handle comparing list and non-list ctors.
+
+2012-05-30 Jason Merrill <jason@redhat.com>
+
+ PR c++/53356
+ * tree.c (stabilize_init): Side effects make the init unstable.
+
+2012-05-30 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.
+
+2012-05-29 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/53491
+ * tree.c (stabilize_expr): Handle exp of void type.
+
+2012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/53503
+ * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
+
+2012-05-15 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/53209
+ * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
+
+2012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
+
+ 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.
+
+2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/53186
+ * call.c (build_over_call): Handle final member functions
+ and class types.
+ (build_new_method_call_1): Do not handle here.
+
+2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/53003
+ * parser.c (cp_parser_member_declaration): Check that
+ initializer_token_start is non null before dereferencing it.
+
+2012-04-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/38543
+ * pt.c (determine_specialization): Instead of comparing the number
+ of parms, check that tsubst gives the right answer.
+
+ PR c++/50830
+ * pt.c (convert_template_argument): Handle template template
+ argument packs.
+
+ PR c++/50303
+ * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
+ template parameters.
+
+2012-04-15 Jason Merrill <jason@redhat.com>
+
+ PR c++/52292
+ PR c++/52380
+ * pt.c (coerce_template_parms): Even if we aren't converting we
+ want to expand argument packs.
+
+2012-04-15 Fabien Chêne <fabien@gcc.gnu.org>
+
+ 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.
+
+2012-04-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/52824
+ * pt.c (any_pack_expanson_args_p): New.
+ (coerce_template_parms): Use it.
+
+2012-04-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/52906
+ * decl.c (check_tag_decl): Don't complain about attributes if we
+ don't even have a type.
+
+2012-04-05 Jason Merrill <jason@redhat.com>
+
+ PR c++/52596
+ * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
+ as an lvalue.
+
+2012-04-03 Jason Merrill <jason@redhat.com>
+
+ PR c++/52796
+ * pt.c (tsubst_initializer_list): A pack expansion with no elements
+ means value-initialization.
+
+2012-03-29 Meador Inge <meadori@codesourcery.com>
+
+ PR c++/52672
+ * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
+ stripped child trees that are not pointer types.
+
+2012-03-29 Paolo Carlini <paolo.carlini@oracle.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.
+
+2012-03-29 Jason Merrill <jason@redhat.com>
+
+ PR c++/52685
+ * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
+
+2012-03-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/52759
+ * decl.c (start_decl): Don't call maybe_apply_pragma_weak
+ if processing_template_decl.
+
+2012-03-29 Jason Merrill <jason@redhat.com>
+
+ PR c++/52743
+ * call.c (compare_ics): Handle ck_aggr like ck_list.
+
+2012-03-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/52746
+ * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
+ we didn't get an explicit scope.
+ * pt.c (tsubst_baselink): Likewise.
+
+2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/52487
+ * class.c (check_field_decls): Call literal_type_p only
+ on complete types.
+
+2012-03-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/52671
+ * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
+ on CLASS_TYPE_P types.
+
+2012-03-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/52582
+ * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
+
+2012-03-22 Jakub Jelinek <jakub@redhat.com>
+
+ Backported from mainline
+ 2012-03-14 Jakub Jelinek <jakub@redhat.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.
+
+2012-03-22 Release Manager
+
+ * GCC 4.7.0 released.
+
+2012-03-20 Jason Merrill <jason@redhat.com>
+
+ * mangle.c (write_type): Handle 'auto'.
+ * init.c (build_new): Don't do auto deduction where it might
+ affect template mangling.
+
+2012-03-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/52521
+ * mangle.c (write_literal_operator_name): The length comes after the
+ operator prefix.
+
+2012-02-29 Jason Merrill <jason@redhat.com>
+
+ 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.
+
+2012-02-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/52312
+ * typeck.c (check_literal_operator_args): Initialize *long_double_p
+ and *long_long_unsigned_p even if processing_template_decl.
+
+2012-02-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/52248
+ * decl.c (define_label): Use timevar_cond_start/stop.
+
+2012-02-16 Fabien Chêne <fabien@gcc.gnu.org>
+
+ PR c++/52126
+ * decl.c (xref_basetypes): call dependent_scope_p instead of
+ dependent_type_p.
+
+2012-02-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/51415
+ * error.c (dump_expr): Handle lambda closures specifically.
+
+2012-02-14 Jason Merrill <jason@redhat.com>
+
+ * parser.c (cp_parser_explicit_instantiation): Give a warning
+ for ignored attributes on explicit class instantiation.
+
+2012-02-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/52247
+ * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
+ lookup_label on label's name and set TREE_USED.
+
+2012-02-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/39055
+ * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
+
+2012-02-14 Jakub Jelinek <jakub@redhat.com>
+
+ 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.
+
+2012-02-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/51675
+ * semantics.c (cx_check_missing_mem_inits): Handle unions.
+ Fix constexpr default constructor logic.
+
+ PR c++/52035
+ * pt.c (tsubst): Strip uninstantiated typedef.
+
+2012-02-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/52088
+ * cvt.c (build_expr_type_conversion): Check for template conversion.
+
+2012-01-31 Jason Merrill <jason@redhat.com>
+
+ 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.
+
+2012-01-29 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51327
+ * class.c (explain_non_literal_class): Correctly handle implicitly
+ deleted constructors.
+
+2012-01-27 Jakub Jelinek <jakub@redhat.com>
+
+ 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.
+
+2012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51370
+ * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
+ as TREE_OPERAND (t, 1).
+
+2012-01-24 Jason Merrill <jason@redhat.com>
+
+ PR c++/51917
+ * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
+
+ PR c++/51973
+ * tree.c (called_fns_equal): Check template args.
+ (cp_tree_equal): Call it.
+
+2012-01-24 Aldy Hernandez <aldyh@redhat.com>
+ Patrick Marlier <patrick.marlier@gmail.com>
+
+ PR c++/51928
+ * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
+ thunk for set_one_vmethod_tm_attributes.
+
+2012-01-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51223
+ * call.c (build_over_call): Check for error_mark_node as
+ TREE_VALUE when default arguments are processed.
+
+2012-01-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/51930
+ * decl2.c (determine_visibility): Check for visibility attribute
+ on template specialization.
+
+2012-01-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51398
+ * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
+
+2012-01-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/51925
+ * class.c (add_method): Set OVL_USED for using-decls.
+ * tree.c (ovl_scope): New.
+ * 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>
+
+ 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.
+
2012-01-16 Jakub Jelinek <jakub@redhat.com>
PR c++/51854