2017-10-10  Release Manager

	* GCC 5.5.0 released.

2017-09-18  Jason Merrill  <jason@redhat.com>

	PR c++/80294 - ICE with constexpr and inheritance.
	* constexpr.c (reduced_constant_expression_p):
	A null constructor element is non-constant.
	(cxx_eval_indirect_ref): Don't VERIFY_CONSTANT before
	returning an empty base.

	PR c++/79607 - ICE with T{} initializer
	* decl.c (type_dependent_init_p): Check the type of a CONSTRUCTOR.

	PR c++/72457
	* init.c (expand_aggr_init_1): Only handle value-init of bases.
	* constexpr.c (build_data_member_initialization): Handle multiple
	initializers for the same field.

	PR c++/55922
	PR c++/63151
	* init.c (expand_aggr_init_1): Handle list-initialization from {}.

2017-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2017-06-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/81154
	* semantics.c (handle_omp_array_sections_1, finish_omp_clauses):
	Complain about t not being a variable if t is OVERLOAD even
	when processing_template_decl.

	2017-06-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80984
	* cp-gimplify.c (cp_genericize): Only look for VAR_DECLs in
	BLOCK_VARS (outer) chain.
	(cxx_omp_const_qual_no_mutable): Likewise.

2017-06-08  Jakub Jelinek  <jakub@redhat.com>

	PR c/81006
	* semantics.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
	to sizetype before size_binop.

2017-05-30  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2017-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80363
	* error.c (dump_expr): Handle VEC_COND_EXPR like COND_EXPR.

	2017-04-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80176
	* tree.c (lvalue_kind): For COMPONENT_REF with BASELINK second
	operand, if it is a static member function, recurse on the
	BASELINK.

	2017-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80141
	* semantics.c (finish_omp_clause) <case OMP_CLAUSE_SIMDLEN,
	case OMP_CLAUSE_ALIGNED>: Call maybe_constant_value only when not
	processing_template_decl.

	2017-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79896
	* decl.c (finish_enum_value_list): If value is error_mark_node,
	don't copy it and change its type.
	* init.c (constant_value_1): Return error_mark_node if DECL_INITIAL
	of CONST_DECL is error_mark_node.

	2017-02-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79664
	* parser.c (cp_parser_omp_teams, cp_parser_omp_target): Use
	SET_EXPR_LOCATION on OMP_TARGET/OMP_TEAMS tree.
	* constexpr.c (potential_constant_expression_1): Handle
	OMP_*, OACC_* and CILK_* trees.

	2017-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79512
	* parser.c (cp_parser_omp_target): For -fopenmp-simd
	ignore #pragma omp target even when not followed by identifier.

	2017-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/78341
	* parser.c (cp_parser_std_attribute_spec): Remove over-eager
	assertion.  Formatting fix.

	2017-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/78949
	* typeck.c (cp_build_unary_op): Call mark_rvalue_use on arg if it has
	vector type.

	2016-12-02  Jakub Jelinek  <jakub@redhat.com>

	PR c++/78649
	* pt.c (tsubst_init): Don't call build_value_init if decl's type
	is error_mark_node.

	2016-11-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/77739
	* cp-gimplify.c (cp_gimplify_tree) <case VEC_INIT_EXPR>: Pass
	false as handle_invisiref_parm_p to cp_genericize_tree.
	(struct cp_genericize_data): Add handle_invisiref_parm_p field.
	(cp_genericize_r): Don't wrap is_invisiref_parm into references
	if !wtd->handle_invisiref_parm_p.
	(cp_genericize_tree): Add handle_invisiref_parm_p argument,
	set wtd.handle_invisiref_parm_p to it.
	(cp_genericize): Pass true as handle_invisiref_parm_p to
	cp_genericize_tree.  Formatting fix.

	2016-11-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/77285
	* mangle.c (mangle_tls_init_fn, mangle_tls_wrapper_fn): Call
	check_abi_tags.

	2016-10-31  Jakub Jelinek  <jakub@redhat.com>

	PR c++/78089
	* parser.c (cp_parser_postfix_expression): Replace return statement in
	the first switch with setting postfix_expression to the return
	expression and break;.

	2016-09-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/77467
	* constexpr.c (enum constexpr_switch_state): New.
	(struct constexpr_ctx): Add css_state field.
	(label_matches): Add CTX and STMT arguments, remove I and
	DEFAULT_LABEL.  For CASE_LABEL_EXPR assert ctx->css_state != NULL,
	handle default labels according to css_state.
	(cxx_eval_statement_list): Remove statement skipping, label_matches
	and default_label handling code.
	(cxx_eval_loop_expr): Exit after first iteration even if
	switches (jump_target).
	(cxx_eval_switch_expr): Set up css_state field in ctx, if default
	label has been seen in the body, but no cases matched, evaluate
	the body second time.
	(cxx_eval_constant_expression): Handle stmt skipping and label_matches
	here.  Handle PREDICT_EXPR.  For MODIFY_EXPR or INIT_EXPR, assert
	statement is not skipped.  For COND_EXPR during skipping, don't
	evaluate condition, just the then block and if still skipping at the
	end also the else block.
	(cxx_eval_outermost_constant_expr): Adjust constexpr_ctx initializer.
	(is_sub_constant_expr): Likewise.

	2016-09-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/77722
	* cp-gimplify.c (cp_ubsan_maybe_instrument_return): Instrument also
	functions that have just a STATEMENT_LIST instead of BIND_EXPR, or
	BIND_EXPR with some statement rather than STATEMENT_LIST as body.

	2016-09-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/77637
	* parser.c (cp_parser_std_attribute_list): Reject ... without
	preceding attribute.

	2016-09-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/77375
	* class.c (check_bases): Set CLASSTYPE_HAS_MUTABLE if any
	TYPE_HAS_MUTABLE_P for any bases.

	2016-08-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/72868
	* constexpr.c (label_matches): Handle case range expressions.

2017-01-12  Nathan Sidwell  <nathan@acm.org>

	PR c++/77812
	* name-lookup.c (set_namespace_binding_1): An overload of 1 decl
	is a new overload.

2016-12-08  Nathan Sidwell  <nathan@acm.org>

	PR c++/78551
	* constexpr.c (extract_string_elt): New.  Broken out of ...
	(cxx_eval_array_reference): ... here.  Call it.
	(cxx_eval_store_expression): Convert init by STRING_CST into
	CONSTRUCTOR, if needed.

2016-08-05  Nathan Sidwell  <nathan@acm.org>

	PR c++/68724
	* pt.c (unify): TRAIT_EXPR is an expr.

2016-07-25  Jason Merrill  <jason@redhat.com>

	PR c++/71833
	* pt.c (coerce_template_parameter_pack): Fix logic for
	pack index.

2016-07-21  Jason Merrill  <jason@redhat.com>

	PR c++/69223
	* semantics.c (apply_deduced_return_type): Call
	complete_type_or_else before building the new RESULT_DECL.

	PR c++/71630
	* pt.c (instantiate_decl): Fix pattern_defined for namespace scope
	variable templates.

	PR c++/71913
	* call.c (unsafe_copy_elision_p): It's OK to elide when
	initializing an unknown object.

