2013-12-23  Jason Merrill  <jason@redhat.com>

	PR c++/59271
	* lambda.c (build_capture_proxy): Use build_cplus_array_type.

	PR c++/59349
	* parser.c (cp_parser_lambda_introducer): Handle empty init.

2013-12-23  Stuart Hastings <stuart@apple.com>
	    Bill Maddox  <maddox@google.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/41090
	* optimize.c (can_alias_cdtor, populate_clone_array): Split out
	from maybe_clone_body.
	(maybe_thunk_body): New function.
	(maybe_clone_body): Call it.
	* mangle.c (write_mangled_name): Remove code to suppress
	writing of mangled name for cloned constructor or destructor.
	(write_special_name_constructor): Handle decloned constructor.
	(write_special_name_destructor): Handle decloned destructor.
	* method.c (trivial_fn_p): Handle decloning.
	* semantics.c (expand_or_defer_fn_1): Clone after setting linkage.

2013-12-23  Marek Polacek  <polacek@redhat.com>

	PR c++/59111
	* search.c (lookup_conversions): Return NULL_TREE if !CLASS_TYPE_P.

2013-12-20  Trevor saunders  <tsaunders@mozilla.com>

	* semantics.c (build_anon_member_initialization): Replace
	stack_vec<T, N> with auto_vec<T, N>.

2013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* parser.c (cp_parser_cilk_simd_clause_name): Changed cilk_clause_name
	to omp_clause_name.

2013-12-17  Thomas Schwinge  <thomas@codesourcery.com>

	* parser.c (cp_parser_omp_parallel): Fix description.

2013-12-12  Jason Merrill  <jason@redhat.com>

	PR c++/58954
	* pt.c (resolve_overloaded_unification): Use instantiate_template.

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

	PR c++/58627
	* class.c (resolve_address_of_overloaded_function): Don't call ggc_free
	on targs.

2013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* cp-tree.h (cilk_valid_spawn): New prototype.
	(gimplify_cilk_spawn): Likewise.
	(create_try_catch_expr): Likewise.
	* decl.c (finish_function): Insert Cilk function-calls when a
	_Cilk_spawn is used in a function.
	* parser.c (cp_parser_postfix_expression): Added RID_CILK_SPAWN and
	RID_CILK_SYNC cases.
	* cp-cilkplus.c (set_cilk_except_flag): New function.
	(set_cilk_except_data): Likewise.
	(cilk_install_body_with_frame_cleanup): Likewise.
	* except.c (create_try_catch_expr): Likewise.
	* parser.h (IN_CILK_SPAWN): New #define.
	* pt.c (tsubst_expr): Added CILK_SPAWN_STMT and CILK_SYNC_STMT cases.
	* semantics.c (potential_constant_expression_1): Likewise.
	* typeck.c (cp_build_compound_expr): Reject a spawned function in a
	compound expression.
	(check_return_expr): Reject a spawned function in a return expression.
	* cp-gimplify.c (cp_gimplify_expr): Added a CILK_SPAWN_STMT and
	CALL_EXPR case.  Added handling of spawned function in MODIFY_EXPR
	and INIT_EXPR.

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

	PR c++/59435
	* parser.c (cp_parser_cache_defarg): sizeof ... ( p ) can
	occur in a default argument too.

2013-12-06  Caroline Tice  <cmtice@google.com>

	Submitting patch from Stephen Checkoway, s@cs.jhu.edu
	* vtable-class-hierarchy.c (init_functions): Make the libvtv
	function decls externally visible.

2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>

	* decl2.c: Remove struct tags when referring to class varpool_node.

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

	PR c++/59044
	PR c++/59052
	* pt.c (most_specialized_class): Use the partially instantiated
	template for deduction.  Drop the TMPL parameter.

2013-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (duplicate_decls): Replace pairs of errors and permerrors
	with error + inform (permerror + inform, respectively).

2013-12-04  Joseph Myers  <joseph@codesourcery.com>

	PR c/52023
	* typeck.c (cxx_sizeof_or_alignof_type): Update call to
	c_sizeof_or_alignof_type.

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

	PR c++/59268
	* pt.c (tsubst_copy_and_build): Handle POINTER_PLUS_EXPR.

2013-11-29  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/59331
	* decl.c (compute_array_index_type): Don't build COMPOUND_EXPR for
	instrumentation.

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-11-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* g++spec.c (TIMELIB): Define.
	(WITHLIBC, SKIPOPT): Adjust values.
	(lang_specific_driver): Add TIME_LIBRARY if not passed explicitly.

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

	PR c/59310
	* parser.c (cp_parser_omp_target): Call keep_next_level only
	if flag_openmp.

2013-11-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58647
	* semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
	Handle function COMPONENT_REFs.

2013-11-27  Aldy Hernandez  <aldyh@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* semantics.c (finish_omp_clauses): For #pragma omp declare simd
	linear clause step call maybe_constant_value.

2013-11-27  Tom de Vries  <tom@codesourcery.com>
	    Marc Glisse  <marc.glisse@inria.fr>

	PR c++/59032
	* typeck.c (cp_build_unary_op): Allow vector increment and decrement.

2013-11-27  Tom de Vries  <tom@codesourcery.com>
	    Marc Glisse  <marc.glisse@inria.fr>

	PR middle-end/59037
	* semantics.c (cxx_fold_indirect_ref): Don't create out-of-bounds
	BIT_FIELD_REF.

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

	PR c++/58874
	* parser.c (cp_parser_late_parsing_for_member): For OpenMP UDRs
	pass 2 instead of 0 to finish_function.

2013-11-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58700
	* decl.c (grokdeclarator): Don't try to pass declarator->id_loc
	to build_lang_decl_loc when declarator is null.

2013-11-26  Paolo Carlini  <paolo.carlini@oracle.com>

	* cvt.c (cp_convert_and_check): Avoid calling cp_convert
	unnecessarily.

2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54485
	* decl.c (duplicate_decls): Enforce 8.3.6/6 about default arguments
	for member functions of class templates.

2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58607
	* semantics.c (check_constexpr_ctor_body): Check for BIND_EXPR_VARS.

2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58810
	* decl.c (grokdeclarator): Don't handle qualified free functions here,
	leave the diagnostic to grokfndecl.

2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/59080
	* pt.c (unify): Don't call unify_array_domain with a NULL_TREE
	third argument.

	PR c++/59096
	* pt.c (apply_late_template_attributes): Check that TREE_VALUE
	isn't NULL_TREE in the attribute_takes_identifier_p case.

2013-11-25  Adam Butcher  <adam@jessamine.co.uk>

	PR c++/59112
	PR c++/59113
	* parser.c (cp_parser_parameter_declaration_clause): Disallow implicit
	function templates in local functions unless defining a lambda.

2013-11-23  Easwaran Raman  <eraman@google.com>

	PR c++/59031
	* call.c (build_new_method_call_1): Comnpare function context
	with BASELINK_BINFO type rather than instance type before
	marking the call with LOOKUP_NONVIRTUAL.

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

	PR c++/58868
	* init.c (build_aggr_init): Don't clobber the type of init
	if we got an INIT_EXPR back from build_vec_init.
	(build_vec_init): Do digest_init on trivial initialization.

2013-11-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>

	PR c++/58525
	* call.c (build_operator_new_call): Add flag_exceptions check.
	* decl.c (compute_array_index_type): Ditto.
	* init.c (build_new_1): Ditto.
	(build_vec_init): Ditto.

2013-11-22  Jakub Jelinek  <jakub@redhat.com>

	* cp-gimplify.c: Include target.h and c-family/c-ubsan.h.
	(cp_ubsan_maybe_instrument_return): New function.
	(cp_genericize): Call it if -fsanitize=return.

	* decl2.c: Include asan.h.
	(one_static_initialization_or_destruction): If -fsanitize=address,
	init is non-NULL and guard is NULL, set
	vnode->dynamically_initialized.
	(do_static_initialization_or_destruction): Call
	__asan_{before,after}_dynamic_init around the static initialization.

2013-11-22  Andrew MacLeod  <amacleod@redhat.com>

	* class.c: Add required include files from gimple.h.
	* cp-gimplify.c: Likewise
	* decl2.c: Likewise
	* init.c: Likewise
	* optimize.c: Likewise
	* pt.c: Likewise
	* semantics.c: Likewise
	* tree.c: Likewise
	* typeck.c: Likewise
	* vtable-class-hierarchy.c: Likewise

2013-11-22  David Malcolm  <dmalcolm@redhat.com>

	* call.c (build_integral_nontype_arg_conv): Remove use of
	EXPR_LOC_OR_HERE macro.
	(convert_like_real): Likewise.
	(convert_arg_to_ellipsis): Likewise.
	(build_cxx_call): Likewise.
	(perform_implicit_conversion_flags): Likewise.
	(initialize_reference): Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	(convert_to_reference): Likewise.
	(ocp_convert): Likewise.
	(convert_to_void): Likewise.
	* decl.c (pop_label): Update comment.
	(pop_switch): Remove use of EXPR_LOC_OR_HERE macro.
	(check_tag_decl): Remove use of in_system_header macro.
	(make_rtl_for_nonlocal_decl): Remove use of input_filename
	macro.
	(compute_array_index_type): Remove use of in_system_header
	macro.
	(grokdeclarator): Likewise.
	* error.c (dump_global_iord): Remove use of input_filename
	macro.
	(location_of): Remove use of EXPR_LOC_OR_HERE macro.
	(maybe_warn_cpp0x): Remove use of in_system_header macro.
	* init.c (build_new_1): Remove use of EXPR_LOC_OR_HERE macro.
	* lex.c (handle_pragma_interface): Remove use of input_filename
	macro.
	(handle_pragma_implementation): Likewise.
	(cxx_make_type): Likewise.
	(in_main_input_context): Likewise.
	* name-lookup.c (push_binding_level): Remove use of
	input_line macro.
	(leave_scope): Likewise.
	(resume_scope): Likewise.
	* parser.c (cp_parser_unqualified_id): Remove use of
	in_system_header macro.
	(cp_parser_cast_expression): Likewise.
	(cp_parser_declaration_seq_opt): Likewise.
	(cp_parser_enumerator_list): Likewise.
	(cp_parser_parameter_declaration_clause): Likewise.
	(cp_parser_exception_specification_opt): Likewise.
	* pt.c (unify_arg_conversion): Remove use of EXPR_LOC_OR_HERE
	macro.
	(convert_nontype_argument): Likewise.
	(push_tinst_level): Remove use of in_system_header macro.
	(tsubst_copy_and_build): Remove use of EXPR_LOC_OR_HERE
	macros.
	(do_decl_instantiation): Remove use of in_system_header macro.
	(do_type_instantiation): Likewise.
	* semantics.c (finish_call_expr): Remove use of EXPR_LOC_OR_HERE
	macro.
	(begin_class_definition): Remove use of input_filename macro.
	(cxx_eval_call_expression): Remove use of EXPR_LOC_OR_HERE
	macro.
	(cxx_eval_constant_expression): Likewise.
	(potential_constant_expression_1): Likewise.
	* typeck.c (decay_conversion): Likewise.
	(rationalize_conditional_expr): Likewise.
	(build_x_compound_expr_from_list): Likewise.
	(convert_for_assignment): Likewise.
	* typeck2.c (check_narrowing): Likewise.

2013-11-22  Trevor Saunders  <tsaunders@mozilla.com>

	* parser.c, semantics.c: Change some local variables from vec to
	auto_vec or stack_vec.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* decl.c (reshape_init_array_1): Use tree_to_uhwi rather than
	tree_low_cst.
	(grokdeclarator): Update comment to refer to tree_to_[su]hwi rather
	than tree_low_cst.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* call.c, class.c, decl.c, error.c: Replace tree_low_cst (..., 1) with
	tree_to_uhwi throughout.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* class.c, dump.c, error.c, init.c, method.c, parser.c, semantics.c:
	Replace tree_low_cst (..., 0) with tree_to_shwi throughout.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* decl.c: Replace host_integerp (..., 1) with tree_fits_uhwi_p
	throughout.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* error.c, init.c, parser.c, semantics.c: Replace
	host_integerp (..., 0) with tree_fits_shwi_p throughout.

2013-11-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/59123
	* decl.c (validate_constexpr_redeclaration): Redeclarations of
	variables can differ in constexpr.

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

	PR c++/29143
	* semantics.c (finish_call_expr): Ensure that for OVERLOADs too
	'(&f)(...)' is the same as '(f)(...)', per 13.3.1.1.

2013-11-15  Aldy Hernandez  <aldyh@redhat.com>

	* Make-lang.in (CXX_AND_OBJCXX_OBJS): Depend on cp/cp-cilkplus.o.
	* cp-cilkplus.c: New file.
	* cp-tree.h (cpp_validate_cilk_plus_loop): Protoize.
	* parser.c (cp_parser_cilk_simd): New.
	(cp_debug_parser): Add case for IN_CILK_SIMD_FOR.
	(cp_parser_jump_statement): Same.
	(cp_parser_omp_for_cond): Add new argument.
	Add case for NE_EXPR.
	(cp_parser_omp_for_loop): Pass new argument to
	cp_parser_omp_for_cond.
	Handle CILK_SIMD nodes.
	Abstract initilization code to..
	(cp_parser_omp_for_loop_init): ...here.
	(cp_parser_pragma): Add case for PRAGMA_CILK_SIMD.
	(cp_parser_cilk_simd_vectorlength): New.
	(cp_parser_cilk_simd_linear): New.
	(cp_parser_cilk_simd_clause_name): New.
	(cp_parser_cilk_simd_all_clauses): New.
	(cp_parser_cilk_simd): New.
	* parser.h (IN_CILK_SIMD_FOR): New macro.
	* pt.c (tsubst_expr): Add case for CILK_SIMD.
	* typeck2.c (cxx_readonly_error): Pass location argument to
	readonly_error.

2013-11-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57887
	* parser.c (cp_parser_late_parsing_nsdmi): Call
	maybe_begin_member_template_processing.
	* pt.c (maybe_begin_member_template_processing): Handle NSDMIs.
	(inline_needs_template_parms): Adjust.

2013-11-14  Andrew MacLeod  <amacleod@redhat.com>

	* class.c: Include only gimplify.h and gimple.h as needed.
	* cp-gimplify.c: Likewise.
	* error.c: Likewise.
	* init.c: Likewise.
	* optimize.c: Likewise.
	* pt.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* vtable-class-hierarchy.c: Likewise.

2013-11-14  Diego Novillo  <dnovillo@google.com>

	* call.c: Include stor-layout.h.
	Include trans-mem.h.
	Include stringpool.h.
	* class.c: Include stringpool.h.
	Include stor-layout.h.
	Include attribs.h.
	* cp-gimplify.c: Include stor-layout.h.
	* cvt.c: Include stor-layout.h.
	* decl.c: Include stringpool.h.
	Include stor-layout.h.
	Include varasm.h.
	Include attribs.h.
	Include calls.h.
	* decl2.c: Include stringpool.h.
	Include varasm.h.
	Include attribs.h.
	Include stor-layout.h.
	Include calls.h.
	* error.c: Include stringpool.h.
	* except.c: Include stringpool.h.
	Include trans-mem.h.
	Include attribs.h.
	* init.c: Include stringpool.h.
	Include varasm.h.
	* lambda.c: Include stringpool.h.
	* lex.c: Include stringpool.h.
	* mangle.c: Include stor-layout.h.
	Include stringpool.h.
	* method.c: Include stringpool.h.
	Include varasm.h.
	* name-lookup.c: Include stringpool.h.
	Include print-tree.h.
	Include attribs.h.
	* optimize.c: Include stringpool.h.
	* parser.c: Include print-tree.h.
	Include stringpool.h.
	Include attribs.h.
	Include trans-mem.h.
	* pt.c: Include stringpool.h.
	Include varasm.h.
	Include attribs.h.
	Include stor-layout.h.
	* ptree.c: Include print-tree.h.
	* repo.c: Include stringpool.h.
	* rtti.c: Include stringpool.h.
	Include stor-layout.h.
	* semantics.c: Include stmt.h.
	Include varasm.h.
	Include stor-layout.h.
	Include stringpool.h.
	* tree.c: Include stor-layout.h.
	Include print-tree.h.
	Include tree-iterator.h.
	* typeck.c: Include stor-layout.h.
	Include varasm.h.
	* typeck2.c: Include stor-layout.h.
	Include varasm.h.
	* vtable-class-hierarchy.c: Include stringpool.h.
	Include stor-layout.h.

2013-11-12  Andrew MacLeod <amacleod@redhat.com>

	* class.c: Include gimplify.h.
	* cp-gimplify.c: Likewise.
	* error.c: Likewise.
	* init.c: Likewise.
	* optimize.c: Likewise.
	* pt.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* vtable-class-hierarchy.c: Likewise.
	* decl2.c: Don't include gimple.h.
	* except.c: Likewise.
	* method.c: Include pointer-set.h instead of gimple.h.

2013-11-12  Adam Butcher  <adam@jessamine.co.uk>

	* pt.c (convert_generic_types_to_packs): New function to transform
	a range of implicitly introduced non-pack template parms to be parameter
	packs.
	* cp-tree.h (convert_generic_types_to_packs): Declare.
	* parser.c (cp_parser_parameter_declaration_list): If a function
	parameter pack contains generic types, convert them to packs prior to
	grokdeclarator.

2013-11-12  Adam Butcher  <adam@jessamine.co.uk>

	PR c++/58534
	PR c++/58536
	PR c++/58548
	PR c++/58549
	PR c++/58637
	* parser.h (struct cp_parser): New members implicit_template_parms,
	implicit_template_scope and auto_is_implicit_function_template_parm_p.
	* parser.c (add_implicit_template_parms): Refactor as ...
	(synthesize_implicit_template_parm): ... this to append a new template
	type parm to the current template parameter list (introducing a new list
	if necessary).  Removed push_deferring_access_checks.
	(finish_fully_implicit_template): Removed pop_deferring_access_checks.
	(cp_parser_new): Initialize new cp_parser members.
	(cp_parser_parameter_declaration_clause): Consider auto as implicit
	template parm when parsing a parameter declaration (unless parsing an
	explicit specialization).
	(cp_parser_parameter_declaration_list): Remove local
	implicit_template_parms counter and reset cp_parser implicit template
	state when complete.
	(cp_parser_lambda_expression): Reset implicit template cp_parser members
	whilst generating lambda class.
	(cp_parser_function_definition_after_declarator): Reset implicit
	template cp_parser members whilst parsing function definition.
	(make_generic_type_name): Respell '<autoN>' as 'auto:N' which works
	better with template diagnostics.
	(cp_parser_simple_type_specifier): Synthesize implicit template parm on
	parsing 'auto' if auto_is_implicit_function_template_parm_p and provide
	diagnostics ...
	* decl.c (grokdeclarator): ... that were previously done here.

