2014-06-12  Release Manager

	* GCC 4.7.4 released.

2014-05-30  Jason Merrill  <jason@redhat.com>

	PR c++/56947
	* pt.c (instantiate_decl): Don't defer instantiation of a nested
	function.

2014-05-07  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2013-11-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/59297
	* semantics.c (finish_omp_atomic): Call finish_expr_stmt
	rather than add_stmt.

	2013-09-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/58325
	* init.c (build_vec_delete): Call mark_rvalue_use on base.

	2013-05-31  Jason Merrill  <jason@redhat.com>

	PR c++/56930
	* semantics.c (potential_constant_expression_1): Handle OMP_ATOMIC*.

2014-02-26  Fabien Chêne  <fabien@gcc.gnu.org>

        PR c++/37140
        * parser.c (cp_parser_nonclass_name): Call strip_using_decl and
	move the code handling dependent USING_DECLs...
        * name-lookup.c (strip_using_decl): ...Here.

2014-02-21  Jason Merrill  <jason@redhat.com>

	PR c++/60248
	* mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.

2014-02-20  Kai Tietz  <ktietz@redhat.com>

	PR c++/58873
	* parser.c (cp_parser_functional_cast): Treat NULL_TREE
	valued type argument as error_mark_node.

	PR c++/58835
	* semantics.c (finish_fname): Handle error_mark_node.

2014-02-19  Jason Merrill  <jason@redhat.com>

	PR c++/60046
	* pt.c (maybe_instantiate_noexcept): Don't instantiate exception
	spec from template context.

2014-01-31  Jason Merrill  <jason@redhat.com>

	PR c++/57043
	* pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
	during partial ordering.

2014-01-27  Jason Merrill  <jason@redhat.com>

	PR c++/54652
	* decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.

	PR c++/58639
	* call.c (build_aggr_conv): Reject value-initialization of reference.

2013-10-25  Tom de Vries  <tom@codesourcery.com>

	PR c++/58282
	* except.c (build_must_not_throw_expr): Handle
	flag_exceptions.

2013-10-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58633
	* parser.c (cp_parser_pseudo_destructor_name): Revert r174385 changes.

2013-09-13  Jason Merrill  <jason@redhat.com>

	PR c++/58273
	* pt.c (any_type_dependent_elements_p): Actually check for
	type-dependence, not value-dependence.

2013-08-20  Jason Merrill  <jason@redhat.com>

	PR c++/58119
	* cp-tree.h (WILDCARD_TYPE_P): Split out from...
	(MAYBE_CLASS_TYPE_P): ...here.
	* cvt.c (build_expr_type_conversion): Don't complain about a
	template that can't match the desired type category.

2012-12-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54170
	* cvt.c (cp_convert_to_pointer): Don't discard side-effects from
	expressions of nullptr_t.
	* typeck.c (build_ptrmemfunc): Likewise.

2013-07-09  Jason Merrill  <jason@redhat.com>

	PR c++/57437
	* typeck.c (check_return_expr): Lambda proxies aren't eligible
	for nrv or return by move.

	PR c++/57545
	* pt.c (convert_nontype_argument) [INTEGER_CST]: Force the
	argument to have the exact type of the parameter.

	PR c++/57551
	* semantics.c (cxx_eval_indirect_ref): Don't try to look through
	a POINTER_PLUS_EXPR for type punning diagnostic.

	PR c++/57831
	* pt.c (tsubst_copy): Handle USING_DECL.

2013-05-20  Jason Merrill  <jason@redhat.com>

	PR c++/57325
	* tree.c (build_cplus_array_type): Copy layout info if element
	type is complete.

2013-05-09  Jason Merrill  <jason@redhat.com>

	PR c++/57047
	* semantics.c (cxx_fold_indirect_ref): Fix thinko.

2013-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* parser.c (cp_parser_late_return_type_opt): Fix C++ism.

2013-04-15  Jason Merrill  <jason@redhat.com>

	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  <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.

	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  <jason@redhat.com>

	PR c++/56291
	* semantics.c (sort_constexpr_mem_initializers): Handle
	vptr out of order.

2013-02-11  Jason Merrill  <jason@redhat.com>

	PR c++/56268
	* semantics.c (classtype_has_nothrow_assign_or_copy_p): Call
	maybe_instantiate_noexcept.

2013-02-09  Jason Merrill  <jason@redhat.com>

	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  <jason@redhat.com>

	PR c++/54122
	* tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for
	METHOD_TYPE.

2013-02-01  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2012-12-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/55652
	* typeck2.c (merge_exception_specifiers): Don't call operand_equal_p
	if noex is NULL.

	2012-12-06  Jakub Jelinek  <jakub@redhat.com>

	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  <jakub@redhat.com>

	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  <jakub@redhat.com>

	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  <jason@redhat.com>

	PR c++/56104
	* typeck.c (get_member_function_from_ptrfunc): Don't fold
	POINTER_PLUS_EXPR.