2016-07-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/71909
	* parser.c (cp_parser_save_member_function_body): Consume
	__transaction_relaxed or __transaction_atomic with optional
	attribute.  Only skip catch with block if try keyword is seen.

2016-07-19  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2016-07-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/71871
	* typeck.c (build_x_conditional_expr): Revert the 2012-10-25 change.

2016-07-07  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2016-06-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/71528
	* decl.c (duplicate_decls): For DECL_INITIALIZED_P non-external
	olddecl vars, preserve their TREE_READONLY bit.

	PR c++/71516
	* decl.c (complete_vars): Handle gracefully type == error_mark_node.

2016-06-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/71442
	* pt.c (tsubst_copy): Only set TREE_USED on DECLs.

2016-06-03  Release Manager

	* GCC 5.4.0 released.

2016-05-23  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-03-23  Patrick Palka  <ppalka@gcc.gnu.org>
 
	PR c++/70347
	* typeck.c (process_init_constructor_union): If the initializer
	is empty, use the union's NSDMI if it has one.

2016-05-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70466
	* call.c (convert_like_real): Check that we are actually converting
	from an init list.

2016-05-18  Jason Merrill  <jason@redhat.com>

	PR c++/70505
	* pt.c (tsubst_baselink): Give the new TEMPLATE_ID_EXPR
	unknown_type_node, too.

	PR c++/70494
	* decl.c (cxx_maybe_build_cleanup): Handle non-decls.
	* typeck2.c (split_nonconstant_init_1): Use it.

	PR c++/70648
	* constexpr.c (cxx_eval_store_expression): Also copy
	CONSTRUCTOR_NO_IMPLICIT_ZERO.

	PR c++/70353
	* decl.c (make_rtl_for_nonlocal_decl): Don't defer local statics
	in constexpr functions.

	PR c++/70095
	* pt.c (instantiate_decl): Fix call to variable_template_p.