2013-11-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57734
	* pt.c (lookup_template_class_1): Handle alias template declarations
	of enumeration types.

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

	* cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before
	maybe_warn_zero_as_null_pointer_constant to avoid duplicate
	-Wzero-as-null-pointer-constant diagnostics.

	* typeck.c (build_ptrmemfunc): Use cp_build_c_cast.

2013-11-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/11006
	* init.c (build_new_1): Don't call build_java_class_ref on non-class
	types.

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

	PR c++/58868
	* decl.c (check_initializer): Don't use build_vec_init for arrays
	of trivial type.

2013-11-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58724
	* name-lookup.c (handle_namespace_attrs): Use get_attribute_name.

2013-11-05  Tobias Burnus  <burnus@net-b.de>

	* 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): Handle -fopenmp-simd.

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

	* decl2.c (cpp_check): Change type of first parameter and deal with
	IS_TRIVIAL.

2013-11-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/38313
	* parser.c (cp_parser_constructor_declarator_p): Check that the
	class-name matches current_class_type.

2013-11-03  Marek Polacek  <polacek@redhat.com>

	* decl.c (cp_finish_decl): Move C++1y bounds checking...
	(compute_array_index_type): ...here.  Add VLA instrumentation.
	Call stabilize_vla_size.
	(grokdeclarator): Don't call stabilize_vla_size here.

2013-11-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/29234
	PR c++/56037
	* parser.c (cp_parser_cast_expression): If we aren't looking at
	a cast-expression don't call cp_parser_type_id.
	(cp_parser_postfix_expression): Likewise for compound-literal.
	(cp_parser_tokens_start_cast_expression): Adjust.

2013-11-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/58708
	* parser.c (make_string_pack): Discover non-const type and size
	of character and build parm pack with correct type and chars.

2013-11-01  Trevor Saunders  <tsaunders@mozilla.com>

	* semantics.c (build_anon_member_initialization): Convert fields to be
        a stack_vec.