2013-01-22  Jason Merrill  <jason@redhat.com>

	* 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  <jason@redhat.com>

	PR c++/56059
	* tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default
	template args count.

2013-01-09  Jason Merrill  <jason@redhat.com>

	PR c++/55893
	* decl.c (cp_finish_decl): Clear TREE_READONLY if the variable
	needs destruction.

2013-01-08  Joel Brobecker  <brobecker@adacore.com>

	* parser.c (cp_parser_initializer_list): Move declaration
	of variable non_const to start of lexical block.

2013-01-04  Jason Merrill  <jason@redhat.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.

2013-01-03  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++/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  <jason@redhat.com>

	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  <jason@redhat.com>

	PR c++/55724
	* pt.c (type_unification_real): Re-combine post-deduction loops.

2012-12-11  Jason Merrill  <jason@redhat.com>

	PR c++/54883
	* decl2.c (min_vis_r): Handle anon visibility for enums.

2012-12-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/55643
	* expr.c (mark_exp_read): Handle FLOAT_EXPR similarly to NOP_EXPR.

2012-12-07  Jason Merrill  <jason@redhat.com>

	PR c++/55419
	* tree.c (build_target_expr): Don't set TREE_CONSTANT.

2012-12-07  Matthias Klose  <doko@ubuntu.com>

	* tree.c (build_aggr_init_expr): Add parameter name, mark as unused.

2012-12-06  Jason Merrill  <jason@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.

2012-11-29  Kai Tietz  <ktietz@redhat.com>

	PR target/53912
	* class.c (dump_class_hierarchy_r): Cast from pointer via uintptr_t.
	(dump_vtable): Likewise.

2012-11-24  Paolo Carlini  <paolo.carlini@oracle.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.

	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
	* 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++/51868
	* typeck.c (build_static_cast_1): Handle bit-fields properly.

2012-01-13  Ian Lance Taylor  <iant@google.com>

	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.

2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>

	* decl2.c: Do not include tree-mudflap.h
	* semantics.c: Likewise.

2012-01-13  Jason Merrill  <jason@redhat.com>

	PR c++/20681
	* semantics.c (finish_break_stmt): Avoid adding an unreachable
	BREAK_STMT.

	PR c++/51813
	* decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
	when reducing the visibility.

	PR c++/51620
	* class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.

2012-01-12  Jason Merrill  <jason@redhat.com>

	PR c++/51714
	* pt.c (value_dependent_expression_p): Treat STMT_EXPR as
	value-dependent.

2012-01-13  Dodji Seketeli  <dodji@redhat.com>

	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.

2012-01-12  Jason Merrill  <jason@redhat.com>

	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.

	PR c++/51403
	* pt.c (unify): Handle error_mark_node.

2012-01-11  Jason Merrill  <jason@redhat.com>

	PR c++/51565
	* call.c (standard_conversion): For ptrmemfuncs, compare the
	static_fn_types.

	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.

	* decl.c (decls_match): Assert that the arguments are decls.

	PR c++/51613
	* pt.c (resolve_overloaded_unification): Compare types with
	same_type_p, not decls_match.

2012-01-10  Jason Merrill  <jason@redhat.com>

	PR c++/51614
	* class.c (build_base_path): Diagnose ambiguous base.

	PR c++/51433
	* semantics.c (cxx_eval_call_expression): Always retry previously
	non-constant expressions.

2012-01-06  Jason Merrill  <jason@redhat.com>

	DR 686
	PR c++/47450
	* parser.c (cp_parser_new_expression): Set
	type_definition_forbidden_message.

	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.

	* mangle.c (mangle_decl): Don't generate mangling aliases
	for maybe-in-charge [cd]tors.

	* error.c (dump_expr): Print type of CONSTRUCTOR.

2012-01-05  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51541
	* parser.c (cp_parser_alias_declaration): Get out early upon
    	errors in the identifier or the attributes.

2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51064
	* pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
	the tree returned by build_x_binary_op.

2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51738
	* parser.c (cp_parser_postfix_open_square_expression): Handle
	postfix-expression [ braced-init-list ].

2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/29273
	* rtti.c (build_dynamic_cast_1): In case of T a pointer type,
	call decay_conversion on v.

2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/15867
	* decl.c (duplicate_decls): With -Wredundant-decls don't warn for
	declaration followed by specialization.

2012-01-03  Jakub Jelinek  <jakub@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.

2012-01-02  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.

	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.

2012-01-02  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51462
	* semantics.c (cx_check_missing_mem_inits): Don't assert in case
    	of error.

2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/20140
	* typeck2.c (digest_init_r): Use copy_init when initializing
	an array of chars.

2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/16603
	* decl.c (build_enumerator): Don't call perform_integral_promotions
	on the value.

2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51379
	* typeck.c (build_reinterpret_cast_1): Implement resolution of
	DR 799.

2012-01-01  Fabien Chêne  <fabien@gcc.gnu.org>

	* 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.

Copyright (C) 2012 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