2016-05-18  Jason Merrill  <jason@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/70135
	* constexpr.c (struct constexpr_ctx): Add save_exprs field.
	(cxx_eval_loop_expr): Discard SAVE_EXPR values before looping.
	(cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set.
	(cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize.

2016-05-18  Jason Merrill  <jason@redhat.com>

	* method.c (synthesized_method_walk): operator= can also be constexpr.

2016-05-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70635
	* pt.c (resolve_typename_type): Fix typos in infinite recursion
	avoidance mechanism.

2016-04-18  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2016-03-31  Marek Polacek  <polacek@redhat.com>

	PR c/70297
	* decl.c (duplicate_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.

2016-04-18  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2015-11-11  Jason Merrill  <jason@redhat.com>

	* decl.c (duplicate_decls): When combining typedefs, remove the
	new type from the variants list.

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

	* pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get
	LAMBDA_EXPR_RETURN_TYPE from the instantiated closure.

	PR c++/67164
	* pt.c (copy_template_args): New.
	(tsubst_pack_expansion): Use it.

2016-04-13  Alan Modra  <amodra@gmail.com>

	Backport from mainline
	2016-03-22  Patrick Palka  <ppalka@gcc.gnu.org>
	PR target/70107
	PR c++/70096
	* pt.c (tsubst_decl): Clear the DECL_MODE of the new decl.

2016-04-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-03-31  Richard Biener  <rguenther@suse.de>

	PR c++/70430
	* typeck.c (cp_build_binary_op): Fix operand order of vector
	conditional in truth op handling.

2016-03-31  Nathan Sidwell  <nathan@acm.org>

	PR c++/70393
	* constexpr.c (cxx_eval_store_expression): Keep CONSTRUCTOR
	elements in field order.

2016-03-30  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2016-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/70272
	* decl.c (begin_destructor_body): Don't insert clobber if
	is_empty_class (current_class_type).

	2016-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/67767
	* parser.c (cp_parser_std_attribute_spec_seq): Don't assume
	attr_spec is always single element chain, chain all the attributes
	properly together in the right order.

2016-03-21  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2016-03-15  Marek Polacek  <polacek@redhat.com>

	PR c++/70209
	* tree.c (strip_typedefs): Call strip_typedefs again on the
	DECL_ORIGINAL_TYPE result.

2016-03-18  Jason Merrill  <jason@redhat.com>

	PR c++/70139
	* constexpr.c (cxx_eval_call_expression): Don't shortcut trivial copy.

2016-03-05  Jason Merrill  <jason@redhat.com>

	PR c++/67364
	* constexpr.c (cxx_eval_store_expression): Replace
	CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too.

2016-03-04  Jason Merrill  <jason@redhat.com>

	PR c++/67364
	* constexpr.c (cxx_eval_component_reference): Further tweak.

	PR c++/70067
	* tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the
	same type.

2016-03-03  Jason Merrill  <jason@redhat.com>

	* call.c (build_aggr_conv): Use get_nsdmi.

	PR c++/51406
	* typeck.c (build_static_cast_1): Avoid folding back to lvalue.

	PR c++/67364
	* constexpr.c (cxx_eval_component_reference): Just return an empty
	CONSTRUCTOR for an empty class.

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

	* call.c (build_op_delete_call, build_over_call): Check mark_used
	return value.
	* class.c (resolve_address_of_overloaded_function): Likewise.
	* decl.c (cxx_maybe_build_cleanup): Likewise.
	* pt.c (gen_elem_of_pack_expansion_instantiation, tsubst_baselink,
	tsubst_qualified_id, tsubst_copy, tsubst_copy_and_build): Likewise.
	* rtti.c (build_dynamic_cast_1): Likewise.
	* semantics.c (process_outer_var_ref): Likewise.
	* typeck.c (build_class_member_access_expr,
	cp_build_function_call_vec, cp_build_addr_expr_1): Likewise.

2016-03-01  Jason Merrill  <jason@redhat.com>

	PR c++/69261
	* constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.

2016-03-01  Markus Trippelsdorf  <markus@trippelsdorf.de>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/68087
	* constexpr.c (cxx_eval_array_reference): Use tree_fits_shwi_p before
	tree_to_shwi to avoid ICEs.

2016-03-01  Jason Merrill  <jason@redhat.com>

	PR c++/67104
	* constexpr.c (array_index_cmp, find_array_ctor_elt): New.
	(cxx_eval_array_reference, cxx_eval_store_expression): Use them.

	PR c++/51489
	* constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
	the operands.

	PR c++/69995
	* constexpr.c (cxx_eval_call_expression): Unshare arg.
	(cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
	[TARGET_EXPR]: Unshare init.

2016-02-29  Jason Merrill  <jason@redhat.com>

	PR c++/69995
	* constexpr.c (cxx_eval_store_expression): Unshare init.

	PR c++/65985
	* constexpr.c (build_constexpr_constructor_member_initializers):
	Handle an additional STATEMENT_LIST.

2016-02-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Backported from mainline
	2016-02-19  Jakub Jelinek  <jakub@redhat.com>
		    Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* Make-lang.in: Invoke gperf with -L C++.
	* cfns.gperf: Remove prototypes for hash and libc_name_p
	inlines.
	* cfns.h: Regenerated.
	* except.c (nothrow_libfn_p): Adjust.

2016-02-25  Jason Merrill  <jason@redhat.com>

	PR c++/67364
	* constexpr.c (cxx_eval_component_reference): Don't complain about
	unevaluated empty classes.

	PR c++/68049
	* tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.

2016-02-24  Jason Merrill  <jason@redhat.com>

	PR c++/69323
	* pt.c (instantiate_class_template_1): Set
	processing_template_decl before substituting friend_type.

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

	PR c++/69743
	* call.c (remaining_arguments): No longer static.
	* cp-tree.h: Declare it.
	* pt.c (more_specialized_fn): Use it.

2016-02-17  Jason Merrill  <jason@redhat.com>

	PR c++/68585
	* constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.

	PR c++/68679
	* decl2.c (reset_type_linkage_2): Look through member templates.

2016-02-15  Jason Merrill  <jason@redhat.com>

	PR c++/68890
	* constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.

2016-02-10  Jason Merrill  <jason@redhat.com>

	PR c++/68926
	* pt.c (resolve_nondeduced_context): Add complain parm.
	(do_auto_deduction): Pass it.
	* cvt.c (convert_to_void): Likewise.
	* decl.c (cp_finish_decl): Likewise.
	* init.c (build_new): Likewise.
	* rtti.c (get_tinfo_decl_dynamic): Likewise.
	* semantics.c (finish_decltype_type): Likewise.
	* typeck.c (decay_conversion): Likewise.
	* cp-tree.h: Adjust declaration.
	* call.c (standard_conversion): Add complain parm, pass it along.
	(implicit_conversion): Pass it.

2016-02-10  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2016-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/59627
	* parser.c (cp_parser_omp_declare_reduction): Set assembler name
	of the DECL_OMP_DECLARE_REDUCTION_P decls.

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

	PR c++/69009
	* pt.c (partial_specialization_p, impartial_args): New.
	(instantiate_decl): Call impartial_args.

2016-01-27  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2016-01-27  Marek Polacek  <polacek@redhat.com>

	PR c/68062
	* typeck.c (cp_build_binary_op): Promote operand to unsigned, if
	needed.  Add -Wsign-compare warning.

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

	PR c++/68949
	* optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
	* semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
	maybe-in-charge *tor.

	PR c++/69131
	* method.c (walk_field_subobs): Add dtor_from_ctor parm.
	(process_subob_fn): Likewise.  Don't consider triviality if true.
	(synthesize_method_walk): Pass it.

2016-01-19  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2016-01-19  Marek Polacek  <polacek@redhat.com>

	PR c++/68965
	* pt.c (tsubst_copy): Mark elements in expanded vector as used.

2016-01-08  Marek Polacek  <polacek@redhat.com>

	PR c++/68449
	* constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.

2016-01-07  Jason Merrill  <jason@redhat.com>

	PR c++/68983
	PR c++/67557
	* call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.

2015-12-22  Jason Merrill  <jason@redhat.com>

	PR c++/66921
	* decl.c (cp_complete_array_type): Allow an initializer that
	already has array type.

	PR c++/67339
	* parser.c (cp_parser_elaborated_type_specifier): Use CLASS_TYPE_P
	rather than check for RECORD_TYPE.

2015-12-20  Jason Merrill  <jason@redhat.com>

	PR c++/67411
	* decl2.c (decl_maybe_constant_var_p): Use DECL_HAS_VALUE_EXPR_P.

	PR c++/67411
	* decl2.c (decl_maybe_constant_var_p): A proxy isn't constant.

2015-12-17  Jason Merrill  <jason@redhat.com>

	PR c++/67550
	* init.c (constant_value_1): Don't return a CONSTRUCTOR missing
	non-constant elements.

	PR c++/67576
	PR c++/25466
	* rtti.c (build_typeid): Use save_expr, not stabilize_reference.

2015-12-16  Joseph Myers  <joseph@codesourcery.com>

	PR c/68162
	* tree.c (c_build_qualified_type): Add extra arguments.

2015-12-16  Jason Merrill  <jason@redhat.com>

	PR c++/63628
	* pt.c (tsubst_pack_expansion): Also make dummy decls if
	retrieve_local_specialization fails.

2015-12-04  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR c++/67337
	* mangle.c (write_template_prefix): Guard against context==NULL.

2015-12-04  Release Manager

	* GCC 5.3.0 released.

2015-11-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/68508
	* cp-tree.h (cp_ubsan_maybe_instrument_downcast): Add INTYPE argument.
	* cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise.  Use
	it instead of or in addition to TREE_TYPE (op).  Use
	is_properly_derived_from, return NULL_TREE if TREE_TYPE (intype) and
	TREE_TYPE (type) are the same type minus qualifiers.
	* typeck.c (build_static_cast_1): Adjust callers.

2015-11-25  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2015-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/67354
	* cp-tree.h (defer_mangling_aliases): Declare.
	(generate_mangling_aliases): New prototype.
	* decl2.c (defer_mangling_aliases): New variable.
	(note_mangling_alias): Use !defer_mangling_aliases
	instead of at_eof.
	(generate_mangling_aliases): No longer static. Clear
	defer_mangling_aliases.
	* optimize.c (maybe_thunk_body): Defer emitting mangling aliases
	if !defer_mangling_aliases until the fns are put into the same
	comdat group.

	2015-05-09  Aldy Hernandez  <aldyh@redhat.com>

	PR bootstrap/66085
	* decl2.c (note_mangling_alias): Declare arguments as unused.

	2015-05-08  Jason Merrill  <jason@redhat.com>

	* decl2.c (mangling_aliases): New variable.
	(note_mangling_alias, generate_mangling_aliases): New.
	(cp_write_global_declarations): Call generate_mangling_aliases.
	(generate_mangling_alias): Split out from...
	* mangle.c (mangle_decl): ...here.
	* cp-tree.h: Declare note_mangling_alias.

2015-11-25  Jason Merrill  <jason@redhat.com>

	PR c++/67941
	* lambda.c (maybe_add_lambda_conv_op): Mark _FUN as
	no_sanitize_undefined.

	PR c++/68422
	* cp-tree.h (PACK_EXPANSION_SIZEOF_P): New.
	* parser.c (cp_parser_sizeof_pack): Set it.
	* pt.c 	(tsubst_copy) [SIZEOF_EXPR]: Likewise.
	(tsubst_pack_expansion): Improve T... shortcut when set.

	PR c++/67813
	* constexpr.c (cxx_eval_store_expression): Always use *valp if
	set.

2015-11-25  Markus Trippelsdorf  <markus@trippelsdorf.de>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/68087
	* constexpr.c (cxx_eval_array_reference): Use tree_fits_shwi_p before
	tree_to_shwi to avoid ICEs.

2015-11-19  Jakub Jelinek  <jakub@redhat.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/67409
	* decl.c (identify_goto): Add LOC and DIAG_KIND arguments, call
	emit_diagnostic instead of permerror.
	(check_previous_goto_1): Adjust identify_goto callers, treat all
	cases but crossing initialization and entering scope of decl with
	non-trivial dtor as unconditional hard errors.
	(check_goto): Use identify_goto.  Treat all cases but crossing
	initialization and entering scope of decl with non-trivial dtor
	as unconditional hard errors.

2015-10-20  Jason Merrill  <jason@redhat.com>

	PR c++/66583
	* init.c (innermost_aggr_scope): New.
	(sort_mem_initializers): Use it.

	PR c++/67557
	* call.c (is_base_field_ref): New.
	(unsafe_copy_elision_p): New.
	(build_over_call): Use it.

2015-09-12  Paolo Carlini  <paolo.carlini@oracle.com>

	Backport from mainline
	2015-06-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51048
	* decl2.c (no_linkage_error): Do not issue a permerror if the DECL
	using a local type is pure virtual.

2015-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/67522
	* semantics.c (handle_omp_array_sections_1): Only run
	type_dependent_expression_p on VAR_DECL/PARM_DECLs.
	(finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Likewise.
	Don't adjust OMP_CLAUSE_LINEAR_STEP if OMP_CLAUSE_DECL
	is not a VAR_DECL/PARM_DECL.

	PR c++/67511
	* semantics.c (handle_omp_for_class_iterator): Don't wrap
	error_mark_node into a NOP_EXPR to void_type_node.

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

	PR c++/67504
	* parser.c (cp_parser_omp_clause_collapse): Test tree_fits_shwi_p
	before INTEGRAL_TYPE_P test.

2015-09-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67369
	* pt.c (tsubst_copy, [case FUNCTION_DECL]): Do not call tsubst
	if the first argument isn't a template.

2015-08-17  Jason Merrill  <jason@redhat.com>

	PR c++/66957
	* search.c (protected_accessible_p): Revert fix for 38579.

2015-08-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66919
	* pt.c (tsubst_copy): Pass complain to mark_used, check return value.

2015-08-17  Jason Merrill  <jason@redhat.com>

	PR c++/67244
	* pt.c (tsubst_copy_and_build): Call insert_pending_capture_proxies.

	PR c++/65734
	* class.c (fixup_attribute_variants): Respect TYPE_USER_ALIGN.

	PR c++/67104
	* constexpr.c (cxx_eval_array_reference): Handle sparse
	CONSTRUCTORs.

2015-08-14  Jason Merrill  <jason@redhat.com>

	PR c++/65974
	* decl2.c (mark_vtable_entries): Suppress -Wdeprecated.

2015-08-14  Patrick Palka  <ppalka@gcc.gnu.org>

	PR c++/66857
	* cvt.c (ocp_convert): Don't call scalar_constant_value when
	converting to a class type.

2015-08-12  Jason Merrill  <jason@redhat.com>

	PR c++/67161
	* error.c (dump_decl) [TEMPLATE_ID_EXPR]: Pass
	TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS.

2015-08-06  Jason Merrill  <jason@redhat.com>

	PR c++/66533
	* parser.c (cp_parser_primary_expression): Don't skip to the end
	of the statement if we're parsing tentatively.

	PR c++/67130
	PR c++/67131
	PR c++/66260
	* mangle.c (write_expression) [TEMPLATE_ID_EXPR]: Handle variable
	templates.
	* pt.c (tsubst_copy_and_build): Check for argument substitution
	failure.

2015-08-05  Jason Merrill  <jason@redhat.com>

	PR c++/66260
	PR c++/66596
	PR c++/66649
	PR c++/66923
	* pt.c (lookup_template_variable): Use NULL_TREE for type.
	(instantiate_template_1): Also set DECL_TI_ARGS based on
	the immediate parent.
	(tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle variable templates.
	(finish_template_variable): Add complain parm.
	* cp-tree.h: Adjust.

	PR c++/65195
	PR c++/66619
	* semantics.c (finish_id_expression): Call convert_from_reference
	for variable template.

	PR c++/66336
	* pt.c (find_parameter_packs_r): Handle variable templates.
	(variable_template_specialization_p): New.
	* cp-tree.h: Declare it.

2015-07-30  Jason Merrill  <jason@redhat.com>

	DR 1558
	PR c++/67021
	* pt.c (tsubst_decl) [TYPE_DECL]: Clear TYPE_DEPENDENT_P_VALID.

2015-07-16  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2015-07-08  Marek Polacek  <polacek@redhat.com>

	PR c++/66748
	* tree.c (handle_abi_tag_attribute): Check for CLASS_TYPE_P before
	accessing TYPE_LANG_SPECIFIC node.

2015-07-16  Release Manager

	* GCC 5.2.0 released.

2015-07-10  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2015-07-08  Jakub Jelinek  <jakub@redhat.com>

	* decl.c (grokfndecl): Handle flag_openmp_simd like flag_openmp.
	* pt.c (apply_late_template_attributes): Likewise.

2015-07-02  Jason Merrill  <jason@redhat.com>

	PR c++/66743
	* pt.c (for_each_template_parm_r) [UNDERLYING_TYPE]: Use
	TYPE_VALUES_RAW rather than TYPE_FIELDS.

2015-06-30  Jason Merrill  <jason@redhat.com>

	PR c++/65945
	* decl.c (cxx_init_decl_processing): Set TYPE_ALIGN of nullptr_t.
	* class.c (layout_nonempty_base_or_field): Warn if that affects
	the offset of a field.

2015-06-29  Adam Butcher  <adam@jessamine.co.uk>

	PR c++/65750
	* parser.c (cp_parser_simple_type_specifier): Don't synthesize
	implicit template parm if 'auto' is a placeholder for trailing
	return type.

2015-06-26  Jason Merrill  <jason@redhat.com>

	PR c++/66216
	* class.c (finish_struct): Call fixup_attribute_variants.

	PR c++/66067
	* mangle.c (write_template_args): Handle 0 length TREE_VEC.

2015-06-24  Jason Merrill  <jason@redhat.com>

	PR c++/65919
	* mangle.c (mangle_decl): Always SET_IDENTIFIER_GLOBAL_VALUE.
	(decl_implicit_alias_p): Split out from maybe_remove_implicit_alias.
	* cp-tree.h (DECL_REALLY_EXTERN): Handle null DECL_LANG_SPECIFIC.

	PR c++/66647
	* pt.c (dependent_type_p_r): Check for dependent alias template
	specialization sooner.

	PR c++/66501
	* init.c (vec_copy_assign_is_trivial): New.
	(build_vec_init): Use it.

2015-06-24  Mikhail Maltsev  <maltsevm@gmail.com>

	Backport from mainline:
	2015-06-20  Mikhail Maltsev  <maltsevm@gmail.com>

	PR c++/65882
	* call.c (build_new_op_1): Check tf_warning flag in all cases.

2015-06-23  Jason Merrill  <jason@redhat.com>

	PR c++/65879
	* tree.c (no_linkage_check): Skip the 'this' pointer.

2015-06-19  Jason Merrill  <jason@redhat.com>

	PR c++/66515
	* call.c (implicit_conversion): Call reshape_init here, early.
	(build_aggr_conv): Not here.

	PR c++/66585
	* pt.c (instantiate_class_template_1): Clear
	cp_unevaluated_operand and c_inhibit_evaluation_warnings.

	PR c++/65880
	* decl.c (build_ptrmemfunc_type): Check TYPE_GET_PTRMEMFUNC_TYPE after
	cv-qualifiers.

	PR c++/65973
	* constexpr.c (build_constexpr_constructor_member_initializers):
	Handle an empty STATEMENT_LIST.

	PR c++/65843
	* pt.c (tsubst_copy_and_build): Register a capture proxy in
	local_specializations.

2015-06-17  Jason Merrill  <jason@redhat.com>

	PR c++/66001
	* constexpr.c (cxx_eval_constant_expression): Handle TRY_BLOCK and
	TRY_FINALLY_EXPR.
	(potential_constant_expression_1): Likewise.

2015-06-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/66571
	* pt.c (tsubst_omp_clause_decl): New function.
	(tsubst_omp_clauses): Use it or tsubst_copy instead of
	tsubst_expr on OMP_CLAUSE_DECL.

2015-06-17  Jason Merrill  <jason@redhat.com>

	PR c++/66536
	* tree.c (replace_placeholders_r) [CONSTRUCTOR]: Handle type
	mismatch.

	PR c++/58063
	* tree.c (bot_manip): Remap SAVE_EXPR.

	PR c++/66387
	* pt.c (tsubst_copy) [VAR_DECL]: Use process_outer_var_ref.

	PR c++/66450
	* constexpr.c (cxx_eval_store_expression): Avoid messing up outer
	ctx->ctor.

	PR c++/66289
	* cp-tree.h (TEMPLATE_DECL_COMPLEX_ALIAS_P): New.
	* pt.c (push_template_decl_real): Set it.
	(dependent_alias_template_spec_p): Use it.
	(dependent_type_p_r): Use dependent_alias_template_spec_p.
	(uses_all_template_parms_data, uses_all_template_parms_r)
	(complex_alias_template_p): New.
	(get_template_parm_index): Handle BOUND_TEMPLATE_TEMPLATE_PARM.

2015-06-12  Jason Merrill  <jason@redhat.com>

	PR c++/65719
	* pt.c (tsubst_decl) [VAR_DECL]: Mark namespace-scope
	variables as DECL_NOT_REALLY_EXTERN.

2015-06-11  Jason Merrill  <jason@redhat.com>

	PR c++/66445
	* constexpr.c (potential_constant_expression_1): Handle a
	DECL_EXPR of TYPE_DECL.

2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>

	* decl.c (cxx_init_decl_processing): Register the main
	translation unit through the new debug hook.

2015-06-09  Jason Merrill  <jason@redhat.com>

	PR c++/66387
	* semantics.c (process_outer_var_ref): Make sure the value is
	actually constant before returning it.
	* typeck.c (cp_build_array_ref): Allow subscripting non-lvalue
	array.

	PR c++/66383
	* tree.c (replace_placeholders_r): Handle placeholders for an
	outer object.
	* typeck2.c (store_init_value): Only replace_placeholders for
	objects of class type.

2015-06-05  Jason Merrill  <jason@redhat.com>

	PR c++/66405
	* pt.c (argument_pack_element_is_expansion_p): Return 2 if
	the expansion has extra args.
	(use_pack_expansion_extra_args_p): Return true in that case.

	PR c++/66405
	* pt.c (type_dependent_expression_p): EXPR_PACK_EXPANSION is
	dependent even if it has a type.

2015-06-05  Jason Merrill  <jason@redhat.com>

	PR c++/65942
	* decl2.c (mark_used): Don't always instantiate constexpr fns.
	* constexpr.c (cxx_eval_call_expression): Instantiate them here.

2015-06-04  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2015-06-03  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/66190
	* cp-gimplify.c (struct cp_genericize_data): Add no_sanitize_p.
	(cp_genericize_r): Don't instrument static initializers.
	(cp_genericize_tree): Initialize wtd.no_sanitize_p.

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

	PR c++/66320
	* constexpr.c (cxx_eval_constant_expression): Treat a placeholder
	with the wrong type as non-constant.

	* pt.c (tsubst_decl) [VAR_DECL]: SET_DECL_IMPLICIT_INSTANTIATION
	before register_specialization.

2015-05-22  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2015-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66199
	* parser.c (cp_parser_omp_for_loop): Don't add
	OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
	OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
	(cp_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
	constructs.

2015-05-18  Jason Merrill  <jason@redhat.com>

	* pt.c (tsubst_decl) [VAR_DECL]: Call coerce_innermost_template_parms.
	(determine_specialization): Call coerce_template_parms.

	* tree.c (strip_typedefs_expr) [TRAIT_EXPR]: Fix typo.
	(strip_typedefs) [DECLTYPE_TYPE]: Fix typedef of decltype.
	[TREE_LIST]: Fix no-change case.

2015-05-07  Jason Merrill  <jason@redhat.com>

	PR c++/59012
	* parser.c (cp_parser_std_attribute_list): Handle attribute expansion.
	(cp_parser_std_attribute_spec): Handle alignas pack expansion.
	* decl2.c (is_late_template_attribute): An attribute exp is dependent.
	* pt.c (make_pack_expansion): Allow TREE_LIST for attribute expansion.
	(apply_late_template_attributes): Handle attribute pack expansion.

	DR 1467
	PR c++/51747
	* typeck2.c (digest_init_r): Fix single element list.

2015-05-05  Jason Merrill  <jason@redhat.com>

	* decl.c (start_decl): Don't push the plain VAR_DECL for a
	variable template.

2015-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/66007
	* typeck2.c (check_narrowing): Check by-hand that the pedwarn didn't
	result in an actual error.

2015-05-01  Paolo Carlini  <paolo.carlini@oracle.com>
	    Prathamesh Kulharni  <prathamesh.kulkarni@linaro.org>

	PR c++/65858
	* typeck2.c (check_narrowing): Set ok = true when pedwarn returns
	false.

2015-04-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65801
	* typeck2.c (check_narrowing): In C++11 mode too, -Wno-narrowing
	suppresses the diagnostic.

2015-04-30  Jason Merrill  <jason@redhat.com>

	PR c++/65876
	* constexpr.c (cxx_eval_call_expression): Fail gracefully if cgraph
	threw away DECL_SAVED_TREE.

2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>

	Backport from trunk r222564:

	2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>

	* pt.c (tsubst_expr) <OMP_TARGET_UPDATE>: Use
	OMP_TARGET_UPDATE_CLAUSES instead of OMP_CLAUSES.

2015-04-28  Jason Merrill  <jason@redhat.com>

	PR c++/65896
	* constexpr.c (cxx_eval_store_expression): Don't try to actually
	store an empty class.

2015-04-22  Marek Polacek  <polacek@redhat.com>

	PR c++/65727
	* lambda.c (maybe_resolve_dummy): Handle null return.

2015-04-22  Jason Merrill  <jason@redhat.com>

	PR c++/65695
	* cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.

	PR c++/65721
	* name-lookup.c (do_class_using_decl): Complain about specifying
	the current class even if there are dependent bases.

2015-04-22  David Krauss  <david_work@me.com>

	PR c++/59766
	* decl.c (grokdeclarator): Do not flag friends with deduced return.

2015-04-22  Release Manager

	* GCC 5.1.0 released.

2015-04-20  Ilya Verbin  <ilya.verbin@intel.com>

	* parser.c (cp_parser_omp_target_update): Add missed %> to error_at ().

2015-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR c++/65736
	* constexpr.c (cxx_eval_pointer_plus_expression): Don't fold for VLAs,
	don't fold if op01 isn't divisible by TYPE_SIZE_UNIT.  Convert
	the expression to the original type at the end.

2015-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/65690
	* tree.c (cp_build_qualified_type_real): Copy TYPE_ALIGN and
	TYPE_USER_ALIGN.

	PR c++/65690
	* tree.c (build_cplus_array_type): Layout type before variants are
	set, but copy over TYPE_SIZE and TYPE_SIZE_UNIT from the main
	variant.

2015-04-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/64085
	* lambda.c (add_capture): Use dependent_type_p for capture by
	reference too.

2015-04-02  Marek Polacek  <polacek@redhat.com>

	PR c++/65642
	* constexpr.c (cxx_eval_pointer_plus_expression): Call
	cxx_eval_constant_expression on the first operand.

2015-04-01  Jason Merrill  <jason@redhat.com>

	PR c++/65625
	* decl.c (make_typename_type): Handle seeing a variable template.

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

	PR c++/56100
	* pt.c (instantiating_current_function_p): New.
	* name-lookup.c (pushdecl_maybe_friend_1): Use it.
	* cp-tree.h (instantiating_current_function_p): Declare.

2015-04-01  Jason Merrill  <jason@redhat.com>

	PR c++/65646
	* decl.c (grokvardecl): Don't call check_explicit_specialization
	for non-template members of a class template.

2015-04-01  Marek Polacek  <polacek@redhat.com>

	PR c++/65554
	* class.c (finish_struct): Require that the second field of a
	user-defined initializer_list be of size type.

2015-03-31  Marek Polacek  <polacek@redhat.com>

	PR c++/65390
	* tree.c (build_cplus_array_type): Use dependent_type_p rather than
	checking for constness.

2015-03-30  Marek Polacek  <polacek@redhat.com>

	PR c++/65398
	* constexpr.c (cxx_fold_indirect_ref): Don't perform the
	 *(&A[i] p+ j) => A[i + j] transformation here.
	(cxx_eval_pointer_plus_expression): New function.
	(cxx_eval_constant_expression): Use it here.

2015-03-27  Tobias Burnus  <burnus@net-b.de>

	PR c/65586
	* parser.c (cp_parser_omp_for, cp_parser_omp_parallel,
	cp_parser_omp_distribute, cp_parser_omp_teams, cp_parser_omp_target,
	cp_parser_omp_declare): Don't show error for skipped omp pragmas with
	-fopenmp-simd.

2015-03-27  Marek Polacek  <polacek@redhat.com>

	PR c++/65556
	* semantics.c (finish_switch_cond): If the unlowered type is not an
	enum, use the type of the condition.

2015-03-27  Jason Merrill  <jason@redhat.com>

	PR c++/65509
	* decl.c (make_rtl_for_nonlocal_decl): Don't defer static
	constants.

2015-03-26  Mikhail Maltsev  <maltsevm@gmail.com>

	PR c++/65154
	* init.c (build_vec_init): Fix initializing aggregates
	with empty init list.

2015-03-26  Jason Merrill  <jason@redhat.com>

	PR c++/65525
	* constexpr.c (potential_constant_expression_1): Handle MEM_REF.

2015-03-25  Marek Polacek  <polacek@redhat.com>

	PR c++/65558
	* name-lookup.c (handle_namespace_attrs): Ignore abi_tag attribute
	on an anonymous namespace.

2015-03-25  Marek Polacek  <polacek@redhat.com>

	PR c++/61670
	* class.c (remove_zero_width_bit_fields): Check for null DECL_SIZE.

2015-03-24  Jason Merrill  <jason@redhat.com>

	PR c++/65046
	* cp-tree.h (NAMESPACE_IS_INLINE): Remove.
	* parser.c (cp_parser_namespace_definition): Don't set it.
	* name-lookup.c (handle_namespace_attrs): Check
	DECL_NAMESPACE_ASSOCIATIONS instead.

	PR c++/65498
	* pt.c (get_mostly_instantiated_function_type): Just return the
	type of the partially instantiated template in DECL_TI_TEMPLATE.

2015-03-20  Marek Polacek  <polacek@redhat.com>

	PR c++/65398
	* constexpr.c (cxx_fold_indirect_ref): Transform *(&A[i] p+ j) into
	A[i + j].

2015-03-20  Marek Polacek  <polacek@redhat.com>

	PR c++/65072
	* typeck.c (lookup_anon_field): Make sure we're dealing with the main
	variant.

2015-03-19  Jason Merrill  <jason@redhat.com>

	PR c++/65046
	Automatically propagate ABI tags to variables and functions
	from their (return) type.
	* class.c (check_tag): Handle variables and functions.
	(mark_or_check_attr_tags): Split out from find_abi_tags_r.
	(mark_or_check_tags): Likewise.
	(mark_abi_tags): Use it.  Rename from mark_type_abi_tags.
	(check_abi_tags): Add single argument overload for decls.
	Handle inheriting tags for decls.
	* mangle.c (write_mangled_name): Call it.
	(mangle_return_type_p): Split out from write_encoding.
	(unmangled_name_p): Split out from write_mangled_name.
	(write_mangled_name): Ignore abi_tag on namespace.
	* cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
	* parser.c (cp_parser_namespace_definition): Set it.
	* name-lookup.c (handle_namespace_attrs): Use arguments. Warn
	about abi_tag attribute on non-inline namespace.
	* tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
	(handle_abi_tag_attribute): Allow tags on variables.

2015-03-19  Jakub Jelinek  <jakub@redhat.com>

	* decl2.c (cplus_decl_attributes): Also add "omp declare target"
	attribute for DECL_EXTERNAL VAR_DECLs.

2015-03-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65340
	* call.c (build_over_call): Pass the tsubst_flags_t argument to
	mark_used.
	* decl2.c (mark_used): Inline the require_deduced_type call and
	guard the error call.

2015-03-16  Jason Merrill  <jason@redhat.com>

	PR c++/65061
	* parser.c (cp_parser_template_name): Call strip_using_decl.

2015-03-16  Marek Polacek  <polacek@redhat.com>

	DR 1688
	PR c++/65327
	* decl.c (grokdeclarator): Allow volatile and constexpr together.

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

	PR c++/65323
	* decl.c (check_default_argument): Don't call
	maybe_warn_zero_as_null_pointer_constant.

2015-03-11  Aldy Hernandez  <aldyh@redhat.com>

	* cp-gimplify.c (simple_empty_class_p): New.
	* cp-gimplify.c (cp_gimplify_expr): Handle RETURN_EXPR.  Abstract
	the code for empty class copies into simple_empty_class_p, and
	adapt it to handle COMPOUND_EXPRs.

2015-03-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65370
	* decl.c (duplicate_decls): Call check_redeclaration_no_default_args
	only if the location of newdecl doesn't match the location of olddecl.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/65127
	* parser.c (parsing_nsdmi): Don't return true if current_class_ptr
	is not a PARM_DECL.

2015-03-10  Jason Merrill  <jason@redhat.com>

	PR c++/65333
	DR 1558
	* pt.c (dependent_type_p_r): Check both class and alias template args.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/65120
	* parser.c (cp_parser_binary_expression): Check for tcc_comparison
	before preparing arguments to warn_logical_not_parentheses.
	Use maybe_constant_value on rhs.

2015-03-09  Jason Merrill  <jason@redhat.com>

	PR c++/65339
	* call.c: Don't call maybe_resolve_dummy when calling a constructor.

2015-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/65120
	* parser.c (cp_parser_binary_expression): Don't warn for
	!!x == y or !b == y where b is bool.

2015-03-06  Aldy Hernandez  <aldyh@redhat.com>

	* ptree.c (cxx_print_lambda_node): New.
	(cxx_print_xnode): Handle LAMBDA_EXPR.

2015-03-03  Aldy Hernandez  <aldyh@redhat.com>

	PR c++/65295
	* constexpr.c (cxx_eval_constant_expression): Remove assert in
	RESULT_DECL handling.

2015-02-26  Marek Polacek  <polacek@redhat.com>

	PR c++/65202
	* constexpr.c (cxx_eval_constant_expression): Don't evaluate
	a RETURN_EXPR if its operand is null.

2015-02-25  Jason Merrill  <jason@redhat.com>

	PR c++/65209
	* decl2.c (constrain_visibility) [VISIBILITY_ANON]: Clear
	DECL_COMDAT.
	(constrain_visibility_for_template): Handle reference arguments.

	PR debug/58315
	* decl.c (start_preparsed_function): Use create_artificial_label
	for cdtor_label.

2015-02-17  Paolo Carlini  <paolo.carlini@oracle.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/65075
	* constexpr.c (check_constexpr_bind_expr_vars): Allow
	implicit typedefs for lambda types.

2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60894
	* decl.c (lookup_and_check_tag): Use strip_using_decl.

2015-02-13  Jason Merrill  <jason@redhat.com>

	PR c++/65054
	* pt.c (template_args_equal): Look through conversions here.
	* tree.c (cp_tree_equal): Not here.

2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60211
	* parser.c (cp_parser_pragma): Diagnose PRAGMA_IVDEP at
	pragma_external context.

2015-02-13  Jason Merrill  <jason@redhat.com>

	PR c++/65051
	* call.c (reference_binding): Don't look for bad conversion
	if TO is incomplete.

2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/64970
	* decl.c (make_typename_type): Pass tsubst_flags_t argument
	to lookup_template_class.

2015-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/65034
	* decl.c (start_preparsed_function): Use void_type_node instead
	of NULL_TREE as LABEL_DECL type.

2015-02-12  Jason Merrill  <jason@redhat.com>

	PR c++/64898
	* mangle.c (write_mangled_name): Fix test for variable template
	instantiation.

	* decl.c (begin_destructor_body): Condition clobber on
	-flifetime-dse.

2015-02-12 Andrea Azzarone <azzaronea@gmail.com>

	PR c++/64959
	* parser.c (lookup_literal_operator): Return all candidates.
	(cp_parser_userdef_char_literal): Simplify error handling.
	(cp_parser_userdef_numeric_literal):  Pass tf_warning_or_error.
	(cp_parser_userdef_string_literal): Pass tf_warning_or_error.
	Also give higher priority to standard string UDL operator.

2015-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR debug/55541
	* cp-tree.h (BLOCK_OUTER_CURLY_BRACE_P): Define.
	* decl.c (poplevel): If functionbody, try not to create an extra
	BLOCK for function body and use subblocks as that, if it is non-NULL
	and doesn't have siblings.  Set BLOCK_OUTER_CURLY_BRACE_P flag.
	(outer_curly_brace_block): Use BLOCK_OUTER_CURLY_BRACE_P flag.

	PR sanitizer/64984
	* except.c (check_noexcept_r): Return NULL for internal
	calls.

2015-02-10  Jason Merrill  <jason@redhat.com>

	PR c++/64994
	* constexpr.c (cxx_eval_call_expression): Walk the clone list.

2015-02-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64982
	* method.c (use_thunk): Do not check for stdarg thunks.

2015-02-06  Jason Merrill  <jason@redhat.com>

	PR c++/64899
	* init.c (build_vec_init): Handle default-initialized array with
	constexpr default constructor.

2015-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR c/64824
	PR c/64868
	* parser.c (cp_parser_omp_atomic): Handle RDIV_EXPR.

2015-02-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/64877
	* typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings
	for generated expressions.

2015-02-02  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR c++/64901
	* decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and
	DECL_OVERRIDE_P.

2015-02-02  Jason Merrill  <jason@redhat.com>

	* tree.c (handle_abi_tag_attribute): Diagnose invalid arguments.

2015-01-30  Joseph Myers  <joseph@codesourcery.com>

	* class.c, except.c, parser.c, pt.c: All callers of fatal_error
	changed to pass input_location as first argument.

2015-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR c++/64717
	* cp-ubsan.c (cp_ubsan_instrument_vptr): Don't wrap vptr
	into SAVE_EXPR.

2015-01-29  Jason Merrill  <jason@redhat.com>

	PR c++/49508
	* semantics.c (finish_return_stmt): Suppress -Wreturn-type on
	erroneous return statement.

	PR c++/64521
	* repo.c (repo_emit_p): It's OK for a clone to be extern at this
	point.

2015-01-27  Caroline Tice  <cmtice@google.com>

	Committing VTV Cywin/Ming patch for Patrick Wollgast
	* vtable-class-hierarchy.cc (vtv_generate_init_routine): Add
	check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.

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

	PR c++/58597
	* lambda.c (maybe_add_lambda_conv_op): Check cfun rather than
	current_function_decl.

	PR c++/63889
	* pt.c (finish_template_variable): Move from semantics.c.
	Handle multiple template arg levels.  Handle coercion here.
	(lookup_template_variable): Not here.

2015-01-23  Jason Merrill  <jason@redhat.com>

	PR c++/64314
	PR c++/57510
	* typeck2.c (split_nonconstant_init_1): Remove a sub-CONSTRUCTOR
	that has been completely split out.

	PR c++/64701
	* constexpr.c (cxx_eval_constant_expression): Don't crash on C++
	statement codes.

	PR c++/64727
	* constexpr.c (cxx_eval_constant_expression): Allow for lvalue use
	of CONST_DECL.

2015-01-21  Jason Merrill  <jason@redhat.com>

	PR c++/64603
	* constexpr.c (cxx_eval_constant_expression): Only shortcut
	constant CONSTRUCTORs.

	PR c++/64647
	* constexpr.c (ensure_literal_type_for_constexpr_object): Don't
	give a hard error in a template instantiation.

2015-01-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/64313
	* decl.c (duplicate_decls): Call set_builtin_decl_declared_p
	for builtins the user declared correctly.

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

	PR c++/58614
	* pt.c (unify): When BRACE_ENCLOSED_INITIALIZER_P (arg), handle
	TREE_TYPE (elt) == error_mark_node.

2015-01-15  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/62053
	* tree.c (build_cplus_array_type): Layout type after variants are set.

2015-01-15  Jakub Jelinek  <jakub@redhat.com>

	* cp-gimplify.c (cp_genericize_r): Call
	cp_ubsan_maybe_instrument_member_call for member calls.
	(cp_ubsan_check_member_access_r): New function.
	(cp_genericize_tree): Call cp_ubsan_instrument_member_accesses.
	* cp-tree.h (cp_ubsan_maybe_instrument_member_call,
	cp_ubsan_instrument_member_accesses,
	cp_ubsan_maybe_instrument_downcast,
	cp_ubsan_maybe_instrument_cast_to_vbase): New prototypes.
	* cp-ubsan.c: New file.
	* Make-lang.in (CXX_AND_OBJCXX_OBJS): Add cp/cp-ubsan.o.
	* constexpr.c (cxx_eval_call_expression): Return void_node
	for IFN_UBSAN_VPTR.
	(potential_constant_expression_1): Return true for
	UBSAN_NULL, UBSAN_BOUNDS and UBSAN_VPTR internal calls.
	* typeck.c (build_class_member_access_expr): Provide locus
	for COMPONENT_REFs.
	(build_static_cast_1): Instrument downcasts.
	* class.c (build_base_path): For -fsanitize=vptr and !fixed_type_p
	add ubsan instrumentation for virtual_access.
	* call.c: Include internal-fn.h.
	(set_flags_from_callee): Handle internal calls.

2015-01-15  Momchil Velikov  <momchil.velikov@gmail.com>

	PR c++/59366
	* name-lookup.c (pushdecl_maybe_friend_1): Hide friend functions
	and function templates, declared only in the class.
	* decl.c (duplicate_decls): Reveal hidden friend functions or
	function templates, if they are redeclared outside the class.

2015-01-15  Jason Merrill  <jason@redhat.com>

	PR c++/64356
	* constexpr.c (cxx_eval_binary_expression): Fix pasto.

	PR c++/63283
	* constexpr.c (potential_constant_expression_1): Handle reference
	args in templates.

2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Ilmir Usmanov  <i.usmanov@samsung.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* parser.c: Include "gomp-constants.h".
	(cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
	omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
	Use OMP_CLAUSE_SET_MAP_KIND.
	(cp_parser_omp_construct, cp_parser_pragma): Handle
	PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
	PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
	PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
	(cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
	"create", "delete", "deviceptr", "host", "num_gangs",
	"num_workers", "present", "present_or_copy", "pcopy",
	"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
	"present_or_create", "pcreate", "vector_length", "wait".
	(OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
	(OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
	(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
	(OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
	(cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
	(cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
	(cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
	(cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
	(cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
	(cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
	(cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
	(cp_parser_oacc_kernels, cp_parser_oacc_loop)
	(cp_parser_oacc_parallel, cp_parser_oacc_update)
	(cp_parser_oacc_wait): New functions.
	* cp-tree.h (finish_oacc_data, finish_oacc_kernels)
	(finish_oacc_parallel): New prototypes.
	* semantics.c: Include "gomp-constants.h".
	(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
	GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
	OMP_CLAUSE_SET_MAP_KIND.
	(finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
	Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
	(finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
	functions.

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

	PR c++/58671
	* decl2.c (var_defined_without_dynamic_init): Handle gracefully
	self-initialization.

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

	PR c++/64356
	PR libstdc++/58777
	* constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
	pointer expressions.
	(cxx_eval_increment_expression): Likewise.

	PR c++/64514
	* pt.c (coerce_template_parameter_pack): Return NULL for a
	zero-length fixed parameter pack with a pack expansion arg.

	PR c++/64520
	* pt.c (unify): Don't try to deduce to std::initializer_list<T...>.

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

	PR c++/64547
	* constexpr.c (cxx_eval_call_expression): A call to a void
	function doesn't need to return a value.

2015-01-09  Michael Collison  <michael.collison@linaro.org>

	* call.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
	input.h, alias.h, symtab.h, options.h, fold-const.h,
	wide-int.h, and inchash.h due to flattening of tree.h.
	* class.c: Ditto.
	* constexpr.c: Ditto.
	* cp-array-notation.c: Ditto.
	* cp-gimplify.c: Ditto.
	* cp-lang.c: Ditto.
	* cp-objcp-common.c: Ditto.
	* cvt.c: Ditto.
	* decl2.c: Ditto.
	* decl.c: Ditto.
	* dump.c: Ditto.
	* error.c: Ditto.
	* except.c: Ditto.
	* expr.c: Ditto.
	* friend.c: Ditto.
	* init.c: Ditto.
	* lambda.c: Ditto.
	* lex.c: Ditto.
	* mangle.c: Ditto.
	* name-lookup.c: Ditto.
	* optimize.c: Ditto.
	* parser.c: Ditto.
	* pt.c: Ditto.
	* ptree.c: Ditto.
	* repo.c: Ditto.
	* rtti.c: Ditto.
	* search.c: Ditto.
	* semantics.c: Ditto.
	* tree.c: Ditto.
	* typeck2.c: Ditto.
	* typeck.c: Ditto.

2015-01-08  Jason Merrill  <jason@redhat.com>

	* cp-gimplify.c (cp_genericize): Use do_ubsan_in_current_function.
	* decl.c (compute_array_index_type): Likewise.
	* init.c (build_vec_init): Likewise.
	* typeck.c (cp_build_binary_op): Likewise.

2015-01-08  Jason Merrill  <jason@redhat.com>

	* init.c (build_vec_init): Call ubsan_instrument_bounds to check
	whether an initializer-list is too big for a VLA.
	(throw_bad_array_length): Remove.
	* cp-tree.h: Remove prototype.

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

	PR c++/60753
	* decl.c (grokfndecl): Add bool parameter.
	(grokdeclarator): Adjust calls.
	(start_decl): Don't set DECL_DELETED_FN here.

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

	* parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
	template-ids.

	PR c++/64455
	* pt.c (type_dependent_expression_p): Handle variable templates.
	* constexpr.c (potential_constant_expression_1): Use it.

	PR c++/64487
	* semantics.c (finish_offsetof): Handle templates here.
	* parser.c (cp_parser_builtin_offsetof): Not here.

	PR c++/64496
	* semantics.c (process_outer_var_ref): Diagnose lambda in local
	class NSDMI.

2015-01-06  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR c++/64489
	* class.c (check_field_decls): Make copy assignment operators
	complex only in c++98 mode.

2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>

	PR c++/31397
	* class.c (check_for_override): Warn when a virtual function is an
	override not marked override.

2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>

	* class.c (warn_hidden): Use auto_vec<tree> instead of tree_list to
	hold base_fndecls.
	(get_basefndecls): Adjust.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2015-01-05  Marek Polacek  <polacek@redhat.com>

	PR c/64423
	* typeck.c (cp_build_array_ref): Pass loc down to
	warn_array_subscript_with_type_char.


Copyright (C) 2015 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.