2013-11-01  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/58834
	* pt.c (type_dependent_expression_p): Handle null argument.

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

	* semantics.c (finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
	check_dup_generic at the end, unless remove is true.
	(finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Add break; after
	remove = true;.

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

	* semantics.c (finish_omp_clauses): Diagnose aligned clause
	with decl that is not pointer nor array nor reference to those.

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

	* semantics.c (cxx_eval_call_expression): Handle trivial
	value-initialization.
	* typeck2.c (store_init_value): Call maybe_constant_init after
	cxx_constant_value.

	* decl.c (cxx_maybe_build_cleanup): Always set LOOKUP_NONVIRTUAL.
	* decl2.c (build_cleanup): Just call cxx_maybe_build_cleanup.

	PR c++/58162
	* parser.c (cp_parser_late_parse_one_default_arg): Set
	TARGET_EXPR_DIRECT_INIT_P.

	* class.c (type_build_ctor_call): Return early in C++98 mode.
	(type_build_dtor_call): Likewise.

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

	PR c++/58932
	Revert:
	2013-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58466
	* pt.c (most_specialized_class): Bump processing_template_decl for
	get_class_bindings.

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

	PR c++/58581
	* call.c (build_over_call): Check return value of mark_used.

2013-10-30  Jason Merrill  <jason@redhat.com>

	* semantics.c (finish_compound_literal): Don't create a static variable
	inside cp_unevaluated_operand.

	* init.c (push_base_cleanups): Check ANON_AGGR_TYPE_P.

2013-10-30  Tobias Burnus  <burnus@net-b.de>

	PR other/33426
	* cp-tree.h (RANGE_FOR_IVDEP): Define.
	(cp_convert_range_for, finish_while_stmt_cond, finish_do_stmt,
	finish_for_cond): Take 'bool ivdep' parameter.
	* cp-array-notation.c (create_an_loop): Update call.
	* init.c (build_vec_init): Ditto.
	* pt.c (tsubst_expr): Ditto.
	* parser.c (cp_parser_iteration_statement, cp_parser_for,
	cp_parser_range_for, cp_convert_range_for): Update calls.
	(cp_parser_pragma): Accept GCC ivdep for 'while' and 'do'.
	* semantics.c (finish_while_stmt_cond, finish_do_stmt,
	finish_for_cond): Optionally build ivdep annotation.

2013-10-30  Jason Merrill  <jason@redhat.com>

	* decl.c (cp_finish_decl): Never throw for VLA bound == 0.

2013-10-29  David Malcolm  <dmalcolm@redhat.com>

	Patch autogenerated by refactor_symtab.py from
	https://github.com/davidmalcolm/gcc-refactoring-scripts
	revision 58bb219cc090b2f4516a9297d868c245495ee622

	* call.c (mark_versions_used): Update for conversion of symtab types
	to a true class hierarchy.
	* decl2.c (cp_write_global_declarations): Likewise.
	(clear_decl_external): Likewise.
	(build_java_method_aliases): Likewise.
	(collect_candidates_for_java_method_aliases): Likewise.
	(mark_needed): Likewise.
	(var_finalized_p): Likewise.
	(maybe_make_one_only): Likewise.
	(maybe_emit_vtables): Likewise.
	* lambda.c (maybe_add_lambda_conv_op): Likewise.
	* method.c (use_thunk): Likewise.
	* optimize.c (maybe_clone_body): Likewise.
	* tree.c (cp_fix_function_decl_p): Likewise.

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

	PR c++/58888
	* decl2.c (grokfield): Handle auto like NSDMI.

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

	PR c++/58878
	* pt.c (check_template_shadow): Don't skip declarations in inline
	member templates.

2013-10-25  Tobias Burnus  <burnus@net-b.de>

	PR other/33426
	* parser.c (cp_parser_iteration_statement,
	cp_parser_for, cp_parser_c_for, cp_parser_pragma): Handle
	IVDEP pragma.

2013-10-24  Marek Polacek  <polacek@redhat.com>

	PR c++/58705
	* typeck2.c (check_narrowing): Don't check narrowing when the scalar
	initializer is empty.

2013-10-23  Jason Merrill  <jason@redhat.com>

	LWG 2165
	* method.c (defaulted_late_check): Delete on eh-spec mismatch.
	(maybe_explain_implicit_delete): Explain it.

	* error.c (eh_spec_to_string): New.
	(cp_printer): Use it for %X.

	In C++11 a trivial [cd]tor might not be callable.
	* class.c (user_provided_p): A function deleted on its declation
	in the class is not user-provided.
	(type_build_ctor_call): Also force a ctor call if we
	might have a deleted or private trivial ctor.
	(type_build_dtor_call): New.
	(deduce_noexcept_on_destructors): Remove obsolete code.
	* cp-tree.h: Declare type_build_dtor_call.
	* decl.c (expand_static_init): Make sure trivial dtors are callable.
	(cxx_maybe_build_cleanup): Likewise.
	* except.c (build_throw): Likewise.
	* init.c (build_value_init): Handle trivial but not callable ctors.
	(perform_target_ctor): Make sure trivial dtor is callable.
	(perform_member_init): Likewise.
	(expand_cleanup_for_base): Likewise.
	(build_vec_delete_1): Likewise.
	(build_delete): Likewise.
	(push_base_cleanups): Likewise.
	(build_new_1): Avoid redundant error.
	* method.c (synthesized_method_walk): Can't ever exit early in C++11.
	Always process the subobject destructor.
	* semantics.c (finish_compound_literal): Make sure trivial dtor is
	callable.
	* typeck2.c (split_nonconstant_init): Likewise.

2013-10-23  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement C++14 [[deprecated]] modulo [[gnu::deprecated]] bugs.
	* parser.c (cp_parser_std_attribute): Interpret [[deprecated]]
	as [[gnu::deprecated]].

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

	PR c++/58816
	* pt.c (apply_late_template_attributes): Use get_attribute_name,
	not TREE_PURPOSE.

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

	PR c++/58466
	* pt.c (most_specialized_class): Bump processing_template_decl for
	get_class_bindings.

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

	* parser.c (cp_parser_lookup_name): Tidy.

2013-10-17  Andrew MacLeod  <amacleod@redhat.com>

	* parser.c: Include omp-low.h.
	* semantics.c: Likewise.

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

	PR c++/58596
	* lambda.c (lambda_expr_this_capture): Handle NSDMIs in the
	cp_unevaluated_operand case.

2013-10-16  Jason Merrill  <jason@redhat.com>

	* pt.c (apply_late_template_attributes): Use
	attribute_takes_identifier_p.

	* error.c (dump_exception_spec): Print "noexcept" rather than
	"noexcept (true)".

	Core 1591
	* pt.c (unify_array_domain): Split out from unify.
	(unify): Use it for list deduction, too.

	PR c++/57850
	* decl2.c (dump_tu): Split out from...
	(cp_write_global_declarations): ...here.  Call it in PCH mode.

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

	* pt.c (tsubst): Fix typo in last commit.

2013-10-16  Paulo Matos  <pmatos@broadcom.com>

	* error.c (code_to_string): Use new wrapper get_tree_code_name.
	* cxx-pretty-print.c (pp_cxx_assignment_operator): Likewise.
	* pt.c (tsubst): Likewise.
	* semantics.c (cxx_eval_constant_expression,
	potential_constant_expression_1): Likewise.
	* mangle.c (MANGLE_TRACE_TREE, dump_substitution_candidates,
	add_substitution, find_substitution): Likewise.

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

	PR c++/58707
	* parser.c (cp_parser_postfix_open_square_expression): Set
	parser->greater_than_is_operator_p for the argument.

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

	PR c++/58633
	* parser.c (cp_parser_commit_to_topmost_tentative_parse): New.
	(cp_parser_pseudo_destructor_name): Use it.

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

	PR c++/31671
	* pt.c (convert_nontype_argument): Set expr_type to
	TREE_TYPE (probe_type).

2013-10-11  Jakub Jelinek  <jakub@redhat.com>

	* decl.c (duplicate_decls): Error out for redeclaration of UDRs.
	(declare_simd_adjust_this): New function.
	(grokfndecl): If "omp declare simd" attribute is present,
	call declare_simd_adjust_this if needed and
	c_omp_declare_simd_clauses_to_numbers.
	* cp-array-notation.c (expand_array_notation_exprs): Handle
	OMP_TASKGROUP.
	* cp-gimplify.c (cp_gimplify_expr): Handle OMP_SIMD and
	OMP_DISTRIBUTE.  Handle is_invisiref_parm decls in
	OMP_CLAUSE_REDUCTION.
	(cp_genericize_r): Handle OMP_SIMD and OMP_DISTRIBUTE like
	OMP_FOR.
	(cxx_omp_privatize_by_reference): Return true for
	is_invisiref_parm decls.
	(cxx_omp_finish_clause): Adjust cxx_omp_create_clause_info
	caller.
	* pt.c (apply_late_template_attributes): For "omp declare simd"
	attribute call tsubst_omp_clauses,
	c_omp_declare_simd_clauses_to_decls, finish_omp_clauses
	and c_omp_declare_simd_clauses_to_numbers.
	(instantiate_class_template_1): Call cp_check_omp_declare_reduction
	for UDRs.
	(tsubst_decl): Handle UDRs.
	(tsubst_omp_clauses): Add declare_simd argument, if true don't
	call finish_omp_clauses.  Handle new OpenMP 4.0 clauses.
	Handle non-NULL OMP_CLAUSE_REDUCTION_PLACEHOLDER on
	OMP_CLAUSE_REDUCTION.
	(tsubst_expr): For UDRs call pushdecl and
	cp_check_omp_declare_reduction.  Adjust tsubst_omp_clauses
	callers.  Handle OMP_SIMD, OMP_DISTRIBUTE, OMP_TEAMS,
	OMP_TARGET_DATA, OMP_TARGET_UPDATE, OMP_TARGET, OMP_TASKGROUP.
	Adjust finish_omp_atomic caller.
	(tsubst_omp_udr): New function.
	(instantiate_decl): For UDRs at block scope, don't call
	start_preparsed_function/finish_function.  Call tsubst_omp_udr.
	* semantics.c (cxx_omp_create_clause_info): Add need_dtor argument,
	use it instead of need_default_ctor || need_copy_ctor.
	(struct cp_check_omp_declare_reduction_data): New type.
	(handle_omp_array_sections_1, handle_omp_array_sections,
	omp_reduction_id, omp_reduction_lookup,
	cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction_r,
	cp_check_omp_declare_reduction, clone_omp_udr,
	find_omp_placeholder_r, finish_omp_reduction_clause): New functions.
	(finish_omp_clauses): Handle new OpenMP 4.0 clauses and user defined
	reductions.
	(finish_omp_for): Add CODE argument, use it instead of hardcoded
	OMP_FOR.  Adjust c_finish_omp_for caller.
	(finish_omp_atomic): Add seq_cst argument, adjust
	c_finish_omp_atomic callers, handle seq_cst and new OpenMP 4.0
	atomic variants.
	(finish_omp_cancel, finish_omp_cancellation_point): New functions.
	* decl2.c (mark_used): Force immediate instantiation of
	DECL_OMP_DECLARE_REDUCTION_P decls.
	(is_late_template_attribute): Return true for "omp declare simd"
	attribute.
	(cp_omp_mappable_type): New function.
	(cplus_decl_attributes): Add implicit "omp declare target" attribute
	if requested.
	* parser.c (cp_debug_parser): Print
	parser->colon_doesnt_start_class_def_p.
	(cp_ensure_no_omp_declare_simd, cp_finalize_omp_declare_simd): New
	functions.
	(enum pragma_context): Add pragma_member and pragma_objc_icode.
	(cp_parser_binary_expression): Handle no_toplevel_fold_p
	even for binary operations other than comparison.
	(cp_parser_linkage_specification): Call
	cp_ensure_no_omp_declare_simd if needed.
	(cp_parser_namespace_definition): Likewise.
	(cp_parser_init_declarator): Call cp_finalize_omp_declare_simd.
	(cp_parser_direct_declarator): Pass declarator to
	cp_parser_late_return_type_opt.
	(cp_parser_late_return_type_opt): Add declarator argument,
	call cp_parser_late_parsing_omp_declare_simd for declare simd.
	(cp_parser_class_specifier_1): Call cp_ensure_no_omp_declare_simd.
	Parse UDRs before all other methods.
	(cp_parser_member_specification_opt): Use pragma_member instead of
	pragma_external.
	(cp_parser_member_declaration): Call cp_finalize_omp_declare_simd.
	(cp_parser_function_definition_from_specifiers_and_declarator,
	cp_parser_save_member_function_body): Likewise.
	(cp_parser_late_parsing_for_member): Handle UDRs specially.
	(cp_parser_next_token_starts_class_definition_p): Don't allow
	CPP_COLON if colon_doesnt_start_class_def_p flag is true.
	(cp_parser_objc_interstitial_code): Use pragma_objc_icode
	instead of pragma_external.
	(cp_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
	(cp_parser_omp_var_list_no_open): Parse array sections for
	OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.  Add COLON argument,
	if non-NULL, allow parsing to end with a colon rather than close
	paren.
	(cp_parser_omp_var_list): Adjust cp_parser_omp_var_list_no_open
	caller.
	(cp_parser_omp_clause_reduction): Handle user defined reductions.
	(cp_parser_omp_clause_branch, cp_parser_omp_clause_cancelkind,
	cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
	cp_parser_omp_clause_aligned, cp_parser_omp_clause_linear,
	cp_parser_omp_clause_safelen, cp_parser_omp_clause_simdlen,
	cp_parser_omp_clause_depend, cp_parser_omp_clause_map,
	cp_parser_omp_clause_device, cp_parser_omp_clause_dist_schedule,
	cp_parser_omp_clause_proc_bind, cp_parser_omp_clause_to,
	cp_parser_omp_clause_from, cp_parser_omp_clause_uniform): New
	functions.
	(cp_parser_omp_all_clauses): Add finish_p argument.  Don't call
	finish_omp_clauses if it is false.  Handle new OpenMP 4.0 clauses.
	(cp_parser_omp_atomic): Parse seq_cst clause, pass
	true if it is present to finish_omp_atomic.  Handle new OpenMP 4.0
	atomic forms.
	(cp_parser_omp_for_loop): Add CODE argument, pass it through
	to finish_omp_for.  Change last argument to cclauses,
	and adjust uses to grab parallel clauses from the array of all
	the split clauses.
	(cp_omp_split_clauses): New function.
	(cp_parser_omp_simd): New function.
	(cp_parser_omp_for): Add p_name, mask and cclauses arguments.
	Allow the function to be called also when parsing combined constructs,
	and call c_parser_omp_simd when parsing for simd.
	(cp_parser_omp_sections_scope): If section-sequence doesn't start with
	#pragma omp section, require exactly one structured-block instead of
	sequence of statements.
	(cp_parser_omp_sections): Add p_name, mask and cclauses arguments.
	Allow the function to be called also when parsing combined constructs.
	(cp_parser_omp_parallel): Add p_name, mask and cclauses arguments.
	Allow the function to be called also when parsing combined
	constructs.
	(cp_parser_omp_taskgroup, cp_parser_omp_cancel,
	cp_parser_omp_cancellation_point, cp_parser_omp_distribute,
	cp_parser_omp_teams, cp_parser_omp_target_data,
	cp_parser_omp_target_update, cp_parser_omp_target,
	cp_parser_omp_declare_simd, cp_parser_late_parsing_omp_declare_simd,
	cp_parser_omp_declare_target, cp_parser_omp_end_declare_target,
	cp_parser_omp_declare_reduction_exprs, cp_parser_omp_declare_reduction,
	cp_parser_omp_declare): New functions.
	(cp_parser_omp_construct): Add p_name and mask vars.  Handle
	PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
	PRAGMA_OMP_TEAMS.  Adjust cp_parser_omp_for, cp_parser_omp_parallel
	and cp_parser_omp_sections callers.
	(cp_parser_pragma): Handle PRAGMA_OMP_CANCEL,
	PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
	PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
	PRAGMA_OMP_TEAMS, PRAGMA_OMP_TARGET, PRAGMA_OMP_END_DECLARE_TARGET.
	Handle pragma_member and pragma_objc_icode like pragma_external.
	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
	OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
	(OMP_PARALLEL_CLAUSE_MASK): Likewise.  Add OMP_CLAUSE_PROC_BIND.
	(OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.  Add
	OMP_CLAUSE_DEPEND.
	(OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
	OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
	OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
	OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
	OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
	* parser.h (struct cp_omp_declare_simd_data): New type.
	(struct cp_parser): Add colon_doesnt_start_class_def_p and
	omp_declare_simd fields.
	* cp-objcp-common.h (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
	* cp-tree.h (struct lang_decl_fn): Add omp_declare_reduction_p
	bit.
	(DECL_OMP_DECLARE_REDUCTION_P): Define.
	(OMP_FOR_GIMPLIFYING_P): Use OMP_LOOP_CHECK macro.
	(struct saved_scope): Add omp_declare_target_attribute field.
	(cp_omp_mappable_type, omp_reduction_id,
	cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction,
	finish_omp_cancel, finish_omp_cancellation_point): New prototypes.
	(finish_omp_for): Add CODE argument.
	(finish_omp_atomic): Add seq_cst argument.
	(cxx_omp_create_clause_info): Add need_dtor argument.

2013-10-09  Marek Polacek  <polacek@redhat.com>

	PR c++/58635
	* semantics.c (finish_return_stmt): Return error_mark_node
	when error_operand_p of the expr is true.
	(build_transaction_expr): Check for EXPR_P before setting the
	expr location.

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

	PR c++/58568
	* lambda.c (begin_lambda_type): Check return value of xref_tag
	for error_mark_node; tidy.
	* decl.c (grokdeclarator): Tweak error message.

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

	PR c++/58665
	Revert:
	2013-10-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58448
	* pt.c (tsubst): Use error_operand_p on parameter t.

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

	PR c++/58126
	* class.c (check_bases): Propagate CLASSTYPE_READONLY_FIELDS_NEED_INIT
	and CLASSTYPE_REF_FIELDS_NEED_INIT from bases to derived.
	* init.c (diagnose_uninitialized_cst_or_ref_member_1): Extend error
	messages about uninitialized const and references members to mention
	the base class.

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

	PR c++/56060
	* pt.c (type_dependent_expression_p): Handle EXPR_PACK_EXPANSION.

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

	PR c++/58560
	* typeck2.c (build_functional_cast): Use error_operand_p on exp.

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

	PR c++/58503
	* parser.c (cp_parser_perform_range_for_lookup): If eventually
	either *begin or *end is type-dependent, return NULL_TREE.
	(do_range_for_auto_deduction): If cp_parser_perform_range_for_lookup
	returns NULL_TREE, don't actually do_auto_deduction.

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

	PR c++/58448
	* pt.c (tsubst): Use error_operand_p on parameter t.

2013-10-04  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/19476
	* decl.c (cxx_init_decl_processing): Set operator_new_flag.

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

	PR c++/58584
	* decl2.c (save_template_attributes): Handle error_mark_node as
	*attr_p argument.
	(cp_check_const_attributes): Likewise for attributes.
	* parser.c (cp_parser_std_attribute_spec): When alignas_expr is an
	error_mark_node call cp_parser_skip_to_end_of_statement.

2013-10-03  Easwaran Raman  <eraman@google.com>

	PR c++/33911
	* parser.c (cp_parser_init_declarator): Do not drop attributes
	of template member functions.

2013-10-03  Marek Polacek  <polacek@redhat.com>

	PR c++/58510
	* init.c (sort_mem_initializers): Splice when giving an error.

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

	PR c++/58535
	* parser.c (cp_parser_function_specifier_opt): Upon error about
	virtual templates don't set ds_virtual.
	(finish_fully_implicit_template): Reject virtual implicit templates.

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

	PR c++/58565
	* semantics.c (potential_constant_expression_1): Handle LABEL_EXPR.

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

	PR c++/58563
	* parser.c (cp_parser_lookup_name): Check make_typename_type return
	value for error_mark_node.

2013-09-25  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (CXX_TREE_H, CXX_PARSER_H, CXX_PRETTY_PRINT_H):
	Remove.

2013-09-25  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (g++spec.o): Remove.
	(CFLAGS-cp/g++spec.o): New variable.
	(GXX_OBJS): Reference cp/g++spec.o.
	(cc1plus-checksum.o, cp/lex.o, cp/cp-array-notation.o)
	(cp/cp-lang.o, cp/decl.o, cp/decl2.o, cp/cp-objcp-common.o)
	(cp/typeck2.o, cp/typeck.o, cp/class.o, cp/call.o)
	(cp/friend.o, cp/init.o, cp/method.o, cp/cvt.o, cp/search.o)
	(cp/tree.o, cp/ptree.o, cp/rtti.o, cp/except.o, cp/expr.o)
	(cp/pt.o, cp/error.o, cp/repo.o, cp/semantics.o, cp/dump.o)
	(cp/optimize.o, cp/mangle.o, cp/parser.o, cp/cp-gimplify.o)
	(cp/name-lookup.o, cp/cxx-pretty-print.o): Remove.

2013-09-25  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (g++spec.o): Don't use subshell.

2013-09-25  Marek Polacek  <polacek@redhat.com>

	PR c++/58516
	* semantics.c (finish_transaction_stmt): Check for EXPR_P before
	setting the expr location.

2013-09-23  Adam Butcher  <adam@jessamine.co.uk>

	PR c++/58500
	* type-utils.h (find_type_usage): Only traverse one type level into
	member function pointers.

2013-09-23  Adam Butcher  <adam@jessamine.co.uk>

	* parser.c (cp_parser_init_declarator): Defer calling
	finish_fully_implicit_template for forward declarations until after
	other decl processing is complete.  Cleanup for clarity: Extract 'else'
	case after 'if' containing unconditional return.

2013-09-23  Adam Butcher  <adam@jessamine.co.uk>

	* parser.c (make_generic_type_name): Spell generic type names '<autoN>'
	rather than '__GenN'.

2013-09-23  Adam Butcher  <adam@jessamine.co.uk>

	* lambda.c (maybe_add_lambda_conv_op): Don't check for instantiated
	callop in the case of generic lambdas.

2013-09-23  Adam Butcher  <adam@jessamine.co.uk>

	* parser.c (make_generic_type_name): Use global count rather than
	parameter and ...
	(add_implicit_template_parms): ... propagate interface change here.

2013-09-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58481
	* pt.c (tsubst_copy): Use current_nonlambda_class_type to
	call tsubst_baselink.

2013-09-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58457
	* class.c (instantiate_type): Loosen a bit the gcc_assert.

2013-09-18  Marek Polacek  <polacek@redhat.com>

	PR sanitize/58443
	* typeck.c (cp_build_binary_op): Properly honor -fsanitize options.
	Remove unnecessary check.

2013-09-18  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/58411
	* typeck.c (cp_build_binary_op): Don't sanitize function if it has the
	no_sanitize_undefined attribute.

2013-09-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58435
	* pt.c (tsubst, [BOUND_TEMPLATE_TEMPLATE_PARM]): Take into account
	the cp_type_quals (r) too.

2013-09-16  Adam Butcher  <adam@jessamine.co.uk>

	* cp-tree.h (type_uses_auto_or_concept): Declare.
	(is_auto_or_concept): Declare.
	* decl.c (grokdeclarator): Allow 'auto' parameters in lambdas with
	-std=gnu++1y or -std=c++1y or, as a GNU extension, in plain functions.
	* type-utils.h: New header defining ...
	(find_type_usage): ... this new function based on pt.c (type_uses_auto)
	for searching a type tree given a predicate.
	* pt.c (type_uses_auto): Reimplement via type-utils.h (find_type_usage).
	(is_auto_or_concept): New function.
	(type_uses_auto_or_concept): New function.
	* parser.h (struct cp_parser): Add fully_implicit_function_template_p.
	* parser.c (cp_parser_new): Initialize
	fully_implicit_function_template_p.
	(cp_parser_new): Initialize fully_implicit_function_template_p.
	(cp_parser_lambda_expression): Copy and restore value of
	fully_implicit_function_template_p as per other parser fields.
	(cp_parser_parameter_declaration_list): Count generic
	parameters and call ...
	(add_implicit_template_parms): ... this new function to synthesize them
	with help from type-utils.h (find_type_usage), ...
	(tree_type_is_auto_or_concept): ... this new static function and ...
	(make_generic_type_name): ... this new static function.
	(cp_parser_direct_declarator): Account for implicit template parameters.
	(cp_parser_lambda_declarator_opt): Finish fully implicit template if
	necessary by calling ...
	(finish_fully_implicit_template): ... this new function.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_function_definition_after_declarator): Likewise.
	(cp_parser_member_declaration): Likewise.
	* Make-lang.in (cp/pt.o): Add dependency on type-utils.h.
	(cp/parser.o): Likewise.

2013-09-16  Adam Butcher  <adam@jessamine.co.uk>

	* parser.c (cp_parser_lambda_declarator_opt): Accept template parameter
	list with std=c++1y or std=gnu++1y.
	(cp_parser_lambda_body): Don't call 'expand_or_defer_fn' for lambda call
	operator template to avoid adding template result to symbol table.
	* lambda.c (lambda_function): Return template result if call operator is
	a template.
	(maybe_add_lambda_conv_op): Move declarations to point of use.  Refactor
	operator call building in order to support conversion of a non-capturing
	lambda template to a function pointer with help from ...
	(prepare_op_call): ... this new function.
	* decl2.c (check_member_template): Don't reject lambda call operator
	template in local [lambda] class.
	* pt.c (instantiate_class_template_1): Don't instantiate lambda call
	operator template when instantiating lambda class.

2013-09-16  Adam Butcher  <adam@jessamine.co.uk>

	* pt.c (make_auto_1): Use input_location rather than BUILTINS_LOCATION.

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

	Core DR 904
	PR c++/41933
	* parser.c (cp_parser_lambda_introducer): Handle variadic capture.
	* lambda.c (add_capture): Handle variadic capture.
	(add_default_capture, lambda_capture_field_type): Likewise.
	(build_capture_proxy, register_capture_members): Likewise.
	* pt.c (register_specialization): Allow FIELD_DECL.
	(retrieve_specialization): Likewise.
	(find_parameter_packs_r): Handle FIELD_DECL and VAR_DECL.
	(tsubst_pack_expansion): Handle FIELD_DECL packs.
	(gen_elem_of_pack_expansion_instantiation): Likewise.
	(instantiate_class_template_1): Likewise.
	(tsubst_decl, tsubst_copy): Likewise.
	(tsubst_expr) [DECL_EXPR]: Handle capture proxy packs.
	(tsubst_copy_and_build) [VAR_DECL]: Likewise.
	* semantics.c (finish_non_static_data_member): Don't try to represent
	the type of a COMPOUND_REF of a FIELD_DECL pack.

	PR c++/41933
	* cp-tree.h (DECL_PACK_P): Replace FUNCTION_PARAMETER_PACK_P.
	* cxx-pretty-print.c (direct_declarator): Adjust.
	* decl2.c (cp_build_parm_decl): Adjust.
	* pt.c (function_parameter_pack_p): Adjust.
	(find_parameter_packs_r, push_template_decl_real): Adjust.
	(tsubst_pack_expansion, tsubst_decl): Adjust.
	(regenerate_decl_from_template, instantiate_decl): Adjust.

	* lambda.c (add_capture): Don't add DECL_LANG_SPECIFIC.

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-09-13  Jacek Caban  <jacek@codeweavers.com>

	* decl.c: Use new cxx_implicit_extern_c hook

2013-09-12  Brooks Moses  <bmoses@google.com>

	PR driver/42955
	* Make-lang.in: Do not install driver binaries in $(target)/bin.

2013-09-12  Adam Butcher  <adam@jessamine.co.uk>

	* pt.c (instantiate_decl): Save/restore cp_unevaluated_operand and
	c_inhibit_evaluation_warnings.  Reset if instantiating within a
	function-local template.

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

	* semantics.c (finish_pseudo_destructor_expr): Add location_t
	parameter.
	* pt.c (unify_arg_conversion): Use EXPR_LOC_OR_HERE.
	(tsubst_copy_and_build): Adjust finish_pseudo_destructor_expr
	calls.
	* parser.c (cp_parser_postfix_dot_deref_expression): Likewise.
	(cp_parser_postfix_expression): Pass the proper location to
	cp_parser_postfix_dot_deref_expression.
	* cp-tree.h (finish_pseudo_destructor_expr): Update declaration.

2013-09-10  Jan Hubicka  <jh@suse.cz>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	* error.c (print_instantiation_partial_context_line): If
	loc == UNKNOWN_LOCATION return immediately.

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

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

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

	PR c++/43452
	* init.c (build_vec_delete_1): When the type is incomplete emit a
	warning, enabled by default (not an error).
	(build_delete): Adjust to use OPT_Wdelete_incomplete.

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

	PR c++/58362
	* error.c (location_of): Don't handle PARM_DECLs specially.

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

	* error.c (dump_expr, [PSEUDO_DTOR_EXPR]): Fix.
	* cxx-pretty-print.c (cxx_pretty_printer::postfix_expression):
	Tweak, TREE_OPERAND (t, 1) may be null.

2013-09-08  Caroline Tice  <cmtice@google.com>

	PR c++/58300
	* vtable-class-hierarchy.c (vtv_generate_init_routine):  In
	preinit case, move call to assemble_vtv_preinit_initializer to
	after call to cgraph_process_new_functions.

2013-09-08  Tom de Vries  <tom@codesourcery.com>

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

2013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>

	* typeck.c (cp_build_binary_op): Use vector_types_compatible_elements_p.

2013-09-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/24926
	* class.c (finish_struct_anon_r): New.
	(finish_struct_anon): Use it.

2013-09-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (cxx_pretty_printer::simple_type_specifier):
	Declare as overrider.
	* cxx-pretty-print.c (cxx_pretty_printer::simple_type_specifier):
	Rename from pp_cxx_simple_type_specifier.
	(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
	simple_type_specifier.

2013-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58305
	* typeck2.c (build_functional_cast): Maybe warn_deprecated_use.

2013-09-03  Mike Stump  <mikestump@comcast.net>

	* Make-lang.in (cp/lambda.o): Add dependencies.

2013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (cxx_pretty_printer::type_id): Declare as
	overrider.
	* cxx-pretty-print.c (pp_cxx_storage_class_specifier): Remove.
	(pp_cxx_userdef_literal): Tidy.
	(pp_cxx_template_argument_list): Likewise.
	(pp_cxx_typeid_expression): Likewise.
	(pp_cxx_offsetof_expression_1): Likewise.
	(cxx_pretty_printer::postfix_expression): Likewise.
	(cxx_pretty_printer::unary_expression): Likewise.
	(cxx_pretty_printer::statement): Likewise.
	(cxx_pretty_printer::type_id): Rename from pp_cxx_type_id.
	(c_pretty_printer::cxx_pretty_printer): Do not assign to type_id.
	* error.c (dump_decl): Tidy.
	(dump_expr): Likewise.

2013-09-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/21682, implement DR 565
	* name-lookup.c (compparms_for_decl_and_using_decl): New.
	(push_overloaded_decl_1, do_nonmember_using_decl): Use it.

2013-08-30  Marek Polacek  <polacek@redhat.com>

	* typeck.c (cp_build_binary_op): Add division by zero and shift
	instrumentation.
	* error.c (dump_expr): Special-case ubsan builtins.

2013-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51424
	* cp-tree.h (LOOKUP_DELEGATING_CONS): Add.
	* init.c (perform_target_ctor): Use it.
	* call.c (build_special_member_call): Diagnose self-delegating
	constructors.

2013-08-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (cxx_pretty_printer::declaration): Declare as
	overrider.
	(cxx_pretty_printer::declaration_specifiers): Likewise.
	(cxx_pretty_printer::function_specifier): Likewise.
	(cxx_pretty_printer::declarator): Likewise.
	(cxx_pretty_printer::direct_declarator): Likewise.
	(cxx_pretty_printer::abstract_declarator): Likewise.
	(cxx_pretty_printer::direct_abstract_declarator): Likewise.
	(pp_cxx_declaration): Remove.
	* cxx-pretty-print.c (cxx_pretty_printer::function_specifier):
	Rename from pp_cxx_function_specifier.  Adjust.
	(cxx_pretty_printer::declaration_specifiers): Rename from
	pp_cxx_decl_specifier_seq.  Adjust.
	(cxx_pretty_printer::direct_declarator): Rename from
	pp_cxx_direct_declarator.  Adjust.
	(cxx_pretty_printer::declarator): Rename from pp_cxx_declarator.
	Adjust.
	(cxx_pretty_printer::abstract_declarator): Rename from
	pp_cxx_abstract_declarator.  Adjust.
	(cxx_pretty_printer::direct_abstract_declarator): Rename from
	pp_cxx_direct_abstract_declarator.  Adjust.
	(cxx_pretty_printer::declaration): Rename from
	pp_cxx_declaration.  Adjust.
	(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
	declaration, declaration_specifiers, function_specifier,
	declarator, direct_declarator, abstract_declarator,
	direct_abstract_declarator.
	* error.c (dump_decl): Adjust.

2013-08-29  Jan Hubicka  <jh@suse.cz>

	Correct previous patch to not mark terminate as LEAF.
	* class.c (build_vtbl_initializer): Drop LEAF
	* decl.c (cxx_init_decl_processing): Likewise.
	(push_throw_library_fn): Likewise.
	* except.c (init_exception_processing): Likewise.
	(do_begin_catch): Likewise.
	(do_end_catch): Likewise.
	(do_allocate_exception): Likewise.

2013-08-29  Jan Hubicka  <jh@suse.cz>

	* class.c (build_vtbl_initializer): Make __cxa_deleted_virtual
	ECF_NORETURN | ECF_LEAF
	* cp-tree.h (build_library_fn_ptr, build_cp_library_fn_ptr,
	push_library_fn, push_void_library_fn): Update prototype.
	* decl.c (build_library_fn_1): Remove.
	(push_cp_library_fn, build_cp_library_fn): Update to take ECF flags.
	(cxx_init_decl_processing): Update; global_delete_fndecl is ECF_NOTROW;
	__cxa_pure_virtual is ECF_NORETURN | ECF_NORETURN | ECF_LEAF.
	(build_library_fn_1): Add ecf_flags argument; rename to ...
	(build_library_fn): ... this one.
	(build_cp_library_fn): Take ecf_flags; do not copy NOTHROW flag.
	(build_library_fn_ptr): Take ecf_flags.
	(build_cp_library_fn_ptr): Likewise.
	(push_library_fn): Likewise.
	(push_cp_library_fn): Likewise.
	(push_void_library_fn): Likewise.
	(push_throw_library_fn): All throws are ECF_NORETURN.
	(__cxa_atexit, __cxa_thread_atexit): Add ECF_LEAF | ECF_NOTHROW attributes.
	(expand_static_init): __cxa_guard_acquire, __cxa_guard_release,
	__cxa_guard_abort are ECF_NOTHROW | ECF_LEAF.
	* except.c (init_exception_processing): terminate is
	ECF_NOTHROW | ECF_NORETURN | ECF_LEAF.
	(declare_nothrow_library_fn): Add ecf_flags parameter.
	(__cxa_get_exception_ptr): Is ECF_NOTHROW | ECF_PURE | ECF_LEAF |
	ECF_TM_PURE.
	(do_begin_catch): cxa_begin_catch and _ITM_cxa_begin_catch
	are ECF_NOTHROW | ECF_LEAF.
	(do_end_catch): __cxa_end_catch and _ITM_cxa_end_catch is
	ECF_LEAF.
	(do_allocate_exception): _cxa_allocate_exception
	and _ITM_cxa_allocate_exception are ECF_NOTHROW | ECF_MALLOC
	| ECF_LEAF
	(do_free_exception): __cxa_free_exception is
	ECF_NOTHROW | ECF_LEAF.
	* rtti.c (build_dynamic_cast_1): __dynamic_cast
	is ECF_LEAF | ECF_PURE | ECF_NOTHROW.

2013-08-29  Adam Butcher  <adam@jessamine.co.uk>

	* error.c (dump_lambda_function): New function, dependent on ...
	(dump_substitution): ... this new function, factored out of ...
	(subst_to_string): ... here and ...
	(dump_function_decl): ... here.  Updated to early-out with call to
	dump_lambda_function after determining template bindings.

2013-08-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58255
	* init.c (build_aggr_init): When init == void_type_node do not
	set LOOKUP_ONLYCONVERTING.

2013-08-27  Caroline Tice  <cmtice@google.com>

	* vtable-class-hierarchy.c: Remove unnecessary include statements.
	(MAX_SET_SIZE): Remove unnecessary constant.
	(register_construction_vtables):  Make vtable_ptr_array parameter
	into a vector; remove num_args parameter. Change array accesses to
	vector accesses.
	(register_other_binfo_vtables): Ditto.
	(insert_call_to_register_set): Ditto.
	(insert_call_to_register_pair): Ditto.
	(output_set_info):  Ditto.  Also change warning calls to warning_at
	calls, and fix format of warning messages.
	(register_all_pairs): Change vtbl_ptr_array from an array into a
	vector.  Remove num_vtable_args (replace with calls to vector length).
	Change array stores & accesses to vector functions. Change calls to
	register_construction_vtables, register_other_binfo_vtables,
	insert_call_to_register_set, insert_call_to_register_pair and
	output_set_info to match their new signatures.  Change warning to
	warning_at and fix the format of the warning message.

2013-08-27  Jakub Jelinek  <jakub@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>

	* cp-tree.h (CP_OMP_CLAUSE_INFO): Adjust range for new clauses.

2013-08-27  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (grokfndecl): Remove old bison hack.

2013-08-26  Jan Hubicka  <jh@suse.cz>

	* cp-tree.h (DECL_CONSTRUCTOR_P, DECL_DESTRUCTOR_P): Use
	middle-end flag.

2013-08-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (cxx_pretty_printer::unary_expression):
	Declare as overrider.
	(cxx_pretty_printer::multiplicative_expression): Likewise.
	(cxx_pretty_printer::conditional_expression): Likewise.
	(cxx_pretty_printer::assignment_expression): Likewise.
	(cxx_pretty_printer::expression): Likewise.
	* cxx-pretty-print.c (cxx_pretty_printer::unary_expression):
	Rename from pp_cxx_unary_expression.  Adjust.
	(cxx_pretty_printer::multiplicative_expression): Rename from
	pp_cxx_multiplicative_expression.  Adjust.
	(cxx_pretty_printer::conditional_expression): Rename from
	pp_cxx_conditional_expression.  Adjust.
	(cxx_pretty_printer::assignment_expression): Rename from
	pp_cxx_assignment_expression.  Adjust.
	(cxx_pretty_printer::expression): Rename from pp_cxx_expression.
	Adjust.
	(cxx_pretty_printer::cxx_pretty_printer): Dot not assign to
	unary_expression, multiplicative_expression,
	conditional_expression, assignment_expression, expression.

2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (cxx_pretty_printer::postfix_expression):
	Declare as overrider.
	* cxx-pretty-print.c (cxx_pretty_printer::postfix_expression):
	Rename from pp_cxx_postfix_expression.  Adjust.
	(pp_cxx_expression): Use pp_postfix_expression.
	(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
	postfix_expression.

2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (cxx_pretty_printer::primary_expression): Now
	an overrider of c_pretty_printer::primary_expression.
	* cxx-pretty-print.c (cxx_pretty_printer::primary_expression):
	Rename from pp_cxx_primary_expression.  Adjust.
	(pp_cxx_postfix_expression): Use pp_primary_expression.
	(pp_cxx_ctor_initializer): Likewise.
	(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
	primary_expression.

2013-08-23  Jan Hubicka  <jh@suse.cz>

	* cp-tree.h (struct lang_type_class): Free is_final bit.
	(CLASSTYPE_FINAL): Define using TYPE_FINAL_P.
	(DECL_FINAL_P): Remove.
	* pt.c (instantiate_class_template_1): Guard that CLASSTYPE_FINAL
	is called on CLASS_TYPE_P.

2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.c (M_): Remove.
	(pp_cxx_unqualified_id): Use translate_string instead of M_.
	(pp_cxx_canonical_template_parameter): Likewise.

2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (cxx_pretty_printer::id_expression): Declare.
	* cxx-pretty-print.c (cxx_pretty_printer::id_expression): Rename
	from pp_cxx_id_expression.  Adjust.
	(pp_cxx_userdef_literal): Use pp_id_expression.
	(pp_cxx_primary_expression): Likewise.
	(pp_cxx_direct_declarator): Likewise.
	(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
	id_expression.

2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (cxx_pretty_printer::constant): Now a member
	function, overriding c_pretty_printer::constant.
	* cxx-pretty-print.c (cxx_pretty_printer::constant): Rename from
	pp_cxx_constant.  Adjust.
	(cxx_pretty_printer::cxx_pretty_printer): Do not assign to constant.

2013-08-23  Gabriel Dos Reis  <gdr@integrable-solutiobs.net>

	* cp-objcp-common.c (cxx_initialize_diagnostics): Call a
	destructor for the early printer.
	* error.c (type_to_string): Use pp_buffer.

2013-08-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56380
	* class.c (check_field_decls): Check for const mutable and const
	reference data members.

2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* error.c (init_error): Remove calls to pp_construct and
	pp_cxx_pretty_printer_init.  Initialize cxx_pp with placement-new.
	* cxx-pretty-print.h (cxx_pretty_printer::cxx_pretty_printer): Declare.
	(cxx_pretty_printer_init): Remove.
	* cxx-pretty-print.c (cxx_pretty_printer::cxx_pretty_printer):
	Rename from cxx_pretty_printer_init.  Adjust.
	* cp-objcp-common.c (cxx_initialize_diagnostics): Simplify
	initialization of C++ diagnostics pretty printer.

2013-08-21  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (build_new_method_call_1): Use INDIRECT_REF_P.
	* cp-tree.h (REFERENCE_REF_P): Likewise.
	* semantics.c (finish_offsetof): Likewise.

2013-08-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56130
	* semantics.c (finish_id_expression): Handle deprecated references.

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

	PR c++/58119
	* cvt.c (build_expr_type_conversion): Don't complain about a
	template that can't match the desired type category.

2013-08-20  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* error.c (pp_ggc_formatted_text): New.
	(type_as_string): Use it in lieu of pp_formatted_text.
	(type_as_string_translate): Likewise.
	(expr_as_string): Likewise.
	(decl_as_string): Likewise.
	(decl_as_string_translate): Likewise.
	(lang_decl_name): Likewise.
	(decl_to_string): Likewise.
	(expr_to_string): Likewise.
	(fndecl_to_string): Likewise.
	(parm_to_string): Likewise.
	(type_to_string): Likewise.
	(args_to_string): Likewise.
	(subst_to_string): Likewise.

2013-08-19  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	PR c/57490
	* cp-array-notation.c (cp_expand_cond_array_notations): Added a
	check for truth values.
	(expand_array_notation_exprs): Added truth values case.  Removed an
	unwanted else.  Added for-loop to walk through subtrees in default
	case.
	* call.c (build_cxx_call): Inherited the type of the array notation for
	certain built-in array notation functions.

2013-08-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* parser.c (cp_parser_lambda_introducer, cp_parser_decltype_expr):
	Use cp_parser_lookup_name_simple.

2013-08-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* name-lookup.h (pop_bindings_and_leave_scope): Declare.
	* name-lookup.c (pop_bindings_and_leave_scope): Define.
	* parser.c (cp_parser_lambda_declarator_opt,
	cp_parser_direct_declarator, cp_parser_cache_defarg): Use it.

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

	PR c++/58083
	* name-lookup.c (push_class_level_binding_1): It's OK to push a
	lambda type after the enclosing type is complete.

2013-08-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* error.c (dump_scope): Add a cxx_pretty_printer parameter.
	Adjust callers.
	(dump_template_argument): Likewise.
	(dump_template_argument_list): Likewise.
	(dump_template_parameter): Likewise.
	(dump_template_bindings): Likewise.
	(dump_alias_template_specialization): Likewise.
	(dump_type): Likewise.
	(dump_typename): Likewise.
	(dump_aggr_type): Likewise.
	(dump_type_prefix): Likewise.
	(dump_type_suffix): Likewise.
	(dump_global_iord): Likewise.
	(dump_simple_decl): Likewise.
	(dump_decl): Likewise.
	(dump_template_decl): Likewise.
	(dump_function_decl): Likewise.
	(dump_parameters): Likewise.
	(dump_ref_qualifier): Likewise.
	(dump_exception_spec): Likewise.
	(dump_function_name): Likewise.
	(dump_template_parms): Likewise.
	(dump_call_expr_args): Likewise.
	(dump_aggr_init_expr_args): Likewise.
	(dump_expr_list): Likewise.
	(dump_expr_init_vec): Likewise.
	(dump_expr): Likewise.
	(dump_binary_op): Likewise.
	(dump_unary_op): Likewise.

2013-08-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51912
	* cp-tree.h (LOOKUP_NO_NON_INTEGRAL): Add.
	* decl.c (case_conversion): Use it.
	* call.c (standard_conversion): Likewise.
	(implicit_conversion): Adjust.

2013-08-13  Adam Butcher  <adam@jessamine.co.uk>

	* pt.c: Grammar fix in comments ("it's" to "its").

2013-08-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (warn_extern_redeclared_static, duplicate_decls,
	check_elaborated_type_specifier): Use error + inform.
	* friend.c (make_friend_class): Likewise.
	* semantics.c (finish_id_expression): Likewise.

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

	Revert:
	2013-08-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/46206
	* name-lookup.c (lookup_name_real_1): Handle iter->type before
	iter->value.

2013-08-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/46206
	* name-lookup.c (lookup_name_real_1): Handle iter->type before
	iter->value.

2013-08-06  Caroline Tice  <cmtice@google.com>

	* Make-lang.in (*CXX_AND_OBJCXX_OBJS):  Add vtable-class-hierarchy.o to
	list.
	(vtable-class-hierarchy.o): Add build rule.
	* cp-tree.h (vtv_start_verification_constructor_init_function): New
	extern function decl.
	(vtv_finish_verification_constructor_init_function): New extern
	function decl.
	(build_vtbl_address): New extern function decl.
	(get_mangled_vtable_map_var_name): New extern function decl.
	(vtv_compute_class_hierarchy_transitive_closure): New extern function
	decl.
	(vtv_generate_init_routine): New extern function decl.
	(vtv_save_class_info): New extern function decl.
	(vtv_recover_class_info): New extern function decl.
	(vtv_build_vtable_verify_fndecl): New extern function decl.
	* class.c (finish_struct_1): Add call to vtv_save_class_info if
	flag_vtable_verify is true.
	* config-lang.in: Add vtable-class-hierarchy.c to gtfiles list.
	* vtable-class-hierarchy.c: New file.
	* mangle.c (get_mangled_vtable_map_var_name):  New function.
	* decl2.c (start_objects): Update function comment.
	(cp_write_global_declarations):  Call vtv_recover_class_info,
	vtv_compute_class_hierarchy_transitive_closure and
	vtv_build_vtable_verify_fndecl, before calling
	finalize_compilation_unit, and call vtv_generate_init_rount after, IFF
	flag_vtable_verify is true.
	(vtv_start_verification_constructor_init_function): New function.
	(vtv_finish_verification_constructor_init_function): New function.
	* init.c (build_vtbl_address): Remove static qualifier from function.

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

	PR c++/57825
	* tree.c (strip_typedefs) [METHOD_TYPE]: Preserve ref-qualifier.

2013-08-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58080
	* typeck.c (cp_pointer_int_sum): Add tsubst_flags_t parameter.
	(cp_build_binary_op): Adjust.

2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cxx-pretty-print.h (pp_c_base): Remove.
	(cxx_pretty_printer): Derive from c_pretty_printer.
	Adjust macros using pp_c_base.
	* cp-objcp-common.c (cxx_initialize_diagnostics): Do not call pp_base.
	* cxx-pretty-print.c (pp_cxx_nonconsecutive_character): Likewise.
	(pp_cxx_colon_colon): Likewise.
	(pp_cxx_separate_with): Likewise.
	(pp_cxx_storage_class_specifier): Do not call pp_c_base.
	(pp_cxx_expression_list): Likewise.
	(pp_cxx_space_for_pointer_operator): Likewise.
	(pp_cxx_init_declarator): Likewise.
	(pp_cxx_call_argument_list): Likewise.
	(pp_cxx_constant): Likewise.
	(pp_cxx_postfix_expression): Likewise.
	(pp_cxx_new_expression): Likewise.
	(pp_cxx_unary_expression): Likewise.
	(pp_cxx_cast_expression): Likewise.
	(pp_cxx_conditional_expression): Likewise.
	(pp_cxx_assignment_expression): Likewise.
	(pp_cxx_expression): Likewise.
	(pp_cxx_function_specifier): Likewise.
	(pp_cxx_decl_specifier_seq): Likewise.
	(pp_cxx_simple_type_specifier): Likewise.
	(pp_cxx_type_specifier_seq): Likewise.
	(pp_cxx_ptr_operator): Likewise.
	(pp_cxx_parameter_declaration_clause): Likewise.
	(pp_cxx_direct_declarator): Likewise.
	(pp_cxx_direct_abstract_declarator): Likewise.
	(pp_cxx_type_id): Likewise.
	(pp_cxx_statement): Likewise.
	(pp_cxx_pretty_printer_init): Tidy.
	* error.c (init_error): Do not use pp_base.
	(dump_aggr_type): Likewise.
	(dump_type_prefix): Likewise.
	(dump_type_suffix): Likewise.
	(dump_global_iord): Likewise.
	(dump_decl): Likewise.
	(dump_function_decl): Likewise.
	(dump_ref_qualifier): Likewise.
	(reinit_cxx_pp): Likewise.
	(decl_as_dwarf_string): Likewise.
	(lang_decl_dwarf_name): Likewise.
	(type_to_string): Likewise.
	(cv_to_string): Likewise.
	(cxx_print_error_function): Likewise.
	(cp_diagnostic_starter): Likewise.
	(cp_diagnostic_finalizer): Likewise.
	(cp_print_error_function): Likewise.
	(print_instantiation_context): Likewise.
	(cp_printer): Likewise.

2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* error.c (dump_type_prefix): Use specialized pretty printer
	functions instead of pp_string or operators and punctuators.
	(dump_decl): Likewise.
	(dump_expr): Likewise.

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

	DR 1286
	* pt.c (get_underlying_template): New.
	(convert_template_argument, lookup_template_class_1): Use it.

	DR 1430
	PR c++/51239
	* pt.c (pack_expansion_args_count): Rename from
	any_pack_expanson_args_p.
	(coerce_template_parms): Reject pack expansion to
	non-pack template parameter of alias template.

2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* error.c (dump_aggr_type): Use specialized pretty printer
	functions instead of pp_character.
	(dump_type_prefix): Likewise.
	(dump_simple_decl): Likewise.
	(type_to_string): Likewise.

2013-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* cp-tree.h (finish_stmt): Do not declare.
	* decl.c (finish_stmt): Do not define.
	* parser.c (cp_parser_expression_statement,
	cp_parser_declaration_statement,
	cp_parser_transaction_cancel): Don't call finish_stmt.
	* semantics.c (finish_expr_stmt, finish_if_stmt,
	finish_while_stmt, finish_do_stmt, finish_return_stmt,
	finish_for_stmt, finish_switch_stmt, finish_compound_stmt,
	finish_transaction_stmt): Likewise.

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

	PR c++/54537
	* cp-tree.h: Check OVL_USED with OVERLOAD_CHECK.
	* name-lookup.c (do_nonmember_using_decl): Make sure we have an
	OVERLOAD before calling OVL_USED. Call diagnose_name_conflict
	instead of issuing an error without mentioning the conflicting
	declaration.

2013-07-31  Paolo Carlini  <paolo.carlini@oracle.com>

	* parser.c (cp_parser_sizeof_pack): Check cp_parser_identifier
	return value for error_mark_node.

2013-07-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57673
	* parser.c (cp_parser_cache_defarg): In an NSDMI don't stop when
	token->type == CPP_ELLIPSIS.

2013-07-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57947
	* call.c (is_std_init_list): Return false if cxx_dialect == cxx98.

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

	PR c++/57901
	* semantics.c (build_data_member_initialization, constexpr_fn_retval):
	Use break_out_target_exprs instead of unshare_expr.

2013-07-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57948
	* call.c (initialize_reference): Don't crash when reference_binding
	returns a conv with conv->kind == ck_ambig.

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

	* mangle.c (write_name): Check for null context.
	(write_unscoped_name): Allow PARM_DECL context.

2013-07-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57981
	* decl.c (check_default_argument): Take a tsubst_flags_t parameter.
	(grokparms): Adjust.
	* parser.c (cp_parser_late_parse_one_default_arg): Likewise.
	* pt.c (tsubst_default_argument, tsubst_default_arguments): Take
	a tsubst_flags_t parameter.
	(tsubst_decl): Adjust.
	* call.c (convert_default_arg): Likewise.
	* cp-tree.h (check_default_argument, tsubst_default_argument):
	Update declarations.

2013-07-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57880
	* parser.c (cp_parser_operator, case CPP_WSTRING, CPP_STRING16,
	CPP_STRING32, CPP_UTF8STRING, CPP_WSTRING_USERDEF,
	CPP_STRING16_USERDEF, CPP_STRING32_USERDEF, CPP_UTF8STRING_USERDEF):
	Fix string_len management, tidy.

2013-07-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57942
	* typeck.c (ptr_reasonably_similar): Use COMPARE_STRICT if either
	target type is incomplete; return a bool, not an int.
	* cp-tree.h (ptr_reasonably_similar): Adjust declaration.

2013-07-22  Paolo Carlini  <paolo.carlini@oracle.com>

	* cp-tree.h (DERIVED_FROM_P): Pass tf_none to lookup_base, not
	tf_warning_or_error.

2013-07-21   OndÅej BÃ­lka  <neleai@seznam.cz>

	* class.c: Fix typos.
	* cp-array-notation.c: Likewise.
	* cp-objcp-common.c: Likewise.
	* decl.c: Likewise.
	* init.c: Likewise.
	* mangle.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* semantics.c: Likewise.

2013-07-14  Adam Butcher  <adam@jessamine.co.uk>

	* semantics.c (build_lambda_expr),
	(build_lambda_object), (begin_lambda_type), (lambda_return_type),
	(lambda_function), (lambda_capture_field_type), (is_capture_proxy),
	(is_normal_capture_proxy), (insert_capture_proxy),
	(insert_pending_capture_proxies), (lambda_proxy_type),
	(build_capture_proxy), (vla_capture_type),
	(register_capture_members), (add_default_capture),
	(lambda_expr_this_capture), (maybe_resolve_dummy),
	(nonlambda_method_basetype), (maybe_add_lambda_conv_op) and
	(is_lambda_ignored_entity): Moved definitions into ...
	* lambda.c: ... this new file.

2013-07-14  Marc Glisse  <marc.glisse@inria.fr>

	* call.c (build_conditional_expr_1): Handle the case with 1 vector
	and 2 scalars. Call save_expr before building a vector.
	* typeck.c (cp_build_binary_op): Check complain before complaining.

2013-07-13  Lubos Lunak  <l.lunak@suse.cz>

	PR c++/55203
	* init.c (build_aggr_init): Check for warn_unused attribute.
	* decl.c (poplevel): Likewise.

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

	PR c++/57402
	* init.c (build_vec_init): Use {} for arrays of class type.
	(build_vec_delete): Don't take the address of the array.

	PR c++/57793
	* class.c (layout_class_type): Check for too-large class.

	* call.c (can_convert): Allow user-defined conversions.
	(can_convert_standard): New.
	* cp-tree.h: Declare it.
	* cvt.c (convert_to_reference): Use it.
	* pt.c (convert_nontype_argument): Likewise.
	* search.c (check_final_overrider): Likewise.
	Don't worry about user-defined conversions.

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

	PR c++/57869
	* typeck.c (build_reinterpret_cast_1): With -Wconditionally-supported
	warn about casting between pointer-to-function and pointer-to-object.

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

	PR c++/57402
	* init.c (build_vec_init): Don't take shortcuts when initializing
	a VLA.

	PR c++/57471
	* parser.c (cp_parser_sizeof_pack): Clear parser scopes.

	PR c++/57658
	* semantics.c (finish_id_expression): Return the id for an
	unevaluated outer variable.

	PR c++/57526
	* semantics.c (lambda_capture_field_type): Build a DECLTYPE_TYPE
	if the variable type uses 'auto'.

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

	PR c++/57532
	* parser.c (cp_parser_ref_qualifier_opt): Don't tentatively parse
	a ref-qualifier in C++98 mode.

	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-07-09  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53094
	* semantics.c (cxx_eval_bit_field_ref): Handle VECTOR_CST.

2013-07-09  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53000
	* call.c (build_conditional_expr_1): Preserve xvalues.

2013-07-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51786
	* parser.c (cp_parser_simple_declaration): Before calling shadow_tag
	also check declares_class_or_enum.

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

	PR c++/57550
	* pt.c (fn_type_unification): Only defer during substitution.
	(type_unification_real): Defer during defarg substitution,
	add checks parm to pass back deferred checks.
	(unify, do_auto_deduction): Adjust.
	* semantics.c (reopen_deferring_access_checks): New.
	* cp-tree.h: Declare it.

2013-07-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/28262
	* parser.c (cp_parser_init_declarator): If we are parsing a typedef
	set parser->default_arg_ok_p to false before cp_parser_declarator.

2013-07-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/14263
	* class.c (build_base_path): Improve diagnostic.

2013-07-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/38634
	* decl.c (start_preparsed_function): Return a bool, false if
	push_template_decl fails.
	(start_function): Adjust.
	* cp-tree.h: Update.

2013-07-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/57771
	* parser.c (cp_parser_postfix_expression) <case RID_STATCAST>
	Temporarily set parser->greater_than_is_operator_p for
	cp_parser_expression and restore from saved value afterwards.

2013-06-28  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* cp-tree.h (UDLIT_OP_ANSI_PREFIX): Remove space.
	* parser.c (cp_parser_operator()): Parse user-defined string
	literal as literal operator.

2013-06-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57645
	* class.c (deduce_noexcept_on_destructors): Save, set, and restore
	TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) around the main loop over the
	destructors.

2013-06-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* parser.c (cp_parser_array_notation): Removed rejection array notation
	of type function pointers. Added handling of array expressions when
	Cilk Plus is enabled.  Took out type-checking.
	(cp_parser_postfix_open_square_expression): Moved normal array expr.
	parsing into cp_parser_array_notation when cilkplus is enabled.
	(cp_parser_compound_statement): Removed expansion of array notations.
	(cp_parser_ctor_initializer_opt_and_function_body): Likewise.
	(cp_parser_function_definition_after_declarator): Likewise.
	(cp_parser_selection_statement): Removed error reporting.
	(cp_parser_iteration_statement): Likewise.
	(cp_parser_direct_declarator): Removed error checking/reporting if
	array notations are used in the declarator.
	* pt.c (instantiate_decl): Likewise.
	(type_unification_real): Removed a check for ARRAY_NOTATION_REF.
	(cxx_eval_constant_expression): Removed ARRAY_NOTATION_REF case.
	(potential_constant_expression_1): Returned false for
	ARRAY_NOTATION_REF case.
	* cp-gimplify.c (cp_genericize): Added expansion of array notation
	expressions here.
	* cp-array-notation.c (make_triplet_val_inv): Removed loc and cry
	parameters.  Replaced build_decls with get_temp_regvar with type as
	ptrdiff.
	(create_array_refs): Made the type-casting to ptrdiff_type.
	(replace_invariant_var): Added a check for void return type before
	creating new var.  Replaced build_decl and build_min_nt_loc with
	get_temp_regvar.
	(expand_an_in_modify_expr): Ditto.  Replaced body of redundant else
	with gcc_unreachable.  Removed few unwanted checks.  Made induction
	variable type as ptrdiff_type.  Removed loc and complain arguments
	passed into make_triplet_val_inv.  Replaced all modify expression's
	code from NOP EXPR to INIT EXPR.  Replaced all forceful appending
	into stmt. list with the non-forceful one.  Replaced some integer
	conversion and equality-checking to using tree_int_cst_equal.
	(expand_sec_reduce_builtin): All changes mentioned in above function
	expand_an_in_modify_expr.  Made the new variable type of
	SEC_REDUCE_ANY/ALL_{NON}ZERO intrinsic functions as bool.
	(expand_array_notation_exprs): Removed SWITCH_EXPR case.  Moved all
	the error reporting from parser to this function.  Removed unwanted
	statements and checks from SWITCH_STMT, WHILE_STMT, and DO_STMT cases.
	(cilkplus_an_triplet_types_ok_p): Removed rejection of array notation
	in function pointers.
	(cp_expand_cond_array_notations): Added a new if statements to check
	if condition has a zero rank.  If so, then just return.
	(expand_return_expr): Added a check for return expressions with a rank.
	Replaced get_tmp_regvar with a create_temporary_var.
	(build_array_notation_ref): Simplified and removed unwanted if-stmts.
	Moved common code outside if-statements.  Moved type-checking from
	parser to here.
	* semantics.c (finish_return_stmt): Removed a check for return exprs.
	with a rank.
	* call.c (convert_like_real): Removed a check for array notation
	expression in a function.
	(build_over_call): Likewise.
	(magic_varargs_p): Added a check for builtin array notation function.
	Made this function non-static and removed its prototype.
	* cp-tree.h (magic_varargs_p): New prototype.
	* typeck.c (cp_build_function_call_vec): Removed automatic setting of
	nargs to the param->length when builtin reduction function is used.
	(convert_arguments): Replaced check for a constant_p function with
	margic_varargs_p function call.
	(cp_build_binary_op): Removed calling of the function
	find_correct_array_notation_type.
	(cp_build_addr_expr_1): Removed an unwanted if-statement.
	(convert_for_assignment): Removed automatic return of rhs when array
	notation builtin function is used.

2013-06-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57682
	* parser.c (cp_parser_save_member_function_body): Handle correctly
	curly braces in function-try-block mem-initializers.

2013-06-27  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/57509
	* typeck.c (cp_build_vec_perm_expr): New function.
	* cp-tree.h: Declare it.
	* parser.c (cp_parser_postfix_expression): Call it.
	* pt.c (tsubst_copy): Handle VEC_PERM_EXPR.
	(tsubst_copy_and_build): Likewise.

2013-06-27  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/57172
	* pt.c (more_specialized_fn): If both arguments are references,
	give priority to an lvalue.

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

	* typeck2.c (store_init_value): Diagnose a non-constant
	initializer for in-class static.

	PR c++/57408
	* semantics.c (add_capture): Set type to error_mark_node after
	error.

2013-06-25  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/57640
	* parser.c (cp_parser_unqualified_id): Add declarator_p to checks
	to trigger warning, (cp_literal_operator_id): Remove bogus TODO comment.

2013-06-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* call.c (null_ptr_cst_p): Use cxx11 in lieu of cxx0x.
	* class.c (add_implicitly_declared_members): Likewise.
	(check_field_decl): Likewise.
	(finalize_literal_type_property): Likewise.
	(check_bases_and_members): Likewise.
	* decl.c (poplevel): Likewise.
	(case_conversion): Likewise.
	(check_initializer): Likewise.
	(grokfndecl): Likewise.
	(check_static_variable_definition): Likewise.
	(compute_array_index_type): Likewise.
	(grokdeclarator): Likewise.
	(build_enumerator): Likewise.
	* friend.c (make_friend_class): Likewise.
	* lex.c (init_reswords): Likewise.
	* method.c (synthesized_method_walk): Likewise.
	(implicitly_declare_fn): Likewise.
	* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
	(cp_parser_constant_expression): Likewise.
	(cp_parser_for_init_statement): Likewise.
	(cp_parser_block_declaration): Likewise.
	(cp_parser_type_name): Likewise.
	(cp_parser_enum_specifier): Likewise.
	(cp_parser_enumerator_list): Likewise.
	(cp_parser_member_declaration): Likewise.
	(cp_nth_tokens_can_be_std_attribute_p): Likewise.
	(cp_parser_template_declaration_after_export): Likewise.
	* pt.c (convert_nontype_argument_function): Likewise.
	(convert_nontype_argument): Likewise.
	(convert_template_argument): Likewise.
	(tsubst_copy_and_build): Likewise.
	(build_non_dependent_expr): Likewise.
	* semantics.c (non_const_var_error): Likewise.
	(potential_constant_expression_1): Likewise.
	* tree.c (lvalue_kind): Likewise.
	(build_vec_init_expr): Likewise.
	(cast_valid_in_integral_constant_expression_p): Likewise.
	* typeck.c (build_x_conditional_expr): Likewise.
	* typeck2.c (check_narrowing): Likewise.

2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* cp-array-notation.c (cp_length_mismatch_in_expr_p): Remove.
	(expand_an_in_modify_expr): Changed a function call from the above
	removed function to length_mismatch_in_expr_p.

2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* call.c (convert_like_real): Added a check if array notation is present
	in expression.  If so, then no conversion of arguments is necessary.
	(build_over_call): Likewise.
	* typeck.c (cp_build_function_call_vec): Likewise.
	(convert_for_assignment): Likewise.
	(cp_build_array_ref): Reject array notations with a rank greater than 1
	as an array's index.
	(cp_build_binary_op): If array notations are preent in op, then call
	find_correct_array_notation_type.
	(cp_build_addr_expr_1): Handle ARRAY_NOTATION_REF similar to ARRAY_REF.
	* cp-array-notation.c: New file.
	* cp-objcp-common.c (cp_common_init_ts): Marked ARRAY_NOTATION_REF tree
	as typed.
	* cp-tree.h (fix_array_notation_exprs): New prototype.
	* semantics.c (finish_return_stmt): Reject array notations as
	return value.
	(cxx_eval_constant_expression): Added ARRAY_NOTATION_REF case.
	(potential_constant_expression_1): Likewise.
	* tree.c (lvalue_kind): Likewise.
	* error.c (dump_decl): Likewise.
	(dump_expr): Likewise.
	* pt.c (ARRAY_NOTATION_REF): Likewise.
	(type_unification_real): Do not unify any arguments if array notations
	are found in arg.
	(instantiate_decl): Added a check for array notaitons inside the
	function body.  If so, then expand them.
	* parser.c (cp_parser_array_notation): New function.
	(cp_parser_postfix_open_square_expression): Added a check for colons
	inside square braces.  If found, then handle the array access as an
	array notation access.  Also, disable auto-correction from a single
	colon to scope when Cilk Plus is enabled.
	(cp_parser_compound_statement): Added a check for array notations
	inside the statement.  If found, then expand them.
	(cp_parser_ctor_initializer_opt_and_function_body): Likewise.
	(cp_parser_function_definition_after_declarator): Likewise.
	(cp_parser_selection_statement): Searched for array notations inside
	condition.  If so, then emit an error.
	(cp_parser_iteration_statement): Likewise.
	(cp_parser_direct_declarator): Reject array notations inside a
	variable or array declaration.
	* Make-lang.in (CXX_AND_OBJCXX_OBJS): Added cp/cp-array-notation.o.

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

	PR c++/55149
	* decl.c (compute_array_index_type): Don't reject VLAs in SFINAE
	context if we're in C++14 mode.
	* tree.c (array_of_runtime_bound_p): Return true for a dependent
	bound that is not potentually constant.
	* cp-tree.h (DECL_VLA_CAPTURE_P, REFERENCE_VLA_OK): New.
	* pt.c (tsubst) [REFERENCE_TYPE]: Check REFERENCE_VLA_OK.
	* semantics.c (build_lambda_object): Don't rvalue a VLA capture.
	(build_capture_proxy): Set REFERENCE_VLA_OK.
	(vla_capture_type): Make it a proper C++ class.
	(add_capture): Set DECL_VLA_CAPTURE_P.  Don't pre-digest the
	initializer.

	* decl.c (compute_array_index_type): Use size_one_node.

	* pt.c (process_partial_specialization): Build a TEMPLATE_DECL for
	a partial specialization.
	(tsubst_decl): Don't clobber CLASSTYPE_TI_TEMPLATE of a partial
	specialization.
	(most_specialized_class): Adjust.

	* cp-tree.h (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT)
	(DECL_TEMPLATE_INSTANTIATIONS, DECL_TEMPLATE_SPECIALIZATIONS): Use
	TEMPLATE_DECL_CHECK.

2013-06-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/57638
	* pt.c (unify, [TEMPLATE_PARM_INDEX]): Pass to unify_type_mismatch
	TREE_TYPE (arg), not arg itself.

2013-06-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53211
	* pt.c (type_dependent_expression_p): Handle an array of unknown
	bound depending on a variadic parameter.
	* parser.c (cp_parser_range_for): Revert PR56794 changes.

2013-06-17  Richard Biener  <rguenther@suse.de>

	* cp-tree.h (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move to tree.h.

2013-06-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/16128
	* parser.c (cp_parser_expression_statement): Check whether
	cp_parser_expression returns error_mark_node.

2013-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51413
	* semantics.c (finish_offsetof): Handle INDIRECT_REF as expr.

2013-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57599
	* rtti.c (build_dynamic_cast_1): In case of cast to an unambiguous
	accessible base simply forward to build_static_cast.

2013-06-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/38958
	* decl.c (poplevel): For the benefit of -Wunused-variable see
	through references.

2013-06-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* parser.c (cp_parser_nested_name_specifier_opt): Fix typo in comment.

2013-06-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/42021
	* parser.c (cp_parser_nested_name_specifier_opt): Avoid emitting
	again diagnostic already emitted by cp_parser_lookup_name.

2013-06-11  Jan Hubicka  <jh@suse.cz>

	PR c++/57551
	* cp/pt.c (mark_decl_instantiated): Do not export explicit
	instantiations of anonymous namespace templates.

2013-06-10  Jason Merrill  <jason@redhat.com>

	* name-lookup.c (add_decl_to_level): Add decls in an anonymous
	namespace to static_decls.

2013-06-07  Sriraman Tallam  <tmsriram@google.com>

	PR c++/57548
	* call.c (build_over_call):  Check if current_function_decl is
	NULL.

2013-06-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53658
	* pt.c (lookup_template_class_1): Consistently use TYPE_MAIN_DECL,
	not TYPE_STUB_DECL, to access the _DECL for a _TYPE.

2013-06-06  Jason Merrill  <jason@redhat.com>

	PR c++/55520
	* semantics.c (add_capture): Diagnose capture of variable-size
	type that is not a C++1y array of runtime bound.

	* decl.c (grokdeclarator): Keep a decl with error type.
	(grokfield, grokbitfield): Likewise.
	* pt.c (instantiate_class_template_1): Likewise.
	(tsubst_decl): Drop redundant error.
	* class.c (walk_subobject_offsets): Handle erroneous fields.
	* typeck2.c (process_init_constructor_record): Likewise.

2013-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51908
	* parser.c (cp_parser_postfix_expression [RID_*CAST]): Set
	parser->in_type_id_in_expr_p before calling cp_parser_type_id.

2013-06-03  Jan Hubicka  <jh@suse.cz>

	* decl2.c (maybe_make_one_only): Use forced_by_abi instead of
	mark_decl_referenced.
	(mark_needed): Likewise.

2013-06-03  Jason Merrill  <jason@redhat.com>

	* class.c (mark_type_abi_tags): New.
	(check_abi_tags): Use it.

2013-06-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57419
	* decl2.c (mark_used): Add overload taking a tsubst_flags_t too.
	* semantics.c (finish_qualified_id_expr): Use it.
	* cp-tree.h: Update.

2013-06-01  Jan Hubicka  <jh@suse.cz>

	* decl2.c (cp_write_global_declarations): Replace same_body_alias
	by symbol.cpp_implicit_alias.

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

	PR c++/57404
	* cp-lang.c (cp_classify_record): Handle structs without
	TYPE_LANG_SPECIFIC.

	PR c++/52377
	* class.c (common_enclosing_class): New.
	* cp-tree.h: Declare it.
	* init.c (sort_mem_initializers): Don't splice out a union member
	with an NSDMI.

2013-05-29  Jan Hubicka  <jh@suse.cz>

	* tree.c (cp_fix_function_decl_p): Update for new symtab flags.
	* decl2.c )var_finalized_p, cp_write_global_declarations): Likewise.

2013-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/25666
	* decl2.c (check_classfn): Check for destructors declared as member
	templates.

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

	PR c++/56971
	* pt.c (any_template_arguments_need_structural_equality_p): A
	TEMPLATE_TEMPLATE_PARM can require structural type comparison.

2013-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/19618
	* class.c (check_bitfield_decl): Warn for bool and enum bitfields
	with width exceeding the type.

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

	PR c++/57391
	* semantics.c (cxx_eval_constant_expression): Handle FMA_EXPR.
	(cxx_eval_trinary_expression): Rename from cxx_eval_vec_perm_expr.

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

	PR c++/57388
	* tree.c (build_ref_qualified_type): Clear
	FUNCTION_RVALUE_QUALIFIED for lvalue ref-qualifier.

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

	PR c++/56930
	* call.c (convert_like_real): Use cp_convert_and_check.
	* cvt.c (cp_convert_and_check): Use maybe_constant_value.
	* semantics.c (cxx_eval_constant_expression): Handle LTGT_EXPR.
	(potential_constant_expression_1): Handle OMP_ATOMIC*.

	PR c++/56915
	* semantics.c (maybe_add_lambda_conv_op): Give up if the call op
	isn't defined.

2013-05-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57352
	* parser.c (cp_parser_conversion_type_id): Set up
	parser->type_definition_forbidden_message before calling
	cp_parser_type_specifier_seq.

2013-05-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57211
	* method.c (defaultable_fn_check): Avoid do_warn_unused_parameter
	warnings about defaulted functions.

2013-05-21  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (build_conditional_expr_1): Add location_t parameter.
	(build_conditional_expr): Likewise.
	* typeck.c (rationalize_conditional_expr, cp_build_array_ref,
	get_member_function_from_ptrfunc, build_x_conditional_expr,
	cp_build_modify_expr): Update.
	* init.c (build_new_1): Likewise.
	* cp-tree.h: Update declaration.

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

	PR c++/57016
	* pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Only check type2
	if there is one.

	PR c++/57102
	* decl.c (fndecl_declared_return_type): Also look in
	DECL_SAVED_FUNCTION_DATA.

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

	PR c++/12288
	* parser.c (cp_parser_parameter_declaration): Check return value
	of cp_parser_parse_and_diagnose_invalid_type_name.

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

	PR c++/57319
	* class.c (vbase_has_user_provided_move_assign): New.
	* method.c (synthesized_method_walk): Check it.
	* cp-tree.h: Declare it.

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

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

	PR c++/23608
	* call.c (build_new_op_1): Propagate loc to cp_build_binary_op.

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

	PR c++/57317
	* decl2.c (determine_visibility): Use PRIMARY_TEMPLATE_P to decide
	whether a template has its own args.

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

	PR c++/57327
	* pt.c (unify_no_common_base): Swap arg and parm arguments to inform.

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

	PR c++/10207
	* parser.c (cp_parser_postfix_expression): Use cp_parser_braced_list
	instead of cp_parser_initializer_list for compound-literals.

2013-05-20  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/57175
	* typeck.c (check_return_expr): Reverse the alignment comparison.

2013-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/18126
	* parser.c (cp_parser_sizeof_operand): As a GNU Extension, parse
	correctly sizeof compound-literal; update comments.

2013-05-16  Marc Glisse  <marc.glisse@inria.fr>

	* call.c (build_conditional_expr_1): Use cp_build_binary_op
	instead of directly calling fold_build2.

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

	* Make-lang.in (cc1plus$(exeext)): Use link mutex.

	PR c++/57279
	* decl.c (grokdeclarator): Allow member function qualifiers in
	TYPENAME context in C++11 mode.

2013-05-16  Dodji Seketeli  <dodji@redhat.com>

	PR c++/56782 - Regression with empty pack expansions
	* pt.c (use_pack_expansion_extra_args_p): When at least a
	parameter pack has an empty argument pack, and another parameter
	pack has no argument pack at all, use the PACK_EXPANSION_EXTRA
	mechanism.

2013-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* name-lookup.c (pushdecl_maybe_friend_1): Replace pairs of
	warning_at and permerror with warning_at/inform and permerror/
	inform, respectively.

2013-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/31952
	* name-lookup.c (pushdecl_maybe_friend_1): Diagnose illegal
	redeclarations.

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

	PR c++/57243
	* parser.c (cp_parser_range_for): Call complete_type.

	PR c++/57041
	* pt.c (tsubst_copy_and_build): Don't recur into a designator.

2013-05-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53903
	* method.c (defaulted_late_check): Check for compatible exception
	specification out of class explicitly defaulted functions too.

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

	PR c++/56998
	* semantics.c (potential_constant_expression_1): Make sure the
	called function is potentially constant.
	* call.c (null_ptr_cst_p): Revert earlier change.

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

	PR c++/56998
	* call.c (null_ptr_cst_p): An expression with side-effects can't
	be a C++03 null pointer constant.

	PR c++/57041
	* decl.c (reshape_init_class): Handle error_mark_node.

	PR c++/57254
	* typeck.c (merge_types): Propagate ref-qualifier
	in METHOD_TYPE case.

	PR c++/57253
	* decl.c (grokdeclarator): Apply ref-qualifier
	in the TYPENAME case.

	PR c++/57252
	* decl.c (decls_match): Compare ref-qualifiers.

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

	PR c++/57196
	* pt.c (convert_template_argument): Use dependent_template_arg_p,
	not uses_template_parms.

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

	PR c++/55149
	* semantics.c (add_capture): Error rather than abort on copy
	capture of VLA.
	* typeck.c (maybe_warn_about_returning_address_of_local): Don't
	warn about capture proxy.

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

	* decl.c (cp_finish_decl): Only check VLA bound in C++1y mode.

	PR c++/57222
	* pt.c (lookup_template_class_1): Handle getting a template
	template parameter as D1.

	N3639 C++1y VLA diagnostics
	* decl.c (grokdeclarator): Complain about reference, pointer, or
	typedef to VLA.
	(create_array_type_for_decl): Complain about array of VLA.
	* pt.c (tsubst): Likewise.
	* rtti.c (get_tinfo_decl): Talk about "array of runtime bound".
	* semantics.c (finish_decltype_type): Complain about decltype of VLA.
	* typeck.c (cp_build_addr_expr_1): Complain about VLA.
	(cxx_sizeof_or_alignof_type): Likewise.

	N3639 C++1y VLA support
	* decl.c (compute_array_index_type): Allow VLAs in C++1y mode.
	(check_array_initializer): Allow VLA init.
	(reshape_init_array_1): Adjust.
	(cp_finish_decl): Check for invalid VLA length.
	* typeck2.c (process_init_constructor_array): Adjust.
	(store_init_value): Use build_vec_init for VLAs.
	* semantics.c (add_capture): Capture VLA as ptr+len.
	(vla_capture_type): New.
	(build_capture_proxy): Rebuild the VLA.
	* typeck.c (build_simple_component_ref): Split out from...
	(build_ptrmemfunc_access_expr): ...here.
	* tree.c (array_of_runtime_bound_p): New.
	* init.c (throw_bad_array_length): New.
	(build_vec_init): Use it.
	* parser.c (cp_convert_range_for): When iterating over a VLA,
	use it directly rather than bind a reference.
	* cp-tree.h: Declare new functions.

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

	* except.c (is_admissible_throw_operand_or_catch_parameter): Check
	variably_modified_type_p.
	(expand_start_catch_block): Mark the typeinfo used here.
	* semantics.c (finish_handler_parms): Not here.

	* error.c (dump_type_suffix): Try harder on VLA length.

	Core 624/N2932
	* init.c (throw_bad_array_new_length): New.
	(build_new_1): Use it.  Don't warn about braced-init-list.
	(build_vec_init): Use it.
	* call.c (build_operator_new_call): Use it.

	PR c++/57068
	* decl.c (grokdeclarator): Warn about ref-qualifiers here.
	* parser.c (cp_parser_ref_qualifier_seq_opt): Not here.
	* error.c (maybe_warn_cpp0x): s/0x/11/.

2013-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51226
	* parser.c (cp_parser_enum_specifier): Handle nested_name_specifier
	== error_mark_node.

2013-05-06  Marc Glisse  <marc.glisse@inria.fr>

	* typeck.c (cp_build_binary_op): Call save_expr before
	build_vector_from_val.

2013-05-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57183
	* decl.c (cp_finish_decl): After do_auto_deduction copy the
	qualifers with cp_apply_type_quals_to_decl.

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

	* pt.c (convert_nontype_argument): Add missing whitespace in
	error message.

2013-05-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53745
	* decl.c (build_enumerator): Improve error message.

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

	PR c++/14283
	* parser.c (cp_parser_diagnose_invalid_type_name): Improve error
	messages for template types and fix column numbers.

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

	PR c++/57132
	* pt.c (tsubst_copy_and_build, MODOP_EXPR): Increase / decrease
	c_inhibit_evaluation_warnings around build_x_modify_expr call.

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

	PR c++/57092
	* semantics.c (finish_decltype_type): Handle instantiated template
	non-type arguments.

2013-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56450
	* semantics.c (finish_decltype_type): Handle COMPOUND_EXPR.

2013-04-26  Jakub Jelinek  <jakub@redhat.com>

	* error.c (cp_print_error_function): Adjust file_name_as_prefix
	caller.

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

	PR c++/56859
	* typeck.c (cxx_alignas_expr): Handle value-dependence properly.

	PR c++/50261
	* init.c (perform_member_init): Call reshape_init.

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

	PR c++/53721
	* parser.c (cp_parser_postfix_dot_deref_expression): Fix thinko.

2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* typeck.c (cxx_sizeof_or_alignof_type): Change -Wpointer-arith
	pedwarn to simply use OPT_Wpointer_arith.
	(cp_build_unary_op): Likewise.

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

	N3648: init-captures are named.
	* semantics.c (add_capture): Don't prepend "__" to init-captures.
	(build_capture_proxy): Adjust.
	* error.c (dump_simple_decl): Check DECL_NORMAL_CAPTURE_P.

	N3648: Allow braced and parenthesized initializers.
	* parser.c (cp_parser_lambda_introducer): Use cp_parser_initializer.
	* pt.c (tsubst) [DECLTYPE_TYPE]: Handle DECLTYPE_FOR_INIT_CAPTURE.
	* semantics.c (lambda_capture_field_type): Use do_auto_deduction.
	(add_capture): Collapse a parenthesized initializer into a single
	expression.
	* cp-tree.h (DECLTYPE_FOR_INIT_CAPTURE): New.

2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56970
	* init.c (build_offset_ref): Add tsubst_flags_t parameter.
	* semantics.c (finish_qualified_id_expr): Likewise.
	(finish_id_expression): Update.
	* typeck.c (cp_build_addr_expr_1): Likewise.
	* pt.c (tsubst_qualified_id, resolve_nondeduced_context): Likewise.
	* cp-tree.h: Update declarations.

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

	Core 1586
	* parser.c (cp_parser_unqualified_id): Handle ~auto.
	(cp_parser_pseudo_destructor_name): Likewise.
	(cp_parser_postfix_dot_deref_expression): Adjust.
	(cp_lexer_nth_token_is_keyword): New.
	* semantics.c (finish_pseudo_destructor_expr): Handle ~auto.
	* typeck.c (lookup_destructor): Handle ~auto.

	* pt.c (fn_type_unification): Push tinst level around
	type_unification_real if we aren't explaining.
	* cp-tree.h (TFF_NO_TEMPLATE_BINDINGS): New.
	* error.c (dump_function_decl): Respect it.
	(subst_to_string): Pass it.

	PR c++/48665
	* rtti.c (get_typeid): Diagnose qualified function type.
	* pt.c (tsubst) [POINTER_TYPE]: Likewise.

	* error.c (dump_aggr_type): Fix lambda detection.
	(dump_simple_decl): Pretty-print capture field.

	N3323
	* cvt.c (build_expr_type_conversion): Two conversions that return
	the same type aren't necessarily ambiguous.

	N3648
	* parser.c (cp_parser_lambda_introducer): Make lambda capture init
	pedwarn unconditional except in C++1y mode.

	* semantics.c (potential_constant_expression_1): Don't crash on
	'this' in NSDMI.

	Core 1612
	* semantics.c (finish_id_expression): Reject capture of anonymous
	union member.

	Core 1609
	* decl2.c (check_default_args): Check for pack expansion.

	* mangle.c (write_type): Mangle decltype(auto).

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

	N3638 changes to return type deduction
	* decl.c (undeduced_auto_decl): New.
	(require_deduced_type): New.
	(fndecl_declared_return_type): New.
	(decls_match): Use it.
	(duplicate_decls): Don't check for auto return.
	(grokdeclarator): Reject virtual auto.
	* class.c (resolve_address_of_overloaded_function): Handle
	auto function templates.
	* decl2.c (mark_used): Use undeduced_auto_decl, require_deduced_type.
	* cp-tree.h: Declare new fns.
	* error.c (dump_function_decl): Use fndecl_declared_return_type.
	* search.c (check_final_overrider): Likewise.
	* pt.c (make_decltype_auto): New.
	(do_auto_deduction): Require plain decltype(auto).
	(is_auto): Adjust.

	DR 941
	* decl.c (duplicate_decls): Don't propagate DECL_DELETED_FN to
	template specializations.

2013-04-16  Ed Smith-Rowland  <3dw4rd@verizon.net>

	Implement n3599 - Literal operator templates for strings.
	* parser.c (make_string_pack (tree value)): New function.
	(cp_parser_userdef_string_literal (cp_token *)): Use it
	to construct calls to character string literal operator templates.
	(cp_parser_template_declaration_after_export): Check for new string
	literal operator template parameter form.

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

	* pt.c (tsubst) [DECLTYPE_TYPE]: Use tsubst_copy_and_build.

	PR c++/52748
	* pt.c (tsubst) [DECLTYPE_TYPE]: If ~id is an expression
	rather than a destructor name, it isn't an unqualified-name.
	(tsubst_copy_and_build): Pass down decltype_flag to operator
	handling code, too.

	PR c++/56388
	* semantics.c (insert_capture_proxy): Just use index 1 in the
	stmt_list_stack.

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

	* error.c (cp_print_error_function,
	print_instantiation_partial_context_line,
	maybe_print_constexpr_context): Colorize locus strings.

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

	PR c++/52748
	* parser.c (complain_flags): New.
	(cp_parser_postfix_expression): Use it.
	(cp_parser_unary_expression): Likewise.
	(cp_parser_binary_expression): Likewise.
	(cp_parser_assignment_expression): Likewise.
	(cp_parser_expression): Likewise.
	(cp_parser_postfix_open_square_expression): Take decltype_p.
	(cp_parser_builtin_offsetof): Adjust.
	(cp_convert_range_for): Pass complain to finish_unary_op_expr.
	* decl2.c (grok_array_decl): Add decltype_p parm.
	* cp-tree.h: Adjust prototype.
	* semantics.c (finish_unary_op_expr): Add complain parm.

2013-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/56895
	* call.c (null_ptr_cst_p): Call fold_non_dependent_expr_sfinae before
	calling maybe_constant_value for C++98.

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

	PR c++/56901
	* semantics.c (lambda_capture_field_type, lambda_proxy_type):
	Strip references before checking WILDCARD_TYPE_P.

2013-04-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (build_conditional_expr_1, build_over_call): Protect
	error calls with complain & tf_error.
	* typeck.c (finish_class_member_access_expr, cp_build_binary_op,
	build_x_unary_op, cp_build_unary_op, cp_build_compound_expr,
	build_ptrmemfunc): Likewise.
	(lookup_destructor): Take tsubst_flags_t parameter, adjust.

	* cvt.c (warn_ref_binding): Rename to diagnose_ref_binding.
	(convert_to_reference): Adjust.

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

	* pt.c (tsubst_copy) [VAR_DECL]: Don't call tsubst for
	local variables, look them up instead.
	(tsubst_decl) [VAR_DECL]: Remove handling for anonymous union
	proxies and substitution in unevaluated context.
	(tsubst_expr) [OMP_FOR]: Instantiate OMP_FOR_PRE_BODY
	before the iterators.

	PR c++/23055
	* pt.c (uses_deducible_template_parms): New.
	(deducible_array_bound, deducible_expression): New.
	(deducible_template_args): New.
	(unify_one_argument): Call uses_deducible_template_parms.

2013-04-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56913
	* typeck2.c (build_m_component_ref): Protect error calls with
	(complain & tf_error).

2013-04-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54216
	* parser.c (cp_parser_enum_specifier): Check for empty
	anonymous enums and anonymous scoped enums.

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

	PR c++/56895
	* typeck.c (cp_build_binary_op): Call fold_non_dependent_expr_sfinae
	first before calling maybe_constant_value for warn_for_div_by_zero
	or invalid shift count warning purposes.

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

	PR c++/25466
	* rtti.c (build_typeid): Check the address of the argument
	rather than looking for an INDIRECT_REF.

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

	PR c++/56838
	PR c++/17232
	* typeck2.c (abstract_virtuals_error_sfinae): Disable
	complete_type again.

2013-04-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56871
	* decl.c (validate_constexpr_redeclaration): Allow an explicit
	specialization to be different wrt the constexpr specifier.

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

	* parser.c (cp_parser_std_attribute): Treat [[noreturn]] like GNU
	noreturn attribute.

2013-04-05  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* parser.c (cp_parser_ref_qualifier_seq_opt): Move to
	cp_parser_ref_qualifier_opt.  Error if more than one ref-qual found.

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

	* cp-tree.h (FUNCTION_OR_METHOD_TYPE_CHECK): Remove.
	(TYPE_RAISES_EXCEPTIONS): Use FUNC_OR_METHOD_CHECK instead.
	(FUNCTION_REF_QUALIFIED, FUNCTION_RVALUE_QUALIFIED): Likewise.

	* mangle.c (write_type): When writing a function type with
	function-cv-quals, don't add the unqualified type as a
	substitution candidate.

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

	PR c++/56815
	* typeck.c (cp_build_unary_op): Change -Wpointer-arith permerror to
	pedwarn.

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

	PR c++/56821
	* mangle.c (write_function_type): Mangle ref-qualifier.
	(write_nested_name): Likewise.
	(canonicalize_for_substitution): Preserve ref-qualifier.
	(write_type): Likewise.

	PR c++/34949
	* decl.c (begin_destructor_body): Clobber the object in a cleanup.

2013-04-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* friend.c (do_friend): Use COMPLETE_OR_OPEN_TYPE_P.
	* pt.c (find_parameter_packs_r): Use TYPE_ALIAS_P and TYPE_TI_ARGS.
	(for_each_template_parm_r): Use TYPE_TI_ARGS.

2013-04-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* cp-tree.h (TAGGED_TYPE_P): Remove.
	(IS_OVERLOAD_TYPE): Rename to OVERLOAD_TYPE_P, adjust.
	(TYPE_ANONYMOUS_P): Adjust.
	* call.c (build_new_op_1): Likewise.
	* class.c (find_abi_tags_r): Likewise.
	* decl.c (warn_misplaced_attr_for_class_type, start_decl,
	type_is_deprecated): Likewise.
	* decl2.c (grokfield, min_vis_r): Likewise.
	* pt.c (get_template_info): Likewise.
	* tree.c (handle_abi_tag_attribute): Likewise.

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

	* semantics.c (maybe_constant_value): Check
	instantiation_dependent_expression_p.
	* pt.c (build_non_dependent_expr): Don't check it here.

	PR c++/56772
	* init.c (build_new): Don't try to process an array initializer
	at template definition time.

	PR c++/56793
	* typeck.c (finish_class_member_access_expr): Handle enum scope.

	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.

	* call.c (add_function_candidate): Take the address of 'this' here.
	(build_over_call): And here.
	(build_new_method_call_1, build_op_call_1): Not here.
	(build_user_type_conversion_1): Or here.
	(add_candidates): Adjust.

	* cxx-pretty-print.h (pp_cxx_cv_qualifiers): New.
	* class.c (same_signature_p): Use type_memfn_quals.
	* cp-tree.h (TYPE_RAISES_EXCEPTIONS): Use
	FUNCTION_OR_METHOD_TYPE_CHECK.
	* error.c (dump_type_suffix): Add padding before cv-qualifiers.
	* pt.c (unify): Use static_fn_type.

2013-04-01  Bronek Kozicki <b.kozicki@gmail.com>
	    Jason Merrill  <jason@redhat.com>

	Implement N2439 (ref-qualifiers for 'this')
	* cp-tree.h (FUNCTION_REF_QUALIFIED): New.
	(FUNCTION_RVALUE_QUALIFIED): New.
	(FUNCTION_OR_METHOD_TYPE_CHECK): New.
	(cpp0x_warn_str): Add CPP0X_REF_QUALIFIER.
	(cp_ref_qualifier): New enum.
	(cp_declarator): Add ref_qualifier.
	* parser.c (cp_parser_ref_qualifier_seq_opt): New.
	(cp_parser_direct_declarator): Use it.
	(make_call_declarator): Adjust.
	(cp_parser_lambda_declarator_opt): Adjust.
	* call.c (add_function_candidate): Handle ref-qualifier overload
	resolution semantics.
	(standard_conversion): Adjust.
	* class.c (add_method, same_signature_p): Compare ref-qualifiers.
	* decl.c (grokdeclarator): Handle ref-qualifiers.
	(grokfndecl): Check for invalid ref-qualifiers.
	(static_fn_type, revert_static_member_fn): Adjust.
	* decl2.c (build_memfn_type): Handle ref-qualifiers.
	(check_classfn): Check them.
	(cp_reconstruct_complex_type): Retain them.
	* error.c (dump_ref_qualifier): New.
	(dump_type_suffix, dump_function_decl): Use it.
	(maybe_warn_cpp0x): Handle CPP0X_REF_QUALIFIER.
	* pt.c (tsubst, tsubst_function_type): Instantiate ref-quals.
	(unify): Retain them.
	* tree.c (cp_check_qualified_type): New.
	(cp_build_qualified_type_real): Keep exception spec and ref-qual.
	(build_ref_qualified_type): New.
	(strip_typedefs, build_exception_variant): Keep ref-qualifier.
	(cp_build_type_attribute_variant): Keep ref-qualifier.
	* typeck.c (merge_types): Keep ref-qualifier.
	(structural_comptypes): Compare ref-qualifier.
	(type_memfn_rqual): New.
	(apply_memfn_quals): Take ref-qual argument.
	* typeck2.c (build_m_component_ref): Check ref-qualifier.

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

	* cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): Remove.
	(DECL_FUNCTION_TEMPLATE_P): Adjust.

	* cxx-pretty-print.c (pp_cxx_nested_name_specifier,
	pp_cxx_qualified_id): Use get_containing_scope.
	* parser.c (cp_parser_class_head): Likewise.
	* pt.c (push_template_decl_real): Likewise.

	* decl2.c (import_export_decl): Use DECL_TEMPLOID_INSTANTIATION.
	* pt.c (unify): Use CP_INTEGRAL_TYPE_P.

2013-03-31  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl2.c (collect_candidates_for_java_method_aliases): Use
	DECL_CLASS_SCOPE_P.
	* name-lookup.c (pushtag_1) Use TYPE_FUNCTION_SCOPE_P.
	(pushdecl_maybe_friend_1): Use DECL_DECLARES_FUNCTION_P.
	* decl.c (duplicate_decls): Likewise.
	* parser.c (cp_parser_template_declaration_after_export): Likewise,
	also DECL_DECLARES_TYPE_P.
	* pt.c (instantiate_class_template_1): Likewise.
	* search.c (lookup_field_1): Use DECL_DECLARES_TYPE_P.
	(lookup_field_r): Likewise.
	(friend_accessible_p): Use DECL_DECLARES_FUNCTION_P.
	(lookup_fnfields_slot_nolazy): Likewise.
	* semantics.c (finish_member_declaration): Likewise.
	* typeck.c (convert_for_initialization): Use TYPE_REFFN_P.

2013-03-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* pt.c (template_parms_to_args): Fix typo in comment.

2013-03-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (build_op_call_1): Use TYPE_PTRFN_P and TYPE_REFFN_P.

2013-03-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (add_builtin_candidate): Use TYPE_PTR_P and VOID_TYPE_P.
	(build_op_call_1): Likewise.
	(build_over_call): Likewise.
	(compare_ics): Likewise.
	* class.c (build_base_path): Likewise.
	(resolve_address_of_overloaded_function): Likewise.
	* cp-tree.h: Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	(convert_to_reference): Likewise.
	(ocp_convert): Likewise.
	(convert_force): Likewise, tidy.
	* cxx-pretty-print.c (pp_cxx_postfix_expression): Likewise.
	(pp_cxx_ptr_operator): Likewise.
	* decl.c (duplicate_decls): Likewise.
	(start_decl): Likewise.
	(grok_op_properties): Likewise.
	(start_preparsed_function): Likewise.
	(store_parm_decls): Likewise.
	(finish_function): Likewise.
	* decl2.c (delete_sanity): Likewise.
	(acceptable_java_type): Likewise.
	(grokbitfield): Likewise.
	(cp_reconstruct_complex_type): Likewise.
	* error.c (dump_type_prefix): Likewise.
	(dump_expr): Likewise.
	* except.c (push_eh_cleanup): Likewise.
	(complete_ptr_ref_or_void_ptr_p): Likewise.
	(can_convert_eh): Likewise.
	* init.c (build_new_1): Likewise.
	(build_delete): Likewise.
	(build_vec_delete): Likewise.
	* mangle.c (write_type): Likewise.
	* parser.c (lookup_literal_operator): Likewise.
	* pt.c (convert_nontype_argument_function): Likewise.
	(convert_nontype_argument): Likewise.
	(tsubst): Likewise.
	(unify): Likewise.
	(dependent_type_p_r): Likewise.
	* rtti.c (build_headof): Likewise.
	(build_typeid): Likewise.
	(build_dynamic_cast_1): Likewise.
	(target_incomplete_p): Likewise.
	(typeinfo_in_lib_p): Likewise.
	* semantics.c (finish_omp_for): Likewise.
	(cxx_eval_call_expression): Likewise.
	(maybe_resolve_dummy): Likewise.
	* tree.c (build_target_expr): Likewise.
	(cp_build_qualified_type_real): Likewise.
	* typeck.c (composite_pointer_type_r): Likewise.
	(composite_pointer_type): Likewise.
	(comp_except_types): Likewise.
	(cxx_sizeof_nowarn): Likewise.
	(string_conv_p): Likewise.
	(cp_build_array_ref): Likewise.
	(cp_build_function_call_vec): Likewise, also use TYPE_PTRFN_P.
	(pointer_diff): Likewise.
	(cp_build_addr_expr_1): Likewise.
	(cp_build_unary_op): Likewise.
	(build_static_cast_1): Likewise.
	(cp_build_c_cast): Likewise.
	(comp_ptr_ttypes_real): Likewise.
	(ptr_reasonably_similar): Likewise.
	(comp_ptr_ttypes_const): Likewise.
	(casts_away_constness): Likewise.
	(check_literal_operator_args): Likewise.
	* typeck2.c (build_x_arrow): Likewise.
	(add_exception_specifier): Likewise.

2013-03-29  Jason Merrill  <jason@redhat.com>

	N3582
	* cp-tree.h (AUTO_IS_DECLTYPE): New.
	* parser.c (cp_parser_decltype): Handle decltype(auto).
	(cp_parser_type_id_1): Allow auto without a late-specified
	return in C++1y.
	(cp_parser_primary_expression): Use the return value of
	finish_parenthesized_expr.
	(cp_parser_transaction_expression): Likewise.
	* semantics.c (force_paren_expr): New.
	(finish_parenthesized_expr): Use it.
	* call.c (build_conditional_expr_1): Likewise.
	* pt.c (do_auto_deduction): Handle decltype(auto).
	(tsubst_copy): Handle PAREN_EXPR.
	(tsubst_copy_and_build): Likewise.
	* error.c (dump_expr): Handle PAREN_EXPR.
	* cxx-pretty-print.c (pp_cxx_expression): Likewise.
	* mangle.c (write_expression): Ignore PAREN_EXPR.

	* parser.c (cp_parser_decltype_expr): Split out...
	(cp_parser_decltype): ...from here.

	PR c++/56774
	PR c++/35722
	* pt.c (unify_pack_expansion): Fix indexing.

2013-03-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* call.c (build_java_interface_fn_ref): Likewise.
	(make_temporary_var_for_ref_to_temp): Likewise.
	* class.c (check_field_decls): Likewise.
	(layout_class_type): Likewise.
	(finish_struct_1): Likewise.
	(fixed_type_or_null): Likewise.
	(get_vtbl_decl_for_binfo): Likewise.
	* cp-gimplify.c (omp_var_to_track): Likewise.
	(cp_genericize_r): Likewise.
	* cp-objcp-common.c (cxx_warn_unused_global_decl): Likewise.
	* cp-tree.h (LANG_DECL_HAS_MIN): Likewise.
	(DECL_DISCRIMINATOR_P): Likewise.
	* decl.c (poplevel): Likewise.
	(decls_match): Likewise.
	(duplicate_decls): Likewise.
	(decl_jump_unsafe): Likewise.
	(start_decl): Likewise.
	(check_for_uninitialized_const_var): Likewise.
	(make_rtl_for_nonlocal_decl): Likewise.
	(cp_finish_decl): Likewise.
	(expand_static_init): Likewise.
	(local_variable_p): Likewise.
	(maybe_register_incomplete_var): Likewise.
	* decl2.c (grokfield): Likewise.
	(comdat_linkage): Likewise.
	(determine_visibility): Likewise.
	(import_export_decl): Likewise.
	(prune_vars_needing_no_initialization): Likewise.
	(decl_maybe_constant_var_p): Likewise.
	* error.c (dump_simple_decl): Likewise.
	(dump_template_decl): Likewise.
	(cp_printer): Likewise.
	* except.c (build_throw): Likewise.
	* init.c (build_vtbl_address): Likewise.
	(member_init_ok_or_else): Likewise.
	(build_aggr_init): Likewise.
	(expand_aggr_init_1): Likewise.
	(build_offset_ref): Likewise.
	(constant_value_1): Likewise.
	* mangle.c (write_mangled_name): Likewise.
	(write_prefix): Likewise.
	* name-lookup.c (supplement_binding_1): Likewise.
	(add_decl_to_level): Likewise.
	(pushdecl_maybe_friend_1): Likewise.
	(check_for_out_of_scope_variable): Likewise.
	(validate_nonmember_using_decl): Likewise.
	(lookup_name_innermost_nonclass_level_1): Likewise.
	(lookup_arg_dependent_1): Likewise.
	* parser.c (cp_parser_lambda_introducer): Likewise.
	(cp_parser_template_argument): Likewise.
	(cp_parser_single_declaration): Likewise.
	* pt.c (convert_nontype_argument): Likewise.
	(instantiate_class_template_1): Likewise.
	(tsubst_decl): Likewise.
	(tsubst_expr): Likewise.
	(do_decl_instantiation): Likewise.
	(do_type_instantiation): Likewise.
	(regenerate_decl_from_template): Likewise.
	(always_instantiate_p): Likewise.
	(instantiate_decl): Likewise.
	(type_dependent_expression_p): Likewise.
	(build_non_dependent_expr): Likewise.
	* repo.c (repo_emit_p): Likewise.
	* rtti.c (build_dynamic_cast_1): Likewise.
	* search.c (shared_member_p): Likewise.
	* semantics.c (outer_var_p): Likewise.
	(finish_id_expression): Likewise.
	(finish_omp_clauses): Likewise.
	(finish_decltype_type): Likewise.
	(ensure_literal_type_for_constexpr_object): Likewise.
	* tree.c (lvalue_kind): Likewise.
	(bot_replace): Likewise.
	(cp_tree_equal): Likewise.
	(handle_init_priority_attribute): Likewise.
	(decl_storage_duration): Likewise.
	* typeck.c (cxx_sizeof_expr): Likewise.
	(cxx_alignof_expr): Likewise.
	(decay_conversion): Likewise.
	(build_class_member_access_expr): Likewise.
	(cp_build_array_ref): Likewise.
	(cxx_mark_addressable): Likewise.
	(maybe_warn_about_returning_address_of_local): Likewise.
	(check_return_expr): Likewise.
	* typeck2.c (cxx_readonly_error): Likewise.
	(abstract_virtuals_error_sfinae): Likewise.
	(cxx_incomplete_type_diagnostic): Likewise.

2013-03-28  Lawrence Crowl  <crowl@google.com>

	* Make-lang.in
	(CXX_PARSER_H): Add header dependence.
	* cp-tree.h
	(extern debug (cp_binding_level &)): New.
	(extern debug (cp_binding_level *)): New.
	* name-lookup.h
	(debug (cp_binding_level &)): New.
	(debug (cp_binding_level *)): New.
	* parser.c
	(debug (cp_parser &)): New.
	(debug (cp_parser *)): New.
	(debug (cp_token &)): New.
	(debug (cp_token *)): New.
	(debug (vec<cp_token, va_gc> &)): New.
	(debug (vec<cp_token, va_gc> *)): New.
	* parser.c: Add header dependence.
	(extern debug (cp_parser &)): New.
	(extern debug (cp_parser *)): New.
	(extern debug (cp_token &)): New.
	(extern debug (cp_token *)): New.
	(extern debug (vec<cp_token, va_gc> &)): New.
	(extern debug (vec<cp_token, va_gc> *)): New.

2013-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/17232
	PR c++/52748
	* typeck2.c (abstract_virtuals_error_sfinae): Don't complete
	the type if tf_decltype is set.
	* pt.c (fn_type_unification): Add decltype_p parm.
	(get_bindings): Adjust.
	* cp-tree.h: Adjust.
	* class.c (resolve_address_of_overloaded_function): Adjust.
	* call.c (add_template_candidate_real, print_z_candidate): Adjust.

	PR c++/56679
	* parser.c (cp_parser_sizeof_pack): Split out from...
	(cp_parser_sizeof_operand): ...here.  Require (id).

	PR c++/56701
	* semantics.c (finish_this_expr): 'this' is an rvalue.
	* typeck.c (cp_build_indirect_ref): Handle NOP_EXPR of 'this'.

	PR c++/56710
	* semantics.c (finish_member_declaration): Don't push closure
	members.

	* name-lookup.c (pushdecl_maybe_friend_1): Use
	nonlambda_method_basetype and current_nonlambda_class_type.

	PR c++/56728
	* semantics.c (potential_constant_expression_1) [NOP_EXPR]: Reject
	conversion from integer to pointer.
	(cxx_eval_constant_expression): Likewise.
	(cxx_eval_indirect_ref): Use the folded operand if we still think
	this might be constant.

2013-03-28  Paolo Carlini  <paolo.carlini@oracle.com>
	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/56725
	* call.c (convert_like_real): Change series of two permerrors
	to permerror + inform (and likewise for two errors).
	(build_new_method_call_1): Likewise.
	* typeck.c (convert_for_initialization): Change additional
	warning or error to inform.

2013-03-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cp-tree.h (next_aggr_init_expr_arg): Remove static specifier.
	(first_aggr_init_expr): Likewise.
	(more_aggr_init_expr_args_p): Likewise.
	(type_of_this_parm): Likewise.
	(class_of_this_parm): Likewise.
	* name-lookup.h (get_global_value_if_present): Likewise.
	(is_typename_at_global_scope): Likewise.

2013-03-28  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (joust): Don't call inform for a permerror returning false.
	* parser.c (cp_parser_check_class_key): Likewise.
	* pt.c (tsubst_copy_and_build): Likewise.

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

	PR c++/56749
	* semantics.c (finish_qualified_id_expr): Return early
	for enum scope.

2013-03-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* call.c (build_new_method_call_1): Use INDIRECT_REF_P.
	* cvt.c (convert_to_void): Likewise.
	* error.c (dump_expr): Likewise.
	* mangle.c (write_expression): Likewise.
	* parser.c (cp_parser_template_argument): Likewise.
	* pt.c (convert_nontype_argument): Likewise.
	(tsubst_copy_and_build): Likewise.
	* rtti.c (build_typeid): Likewise.
	* semantics.c (finish_call_expr): Likewise.
	(finish_decltype_type): Likewise.
	(build_data_member_initialization): Likewise.
	* tree.c (is_dummy_object): Likewise.
	* typeck.c (decay_conversion): Likewise.
	(build_class_member_access_expr): Likewise.
	(cp_build_addr_expr_1): Likewise.
	(unary_complex_lvalue): Likewise.
	(check_return_expr): Likewise.
	* typeck2.c (cxx_readonly_error): Likewise.

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

	PR c++/52597
	* typeck.c (invalid_nonstatic_memfn_p): Use get_first_fn.  Take tree.
	* semantics.c (finish_decltype_type): Check it before type_unknown_p.
	* cp-tree.h: Adjust prototype.

	PR c++/45282
	* typeck2.c (build_m_component_ref): Handle prvalue object.

2013-03-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cp-gimplify.c (cp_genericize_r): Use VAR_OR_FUNCTION_DECL_P.
	* decl.c (duplicate_decls): Likewise.
	(cp_finish_decl): Likewise.
	(check_class_member_definition_namespace): Likewise.
	* decl2.c (grokfield): Likewise.
	(decl_needed_p): Likewise.
	(import_export_decl): Likewise.
	(mark_used): Likewise.
	* name-lookup.c (pushdecl_maybe_friend_1): Likewise.
	* pt.c (push_access_scope): Likewise.
	(instantiate_decl): Likewise.
	* ptree.c (cxx_print_decl): Likewise.
	* repo.c (repo_emit_p): Likewise.
	* semantics.c (note_decl_for_pch): Likewise.
	* tree.c (decl_linkage): Likewise.

2013-03-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55951
	* decl.c (check_array_designated_initializer): Handle CONST_DECL
	as ce->index.

2013-03-26  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (grokfndecl): Handle separately <inline> and <constexpr>
	error messages.

	* decl.c (grokdeclarator): Declare typedef_p and use it everywhere.

2013-03-25  Jason Merrill  <jason@redhat.com>

	PR c++/56699
	* semantics.c (maybe_resolve_dummy): Make sure that the enclosing
	class is derived from the type of the object.

	PR c++/52014
	* semantics.c (lambda_expr_this_capture): Don't capture 'this' in
	unevaluated context.

2013-03-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56722
	* decl.c (cp_finish_decl): Check DECL_LANG_SPECIFIC before
	DECL_TEMPLATE_INSTANTIATION.

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

	PR c++/56684
	* pt.c (instantiation_dependent_r): Check DECL_INITIAL of VAR_DECL
	and CONST_DECL.

2013-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* cp-tree.h (identifier_p): New.
	* call.c: Throughout, call identifier_p insstead of direct
	comparaison of TREE_CODE against IDENTIFIER_NODE.
	* decl.c: Likewisse.
	* decl2.c: Likewise.
	* init.c: Likewise.
	* mangle.c: Likewise.
	* name-lookup.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* search.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.

2013-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48087
	* pt.c (convert_nontype_argument): Count werrorcount as warnings.
	* call.c (build_temp): Likewise.
	* method.c (synthesize_method): Likewise.
	* typeck.c (convert_for_initialization): Likewise.

2013-03-21  Marc Glisse  <marc.glisse@inria.fr>

	* call.c (build_conditional_expr_1): Fold VEC_COND_EXPR.

2013-03-21  Richard Biener  <rguenther@suse.de>

	* error.c (cp_printer): Use DECL_HAS_DEBUG_EXPR_P instead of
	DECL_DEBUG_EXPR_IS_FROM.  Guard properly.

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.

	PR c++/54532
	* expr.c (cplus_expand_constant): Do nothing if the class is
	incomplete.
	* semantics.c (reduced_constant_expression_p): Allow PTRMEM_CST.
	* typeck2.c (store_init_value): Use reduced_constant_expression_p.
	* decl.c (maybe_register_incomplete_var): Handle PTRMEM_CST.
	(complete_vars): Likewise.

	* name-lookup.c (get_anonymous_namespace_name): Never use
	get_file_function_name.

	* pt.c (retrieve_specialization): Handle null tmpl argument.

	PR c++/17232
	PR c++/56642
	* pt.c (tsubst_decl): Check return value of register_specialization.
	* typeck2.c (abstract_virtuals_error_sfinae): Re-apply complete_type
	change.

2013-03-17  Jason Merrill  <jason@redhat.com>

	PR c++/54359
	PR c++/56639
	* parser.c (cp_parser_direct_declarator): Bail if we see a
	qualified-id not at namespace scope.

	PR c++/17232
	PR c++/56642
	* typeck2.c (abstract_virtuals_error_sfinae): Revert complete_type
	change for now.

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

	* decl.c (grokdeclarator): Assert that we won't see a pointer to
	METHOD_TYPE.

	PR c++/54277
	* cp-tree.h (WILDCARD_TYPE_P): Split out from...
	(MAYBE_CLASS_TYPE_P): ...here.
	* semantics.c (lambda_capture_field_type): Only build a
	magic decltype for wildcard types.
	(lambda_proxy_type): Likewise.
	(finish_non_static_data_member): Get the quals from
	the object.

	PR c++/55931
	* parser.c (cp_parser_template_argument): Don't
	fold_non_dependent_expr.

	* parser.c (cp_parser_lambda_declarator_opt): Use
	cp_parser_trailing_type_id.

	PR c++/45917
	* parser.c (cp_parser_template_id): Don't forget access checks.

	PR c++/52374
	* pt.c (tsubst_qualified_id): Use current_nonlambda_class_type.

	PR c++/54764
	PR c++/55972
	* name-lookup.h (tag_scope): Add ts_lambda.
	* semantics.c (begin_lambda_type): Use it.
	* decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR.
	* pt.c (check_default_tmpl_args): Ignore lambdas.
	(push_template_decl_real): Handle lambdas.
	* tree.c (no_linkage_check): Adjust lambda check.

	PR c++/56039
	* tree.c (strip_typedefs_expr): Complain about lambda, don't abort.

	PR c++/54359
	* parser.c (cp_parser_direct_declarator): Fix late return
	for out-of-class defn of member function.

	PR c++/55357
	* semantics.c (maybe_add_lambda_conv_op): Clear DECL_NAME of copied
	parms to avoid duplicate -Wshadow warnings.

	* search.c (lookup_base): Handle NULL_TREE.

	PR c++/56481
	* semantics.c (potential_constant_expression_1): Use of 'this' in
	a non-constexpr function makes the expression not potentially
	constant.

	N3276
	PR c++/52748
	* cp-tree.h (tsubst_flags): Add tf_decltype.
	* call.c (build_cxx_call): Don't build a temporary if it's set.
	(build_over_call): Make sure it's only passed to build_cxx_call.
	* parser.c (cp_parser_primary_expression): Add decltype_p parm.
	(cp_parser_unary_expression): Likewise.
	(cp_parser_cast_expression): Likewise.
	(cp_parser_binary_expression): Likewise.
	(cp_parser_assignment_expression): Likewise.
	(cp_parser_postfix_expression): Likewise.  Pass tf_decltype.
	(cp_parser_expression): Add decltype_p.  Force a
	temporary for a call on the LHS of a comma.
	(cp_parser_decltype): Pass true to decltype_p parms.
	* pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype.
	(tsubst_copy_and_build): Pass tf_decltype down only for
	CALL_EXPR and the RHS of COMPOUND_EXPR.
	* tree.c (build_cplus_new): Call complete_type_or_maybe_complain.

	* cp-tree.h (abstract_class_use): New enum.
	* typeck2.c (pending_abstract_type): Add use field.
	(abstract_virtuals_error_sfinae): Add overloads taking
	abstract_class_use instead of tree.
	* typeck.c (build_static_cast_1): Call it.
	* except.c (is_admissible_throw_operand_or_catch_parameter): Call it.
	* pt.c: Adjust calls.
	* decl.c (cp_finish_decl): Don't handle functions specially.
	(grokdeclarator): Always check return type.
	* init.c (build_new_1): Adjust call.

	DR 337
	PR c++/17232
	* pt.c (tsubst) [ARRAY_TYPE]: Use abstract_virtuals_error_sfinae.
	* typeck2.c (abstract_virtuals_error_sfinae): Call complete_type.

	DR 657
	* pt.c (tsubst_function_type): Call abstract_virtuals_error_sfinae.
	(tsubst_arg_types): Likewise.

	DR 1518
	PR c++/54835
	* call.c (convert_like_real): Check for explicit constructors
	even for value-initialization.

	PR c++/54946
	* pt.c (convert_nontype_argument): Handle invalid pointer.

	* parser.c (cp_parser_lambda_expression): Use nreverse.

	PR c++/56447
	PR c++/55532
	* pt.c (instantiate_class_template_1): Instantiate lambda capture
	list here.
	(tsubst_copy_and_build): Not here.

	PR c++/55017
	* method.c (walk_field_subobs): Disallow copy of rvalue ref.

	PR c++/55240
	* parser.c (parsing_nsdmi): New.
	* semantics.c (outer_automatic_var_p): Check it.
	(finish_id_expression): Likewise.
	* cp-tree.h: Declare it.

	PR c++/55241
	* error.c (dump_expr) [SIZEOF_EXPR]: Print sizeof... properly.

	* parser.c (lookup_literal_operator): Correct parm/arg naming
	mixup.

	PR c++/56238
	* pt.c (fold_non_dependent_expr_sfinae): Check
	instantiation_dependent_expression_p.

	PR c++/56095
	* class.c (resolve_address_of_overloaded_function): Accept a
	reference to function for target_type.
	(instantiate_type): Likewise.
	* pt.c (convert_nontype_argument): Pass it to
	convert_nontype_argument_function.

2013-03-16  Jakub Jelinek  <jakub@redhat.com>

	* tree.c (cp_tree_equal): Fix a pasto.

	PR c++/56607
	* typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero,
	pass op1 through maybe_constant_value first.

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

	PR c++/56582
	* semantics.c (cxx_eval_array_reference): Check for negative index.

2013-03-14  Jason Merrill  <jason@redhat.com>

	PR c++/56614
	* decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again.

	PR c++/56346
	* decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit
	dso_handle parm on targets without __cxa_atexit.

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

	PR c++/56567
	* typeck.c (check_return_expr): Disallow returning init list here.
	* semantics.c (apply_deduced_return_type): Not here.

2013-03-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51412
	* cxx-pretty-print.c (pp_cxx_expression): Handle LAMBDA_EXPR.
	* error.c (dump_expr): Likewise.

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

	PR c++/51884
	* class.c (modify_all_vtables): Mangle the vtable name before
	entering dfs_walk.

	* semantics.c (lambda_expr_this_capture): In unevaluated context,
	just return the nearest 'this'.

	PR c++/51494
	PR c++/52183
	PR c++/56222
	* tree.c (maybe_dummy_object): Don't capture 'this'.
	* semantics.c (maybe_resolve_dummy): New.
	(finish_non_static_data_member): Use it.
	(finish_qualified_id_expr): Don't test is_dummy_object.
	* cp-tree.h: Declare maybe_resolve_dummy.
	* call.c (build_new_method_call_1): Use it.

	PR c++/56567
	* semantics.c (apply_deduced_return_type): Don't allow returning
	std::initializer_list.

2013-03-06  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-03-05  Jakub Jelinek  <jakub@redhat.com>

	* parser.c (cp_parser_braced_list): For {} initialize
	*non_constant_p to false.

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

	PR c++/56464
	PR c++/54383
	* semantics.c (lambda_expr_this_capture): Handle NSDMI
	and non-class scopes.

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

	* decl.c (grokdeclarator): Remove dead code.

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

	PR c++/56481
	* semantics.c (potential_constant_expression_1): Use
	cxx_eval_outermost_constant_expr rather than maybe_constant_value.

	PR c++/56243
	* call.c (build_over_call): Avoid virtual lookup in a template.

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

	PR c++/56358
	PR c++/56323
	* name-lookup.c (do_class_using_decl): Use ctor_identifier instead
	of the base name for inheriting ctors.
	(push_class_level_binding_1): Remove inheriting ctor handling.
	* pt.c (tsubst_decl) [USING_DECL]: Likewise.
	* class.c (add_implicitly_declared_members): Adjust.

2013-02-26  David Binderman  <dcb314@hotmail.com>

	PR c++/55632
	* decl.c (grokdeclarator): Tidy publicp assignment.

2013-02-25  Aldy Hernandez  <aldyh@redhat.com>

	PR c++/56419
	* semantics.c (begin_transaction_stmt): Set TREE_SIDE_EFFECTS.
	(build_transaction_expr): Same.

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

	PR c++/56377
	* pt.c (fn_type_unification): Wait to call push_tinst_level until
	we know what args we're looking at.

	PR c++/56438
	* semantics.c (potential_constant_expression_1): In C++98, a cast
	to non-integral type can't be a constant expression.

2013-02-24  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-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++/56377
	* pt.c (fn_type_unification): Use explicit args in template
	instantiation context.

	PR c++/56359
	* call.c (can_convert_arg): Discard access checks.

	PR c++/56395
	* tree.c (strip_typedefs): Strip typedefs from TYPENAME_TYPE template
	args.

2013-02-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56373
	* tree.c (maybe_warn_zero_as_null_pointer_constant): Add.
	* cvt.c (ocp_convert): Use the latter.
	(cp_convert_to_pointer): Likewise.
	* decl.c (check_default_argument): Likewise.
	* typeck.c (cp_build_binary_op): Likewise.
	* cp-tree.h (maybe_warn_zero_as_null_pointer_constant): Declare.

2013-02-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51242
	* decl2.c (grokbitfield): Allow scoped enumeration types.

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++/56343
	* class.c (check_bases_and_members): Deduce noexcept after
	checking bases.

	PR c++/52026
	* semantics.c (finish_id_expression): In a template, return
	the identifier for a constant variable.

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

	PR c++/54922
	* semantics.c (build_anon_member_initialization): New.
	(build_data_member_initialization): Use it.

	PR c++/55003
	* decl.c (cp_finish_decl): Force instantiation of an
	auto static data member.

	PR c++/55220
	* pt.c (unify): A pack expansion that is not the last template
	argument makes the entire template argument list non-deduced.

	PR c++/56323
	* name-lookup.c (do_class_using_decl): Handle typedefs with
	inheriting constructors.
	(push_class_level_binding_1): Allow inheriting from template
	template parameter, too.
	* pt.c (tsubst_decl) [USING_DECL]: Likewise.

	PR c++/55223
	* pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of
	default argument scope.
	* mangle.c (write_name): Likewise.

	PR c++/55232
	* error.c (find_typenames_r): Don't walk into a pack expansion.

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

	PR c++/55670
	* parser.c (cp_parser_member_declaration): Check the declarator
	form when detecting a function declaration via typedef.

	PR c++/55680
	* pt.c (maybe_process_partial_specialization): A lambda
	isn't what's being specialized.

	PR c++/55710
	* semantics.c (maybe_add_lambda_conv_op): Mark static thunk
	TREE_USED.

	PR c++/55879
	* semantics.c (cxx_bind_parameters_in_call): Undo DECL_BY_REFERENCE.

	PR c++/55993
	* semantics.c (cxx_fold_indirect_ref): Handle empty bases at
	non-zero offsets, too.

	PR c++/56155
	* decl.c (build_enumerator): Always convert the value to a
	fixed underlying type.

	PR c++/56135
	* pt.c (tsubst_copy_and_build): Don't forget any new
	captures that arose from use of dependent names.

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

	PR c++/56302
	* semantics.c (finish_asm_stmt): If input constraints allow
	neither register nor memory, try maybe_constant_value to get
	a constant if possible.

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

	PR c++/56285
	* method.c (add_one_base_init): Handle base constructor
	taking rvalue reference parm.

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

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

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

	PR c++/56247
	* pt.c (eq_specializations): Set comparing_specializations.
	* tree.c (cp_tree_equal): Check it.
	* cp-tree.h: Declare it.

	* decl.c (decls_match): Check versions later.

	PR c++/56238
	* pt.c (build_non_dependent_expr): Don't try to fold
	instantiation-dependent expressions.
	(instantiation_dependent_r) [TRAIT_EXPR]: Split out.
	[BIND_EXPR]: Treat as dependent.

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

	PR c++/56235
	* method.c (do_build_copy_constructor): Don't bother turning
	scalars from lvalues to xvalues.
	(do_build_copy_assign): Likewise.

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

	* parser.c (cp_parser_enum_specifier): Check for error_mark_node.

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

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

	PR c++/56177
	* decl.c (start_preparsed_function): Update restype if we change
	decl1.

	PR c++/56208
	* pt.c (fn_type_unification): Discard any access checks from
	substituting explicit args.

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

	PR c++/56162
	PR c++/56104
	* typeck.c (get_member_function_from_ptrfunc): Fix
	ptrmemfunc_vbit_in_delta case.

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

	PR libstdc++/54314
	* class.c (build_ctor_vtbl_group): Give construction vtables
	hidden visibility.

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

	PR c++/56095
	* pt.c (convert_nontype_argument_function): Handle invalid input.
	(convert_nontype_argument): Likewise.

	PR c++/56104
	* typeck.c (get_member_function_from_ptrfunc): Optimize if the
	dynamic type has no virtual functions.

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

	PR c++/55944
	* decl.c (check_initializer): Use TARGET_EXPR_DIRECT_INIT_P only
	on TARGET_EXPR nodes.

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

	PR c++/56071
	* pt.c (maybe_instantiate_noexcept): Don't defer access checks.

2013-01-22  Dodji Seketeli  <dodji@redhat.com>

	PR c++/53609
	* pt.c (argument_pack_element_is_expansion_p)
	(make_argument_pack_select, use_pack_expansion_extra_args_p)
	(gen_elem_of_pack_expansion_instantiation): New static functions.
	(tsubst): When looking through an ARGUMENT_PACK_SELECT tree node,
	look through the possibly resulting pack expansion as well.
	(tsubst_pack_expansion): Use use_pack_expansion_extra_p to
	generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism.
	Use gen_elem_of_pack_expansion_instantiation to build the
	instantiation piece-wise.  Don't use arg_from_parm_pack_p anymore,
	as gen_elem_of_pack_expansion_instantiation and the change in
	tsubst above generalize this particular case.
	(arg_from_parm_pack_p): Remove this for it's not used by
	tsubst_pack_expansion anymore.

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

	PR target/54908
	* decl2.c (get_local_tls_init_fn): New.
	(get_tls_init_fn): Handle flag_extern_tls_init.  Don't bother
	with aliases for internal variables.  Don't use weakrefs if
	the variable needs destruction.
	(generate_tls_wrapper): Mark the wrapper as const if no
	initialization is needed.
	(handle_tls_init): Don't require aliases.

2013-01-15  Dodji Seketeli  <dodji@redhat.com>

	PR c++/55663
	* pt.c (coerce_innermost_template_parms): New static function.
	(instantiate_alias_template):  Use it here.

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

	PR c++/55878
	* rtti.c (build_typeid, get_typeid): Add complain parm.
	(get_tinfo_decl_dynamic): Likewise.
	* cp-tree.h, parser.c, pt.c: Adjust.

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

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

	PR c/48418
	* typeck.c (cp_build_binary_op): For LSHIFT_EXPR and RSHIFT_EXPR,
	call maybe_constant_value for the negative or too big shift
	count warnings.

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

	PR c++/55801
	* decl2.c (var_needs_tls_wrapper): Return false when error_operand_p
	of the argument is true.

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

	PR c++/55753
	* tree.c (build_aggr_init_expr): Do nothing in a template.
	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Strip an ADDR_EXPR off
	a FUNCTION_DECL before tsubsting.

2013-01-04  Dodji Seketeli  <dodji@redhat.com>

	PR c++/52343
	* pt.c (check_instantiated_arg): Allow type template arguments.

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-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54526 (again)
	* parser.c (cp_parser_template_id): Revert core of previous change
	(keep adjusted inform message).

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.

	PR c++/53650
	* call.c (type_has_extended_temps): New.
	* cp-tree.h: Declare it.
	* decl.c (check_initializer): Use build_aggr_init for arrays
	if it is false.
	* init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic.

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

	* decl.c (check_default_argument): Use LOOKUP_IMPLICIT.

	PR c++/55032
	PR c++/55245
	* tree.c (build_cplus_array_type): Copy layout information
	to main variant if necessary.

Copyright (C) 2013 Free Software Foundation, Inc.

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